Sei sulla pagina 1di 12

Estructuras de programacin:

Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o
mantenidas juntas en una sola unidad. La unidad es la estructura.

Las estructuras de datos se emplean con el objetivo principal de organizar


los datos contenidos dentro de la memoria de la PC. As, nuestra primera
experiencia con estructuras comienza desde el momento mismo en que
usamos en nuestros programas variables de tipos primitivos (char, short,
int, float, etc).
Sintaxis:
En C/C++ se forma una estructura utilizando la palabra reservada struct, seguida por un campo
etiqueta opcional, y luego una lista de miembros dentro de la estructura. La etiqueta opcional
se utiliza para crear otras variables del tipo particular de la estructura:

Un punto y coma finaliza la definicin de una estructura puesto que esta es realmente una
sentencia C/C++.

Estructuras de control

Como estructuras de control el C++ incluye las siguientes construcciones:

Estructuras de seleccin:

Controlan la seleccin de flujos alternativos en un algoritmo


Permiten seleccionar una sentencia o grupo de sentencias en funcin de una condicin
que, normalmente, es una expresin lgica.

Tipos de seleccin simple:

Seleccin simple: if
Seleccin binaria: if else
Seleccin mltiple: switch

if
Sintaxis de la estructura de control if

Ifelse

Ejemplo:

Error clsico:

if(123 == a) . . .

if(a == 123) . . .

Si nos equivocamos al escribir estas expresiones, y ponemos solo un signo =, en el primer


caso obtendremos un error del compilador, ya que estaremos intentando cambiar el valor de
una constante, lo cual no es posible. En el segundo caso, el valor de la variable cambia, y
adems el resultado de evaluar la expresin no depender a de una comparacin, sino de una
asignacin, y siempre ser true, salvo que el valor asignado sea 0.

Otro uso:

Switch: instruccin de seleccin mltiple

Aunque la sentencia if de C++ es muy potente, en ocasiones su escritura puede resultar


tediosa, sobre todo en casos en los que el programa presenta varias elecciones despus de
chequear una expresin: seleccin mltiple o multialternativa. En situaciones donde el valor de
una expresin determina que sentencias sern ejecutadas es mejor utilizar una sentencia
switch en lugar de una if.

Sintaxis de la estructura de control Switch:

Una sentencia switch contiene un selector (en el ejemplo, operador), cuyo tipo debe ser int,
char o enumerado. Cuando una sentencia switch se ejecuta, el valor del selector se compara
con las etiquetas case. Si alguna de ellas concuerda con ese valor se ejecutar a la
correspondiente secuencia de sentencias. Si queremos que varias alternativas tengan el mismo
conjunto de sentencias a ejecutar.

Ejemplo:

En este ejemplo, si el selector se evala y su valor es 1 o 2, se ejecuta, en ambos casos, la


instruccin printf(Salida para los casos 1 y 2); En este caso particular puede apreciarse la
utilidad de break a la hora de detener el flujo del programa. La sentencia switch puede incluir
la opcin default para establecer la secuencia de sentencias a ejecutar en el caso de que
ninguna etiqueta concuerde con el valor de la expresin case. El tipo de esta expresin case y el
de las etiquetas tiene que ser el mismo.

La palabra reservada break permite que el flujo de programa se detenga justo despus de la
ejecucin de la sentencia anterior a ese break, impidiendo que se ejecuten las sentencias
correspondientes a las siguientes alternativas del switch. Por tanto, debemos obligatoriamente
acabar cada bloque de sentencias correspondiente a cada alternativa con una sentencia break.

Por otro lado, la alternativa default es opcional y engloba un conjunto de sentencias (que
puede ser vaco, contener una sola sentencia o varias) que se ejecutan en caso de que ninguna
de las alternativas del switch tenga un valor coincidente con el resultado de evaluar la
expresin del selector.

ANIDAMIENTOS:
Una sentencia de seleccin puede contener otra en cualquier rama.

ESTRUCTURAS DE REPETICION (bucles):

while: instruccin de iteracin con condicin inicial

Nos permite repetir un bloque de instrucciones siempre y cuando se cumpla una


condicin, es decir, , en esta estructura de control el cuerpo de instrucciones se ejecuta
mientras una condicin permanezca como verdadera en el momento en que la
condicin se convierte en falsa el ciclo termina.
La condicin de terminacin se evala antes de cada iteracin.
Sintaxis de la estructura while:

Ejemplo:

do-while: instruccin de iteracin con condicin final

Nos permite repetir un bloque de instrucciones siempre y cuando se cumpla una


condicin, es decir, , en esta estructura de control el cuerpo de instrucciones se ejecuta
mientras una condicin permanezca como verdadera en el momento en que la
condicin se convierte en falsa el ciclo termina. La diferencia es que primero realizara
el bloque de instrucciones y al final verificara si la condicin sigue siendo verdadera, es
decir, almenos har una ves el bloque de instrucciones.
La condicin de terminacin se evala despus de cada interaccin:

Sintaxis de la estructura Do-while:

Notar que lleva ; al final, lo cual no ocurre en las otras estructuras de control.

Ejemplo:

Bucle controlado por contador:

Se ejecuta un nmero determinado de veces


Se utiliza una variable de control del bucle
Componentes:
Inicializacin
Comprobacin de condicin
Actualizacin
Bucle controlado por centinela:

Centinela: Valor especial de una variable que controla el final del bucle
Es necesario actualizar el centinela en cada interaccion
La primera evaluacion de la condicion exige una actualizacion adelantada de la variable
de control del bucle.

Bucle
contador:

Util cuando se quiere controlar el numero de veces que se ejecutara el bucle.


La condicion de terminacion no depende del contador.
For: instruccin de iteracin especial (similar a las de repeticin con contador)

Nos permite repetir un bloque de instrucciones un nmero definido de veces.


Tendremos siempre una variable de control del bucle
En el cuerpo del bucle, la la variable de control puede usarse, nunca cambiarse.

Sintaxis de la estructura de For:


Inicializacin de las
variables:

La parte de la inicializacin (<expres_ini>), inicializa las variables de control del bucle. Se puede
utilizar variables de control de bucle simples o mltiples. Lo ms normal es inicializar en este
punto una sola variable cuyo valor vara luego en la parte de incremento. Si se inicializan varias
variables de control, cada inicializacin se separa de la anterior con una coma.

Expresin Lgica:

Parte de iteracin (<expres_bool>), que contiene una expresin lgica que hace que el bucle
realice las iteraciones de las sentencias, mientras que la expresin sea verdadera.

Expresin de incremento:

Parte de incremento (<expres_inc>), que modifica la variable o variables de control de bucle. Si


se modifican varias variables de control, cada operacin se separa de la anterior por una coma.

Ejemplo:

En este caso la definicin de la variable n es solo temporal, y existir a solo mientras se realice
el bucle for.

Equivalencia entre for y while:

Consideraciones:
Debemos asegurarnos que la expresin de inicializacin del bucle y la expresin de
incremento harn que la condicin del bucle se convierta en falsa en algn momento.
Si el cuerpo de un bucle (secuencia de sentencias) modifica los valores de cualquiera
de las variables implicadas en ese bucle, entonces el nmero de repeticiones se puede
modificar.

Que sucede en este cdigo?

Producir una secuencia infinita de enteros. No es una buena practica de programacin


modificar el valor de la variable de control, por lo que evitaremos hacerlo.

de salto:

break: instruccin de ruptura de secuencia (sale del bloque de un bucle o instruccin

condicional)

se utiliza para para forzar la salida de un bucle independiente de que se cumpla o no la


condicin de terminacin.

Continue: instruccin de salto a la siguiente iteracin (se emplea en bucles para saltar a la

posicin donde se comprueban las condiciones)

termina la interaccin en curso y vuelve a evaluar de nuevo la condicin de terminacin del


bucle.

En programacin estructurada, no es recomendable el uso de Break y continue.

Anidamiento de bucles:

Al igual que en las estructuras selectivas, no hay restricciones en las sentencias del
cuerpo del bucle.
La estructura interna debe de estar totalmente incluida en la externa.
Return:

instruccin de retorno de un valor (se emplea en las funciones)

Jose Luis Alonzo Velsquez : LENGUAJE DE PROGRAMACION: C++, Universidad de Guanajuato

Programming Principles and Practice Using C++, Bjarne Stroustrup.

http://www.codeblocks.org

http://www.wxwidgets.org

(OReilly) Practical C Programming (3rd Edition)

Jose Antonio Gmez Ruiz: Fundamentos de informtica- Universidad de Malaga

http://www.lcc.uma.es/~janto/ftp/fundinf/trans_t4.pdf

Potrebbero piacerti anche