Unidad 4: Programación Estructurada en C
Unidad 4: Programación Estructurada en C
Unidad 4: Programación Estructurada en C
http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es
(3)
(unidad 4)
programación
estructurada en
lenguaje C
(4.1) esquema de la unidad
(4.1) esquema de la unidad _____________________________________________________________ 5
(5.1) expresiones lógicas_________________________________________________________________ 6
(5.2) sentencia if _______________________________________________________________________ 6
(5.2.1) sentencia condicional simple 6
(5.2.2) sentencia condicional compuesta 7
(5.2.3) anidación 7
(5.3) sentencia switch ___________________________________________________________________ 8
(5.4) bucles____________________________________________________________________________ 10
(5.4.1) sentencia while 10
(5.4.2) sentencia do..while 11
(5.4.3) sentencia for 12
(5.5) sentencias de ruptura de flujo_____________________________________________________ 12
(5.5.1) sentencia break 13
(5.5.2) sentencia continue 13
(5.6) índice de ilustraciones ____________________________________________________________ 13
(5)
fundamentos de programación
(Unidad 3) programación básica en lenguaje C
(4.3) sentencia if
(4.3.1) sentencia condicional simple
Se trata de una sentencia que, tras evaluar una expresión lógica, ejecuta una
serie de sentencias en caso de que la expresión lógica sea verdadera. Su sintaxis
es:
if(expresión lógica) {
sentencias
}
Ejemplo:
if(nota>=5){
printf(“Aprobado”);
aprobados++;
}
[nota<5]
incrementa nº
aprobados
(6)
1er curso de administración de sistemas informáticos
autor: Jorge Sánchez – www.jorgesanchez.net
if(expresión lógica){
sentencias
}
else {
sentencias
}
Las llaves son necesarias sólo si se ejecuta más de una sentencia. Ejemplo:
if(nota>=5){
printf(“Aprobado”);
aprobados++;
}
else {
printf(“Suspensos”);
suspensos++;
}
[nota<5] [nota>=5]
decrementa nº incrementa nº
aprobados aprobados
(4.3.3) anidación
Dentro de una sentencia if se puede colocar otra sentencia if. A esto se le llama
anidación y permite crear programas donde se valoren expresiones complejas.
Por ejemplo en un programa donde se realice una determinada operación
dependiendo de los valores de una variable.
(7)
fundamentos de programación
(Unidad 3) programación básica en lenguaje C
if (x==1) {
sentencias
…
}
else {
if(x==2) {
sentencias
…
}
else {
if(x==3) {
sentencias
…
}
}
}
Pero si cada else tiene dentro sólo una instrucción if entonces se podría escribir
de esta forma (que es más legible), llamada if-else-if:
if (x==1) {
instrucciones
…
}
else if (x==2) {
instrucciones
…
}
else if (x==3) {
instrucciones
…
}
(8)
1er curso de administración de sistemas informáticos
autor: Jorge Sánchez – www.jorgesanchez.net
case que encaja con el valor de la expresión se ejecutan todos los case
siguientes. Por eso se utiliza la sentencias break para hacer que el programa
abandone el bloque switch. Sintaxis:
switch(expresión entera){
case valor1:
sentencias
break; /*Para que programa salte fuera del switch
de otro modo atraviesa todos los demás
case */
case valor2:
sentencias
...
default:
sentencias
}
Ejemplo:
switch (diasemana) {
case 1:
printf(”Lunes”);
break;
case 2:
printf(”Martes”);
break;
case 3:
printf(”Miércoles”);
break;
case 4:
printf(”Jueves”);
break;
case 5:
printf(”Viernes”);
break;
case 6:
printf(”Sábado”);
break;
case 7:
printf(”Domingo”);
break;
default:
std::cout<<”Error”;
}
(9)
fundamentos de programación
(Unidad 3) programación básica en lenguaje C
Sólo se pueden evaluar expresiones con valores concretos (no hay una case >3
por ejemplo). Aunque sí se pueden agrupar varias expresiones aprovechando el
hecho de que al entrar en un case se ejecutan las expresiones de los siguientes.
Ejemplo:
switch (diasemana) {
case 1:
case 2:
case 3:
case 4:
case 5:
printf(“Laborable”);
break;
case 6:
case 7:
printf(“Fin de semana”);
break;
default:
printf(“Error”);
}
(4.5) bucles
A continuación se presentan las instrucciones C que permiten realizar
instrucciones repetitivas (bucles).
Sintaxis:
int i=1;
while (i<=100){
printf(“%d”,i);
i++;
}
[ i<=100 ] escribe i
[i>100]
do {
sentencias
} while (expresión lógica)
int i=0;
do {
i++;
printf(“%d”,i);
} while (i<=1000);
(11)
fundamentos de programación
(Unidad 3) programación básica en lenguaje C
for(inicialización;condición;incremento){
sentencias
}
for(int i=1;i<=1000;i++){
printf(“%d”,i);
}
(12)
1er curso de administración de sistemas informáticos
autor: Jorge Sánchez – www.jorgesanchez.net
for(int i=1;i<=1000;i++){
printf(“%d”,i);
if(i==300) break;
}
En el listado anterior el contador no llega a 1000, en cuanto llega a 300 sale del
for
for(int i=1;i<=1000;i++){
if(i%3==0) continue;
printf(“%d”,i);
}
En ese listado aparecen los números del 1 al 1000ç, menos los múltiplos de 3 (en
los múltiplos de 3 se ejecuta la instrucción continue que salta el resto de
instrucciones del bucle y vuelve a la siguiente iteración.
El uso de esta sentencia genera malos hábitos, siempre es mejor resolver los
problemas sin usar continue. El ejemplo anterior sin usar esta instrucción
quedaría:
for(int i=1;i<=1000;i++){
if(i%3!=0) printf(“%d”,i);
}
La programación estructurada prohíbe utilizar las sentencias break y continue
(13)