Está en la página 1de 22

UNIDAD I

1.1

Paradigmas de la Programacin Estructurada

Programacin modular y programacin estructurada

Los trminos programacin modular, programacin descendente y programacin estructurada se introdujeron en la segunda mitad de la dcada de los sesenta y a menudo sus trminos se utilizan como sinnimos aunque no significan lo mismo. La programacin estructurada significa escribir un programa de acuerdo a las siguientes reglas: El programa tiene un diseo modular Los mdulos son diseados de modo descendente Cada mdulo se codifica utilizando las tres estructuras de control bsicas: secuencia, seleccin y repeticin. El trmino programacin estructurada se refiere a un conjunto de tcnicas que han ido evolucionando desde los primeros trabajos de Edgar Dijkstra. Estas tcnicas aumentan considerablemente la productividad del programa reduciendo en elevado grado el tiempo requerido para escribir, verificar, depurar y mantener los programas. La programacin estructurada utiliza un nmero limitado de estructuras de control que minimizan la complejidad de los programas y, por consiguiente, reducen los errores; hacen los programas ms fciles de escribir, verificar, leer y mantener. Los programas deben estar dotados de una estructura. La programacin estructurada es el conjunto de tcnicas que incorporan: Recursos abstractos, Diseo descendente (top-down), Estructuras bsicas.

Recursos abstractos consiste en descomponer una determinada accin compleja en trminos de un nmero de acciones ms simples capaces de ejecutarlas. El diseo descendente es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento. La metodologa descendente consiste en efectuar una relacin entre las sucesivas etapas de estructuracin de modo que se relacionasen unas con otras mediante entradas y salidas de informacin. Es decir, que se descompone el problema en etapas o estructuras jerrquicas, de modo que se puede considerar cada estructura desde dos puntos de vista: qu hace? y cmo lo hace?

Las estructuras de control de un lenguaje de programacin son mtodos de especificar el orden en que las instrucciones de un algoritmo se ejecutarn. El orden de ejecucin de las sentencias (lenguaje) o instrucciones determinan el flujo de control. Estas estructuras de control son, por consiguiente, fundamentales en los lenguajes de programacin y en los diseos de algoritmos especialmente los pseudocdigos.
Las tres estructuras de control bsico son: Secuencia Seleccin

Repeticin

La programacin estructurada hace los programas ms fciles de escribir, verificar, leer mantener, utiliza un nmero limitado de estructuras de control que minimizan la complejidad de los problemas. 1.2 Funciones generales

Cada programa en C tiene una funcin main( ) que es el punto de entrada al programa. Su estructura es: main( )
bloque de sentencias

{ ... } Las sentencias includas entre llaves { . . .] se denominan bloque. Un programa debe de tener slo una funcin main(). Si se intenta hacer dos funciones main( ) se produce un error. Adems de la funcin main( ), un programa en C consta de una coleccin de funciones. Todas los programas se construyen a partir de una o ms funciones que se integran para crear una aplicacin. Todas las funciones contienen una o ms sentencias C y se crean generalmente para realizar una nica tarea, tales como imprimir la pantalla, escribir un archivo o Cambiar el color de la pantalla. Se puede declarar y ejecutar un nmero de funciones casi ilimitado en un programa C. 1.3 Estructura bsica de un programa

Un programa en C se descompone de una o ms funciones. Una de las funciones debe ser obligatoriamente main. Una funcin en C es un grupo de instrucciones que realizan una o ms acciones. Asimismo, un programa contendr una serie de directivas #include que permitirn incluir en el mismo archivo de cabecera que a su vez constarn de funciones y datos predefinidos en ellos.

Un programa en C puede incluir: Directivas de preprocesador Declaraciones globales; La funcin main(); Funciones definidas por el usuario; Comentarios del programa (utilizados en totalidad).

La estructura tpica completa de un programa en C se muestra en el siguiente programa sencillo en C.


#include <stdio.h> /* Este programa imprime: Bienvenido a la programacin en C*/ int main() { print(Bienvenido a la programacin en C\ n); return 0; }

La directiva #include de la primera lnea es necesaria para que el programa tenga salida. Se refiere a un archivo externo denominado stdio.h en el que proporciona la informacin relativa a la funcin printf(). Obsrvese que los ngulos < y > no son parte del nombre del archivo; se utilizan para indicar que el archivo es un archivo de la biblioteca estndar en C. La segunda lnea es un comentario, identificado por los caracteres /* y */. Los comentarios se incluyen en programas que proporcionan explicaciones a los lectores de los mismos. Son ignorados por el compilador. La tercera lnea contiene la cabecera de la funcin main(), obligatoria en cada programa en C. Indica el comienzo del programa y requieren los parntesis ( ) a continuacin del main.

La cuarta y sptima lnea contienen slo llaves { y } que cierran el cuerpo de la funcin main() y son necesarias en todos los programas C. La quinta lnea contiene la sentencia printf(Bienvenido a la programacin en C \n); Que indica al sistema que se escriba el mensaje Bienvenido a la programacin en C\n. printf() es la funcin ms utilizada para dar salida de datos por el dispositivo estndar, la pantalla. La salida ser Bienvenido a la programacin en C El smbolo \n es el smbolo de nueva lnea. Poniendo este smbolo final de la cadena entre comillas, indica al sistema que comience una nueva lnea despus de imprimir los caracteres precedentes, terminado, por consiguiente, la lnea actual. La sexta lnea contiene la sentencia return 0. Esta sentencia termina la ejecucin del programa y devuelve el control al sistema operativo de la computadora. El nmero 0 se utiliza para sealar que el programa ha terminado correctamente (con xito). Obsrvese el punto y coma (;) al final de la quinta y sexta lnea. C requiere que cada sentencia termine con un punto y coma. No es necesario que est al final de una lnea. Se pueden poner varias sentencias en la misma lnea y se puede hacer que una sentencia se extienda sobre varias lneas.

ELEMENTOS DE UN PROGRAMA EN C Un programa en C consta de uno o ms archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusin de archivos y la sustitucin de macros. El preprocesador se controla por directivas introducidas por lneas que contienen # como primer carcter. El resultado del preprocesado es una secuencia de tokens. Tokens (elementos lxicos de los programas). Existen cinco clases de tokens: identificadores, palabras reservadas, operadores y separadores.

Identificadores. Un identificador es una secuencia de caracteres, letras, dgitos y subrayados(_). El primer carcter debe ser una letra (algn compilador admite carcter de subrayado). Las letras maysculas y minsculas son diferentes. nombre_clase elemento_mayor a Indice Cantidad_Total Habitacion120 Dia_Mes_Anyo Fecha_Compra_Casa i

En Borland C/C++ el identificador puede ser de cualquier longitud; sin embargo, el compilador ignora cualquier carcter fuera de los 32 primeros. Un consejo que puede servir de posible reglas puede ser: 1. Escribir identificadores de variables en letras minsculas. 2. Constantes en maysculas. 3. Funciones con tipo de letra mixto: mayscula/minscula. Palabras reservadas. Una palabra reservada es una caracterstica del lenguaje C asosicada con algn significado especial. Una palabra reservada no se puede utilizar como nombre de identificador o funcin. Ejemplos de identificadores reservados: break do case void const return Comentarios. Los comentarios en C tienen el formato /* y */ Signos de puntuacin y separadores. Todas las sentencias deben de terminar con un punto y coma. Otros signos de puntuacin son: % < * & { } ~ [ ] > typedef switch while char struct else float for signed

\ /

Archivos de Cabecera Un archivo de cabecera es un archivo especial que contiene declaraciones de elementos y funciones de la biblioteca. Para utilizar macros, constantes, tipos y funciones almacenadas en biblioteca, un programa debe utilizar la directiva #include para insertar el archivo de cabecera correspondiente. Por ejemplo, si un programa utiliza la funcin pow que se almacena en la biblioteca math.h, debe contener la directiva #include <math.h> para hacer que el contenido de la biblioteca matemtica est disponible a un programa. La mayora de los programas contienen lneas como sta al principio incluyen en el momento de compilacin. #include <stdio.h> /* o bien*/ #include stdio.h

TIPOS DE DATOS EN C C no soporta un gran nmero de datos predefinidos, pero tiene la capacidad para crear sus propios tipos de datos. Todos los tipos de datos simples o bsicos de C, esencialmente, nmeros. Los tres tipos de datos bsicos son: Enteros Nmeros de coma flotante (reales); Caracteres Tipos de datos simples de C

Tipo

Ejemplo C -15 1024 42325 262144 10.5 0.00045 1e-8

Tamao en bytes

Rango Mnimo 0 -128 -32768 0 . .Mximo . . 255 . . 127 . . 32767 . . 65535

char short int unsigned int long float double long double

1 2 2 2 4 4 8 8

-2147483648 . . 2147483637 3.4*(10-38) . .3.4*(10308) 1.7*(-38) . .1.7*(10308)

igual que doble

Los tipos de datos fundamentales en C son: enteros: (nmeros complejos y sus negativos), de tipo int. variantes enteros: tipos short, long y unsigned. reales: nmeros decimales, tipos float, double o long double. caracteres: letras, dgito, smbolos y signos de puntuacin, tipo char.

1.4 Variables

Zonas de Memoria

En C una variable es una posicin con nombre en memoria donde se almacena un valor de un cierto tipo de dato. Las variables pueden almacenar todo tipo de datos: cadenas, nmeros y estructuras. Una constante, por el contrario, es una variable cuyo valor no puede ser modificado.

Declaracin de Variables La forma ms simple de una declaracin de variables en C es poner primero el tipo de dato y a continuacin el nombre de la variable. Si se desea dar un valor inicial a la variable, ste se pone a continuacin. El formato de la declaracin es:

<tipo de dato>

<nombre de variable> = <valor inicial>

Se pueden tambin declarar mltiples variables en la misma lnea: <tipo de dato> As, por ejemplo, int longitud; int valor=99; int valor1, valor2; int num_parte=1141, num_items=45; Los tipos bsicos de variables en C son: variables locales variables globales variables dinmicas <nom_var1>, <nom_var2> . . . <nom-varn>

Las variables locales son aqullas definidas en el interior de una funcin y son visibles slo en esa funcin especfica. Las reglas por las que rigen las variables locales son: 1. 2. En el interior de una funcin, una variable local no puede ser modificada por ninguna sentencia externa a la funcin. Los nombres de las variables locales no han de ser nicos. Dos, tres o ms funciones pueden definir variables de nombre Interruptor. Cada variable es distinta y pertenece a la funcin en que est declarada. Las variables locales de las funciones no existen en memoria hasta que se ejecuta la funcin. Esta propiedad permite ahorrar memoria, ya que permite que varias funciones compartan la misma memoria para sus variables locales (pero no a la vez).

3.

Variables globales

Las variables globales son variables que se declaran fuera de la funcin y por defecto (omisin) son visibles a cualquier funcin, incluyendo main( ). La memoria asignada a una variable global permanece asignada a travs de la ejecucin del programa, tomando como espacio vlido segn se utilice. Por esta razn, se debe evitar utilizar muchas variables globales dentro de un programa. Otro problema que surge con variables globales es que una funcin puede asignar un valor especfico a una variable global. Posteriormente, en otra funcin, y por olvido, se pueden hacer cambios en la misma variable. Estos cambios dificultarn la localizacin de errores. Variables dinmicas Las variables dinmicas tienen caractersticas que en algunos casos son similares tanto a variables locales como a globales. Al igual que una variable local, una variable dinmica se crea y libera durante la ejecucin del programa. La diferencia entre una variable local y una variable dinmica es que la variable dinmica se crea tras su peticin, es decir, a su voluntad, y se libera cuando ya no se necesita. Al igual que una variable global, se pueden crear variables dinmicas que son accesibles desde mltiples funciones. Las variables dinmicas se examinan en detalle en la unidad de PUNTEROS. Constantes En C existen cuatro tipos de constantes: constantes literales, constantes definidas, constantes enumeradas, constantes declaradas.

Las constantes literales son las ms usuales; toman valores tales como 45.32564, 222 o bien Introduzca sus datos que se describen directamente en el texto del programa. Las constantes definidas son identificadores que se asocian con valores literales constantes y que toman determinados nombres. Las constantes declaradas son como variables: sus valores se almacenan en memoria, pero no se pueden modificar. Las constantes enumeradas permiten asociar un identificador,

tal como Color, con una secuencia de otros nombres, tales como Azul, Verde, Rojo y Amarillo. Las constantes literales o constantes, en general, se clasifican tambin en cuatro grupos, cada uno de los cuales puede ser de cualquiera de los tipos: constantes enteras constantes caracteres constantes de coma flotante constantes cadena

Las constantes definidas pueden recibir nombres simblicos mediante la directiva #define #define PI 3.141592 #define VALOR 54 Las constantes enumeradas permiten crear listas de elementos afines. Un ejemplo tpico es una constante enumerada de lista de colores, que se puede declarar como: enum Colores {Rojo, Naranja, Amarillo, Verde, Azul, Violeta} Cuando se procesa esta sentencia, el compilador asigna un valor que comienza en 0 a cada elemento enumerado; as, Rojo equivale a 0, Naranja es 1, etc. El compilador enumera los colores por usted. Las constantes declaradas utilizan el cualificador const que permite dar nombres simblicos a constantes a modo de otros lenguajes. El formato general es const tipo nombre = valor; Si se otite tipo, C utiliza int (entero por defecto). Ejemplos: const char CARCTER=@; const int OCTAL=0233; const char CADENA []=Curso de C;

Las definiciones const especifican tipos de datos, terminan con punto y coma y se inicializan como variables. La directiva #define no especifica tipos de datos, no utiliza el operador de asignacin (=) y no termina con punto y coma. Una constante carcter (char) es un carcter del cdigo constantes o ASCII encerrado en apstrofes. A b c

Adems de los caracteres ASCII estndar, una constante carcter soporta caracteres especiales que no se pueden representar utilizando su declarado, como, por ejemplo, los cdigos ASCII altos y las secuencias de escape.
Cdigo de escape Significado \n nueva lnea \t tabulacin \b retroceso de espacio

*Investigar todos los cdigos de escape. 1.5 Operadores

Los programas C constan de datos, sentencias de programas y expresiones. Una expresin es, normalmente, una ecuacin matemtica, tal como 3+5. En esta expresin, el smbolo ms (+) es el operador suma, y los nmeros 3 y 5 se llaman operadores u operandos. En sntesis, una expresin es una secuencia de operaciones y operadores que especifica un clculo. Sintaxis variable = expresin variable expresin identificador vlido C declarado como variable una constante, otra variable a la que se ha asignado previamente un valor o una frmula que se ha evaluado y cuyo tipo es el de variable.

Una expresin es un elemento de un programa que toma un valor. En algunos casos puede tambin realizar una operacin. Las expresiones pueden ser valores constantes o variables simples, tales como 25 o z; pueden ser valores o variables combinadas con operadores (a++, m==n, etc); o bien pueden ser valores combinados con funciones tales como toupper(b).

1.5.1

Operadores de Asignacin y Expresin

El operador = asigna el valor de la expresin derecha a la variable situada a su izquierda. codigo = 3467; Fahrenheit = 123.456; coordX = 525; coordY = 725;

Este operador es asociado por la derecha, eso permite realizar asignaciones mltiples. As, a=b=c=45; equivale a a=(b=(c=45)); o dicho de otro modo, a las variables a, b y c se asigna el valor 45. Esta propiedad permite inicializar varias variables con una sentencia int a, b, c; a=b=c=5; /*se asigna 5 a las variables a, b y c*/

1.5.2

Operadores aritmticos, de relacin y lgicos

Los operadores aritmticos sirven para realizar operaciones aritmticas bsicas. Los operadores aritmticos C siguen las reglas algebraicas tpicas de jerarqua o prioridad. Estas reglas especifican la precedencia de las operaciones aritmticas. Operadores aritmticos
Operador + * / % Tipos enteros Suma Resta Producto Divisin entera: cociente Divisin entera: resto Tipos reales Suma Resta Producto Divisin en coma flotante Ejemplo x+y bc x*y b/5 b%5

Precedencia de operadores matemticos bsicos


Operador +, *, /, % Operacin +25, -6.745 5*5 es 25 25/5 es 5 25 % 6 es 1 2 + 3 es 5 2 3 es -1 Nivel de precedencia 1 2

+, -

Operadores de relacin C no tiene tipos de datos lgicos o bolanos, como Pascal, para representar los valores verdadero (true) y falso (false). En su lugar se utiliza el tipo int para este propsito, con el valor entero 0 que representa a falso y distinto de cero a verdadero. Operadores tales como >= y == que comprueban una relacin entre dos operandos se llaman operadores relacionales y se utilizan en expresiones de forma expresin1 operador_relacional expresin2

Los operadores relacionales se usan normalmente en sentencias de leccin (if) o de iteracin (while, for), que sirven para comprobar una condicin. Utilizando operadores relacionales se realizan operaciones de igualdad, desigualdad y diferencias relativas. Operadores relacionales de C
Operador == != > > >= <= Significado Igual a No igual a Mayor que Menor que Mayor o igual que Menor o igual que Ejemplo a == b a != b a>b b<b a >= b a <= b

Operadores Lgicos Estos operadores se utilizan con expresiones para devolver un valor verdadero (cualquier entero distinto de cero) o un valor falso (0). Los operadores lgicos se denominan tambin operadores bolanos, en honor de George Boole, creador de lgebra de Boole. Los operadores lgicos de C son: not (!), and (&&) y or (||). El operador lgico ! (not, no) produce falso (cero) si su operando es verdadero (distinto de 0) y viceversa. El operador lgico && (and, y) produce verdadero slo si ambos operandos son verdadero (no cero); si cualquiera de los operandos es falso produce falso. El operador lgico || (or, o) produce verdadero si cualquiera de los operandos es verdadero (distinto de cero) y produce falso slo si ambos operandos son falsos. Con operadores lgicos existen slo dos valores posibles para expresiones: verdadero y falso. La forma ms usual de mostrar los resultados de operaciones lgicas es mediante las denominadas tablas de verdad, que muestran como funcionan cada uno de los operadores lgicos.

1.5.3

Operadores de incremento y decremento

De las caractersticas que incorpora C, una de las ms tiles son los operadores de incremento ++ y decremento --. Los operadores ++ y --, denominados de incremento y decremento, suman o restan 1 a su argumento, respectivamente, cada vez que se aplican a una variable.

Operadores de incremento (++) y decremento (- -)


Incremento ++n n += 1 n =n +1 Decremento - -n n -= 1 n = n -1

Ejemplos: a++ es igual que a=a+1

Estos operadores tienen la propiedad de que pueden utilizarse como sufijo prefijo, el resultado de la expresin puede ser distinto, dependiendo del contexto. Las sentencias ++n; n++;

tienen el mismo efecto; as como - -n; n- -;

Si los operadores ++ y - - estn de prefijos, las operaciones de incremento o decremento se efecta antes que la operacin de asignacin; si los operadores ++ y - - estn sufijos, la asignacin se efecta en primer lugar y el incremento o decremento a continuacin.

1.5.4

Jerarqua de operadores

La prioridad o precedencia de operadores determina el orden en el que se aplican los operadores a un valor. Los operadores C vienen en una tabla de diecisis grupos. Los operadores del grupo 1 tienen mayor prioridad que los del grupo 2, y as sucesivamente: Si dos operadores se aplican al mismo operando, el operador con mayor prioridad se aplica primero. Todos los operadores del mismo grupo tienen igual prioridad y asociatividad.

La asociatividad izquierda-derecha significa aplicar el operador ms a la izquierda primero, y en la asociatividad derechaizquierda se aplica primero el operador ms a la derecha. Los parntesis tienen la mxima prioridad.
Prioridad 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Operadores x -> [] ( ) ++ -- ~ ! - + & * sizeof . * -> * * / % + << >> < <= > >= == ! = & ^ | && || ?: (expresin condicional) = *= /= %= += -= <<= >>= &= /= ^= , (operador coma) Asociatividad I D DI I D I D I D I D I D I D I D I D I D I D I D DI DI I D

I-D DI

Izquierda Derecha Derecha -Izquierda

1.6 1.6.1

Expresiones bsicas Instrucciones de entrada/salida

Los programas interactan con el exterior, a travs de datos de entrada o datos de salida. La biblioteca C proporciona facilidades para entrada y salida, para lo que todo programa deber tener el archivo de cabecera stdio.h. En C la entrada y la salida se lee y se escribe de los dispositivos estndar de entrada y salida stdin y stdout respectivamente. La salida, normalmente, es a pantalla del ordenador, la entrada se capta del teclado.

Salida La salida de los datos de un programa se puede dirigir a diversos dispositivos, pantalla, impresora, archivos. La salida que se trata a continuacin va a ser a pantalla, adems ser formateada. La funcin printf( ) visualiza a pantalla datos del programa, transforma los datos, que estn en representacin binaria, a ASCII segn los cdigos transmitidos. La forma general que tiene la funcin printf ( ) printf(Cadena_de_control_, dato1, dato2, . . .) cadena_de_control dato1, dato2 . . . contiene los tipos de datos y forma de mostrarlos. variables, constantes, datos de salida.

Cdigos de formato ms utilizados %d %o %x %u %c %e El dato se convierte en entero decimal. El dato entero se convierte a octal. El dato entero se convierte a hexadecimal. El dato entero se convierte en entero sin signo. El dato se considera de tipo caracter. El dato se considera de tipo flota. Se convierte a notacin cientfica, de la forma {-}n.mmmmmmE{+-}dd. %f %g El dato se considera de tipo flota. Se convierte a notacin decimal, con parte entera y los dgitos de precisin. El dato se considera de tipo float. Se convierte segn el cdigo %e o %f dependiendo de cual sea la representacin ms corta. El dato ha de ser una cadena de caracteres.

%s

%lf

El dato se considera de tipo double.

Entrada La entrada de datos a un programa puede tener diversas fuente, teclado, archivos en disco. La entrada que consideramos ahora es a travs del teclado, asociado al archivo estndar de entrada stdin. La funcin ms utilizada, por su versatilidad, para entrada formateada es scanf( ). El archivo de cabecera stdio.h de la biblioteca C proporciona la definicin (el prototipo) de scanf( ), as como de otras funciones de entrada o de salida. La forma general que tiene la funcin scanf( ) scanf(cadena_de_control, var1, var2, var3, . . .) cadena_de_control anchura. var1, var2, . . . contiene los tipos de datos y se desea su variables de tipo de los cdigos de control.

1.6.2

Expresiones aritmticas

Las expresiones aritmticas son las que se utilizan junto con los operadores aritmticos. Ejemplos:
x+y bc x*y b/5 b%5

1.6.3

Funciones matemticas

Las funciones matemticas usuales en la biblioteca estndar son:


ceil(x) fabs(x) redondea el entero ms cercano. devuelve el valor absoluto de x(un valor positivo).

redondea por defecto al entero ms prximo. floor(x) fmod(x,y) calcula el resto f en una coma flotante para la divisin x/y, de modo que x=i*y+f, donde i es un entero, f tiene el mismo signo qye x y el valor absoluto de f es menor que el valor absoluto de y. pow(x,y) calcula x elevado a la potencia y(xy). Si es menor que o igual a cero, y debe ser entero. Si x es igual a cero, y no puede ser negativo. poe10(x) calcula 10 elevado a la potencia x(10x); x debe ser de tipo entero. devuelve la raz cuadrada de x; x debe ser mayor o igual a cero. sqrt(x)

1.7

Estructuras selectivas (estructura de control)

Las estructuras de control controlan el fuljo de ejecucin de un programa o funcin. Las estructuras de control permiten combinar instrucciones o sentencias individuales en una simple unidad lgica con un punto de entrada y un punto de salida. Las instrucciones o sentencias se organizan en tres tipos de estructuras de control que sirven para controlar el flujo de la ejecucin: secuencia, seleccin(decisin) y repeticin. Hasta este momento slo se ha utilizado el flujo secuencial. 1.7.1 if( )

En C, la estructura de control de seleccin principal es una sentencia if. La sentencia if tiene dos alternativas o formatos posibles. El formato ms sencillo tiene la sintaxis siguiente:

if(Expresin)

Accin
Accin se ejecuta si la expresin lgica es verdadera

Expresin lgica que determina si la accin se ha de ejecutar

Cuando se alcanza la sentencia if dentro de un programa, se evala la expresin entre parntesis que viene a continuacin de if. Si Expresin es

verdadera, se ejecuta Accin; en caso contrario no se ejecuta Accin (en su formato ms simple, Accin es una sentencia simple y en los restantes formatos con la siguiente sentencia del programa. condicin es una expresin entera(lgica).

sentencia es cualquier sentencia ejecutable, que se ejecutar slo si la condicin toma un valor distinto de cero. 1.7.2 if( )-else

Un segundo formato de la sentencia if es la sentencia if-else. Este formato de la sentencia if tiene la siguiente sintaxis: if(Expresin) Accin1 else Accin2

En este formato Accin1 y Accin2 son individualmente, o bien una nica sentencia que termina en un punto y coma (;) o un grupo de sentencias encerrado entre llaves. Cuando se ejecuta la sentencia ifelse, se evala Expresin. Si la Expresin es verdadera, se ejecuta Accin1 y en caso contrario se ejecuta Accin2.

1.7.3

switch-case

La sentencia switch es una sentencia C que se utiliza para seleccionar una de entre mltiples alternativas. La sentencia switch es especialmente til cuando la seleccin se basa en el valor de una variable simple o de una expresin simple denominada expresin de control o selector. El valor de esta expresin puede ser de tipo int o char, pero no de tipo flota ni double. Sintasix:
switch( ) switch( )

{ case case . . . case default: /*opcional*/ } etiquetan; sentencian; sentenciasd etiqueta1; sentencia1; etiqueta2; sentencia2;

{ case etiqueta1; sentencia1; break; case etiqueta2; sentencia2; break; . . . case etiquetan; sentencian; break; default: /*opcional*/ } sentenciasd

La expresin de control o selector se evala y se compara con cada una de las etiquetas de case. La expresin selector debe ser un tipo ordinal (por ejemplo, int, char, pero no float ostring). Cada etiqueta es un valor nico, constante y cada etiqueta debe tener un valor diferente de los otros. Si el valor de la expresin selector es igual a una de las etiquetas case por ejemplo, etiquetai- entonces la ejecucin comenzar con la primera sentencia de la secuencia sentenciai y continuar hasta que se encuentra el final de la sentencia control switch, o hasta encontrar la sentencia break. Es habitual que despus de cada bloque de sentencias correspondiente a una secuencia se desee terminar la ejecucin del switch; para ello se sita la sentenciabreak hace que siga la ejecucin en la siguiente sentencia switch( ).

1.8

Anidacin

Una sentencia if es anidada cuando la sentencia de la rama verdadera o la rama falsa, es a su vez una sentencia if. Una sentencia if anidada se puede utilizar para implementar decisiones con varias alternativas o multi-alternativas. Sintaxis:
if(condicin1) sentencia1 else if(condicin2) sentencia2 . . . else if(condicinn) sentencian else sentenciae

Pgina elaborada por Ing. G. Anglica Flores Rivera basados en el libro de Programacin en C de Luis Joyanes

También podría gustarte