Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LABORATORIO 2
ESTRUCTURAS CONDICIONALES – IF...ELSE
1 OBJETIVOS
2 MOTIVACION
3 LA ESTRUCTURA CONDICIONAL EN C
El if…else en C
if (condición){
AccionesV
} else {
AccionesF
}
La parte else siempre va unida a un if y se puede omitir si no hay que realizar ninguna
acción cuando no se cumpla la condición.
Si tenemos varias condiciones excluyentes entre sí podemos utilizar una variante de esta
instrucción: los bloques anidados else if.
if (condición1){
Acciones a realizar si se cumple la condición1
} else if (condición2){
Acciones a realizar si no se cumple la condición1
pero sí se cumple la condición2
} else if (condición3){
Acciones a realizar si no se cumple la condición1 ni la condición2
pero sí se cumple la condición3
}…
else {
Acciones a realizar si no se cumple ninguna de las condiciones
anteriores
}
© Conchi Presedo García – EUITI Bilbao 2016 9
LABORATORIO 2 FUNDAMENTOS DE INFORMÁTICA
4 EJERCICIOS
4.1.1 Objetivo 1
4.1.2 Enunciado 1
Construir un programa que solicite por pantalla un número entero positivo y realice de
manera independiente los siguientes apartados:
a) Informe si es par o impar.
b) Informe si es múltiplo de 3 ó no.
c) Si es par, informe además si es múltiplo de 3 o no, y si es impar muestre si es
múltiplo de 5 o no.
Ejemplo de ejecución:
(los datos tecleados por Introduce un numero entero (>0): 45
el usuario están en
cursiva y subrayados ) ********* Apartado a *****
45 es impar
Para saber si un número es múltiplo de otro se utiliza la operación aritmética %, que nos
calcula el resto de una división. Así, dados dos números enteros a y b si el resto de la
división a%b es 0, podremos decir que a es múltiplo de b y que b es divisor de a.
4.2.1 Objetivo 2
4.2.2 Enunciado 2
Sabiendo que la valencia química del oxígeno es 2, y que la del nitrógeno es 1,3 y 5 para
según qué compuestos, se pide construir un programa que solicite los coeficientes x e y de
NxOy y compruebe si la fórmula sería correcta o no especificando en qué coeficiente/s está
el error. En la fórmula, x son las posibles valencias del Oxígeno e y son las del Nitrógeno.
Ejemplos de
ejecución: Dime los valores de x e y separados por una coma: 3 , 8
ERROR en coeficiente x. ERROR en coeficiente y.
Dime los valores de x e y separados por una coma: 2 , 5
La formula N2O5 es CORRECTA.
Para poder mostrar un mensaje que especifique cada tipo de error debemos evaluar
sucesivamente (y de manera independiente) cada una de las condiciones de error.
Como método general, se puede utilizar una variable (en el ejemplo hay_errores) que nos
indique si ha habido errores o no. Antes de empezar a evaluar las condiciones la variable
valdrá 0 y en el momento que se produzca algún error su valor cambiará a 1.
4.3.1 Objetivo 3
4.3.2 Enunciado 3
Construir un programa que informe sobre las características de un triángulo. Para ello
pedirá por pantalla las longitudes de los lados e indicará si el triángulo es equilátero,
isósceles o escaleno.
Ejemplo de ejecución:
Primer lado: 3.1
Segundo lado: 5.76
Tercer lado: 3.1
Triangulo ISOSCELES.
Un triángulo es equilátero si todos sus lados son iguales, es isósceles si dos lados son
iguales y el tercero distinto y es escaleno si sus tres lados son distintos.
4.4.1 Objetivo 4
4.4.2 Enunciado 4
Construir un programa que pida tres números enteros y los escriba en orden descendente.
Ejemplo de ejecución:
Dime el primer numero: 3
Dime el segundo numero: 5
Dime el tercer numero: 3
Los numeros en orden descendente son: 5, 3, 3
Los casos posibles suponiendo que n1, n2 y n3 son los tres números introducidos son:
4.5.1 Objetivo 5
4.5.2 Enunciado 5
Dada la función f(x)= x3 - 4x2 + x - 9 se pide construir un programa que pida DOS valores
de x e indique para cada uno en qué cuadrante (primero, segundo, tercero o cuarto) se
encuentra el punto P(x,y), siendo y=f(x).
Ejemplo de
ejecución: Introducir primer valor para x: 3
El punto P(3.00,-15.00) se encuentra en el CUARTO cuadrante
Introducir segundo valor para x: -1.5
El punto P(-1.50,-22.88) se encuentra en el TERCER cuadrante
4.6.1 Objetivo 6
4.6.2 Enunciado 6
Construir un programa que solicite una fecha (día, mes y año) y compruebe si es una fecha
válida, en cuyo caso mostrará el mensaje correspondiente. En caso contrario, presentará
textos indicativos de los errores.
NOTA: El programa deberá indicar TODOS los errores que haya, en día, mes, año o en el día
respecto al mes.
Como ayuda, se da la solución del caso en el que NO ESPECIFICAMOS qué TIPO DE ERROR
hay en la fecha, solamente indicamos "Error en la fecha" con lo cual, EN CUANTO
ENCONTREMOS EL PRIMER ERROR el programa no sigue comprobando y TERMINA.
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 /* Comprueba la validez de una fecha SIN ESPECIFICAR donde hay errores */
5 int main(void)
6 {
7 int dia,mes,anio; //Datos que se piden por teclado
8
9 printf("Introduce una fecha en formato dd/mm/aaaa: ");
10 scanf("%d/%d/%d",&dia,&mes,&anio);
11
12 // Comprobamos año, mes y día (entre 1 y 31)
13 if (error en año || (error en mes) || (error en dia)){
14 printf("\n\t\tERROR en la fecha.\n\n"); }
15 else{
16 // Aquí el año y el mes son correctos y el día está entre 1 y 31
17 // Comprobamos el día según el mes
18 if(dia>30 && (el mes tiene 30 días)){
19 printf("\n\t\tERROR en la fecha.\n\n"); }
20 else{
21 if(el mes es febrero){
22 if(dia>29){
23 printf("\n\t\tERROR en la fecha.\n\n"); }
24 else {
25 if(dia>28 && (el año no es bisiesto)){
26 printf("\n\t\tERROR en la fecha.\n\n"); }
27 else {
28 printf("\n\t\tFecha CORRECTA.\n\n"); }}
29 }else{
30 // Es un mes de 31 días
31 printf("\n\t\tFecha CORRECTA.\n\n");
32 } // Fin del else (línea 29)
33 } // Fin del segundo else (línea 20)
34 } // Fin del primer else (línea 15)
35 system("PAUSE");
36 }
SIGUE LA AYUDA …
4.7.1 Objetivo 7
4.7.2 Enunciado 7
Se ha de construir una aplicación que actúe como un reloj. Para ello se necesita un
programa que pida al usuario la hora en formato digital. Si la hora no es válida deberá
visualizarse un mensaje de error. Si la hora es válida deberá visualizarse la hora que sería
en el segundo siguiente al tecleado. Ejemplos:
Entrada Salida
1. Pedir hora, minuto y segundo en
10:30:40 10:30:41
formato hh:mm:ss
10:59:10 10:59:11
10:30:59 10:31:00 scanf(“%d:%d:%d”,&hora,&min,&seg);
10:59:59 11:00:00
2. Visualizar rellenando con dos ceros
23:59:11 23:59:12 aunque las horas resultantes dén 0 ó 5
23:30:59 23:31:00 por ejemplo
23:59:59 00:00:00
printf(“…%02d…”,hora);
Ejemplos de
ejecución: Introduce la hora en formato hh:mm:ss --> 10:65:00
ERROR!! La hora 10:65:00 no es correcta.
Introduce la hora en formato hh:mm:ss --> 10:35:00
10:35:01
Determinar las reglas generales para el instante siguiente (teniendo en cuenta que
60 segundos son un minuto y 60 minutos son una hora)
Determinar las excepciones. A partir de las excepciones, y teniéndolas en cuenta,
plantear el esquema o lógica del programa.
4.8.1 Objetivo 8
4.8.2 Enunciado 8
Construir un programa que pida dos duraciones (en formato hh:mm:ss) y muestre la
duración total.
Ejemplos:
Ejemplos de
ejecución: Introduce una duracion en formato hh:mm:ss --> 20:50:10
Introduce otra duracion en formato hh:mm:ss --> 11:10:2
La duracion total es 1 dia y 08:00:12