• No se han encontrado resultados

Informática I para Bachillerato

N/A
N/A
Protected

Academic year: 2021

Share "Informática I para Bachillerato"

Copied!
31
0
0

Texto completo

(1)

CIMAT

Inform´

atica I para Bachillerato

Introducci´on a la programaci´on en C/C++ Estructura de Control IF/SWITCH

Jos´e Luis Alonzo Vel´azquez

CIMAT

(2)

¿Que es un diagrama de flujo?

Un diagrama de flujo es una representaci´on gr´afica de un algoritmo. Se utiliza en disciplinas como la programaci´on, la econom´ıa, los procesos industriales y la psicolog´ıa cognitiva. Estos diagramas utilizan s´ımbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecuci´on mediante flechas que conectan los puntos de inicio y de t´ermino.

Tipos de Diagramas de Flujo

Tipos de diagramas de flujo

Formato vertical: es la secuencia de las operaciones va de arriba hacia abajo es una lista ordenada de las operaciones de un proceso con toda la informaci´on que se considere necesaria seg´un su prop´osito.

(3)

Significado de los s´ımbolos

1 Ovalo: Inicio y t´´ ermino (Abre y/o cierra el diagrama).

2 Rect´angulo: Actividad (Representa la ejecuci´on de una o m´as

actividades o procedimientos).

3 Rombo: Decisi´on (Formula una pregunta o cuesti´on). 4 C´ırculo: Conector (Representa el enlace de actividades con

otra dentro de un procedimiento).

5 Tri´angulo boca abajo: Archivo definitivo (Guarda un

documento en forma permanente).

6 Tri´angulo boca arriba: Archivo temporal (Proporciona un

(4)
(5)
(6)
(7)

La instrucci´on if-else

Es com´un tener problemas en los cuales se debe proceder de un modo u otro dependiendo de un condicional. Para esto tenemos la instrucci´on if-else, la sintaxis es la siguiente:

(8)

if(<condici´on>) { <instrucci´on secci´on 1> <instrucci´on secci´on 1> .. . <instrucci´on secci´on 1> } else { <instrucci´on secci´on 2> <instrucci´on secci´on 2> .. . <instrucci´on secci´on 2> }

(9)

Problema:

Crear un programa que pida al usuario la calificaci´on de un estudiante, y a continuaci´on mande un mensaje de aprobado si a calificaci´on es mayor o igual a 7.0 y reprobado si no lo es.

(10)

Ejemplo 1 #i n c l u d e <s t d i o . h> 2 3 i n t main ( ){ 4 f l o a t x ; 5 p r i n t f (”Dame t u c a l i f i c a c i ´o n : ”) ; 6 s c a n f (” % f ”,& x ) ; 7 i f( x>=7){ 8 p r i n t f (” Aprobado ! ! !\n ”) ; 9 }e l s e{ 10 p r i n t f (” R e p r o b a d o !\n ”) ; 11 } 12 r e t u r n 0 ; 13 }

(11)

¿Como ser´ıa el diagrama de flujo del if-else? if(<condici´on>) { <instrucci´on secci´on 1> <instrucci´on secci´on 1> .. . <instrucci´on secci´on 1> } else { <instrucci´on secci´on 2> <instrucci´on secci´on 2> .. . <instrucci´on secci´on 2> }

(12)

Invirtiendo Condicionales if(hcondicioni) { instrucci´on 1(); } else { instrucci´on 2(); }

(13)

Invirtiendo Condicionales if(hNOcondicioni) { instrucci´on 2(); } else { instrucci´on 1(); }

(14)

if(Condicional X) { has nada(); } else { <instruciones>; } if(condicional inversa a X) { <instruciones>; }

(15)

Factorizaci´on Superior if(Condicional X) { <instrucion 1>; <instrucion 2>; } else { <instrucion 1>; <instrucion 3>; }

(16)

Factorizaci´on Superior <instrucion 1>; if(Condicional X) { <instrucion 2>; } else { <instrucion 3>; }

(17)

Factorizaci´on Inferior if(Condicional X) { <instrucion 1>; <instrucion 3>; } else { <instrucion 2>; <instrucion 3>; }

(18)

Factorizaci´on Inferior if(Condicional X) { <instrucion 1>; } else { <instrucion 2>; } <instrucion 3>;

(19)

Doble Condicional Anidada if(Condicional X) { <instrucion 1>; if(Condicional X) { <instrucion 2>; } }

(20)

Se reduce a en muchos casos if(Condicional X) { <instrucion 1>; <instrucion 2>; }

(21)

Un uso m´as 1 i f ( o p c i o n == 1 ) 2 r e s u l t a d o = A + B ; 3 e l s e i f ( o p c i o n == 2 ) 4 r e s u l t a d o = A − B ; 5 e l s e i f ( o p c i o n == 3 ) 6 r e s u l t a d o = A ∗ B ; 7 e l s e i f ( o p c i o n == 4 ) 8 r e s u l t a d o = A / B ; 9 e l s e 10 p r i n t f (” O p c i o n i n v a l i d a\n ”) ;

(22)

Estructuras de selecci´on

Aunque la sentencia if de C/C++ es muy potente, en ocasiones su escritura puede resultar tediosa, sobre todo en casos en los que el programa presenta varias elecciones despu´es de chequear una expresi´on: selecci´on m´ultiple o multialternativa. En situaciones donde el valor de una expresi´on determina qu´e sentencias ser´an ejecutadas es mejor utilizar una sentencia switch en lugar de una if.

(23)

Sintaxis de la estructura de controlswitch switch (selector){ casehopcion 1i: hbloque de instruccionesi break; casehopcion 2i: hbloque de instruccionesi break; .. . casehopcionni: hbloque de instruccionesi break; default: hbloque de instruccionesi }

(24)

Una sentenciaswitchcontiene un selector (en el ejemplo,

operador), cuyo tipo debe ser int, char o enumerado. Cuando una sentenciaswitchse 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.

(25)

Ejemplo 1 s w i t c h ( s e l e c t o r ){ 2 c a s e 1 : 3 c a s e 2 : 4 p r i n t f (” S a l i d a p a r a l o s c a s o s 1 y 2\n ”) ; 5 b r e a k; 6 c a s e 3 : 7 p r i n t f (” S a l i d a p a r a e l c a s o 3\n ”) ; 8 b r e a k; 9 d e f a u l t: 10 p r i n t f (” S a l i d a p a r a l o s r e s t a n t e s c a s o s\n ”) ; 11 }

(26)

En este ejemplo, si el selector se eval´ua y su valor es 1 ´o 2, se ejecuta, en ambos casos, la instrucci´on printf(“Salida para los casos 1 y 2”); En este caso particular puede apreciarse la utilidad debreak a la hora de detener el flujo del programa. La sentencia

switchpuede incluir la opci´ondefaultpara establecer la secuencia de sentencias a ejecutar en el caso de que ninguna etiqueta

concuerde con el valor de la expresi´on case. El tipo de esta expresi´on case y el de las etiquetas tiene que ser el mismo.

(27)

Ejemplo 1 i f ( o p e r a d o r == +) 2 r e s u l t a d o = A + B ; 3 e l s e i f ( o p e r a d o r == −) 4 r e s u l t a d o = A − B ; 5 e l s e i f ( o p e r a d o r == ∗) 6 r e s u l t a d o = A ∗ B ; 7 e l s e i f ( o p e r a d o r == / ) 8 r e s u l t a d o = A / B ; 9 e l s e 10 p r i n t f (” O p e r a d o r i n v a l i d o ”) ;

(28)

Ejemplo 1 s w i t c h ( o p e r a d o r ) { 2 c a s e + : 3 r e s u l t a d o = A + B ; 4 b r e a k; 5 c a s e − : 6 r e s u l t a d o = A − B ; 7 b r e a k; 8 c a s e ∗ : 9 r e s u l t a d o = A ∗ B ; 10 b r e a k; 11 c a s e / : 12 r e s u l t a d o = A / B ; 13 b r e a k; 14 d e f a u l t : 15 p r i n t f (” O p e r a d o r i n v a l i d o ”) ; 16 }

(29)

La palabra reservadabreak permite que el flujo de programa se detenga justo despu´es de la ejecuci´on de la sentencia anterior a ese

break, impidiendo que se ejecuten las sentencias correspondientes a las siguientes alternativas delswitch. Por tanto, debemos obligatoriamente acabar cada bloque de sentencias correspondiente a cada alternativa con una sentenciabreak.

Por otro lado, la alternativadefaultes opcional y engloba un conjunto de sentencias (que puede ser vac´ıo, 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 expresi´on del selector.

(30)

Problema para clase

Hacer un menu que despliegue lo siguiente en pantalla: Escoja una opci´on:

a)opcion 1 b)opcion 2 c)opcion 3 s)salir

si se escoge la opcion 1 imprima “Se eligio la opcion 1”, analogamente 2 y 3.

(31)

Como Programar en C/C++, Deitel (Prentice Hall), 2da Edici´on.

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

http://www.codeblocks.org http://www.wxwidgets.org

Referencias

Documento similar

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

El útil de más empleo, tanto para podar co- mo para cortar esquejes y demás necesario pa- ra injertar, es la tijera de fiodar (fig.. Conviene tener una gran- de, de 2o a 25

4.- Másteres del ámbito de la Biología Molecular y Biotecnología (9% de los títulos. Destaca el de Biotecnología Molecular de la UB con un 4% y se incluyen otros

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

Debido a la calidad y el legado de nuestra compañía, los cuales se reflejan en nuestros pianos, elegir un instrumento hecho por Steinway &amp; Sons tiende a ser una decisión

En tales circunstancias, una forma de proceder posible sería iniciar una fase preconstitucional de diálogo nacional, como sucedió en Sudáfrica, para reunir a

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en