Práctica 6

Anuncio
PROGRAMACIÓN
laboratorio
2007-1
PRÁCTICA 6. CICLOS REPETITIVOS ANIDADOS
 OBJETIVOS:
Hacer uso de ciclos repetitivos anidados.
Hacer uso de contadores crecientes y decrecientes.
 EQUIPO:
 Computadora
 Disco Flexible o algún otro medio para almacenar sus prácticas
 Turbo C (TC)
 G ENERALIDADES
 CICLOS REPETITIVOS ANIDADOS
En la solución de problemas es necesario hacer uso de ciclos dentro de ciclos, así la complejidad de un problema se
resuelve en la menor cantidad de líneas de código. Una aplicación es la implementación de menús y submenús, no
solamente con una opción que el usuario introduzca, sino activar un menú por medio del teclado y de esta manera el
usuario navegar en el menú.
Los caracteres ASCII nos ayudan a identificar que tecla es presionada por el usuario en un teclado, ya que cada tecla
tiene definido un caracter ASCII propio
Las teclas más comunes utilizadas son:
TECLA
Backspace
Tab
Enter
Esc
Barra Espaciadora
CODIGO ASCII
8
9
13
27
32
HEXADECIMAL
0x8
0x9
0xD
0x1B
0x20
Para teclas especiales como flechas, F’s y de edición (insertar, borrar) se reconocen por medio de dos caracteres,
donde el caracter inicial es detectado como un CERO y luego el caracter ASCII correspondiente, por ejemplo los
siguientes caracteres son para las teclas de flechas :
TECLA
Flecha Izquierda
Flecha Arriba
Flecha Abajo
Flecha Derecha
CODIGO ASCII
0, 72
0, 75
0, 77
0, 80
HEXADECIMAL
4B
4D
48
50
1 de 4
PROGRAMACIÓN
laboratorio
2007-1
 MENÚS
Un menú es un conjunto de opciones para que el usuario seleccione, y al activar una de estas opciones realiza un
procedimiento específico. Si una de las opciones manda activar otro conjunto de opciones, entonces estamos
implementando el manejo de submenús.
La implementación de un menú se realiza con la aplicación de un ciclo selectivo SWITCH utilizando como opción
seleccionada un caracter, el cual puede ser letra o dígito. La terminación del ciclo dependerá de un ciclo repetitivo
WHILE el cual terminará al seleccionar una de las opciones como opción de salida.
En el caso de los submenús se utilizan los mismos ciclos, mas cabe hacer notar que no debe ciclarse la lógica entre
ellos, con las opciones de terminación debe lograrse el acceso y salida de los submenús anidados.
 EJEMPLO
# i nc lu d e < g ra p h ic s. h>
# i nc lu d e < st di o. h>
# i nc lu d e < c o n i o. h>
# i nc lu d e < st dli b. h>
vo id i n ic ia liz a ( ) {
i nt g d= D E T E C T , g m ;
i nit g ra p h( &g d, &g m, “ C: \ \ T C \ \ B G I ” ) ;
}
vo id c u a dr o( i nt x 1, i nt y 1 , i nt x 2, i nt y 2 , i nt re lle n o , in t c ol o r) {
i nt p oly [8 ];
p oly [ 0 ]= x1; p oly [2 ] = x 2; p o ly [ 4 ]= x2 ; p oly [6 ] = x1 ;
p oly [ 1] = y 1; p oly [ 3 ] = y 1; p oly [ 5 ]= y 2 ; p oly [ 7] = y 2;
se t fi lls t y le ( re lle n o,c ol o r) ;
fil lp oly ( 4, p oly ) ;
}
vo id me nu ( ) {
c le a rv ie wp or t ( ) ;
c u a d r o( 0, 0 ,g e t ma x x( ) ,g e t ma xy ( ) , 1, B LU E ) ;
c u a d r o( 22 0 , 5 0 , 42 0 , 1 00 , 9 , M AG E NT A) ;
ou t t e x t xy ( 2 5 0 , 7 5, “ O p c i ó n U n o” ) ;
c u a d r o( 22 0 ,1 5 0 , 42 0 , 2 0 0, 9 , M AG E NT A) ;
ou t t e x t xy ( 2 5 0 ,1 7 5,” O p c ió n D os” ) ;
c u a d r o( 22 0 , 25 0 , 4 20 , 3 0 0 , 9 , MAG E NT A) ;
ou t t e x t xy ( 2 5 0 ,2 7 5 ,” O p c i ó n T re s” ) ;
c u a d r o( 22 0 , 35 0 , 4 20 , 4 0 0 , 9 , M AG E NT A) ;
ou t t e x t xy ( 2 5 0 ,3 7 5 ,” Sa li da “ ) ;
}
vo id u no ( ) {
c le a rv ie wp or t ( ) ;
c i rc le ( g e t ma x x( ) / 2 ,g e t ma xy ( ) / 2, 2 0 0) ;
g e t c h( ) ;
}
vo id d o s( ) {
2 de 4
PROGRAMACIÓN
laboratorio
2007-1
c le a rv ie wp or t ( ) ;
fil le ll ip se ( g e t ma xx ( ) / 2, g e t ma xy ( ) / 2, 3 0 0 , 5 0) ;
g e t c h( ) ;
}
vo id t re s( ) {
c le a rv ie wp or t ( ) ;
ou t t e x t xy ( 5 0 , 3 00 ,” FE LI CI D A D E S” ) ;
g e t c h( ) ;
}
vo id mu e ve ( ) {
c ha r t e c la ;
i nt i= 1;
m e nu ( ) ;
do {
s wit c h ( i) {
c a se 1 :
c a se 2 :
c a se 3 :
c a se 4 :
c u a dr o ( 2 2 0 , 5 0, 4 2 0 , 1 0 0 , 9, R E D ) ;
ou t t e xt xy ( 2 5 0, 7 5 , “ O p c i ón U no” ) ;
bre a k;
c u a dr o ( 2 2 0 ,1 5 0, 4 2 0 , 2 00 , 9 , R E D ) ;
ou t t e xt xy ( 2 5 0, 1 75 , “ O p c i ón D o s” ) ;
bre a k;
c u a dr o ( 2 2 0 ,1 5 0, 4 2 0 , 2 00 , 9 , R E D ) ;
ou t t e xt xy ( 2 5 0, 2 7 5, “ O p c i ó n T re s” ) ;
bre a k;
c u a dr o ( 2 2 0 ,1 5 0, 4 2 0 , 2 00 , 9 , R E D ) ;
ou t t e xt xy ( 2 5 0, 3 7 5, “ Sa l ida ” ) ;
bre a k;
}
t e c la =g e t c h( ) ;
s wit c h ( i) {
c a se 1 :
c a se 2 :
c a se 3 :
c a se 4 :
c u a dr o ( 2 2 0 , 5 0, 4 2 0 , 1 0 0 , 9, M AG E N T A ) ;
ou t t e xt xy ( 2 5 0, 7 5 , “ O p c i ón U no” ) ;
bre a k;
c u a dr o ( 2 2 0 ,1 5 0, 4 2 0 , 2 00 , 9 , M AG E NT A) ;
ou t t e xt xy ( 2 5 0, 1 75 , “ O p c i ón D o s” ) ;
bre a k;
c u a dr o ( 2 2 0 ,1 5 0, 4 2 0 , 2 00 , 9 , M AG E NT A) ;
ou t t e xt xy ( 2 5 0, 2 7 5, “ O p c i ó n T re s” ) ;
bre a k;
c u a dr o ( 2 2 0 ,1 5 0, 4 2 0 , 2 00 , 9 , M AG E NT A) ;
ou t t e xt xy ( 2 5 0, 3 7 5, “ Sa l ida ” ) ;
bre a k;
}
s wit c h ( t e c la ) {
c a se ‘\ x 0’ :
t e c la =g e t c h( ) ;
sw it c h ( t e c la ) {
c a se ‘\ x 48 ’ :
c a se ‘\ x 5 0’ :
i= i == 1? 4: i- 1 ;
bre a k;
i= i == 4? 1: i+ 1;
bre a k;
}
3 de 4
PROGRAMACIÓN
laboratorio
2007-1
c a se ‘\ xD ’ :
b re a k;
sw it c h ( i) {
c a se 1 :
c a se 2 :
c a se 3 :
c a se 4 :
}
if ( i! =4 ) me nu ( ) ;
bre a k;
u n o( ) ; b re a k;
do s( ) ; b re a k;
t re s( ) ; b re a k;
t e c la =‘\ x 1B ’; b re a k;
}
} w hi le ( t e c la ! =‘\ x 1B ’) ;
}
vo id ma i n( ) {
i nic ia l iz a ( ) ;
mu e v e ( ) ;
}
 ACTIVIDAD
Codifique un programa que se comporte como una calculadora simple. Para ello deberá tener las siguientes
características:
1.
Solo efectuará operaciones con dos operandos.
2.
Operaciones permitidas: +,-,*,/. Limpieza de memoria: C
3.
Se trabajará con operandos enteros.
4.
Pedirá en primer lugar el operador, y a continuación los dos operandos. Validar para evitar que se introduzcan
cadenas de caracteres no válidas.
5.
El calculador dejará de trabajar cuando se introduzca como código de operación &. Ejemplo:
Operacion :
*
Operando 1 :
13
Operando 2 :
10
Resultado :
130
Operacion :
+
Operando 1 :
<130>
Operando 2 :
3
Resultado :
133
Operacion :
C
LIMPIEZA DE MEMORIA!!!
Operación:
Operando 1 :
125
Operando 2 :
20
Resultado :
105
Operacion :
&
FIN DEL PROGRAMA.
_
4 de 4
Descargar