Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación...

17
Estructuras de datos (Prof. Edgardo A. Franco) 1 Tema 07: Programación estructurada en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Transcript of Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación...

Page 1: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Estructuras de datos (Prof. Edgardo A. Franco)

1

Tema 07: Programación estructurada en C

M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Page 2: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Contenido • Estructuras secuenciales • Estructuras selectivas

• Selectiva simple (si) • Selectiva doble (si-sino) • Selectiva múltiple (si-sino si-sino) • Switch

• Estructuras iterativas o repetitivas • Mientras • Repetir • Para

• sds

2

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 3: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

La programación estructurada y el lenguaje C • C es un lenguaje de programación que permite programar de manera

estructurada ya que establece una sintaxis y semántica propia para expresar computaciones, ofreciendo sentencias de control para describir secuencias, selecciones e iteraciones.

SECUENCIA SELECCIÓN if ..else switch

ITERACIÓN while

do...while for

3

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 4: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Estructuras secuenciales • Son las sentencias (asignaciones e invocaciones a

funciones) escritas en el código fuente, cada una de estas será ejecutada de manera secuencial (en orden de aparición) una vez compilado el fuente.

Instrucciónn

Instrucción1 Instrucción2 Instrucción3 Instrucción4

Diagrama de flujo Pseudocódigo

#include<stdio.h> int main(void) { int byte=0xFF; printf("\nEl valor de byte es: %4X H",byte); byte&=0x00; printf("\nEl valor de byte es: %4X H",byte); byte|=0xFF; printf("\nEl valor de byte es: %4X H",byte); byte>>=1; printf("\nEl valor de byte es: %4X H",byte); byte<<=2; printf("\nEl valor de byte es: %4X H",byte); return 0; }

Código en C 4

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 5: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Estructuras selectivas (if) • Las estructuras selectivas se utilizan para tomar decisiones

con bases en la evaluación de una condición.

Diagrama de flujo Pseudocódigo Código en C

condición

no

si

Instrucciones

if(condición) { Instrucciones; };

Selectiva simple

5

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 6: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Diagrama de flujo Pseudocódigo Código en C

if(condición) { Instrucciones1; } else { Instrucciones2; };

Selectiva doble

condición

si

no

Instrucciones2

Instrucciones1

6

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 7: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Diagrama de flujo Pseudocódigo Código en C

if(condición1) { Instrucciones1; } else if (condición2) { Instrucciones2; } else if (condición3) { Instrucciones3; } … else { Instruccionesn; };

Selectiva múltiple

condición1

si

no

Instrucciones1

condición2

Instrucciones2

no

si

condición3

si

no

7

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 8: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

• La preposición de control de flujo if se utiliza para expresar decisiones, formalmente la sintaxis es:

if(expresión1) { sentencias1; } else if(expresión2) { sentencias2; } else if(expresión3) { sentencias3; } else { sentencias4; }

*Las preposiciones else if (sino si) y else (sino) pueden omitirse.

Si la expresión1 se evaluá y si esta es verdadera (diferente de 0) entonces se lleva a cabo el código inmediato entre llaves. Sino si (else if) la expresión2 se evaluá y si esta es verdadera (diferente de 0) entonces se lleva a cabo el código inmediato entre llaves. Sino si (else if) la expresión3 se evaluá y si esta es verdadera (diferente de 0) entonces se lleva a cabo el código inmediato entre llaves. … Sino (else) si ninguna condición ha sido verdadera entonces se lleva a cabo el código inmediato entre llaves.

8

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 9: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Ejemplo (if-else) #include<stdio.h> int main(void) { float a,b; printf("\nIntroduce dos números reales separados por una coma: "); scanf("%f,%f",&a,&b); if(a<0&&b<0) { printf("\nAmbos numeros son negativos"); } else if(a>0&&b>0) { printf("\nLos dos numeros son positivo"); } else if(a>0||b>0) { printf("\nUno de los dos numeros es positivo"); } else if(a==0&&b==0) { printf("\nAmbos numeros son igual a cero"); } else { printf("\n..."); } return 0; }

9

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 10: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Estructura selectiva (switch) • Una estructura selectiva del lenguaje c, que facilita

implementar algunas decisiones múltiples cuando se presentan todas con base en la evaluación de una expresión es switch-case.

switch(expresión) { case exp-constante1: <acción 1>; break; case exp-constante2: <acción 1>; break; ... case exp-constanteN: <acción N>; break; default: <acción M>; }

*El uso de switch es valido si se utiliza apropiadamente bajo la teoría de la programación estructurada, ya que incluye una sentencia de salto que no debería de ser utilizada indiscriminadamente (break)

10

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 11: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Ejemplo (switch)

#include<stdio.h> int main(void) { short opcion; printf("\nOpción 1"); printf("\nOpción 2"); printf("\nOpción 3"); printf("\nOpción 4"); printf("\nOpción 5"); printf("\nSelecciona una opción..."); scanf("%d",&opcion); switch(opcion) { case 1: printf("\nOpción 1 seleccionada"); break; case 2: printf("\nOpción 2 seleccionada"); break; case 3: printf("\nOpción 3 seleccionada"); break; case 4: printf("\nOpción 4 seleccionada"); break; case 5: printf("\nOpción 5 seleccionada"); break; default:printf("\nOpción no valida"); } }

11

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 12: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Estructuras iterativas o repetitivas • Las estructuras repetitivas se utilizan para realizar varias veces

el mismo conjunto de operaciones con base en una condición.

Diagrama de flujo Pseudocódigo Código en C

while(condición) { Instrucciones; };

Iterativa "mientras"

condición

no

si

instrucciones

12

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 13: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

• Con "repetir" se asegura que las instrucciones de dentro del ciclo se ejecutan al menos una vez.

Diagrama de flujo Pseudocódigo Código en C

do { Instrucciones; }while(!(condición));

Iterativa "repetir"

condición

si

no

instrucciones

13

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 14: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

• La estructura de control while evaluá la expresión antes de comenzar cada iteración, si esta es verdadera (diferente de 0) se realizan las sentencias de dentro de las llaves.

• La estructura de control do-while se utiliza cuando se quiere asegurar que las sentencias de dentro del ciclo se ejecuta al menos una vez puesto que la evaluación de la expresión lógica se hace al final de este.

while(expresión) { Sentencias; };

do { Sentencias; } while(expresión);

Estructura while & do-while

14

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 15: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

• La estructura for permite definir un bucle controlado por un contador, denominado variable de control o de inducción.

Diagrama de flujo Pseudocódigo Código en C

for(i=x;i<=n;i++) { instrucciones; }

Iterativa "para"

i ≤ n

no

si

instrucciones i ← i+1

i ← x

15

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 16: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Estructura iterativa para (for) • El encabezado de un bucle for tiene tres partes separadas

por ";". En la primera se inicializan las variable de control y sólo se ejecuta una vez, antes de la primera iteración, la segunda es una expresión que indica la condición lógica que debe cumplirse para que la próxima iteración se ejecute; esta condición se evaluá antes de cada iteración y, cuando deja de satisfacerse, el bucle for termina. La tercera parte del encabezado es la actualización de las variables de control y se ejecuta después de cada iteración.

for(. . . ; . . .;. . .) { sentencias; }

16

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 17: Clase 11: Programación estructurada en C · inmediato entre llaves. 8 06 Programación estructurada en C Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez.

Ejemplo (for) #include<stdio.h> int main(void) { int i,n;

for(i=0,n=10000;i<n;i++,n=n-i) { printf("\t%3d",i); } return 0; }

17

06 P

rogr

amac

ión

estr

uctu

rada

en

C Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez