EPD-2: ESTRUCTURAS DE SELECCIÓN

Anuncio
Fundamentos de Programación
Ingeniería Informática en Sistemas de Información
ENSEÑANZA PRÁCTICA Y DE DESARROLLO
EPD-2: ESTRUCTURAS DE SELECCIÓN
Competencias
Al final de esta sesión el alumno/a debería haber adquirido las siguientes competencias:
• Saber utilizar estructuras de selección sencillas para el control del flujo de los programas.
• Crear programas que implementen condiciones complejas mediante el uso de la anidación de estructuras if-else.
• Emplear de forma adecuada las estructuras de selección switch y la sentencia break en las mismas.
Bibliografía
Programación en C. Byron Gottfried. Schaum. McGraw-Hill, 2005:
• Estructura if-else: Capítulo 6, páginas 156 a 159.
• Estructura switch: Capítulo 6, páginas 181 a 190.
Programación en C, metodología, algoritmos y estructura de datos. L. Joyanes, I. Zahonero. McGraw-Hill, 2005:
• Estructuras if-else anidadas: Capítulo 5, páginas 176 a 180.
Experimentos
E1. Analice el siguiente código y ejecútelo paso a paso varias veces introduciendo en cada ocasión un número distinto (pruebe
también con números negativos). Estudie por qué, en cada ocasión, se ejecutan o no ciertas partes del código.
#include<stdio.h>
void main(void){
int n;
printf("Introduce un numero:\n");
scanf("%d",&n);
if(n<0){
printf("%d el un número es negativo\n",n);
}
if(n%2==0)
printf("%d es par",n);
else
printf("%d es impar",n);
}
E2. Analice y ejecute el siguiente código. Pruebe pulsar diferentes teclas y estudie la respuesta que da el programa. Fíjese
especialmente en los casos en que se pulsa una vocal y el número dos. Piense de qué manera afecta que se haya usado o no la
sentencia break al final de cada bloque de sentencias asociado a una etiqueta case.
#include<stdio.h>
void main(void){
char c;
printf("Pulsa una tecla\n");
scanf("%c",&c);
switch(c){
case '1':
printf("Numero uno\n");
break;
case '2':
printf("Numero dos\n");
case 'b':
printf("Letra b\n");
break;
case 'a': case'e': case 'i': case'o': case'u':
printf("Vocal\n");
break;
default:
printf("Has pulsado una tecla que no conozco\n");
break;
}
}
Arregle el error existente en el código para que éste funcione adecuadamente.
Fundamentos de Programación
1
EPD-2: Estructuras de selección
Ingeniería Informática en Sistemas de Información
Ejercicios
EJ1 (30 min). Escriba un programa que solicite al usuario las coordenadas cartesianas de un punto (X,Y) y determine a qué
cuadrante pertenece. Si el punto facilitado por el usuario es el origen de coordenadas habrá que mostrar un mensaje informando de
tal circunstancia.
EJ2 (30 min). Escribir una estructura de control que examine el valor de una variable real llamada temp y escriba uno de los
siguientes mensajes dependiendo de su valor:
a) HIELO, si el valor de temp es menor que 0.
b) AGUA, si el valor de temp se encuentra entre 0 y 100.
c) VAPOR, si el valor de temp es mayor que 100.
EJ3 (45 min). Escriba un programa que lea una fecha representada por tres datos de tipo entero e imprima en la pantalla la fecha
correspondiente al día siguiente.
Problemas
P1 (20 min). Escriba un programa que pida al usuario un número y determine si este número es o no múltiplo de 2, 3, 5, 7 y 10.
P2 (20 min). Escriba un programa que pida al usuario que pulse una tecla numérica. En el caso de que el usuario pulse
correctamente se le mostrará la tecla pulsada. Si el usuario pulsa otra tecla que no sea un número se le mostrará un mensaje de
error. Para comprobar que una variable c de tipo carácter es un número se deben cumplir las condiciones c>=’0’ y c<=’9’.
P3 (40 min). Escriba un programa que pida al usuario una hora determinada, que denominaremos h1, (pidiendo primero las horas
expresadas en formado de 0 a 24 horas, y a continuación los minutos). Posteriormente se pedirá al usuario otra hora h2. El
programa deberá indicar si h1 es posterior o anterior a h2. En el caso de ser posterior se mostrará por pantalla un mensaje y se
indicará cuantas horas y minutos han pasado, en caso de ser anterior se mostrará un mensaje similar y se indicará las horas y
minutos que faltan.
P4 (30 min). Escriba un programa que simule el funcionamiento de una calculadora simple. Para ello leerá dos enteros y un
carácter. Si el carácter es un ‘+’ se mostrara por pantalla la suma de ambos números, si es un ‘–‘ se mostrará la diferencia, si es un
‘*’ se mostrará el producto, si es ‘/’ se calculará el cociente y si es un ‘%’ se mostrará el resto de la división entera.
P5 (30 min). Escriba un programa que determine si un año es bisiesto. Un año será bisiesto si es múltiplo de 4. Sin embargo, los
años múltiplos de 100 sólo serán bisiestos cuando a la vez sean múltiplos de 400. (Ejemplo: los años 1984 y 2000 fueron bisiestos,
mientras que 1800 no lo fue).
P6 (30 min). Programación en C, metodología, algoritmos y estructura de datos. L. Joyanes, I. Zahonero. McGraw-Hill, 2005:
Problema 5.1.
P7 (30 min). Programación en C, metodología, algoritmos y estructura de datos. L. Joyanes, I. Zahonero. McGraw-Hill, 2005:
Problema 5.2.
P8 (40 min). Programación en C, metodología, algoritmos y estructura de datos. L. Joyanes, I. Zahonero. McGraw-Hill, 2005:
Problema 5.7.
Fundamentos de Programación
2
Descargar