Está en la página 1de 12

Informática

Escuela de Ingenierías Marina, Náutica y Radioelectrónica


Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

1. Programa OperadoresAritmeticos2. Estudiar el siguiente programa que lee del


teclado dos valores reales y escribe en pantalla el resultado de la suma, resta,
producto y división. En el caso de la división sólo se realizará si el divisor es
distinto de cero 0.
#include <stdlib.h> if ( condición )
#include <stdio.h>
int main( void ) { sentencia o bloque_de_sentencias
float a, b;
printf ("Introduce un numero :"); scanf ("%f", &a);
printf ("Introduce el divisor :"); scanf ("%f", &b);
printf ("\n %g + %g= %g \n",a,b, a+b);
printf ("\n %f - %f = %f \n",a,b, a-b);
printf ("\n %f * %f = %f \n",a,b, a*b);
if (b !=0) // Observe no hay llaves, pues sólo hay una sentencia
printf ("\n %f / %f = %f \n",a,b, a/b); // Observe que no hay else
printf (“ \n Hasta pronto !!! \n”); Operadores:
system("PAUSE");  Aritméticos : +, - , * , / , %
return 0;  Relación: <, <=, >, >= , == , !=
}
Repasemos:  Lógicos: &&, || , ! (Negación)
1. Observe la sentencia printf ("\n %f + %f= %f \n",a,b, a-b);
1. ¿Cuál es el parámetro “formato”? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ¿Y
lista_expresiones? _ _ _ _ _ _
2. Indique que expresión se corresponde cada %f de la lista_expresiones.
Primer %f se corresponde con la expresión _ _.
Segundo %f con _ _.
Tercer %f con la expresión _ _ _ _.
3. ¿Que diferencia hay entre %f %g y %e? Recuerde el problema de número
de partículas _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2. Estudiemos la sentencia selectiva (if).
La condición es una expresión lógica luego su resultado es falso o cierto (en
C y C++ el falso se corresponde con el valor 0, y el cierto con cualquier otro
entero distinto de 0).
1. ¿Cuál es la condición ? _ _ _ _ _ _ _ _ ¿Qué operadores se puede utilizar
dentro una condición ? _ _ _ _ _ _ _ _ _¿Qué operador es el != ? _ _ _ _
2. ¿Cuál es la sentencia que se ejecuta si la condición es cierta ? _ _ _ _ _ _
3. ¿Qué ocurre cuando la condición NO se cumple? _ _ _ _ _ _ _ _ ¿Se
ejecuta algo especial? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
3. Realice el juego de ensayo del problema e indique qué se escribe pantalla si
el usuario introduce los valores 32.4 y 3 _ _ _ _ _ _ _ _ _ _

Pág 1
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

2. Programa AbsolutoConFuncion. Realice un programa que dado un número


escriba en pantalla su valor absoluto. Hágalo utilizando la función abs() que forma
parte de la biblioteca (librería) math.h
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main( void ) {
int num;
printf ("Introduce un numero "); scanf ("%i", &num);
printf ("\n El valor absoluto de %d es %d \n", num, abs(num));
system("pause");
return (0);
}
1. ¿Qué include ha puesto en el programa para poder usar la función abs()?_ _
2. ¿Cuál es el prototipo/declaración de la función abs?_ int abs(int x) _
3. ¿Qué parámetro/argumento tiene la función abs()?_Un número entero, int x_
4. ¿De qué tipo es el valor que proporciona la función abs? _ Un entero, int_ _
5. ¿ Cómo invoca (llama) desde su código a la función abs()? _ Dentro del printf
se llama a la función abs, abs(num) con parámetro la variable de tipo entero
num y el número entero que es lo que se imprime _

3. Programa ParOImpar. Realice un if ( condición )


programa que solicite por teclado un
1. ¿Cuál es la sentencia que se sentencia o bloque_de_sentencias
ejecuta si la condición es cierta ? else
________________
sentencia o bloque_de_sentencias
_ _ _ _ _ ¿y si es falsa ? _ _ _ _
____________
2. ¿Qué hace el operador %? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Para escribir en pantalla con la función printf una cadena de caracteres (grupo
de caracteres) utilizará %s

4. Programas AbsolutoConIF. Realice un programa que dado un número escriba en


pantalla su valor absoluto.
1. Análisis: ¿Entiende el problema ? Resuelva el problema para un ejemplo.
2. Algoritmo: Defina los pasos para resolver el problema para un caso general.
¿Cuántas variables y constantes necesita?¿De qué tipo serán las variables
caracteres o números enteros o números reales?
3. Compruebe el algoritmo
4. Programa: Escriba el programa en C. Compile y ejecute el programa.
5. Pruebe el programa para valores extremos e intermedios.

Pág 2
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

5. Programa Adivina1intento. Realizar un programa en el que el ordenador piense


un número entre 0 y 9 pida al usuario que trate de averigüarlo en un intento e
indique si lo ha averiguado o no.
1. Análisis: ¿Entiende el problema? Resuelva el problema para ejemplos.
2. Algoritmo: Defina los pasos para resolver el problema .
¿Cuántas variables y constantes necesita? _ _ _ _ ¿De qué tipo serán las
variables caracteres o números enteros o números reales? _ _ _ _
3. Prueba: Revise el paso 2 para asegurarse que tiene ya un algoritmo
4. Codificación Escriba el programa en C. Compile y ejecute el programa.

6. Programa MayorDeDos. Realice un programa que solicite dos números reales


por teclado y escriba en pantalla el mayor de los dos. Defina las variables para los
número como num1 y num2
1. En la sentencia condicional if del programa .
1. ¿Cuál es la condición ? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2. ¿Cuál es la sentencia que se ejecuta si la condición es cierta ? _ _ _ _ _ _
3. ¿Cuál es la sentencia que se ejecuta si la condición es falsa ? _ _ _ _ _ _
2. Si el usuario introduce los valores 1.6 y 9.4 ¿Qué se escribirá en la pantalla?
__________________________________
3. Si el usuario introduce los valores 12.6 y 9.4 ¿Qué se escribirá en la pantalla?
__________________________________
4. ¿Con estos dos juego de ensayo ha comprobado que se ejecutan todas las
sentencias?_ _ _ _ ¿Qué ocurre si los dos números son iguales? _ _ _

7. Programa MultiploDeTres. Realice un programa que solicite por teclado un


número entero y escriba por pantalla si es múltiplo de tres o no.
¿Con qué valores debería probar el problema para asegurarse que funciona bien y
en todos los posibles casos ? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8. Programa SioNo. Realizar un programa que pida por teclado una letra si la letra
que se introduce es una ‘s’ ó ‘S’ escribirá Sí, si se introduce una ‘n’ ó ‘N’ se
escribirá No. Para cualquier otra letra no se escribirá nada
1. Hacer el Análisis. Entender el problema.
2. Realizar el algoritmo
1. Definir los pasos.
2. Analizar las variables
3. Probar el algoritmo.
4. Generar el programa.
1. Escribir código fuente,
2. compilarlo y obtener el ejecutable.
5. Probar el programa. Hacer varios juegos de ensayos, suficientes como para
asegurarse que prueba todas las posibilidades de valores.
Con qué valores debería probar el problema para asegurarse que funciona
bien en todos los casos posibles ? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Pág 3
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

9. Programa NumeroNatural. ¿Qué hace el programa siguiente?


#include <stdio.h>
int main(void ) {
int num;
printf ("Introduce un numero Natural :"); scanf ("%d", &num);
if (num<0) printf ( " Error : Es un numero negativo no es Natural\n");
else { { }
printf ( " Correcto: Es un numero Las llaves definen un bloque de código.
Natural "); Permiten agrupar más de una sentencia.
if (num == 0) Entre ellas irá una o más sentencias.
printf (" Es cero \n");
}
printf ("Has introducido el valor %d\n", num);
return 0;
}

1. Realice juegos de ensayos.


1. Si se introduce un valor positivo. ¿Qué mensajes se escriben en pantalla?
num num<0 num==0 Pantalla
6 No No Correcto: Es un numero Natural
Has introducido el valor 6
2. Si se introduce un valor negativo. ¿Qué mensajes se escriben en pantalla?
num num<0 num==0 Pantalla
-8 SI Error : Es un numero negativo no natural
Has introducido el valor -6
3. Si se introduce el valor 0. ¿Qué mensajes se escriben en pantalla?
num num<0 num==0 Pantalla
0 NO SI Correcto: Es un numero Natural
Es cero
Has introducido el valor 0
4. ¿Se han probado todos los posibles valores? Si.

2. Quite el código else { … }.


1. Si se introduce un valor positivo. ¿Qué mensajes se escriben en pantalla?
num num<0 Pantalla
6 No Has introducido el valor 6

Pág 4
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

2. Si se introduce un valor negativo.


num num<0 Pantalla
-8 SI Error : Es un numero negativo no Natural
Has introducido el valor -6

3. Si se introduce el valor 0. ¿Qué mensajes se escriben en pantalla?


num num<0 Pantalla
0 NO Has introducido el valor 0

10.Programa AptoNoAptoNotaNoValida. Escribir un programa que acepte la nota


de un examen e indique si le corresponde un apto o no apto o si la nota no es
válida.
1. Hacer el Análisis Entender el problema. Resolverlo con ejemplos.
2. Realizar el algoritmo. Defino los pasos. Analizo las variables
3. Probar el algoritmo
4. Codificarlo. Escribir código fuente, compilarlo y obtener el ejecutable
#include <stdio.h>
int main(void ) {
float num;
printf (“ Introduce la nota “);
scanf (“%f”, num);
if (num<0 || num >10)
printf ( " Error : No es una nota válida \n");
else { /* Llaves obligatorias pues hay más de una sentencia */
printf ( " Es una nota correcta ");
if (num < 5) printf (" Suspenso \n");
else printf (" Aprobado \n");
} /* Llaves obligatorias */
printf ("Has introducido el valor %d\n", num);
return 0;
}
1. ¿Cuál es el operador Y ? _ _ _ _ ¿Y el O ? _ _ _ _
2. ¿Cuál es la condición del primer if ? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
3. Si el usuario introduce 1, 1, 2 ¿Qué escribe el programa? _ _ _ _ _ _
_____________________________________
4. Probar el programa. ¿Con qué datos ha probado?

11.Programa PonderadaAptoNoAptoNoValida Escribir un programa que dados el


nombre de un alumno, las notas de tres exámenes y pesos aleatorios siguiendo las
reglas indicadas, calcule la nota media ponderada y saque por pantalla el nombre
del alumno indicando si es apto o no o si la nota media que le sale es no válida.

Pág 5
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

El peso del primer examen será un valor <30%, el del segundo <50%, y el tercero
se calculará para llegar al 100%.
1. Hacer el Análisis: Entender el problema. Hacer ejemplos
2. Realizar el algoritmo.
3. Defino los pasos.
1. Leer el nombre del alumno. Utilizar funcion gets().
2. Leer primera nota y obtenga su ponderación.
3. Leer segunda nota y obtenga su ponderación
4. Leer tercera nota y calcular la ponderación
5. Calcular la nota ponderada.
6. Si 5<=nota<=10 Escribir el nombre del alumno con su nota
sino si 0<=nota<5 Escribir nombre del alumno indicando NO APTO.
sino Escribir que la nota es NO Valida
Para Escribir el nombre del alumno utilizar la función puts() y
7. 2.-Analizo las variables
4. Probar el algoritmo
5. Codificar: Escribir código fuente, compilarlo y generar el ejecutable
6. Probar el programa. Hacer varios juegos de ensayos, suficientes como para
asegurarse que prueba todos los posibles casos. Pruebe con notas superiores a
100 o negativas para entrar por la zona de NoValida

12.Programa ParOImparVersion2. Realice un programa que solicite por teclado


un número entero y escriba por pantalla si es par o impar. Utilice utilice el
operador condicional.

SOLUCION con operador condicional


#include <stdlib.h>
#include <stdio.h> expresión_lógica ? expresion_V : expresion_F
int main( void ) {
int num;
printf ("Introduce dos numeros"); scanf ("%i", &num);
printf ("\n %d es %s", num, ((num%2 != 0)? “IMPAR” : ”PAR”) );
system("pause");
return (0);
}

1. Entender la función printf ("\n %d es %s", num, ((num%2 != 0)?


“IMPAR” : ”PAR”) );
1. Determine los parámetros de la función printf.
1. Parámetro por valor formato: _ _ _ _ _ "\n %d es %s" _ _ _ _ _ _
2. Parámetro lista de expresiones:_num, ((num%2 != 0)? “IMPAR”
: ”PAR”) _ _ _

Pág 6
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

3. De los elementos de la lista_expresiones ¿cuál se escribirá en lugar


de %d? ¿cuál se escribirá en lugar de %s?
1. En lugar de %d se pone el valor entero almacenado en la
variable num
2. En lugar de %s se pone la cadena de caracteres “IMPAR”, o
bien, “PAR” dependiendo del resultado de la expresión lógica
(num%2!=0)
2. Suponga que el usuario introduce el valor 32 ¿Qué se escribirá en
pantalla? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
3. ¿y si se introduce un 13?_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
4. Describa cómo funciona el operador interrogante ? _ _ _ _ _ _ _ _ _ _
_____________________________________
_____________________________________

13.Programa MayorDeTres. Dados tres números determinar cuál es el mayor.


1. Hacer el Análisis. Entender el problema. Hacer ejemplos.
2. Realizar el algoritmo 1.- Defino los pasos. 2.- Analizo las variables
3. Probar el algoritmo
4. Codificarlo. Escribir código fuente, compilarlo y obtener el ejecutable
5. Probar el programa.

14.Programa Ecuacion2Grado. Complete el programa que se presenta más abajo.


Dicho programa permite resolver una ecuación de segundo grado ax 2+bx +c=0.
Recuerde que cuando a=0 la solución es única, si b*b<4*a*c las soluciones son
imaginarias, en otro caso son dos soluciones reales. Para utilizar la raiz cuadrada
utilice la función sqrt( expresion ) que forma parte de la librería math.h
1. Análisis: Entender el problema. Resolverlo con ejemplos.
2. Algoritmo Definir los pasos y ver variables y constantes necesarias
Leer (a, b, c)
Resolver la ecuación
si a es 0 solucion es -c/b
sino si (b*b >= 4*a* ) {
solucion1 es -b + raiz( b*b- 4*a*c)/ 2*a
solucion2 es -b - raiz( b*b- 4*a*c)/ 2*a
}sino las soluciones son imaginarias
Escribir la solución
3. Probar el algoritmo
4. Codificarlo. Escribir código fuente, compilarlo y obtener el ejecutable
La raíz cuadrada de un número la realiza la funcion double sqrt(double x)
Dada una expresión de tipo real, x, calcula y devuelve un valor real que se
corresponde con la raiz cuadrada de x.
La función double sqrt(double x) está incluida en la librería math.h y con lo
cual para poder usarla, llamar a su ejecución, tenemos que incluir dicha
librería.

Pág 7
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

/* ……………..... faltan includes ...........................*/


#include <math.h> // para usar la lla
/* ………….... faltan sentencias para solicitar a, b y c....................... */
if (b*b>=4*a*c) {
sol1= (-b + sqrt ( b*b – 4*a*c ) )/ 2*a ; //llamada a la función sqrt
sol2= (-b - sqrt ( b*b – 4*a*c ) )/ 2*a;
}
/* faltan sentencias …………………………………………..*/

15.Programa con AreaOPerimetroCirculo Realizar un programa que calcule el área


de un círculo o el perímetro de una circunferencia según sea la opción elegida por
el usuario que será una letra A para el Area y P para el Perímetro.
1. Análisis: Entender el problema. Ejemplo:
2. Realizar el algoritmo
1. Defino los pasos.
LeerDatos (opción_a_realizar, radio )
si ( la opción es calcular el Area)
calcular el area, es decir, pi*radio*radio
escribir ( area )
sino si (la opción es calcular el perimetro)
perimetro = pi*2*radio
escribir ( perimetro )
sino escribir (“Error en la elección”);
2. Analizo las variables que necesito.
◦ La constante PI que la voy a definir como macro
◦ Radio de tipo real
◦ Solucion para almacenar el calculo del área o del perímetro. Real
◦ Opción, va a ser un carácter, la A para calcular el área, la P para el
perímetro.
3. Comprobar el algoritmo
4. Codificar. Escribir código fuente, compilarlo y obtener el ejecutable
#include <stdio.h>
#include <ctype.h> /* Para utilizar la función int toupper (int) *
……………….
5. Probar el programa. Hacer juegos de ensayos, suficientes como para
asegurarse que prueba todas las posibilidades de valores.

16.Programa EscribirOrdenados3Numeros. Escribir un programa que solicite tres


números enteros y los escriba ordenados. ¿Alguno de sus compañeros ha utilizado
los operadores lógicos (&&, ||,!) ?
1. Análisis: Entender el problema. Ejemplo.
2. Algoritmo: Defino los pasos. Analizo las variablesProbar el algoritmo
3. Codificarlo. Escribir código fuente, compilarlo y obtener el ejecutable
4. Probar el programa

Pág 8
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

17.Programa EscribirOrdenarNumeros. Escribir un programa que solicite tres


números y los intercambie entre ellos ordenándolos de mayor a menor.
1. Análisis: Entender el problema. Ejemplos.
2. Realizar el algoritmo: Defino los pasos. Analizo las variables
3. Probar el algoritmo
4. Codificar. Escribir código fuente, compilarlo y obtener el ejecutable
5. Probar el programa.

18.Programa DeporteApropiado. Leer una temperatura en grados centígrados e


imprimir el deporte que es apropiado hacer a esa temperatura según la tabla
adjunto.

 Natacion temperatura > 85 grados Fahrenheit


 Tenis 70ºF < temperatura <= 85ºF
 Golf 32ºF < temperatura <= 70ºF
 Esquí 10ºF < temperatura <= 32ºF
 Damas temperatura <= 10ºF

grC = (grF- 32)*5.0/9.0 Despejando : grF = 9.0/5.0 grC + 32

1. Análisis: Entender el problema. Ejemplos


2. Realizar el algoritmo: Defino los pasos. Analizo las variables
3. Probar el algoritmo
4. Compilar. Escribir código fuente, compilarlo y obtener el ejecutable
5. Probar el programa

19.. Programa TransporteCarga. Escribir un programa que calcule el precio de


transportar una carga en barco. Conocidos la distancia a recorrer y el peso
máximo que puede transportar el barco y el peso de la carga. Se sabe que:
1. El precio por transportar un kilo de carga un kilómetro es de 0,5 céntimos de
euro por kilo.
2. Se aplica un descuento del 30% si la carga supera el 90% de la carga máxima
que puede transportar el barco. Del 20 % si la carga supera el 80% del máximo,
del 10% si supera el 70% del máximo
3. Adicionalmente si la distancia es mayor de 10000km tendrá un 5% de
descuento por cada 5000 km que supere los 10000km, no pudiendo, en ningún
caso, superar el 30% de descuento, por este concepto.

1. Análisis: Entender el problema. Ejemplos.


2. Realizar el algoritmo: Defino los pasos. Analizo las variables
3. Probar el algoritmo
4. Compilar. Escribir código fuente, compilarlo y obtener el ejecutable
5. Probar el programa.

Pág 9
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

20.Programa dados. Simular una partida de dados. Cada jugador lanzará dos dados
y ganará aquel que obtenga mayor puntuación. Para simular el lanzamiento de un
dado, se generará un número aleatorio entre 1 y 6. El programa debe indicar la
puntuación de cada jugador y quien ha sido el ganador.

21.Programa PiedraPapelTijera1. Realice un programa que simule una jugada del


juego de “piedra, papel tijera” jugando el ordenador contra el operador de consola.
Recuerde:
- Papel cubre a Piedra → Gana Papel.
- Tijeras corta a Papel → Gana Tijeras.
- Piedra rompe a Tijeras→ Gana Piedras.
Puede Representar Piedra como 0; Papel como 1; Tijeras como 2, o cadenas
de caracteres y la función strcmp()
#include <string.h>
#include <time.h>

#define PIEDRA 0
#define PAPEL 1
#define TIJERA 2
int main (void){
int ord, usu=100;
char elec[10]; // Cadena de 10 caracteres
srand(time(NULL));
ord= rand()%3;

printf ("Elige \n PIEDRA, PAPEL, TIJERA\n" );


gets(elec );
if (strcmp(elec,"PIEDRA")==0) usu=PIEDRA;
else if (strcmp(elec,"PAPEL")==0) usu=PAPEL;
else if (strcmp(elec,"TIJERA")==0) usu=TIJERA;
else printf ("ERROR. %s no es una buena elecci%cn\n", elec, 162);

if (usu>=PIEDRA && usu<=TIJERA) {


printf (" Ordenador escoge %d ->", ord);
if (ord==PIEDRA) puts("PIEDRA");
else if (ord==PAPEL) puts("PAPEL");
else if (ord==TIJERA) puts("TIJERA");

if (usu==ord) printf ("Empate");


else

if ((usu== PAPEL && ord == PIEDRA) ||


(usu== PIEDRA && ord == TIJERA) ||

Pág 10
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

(usu== TIJERA && ord == PAPEL) )


printf (" Gana el usuario \n ");
else printf (" Gana el ordenador \n ");
} // fin del if (usu>=PIEDRA && usu<=TIJERA)
return 0;
}

22.Programa Cuadrante Diseñar un algoritmo e implementar el correspondiente


programa que dado dos posiciones aleatorias de la pantalla (x, y), indique en qué
cuadrante está, si está en uno de los ejes, o si es el origen de coordenadas. Siendo
el origen de la pantalla el centro de esta y el tamaño de la pantalla 1200x640.

23.Programa Diana Simular el lanzamiento de un proyectil a una diana de radio R


que será colocada en una pared vertical de dimensiones NxM en la posición (x,
y).
Se generarán dos números aleatorios reales que corresponderán a la posición en
que ha hecho impacto el proyectil. Se devolverá dicha coordenada y un mensaje
indicando si ha hecho impacto en la diana o sobre la pared.
Nota: Por simplificar supondremos que la diana ha sido colocada de forma
correcta en la superficie de la pared.
¿Serías capaz de mejorar el programa para comprobar este hecho y no permitir el
lanzamiento si la diana no se encuentre bien situada sobre la pared?

24.Programa DiasMes. Dados dos número enteros positivos correspondientes a un


año y a un mes. Indique el número de días de dicho mes.
1. Análisis: Entender el problema.
Ejemplos.Discusión:
Los meses de Enero, Marzo, Mayo, Julio, Agosto, Octubre, Diciembre tienen
31 días. Por otra parte los meses Abril, Junio, Septiembre y Noviembre tiene
30 días. El mes de Febrero tiene 29 días los años bisiestos y 28 los demás.
Un año es bisiesto: _ (a%400==0) || ( (a % 4== 0) && (a%100 !=0)) _ _ _
2. Realizar el algoritmo: Defino los pasos. Analizo las variables
3. Probar el algoritmo
4. Codificación:
5. Probar el programa ¿Con qué valores lo ha probado?

25.Programa TipoTriangulo. Solicitar las coordenadas de tres puntos e indique si


forman o no un triángulo. En caso de que así sea, especificar el tipo de triángulo.
Suponiendo que A corresponde al mayor de los tres lados y B y C a los otros dos,
entonces:
1. Si A >= B + C No es un triángulo.
2. Si A2= B2 + C2 Es un triángulo rectángulo.
3. Si A2 > B2 + C2 Es un triángulo obtusángulo.
4. Si A2< B2 + C2 Es un triángulo acutángulo.

Pág 11
Informática
Escuela de Ingenierías Marina, Náutica y Radioelectrónica
Ejercicios de Programación

Practica 2: Sentencias condicionales o selectivas

26.Programa switch Pruebe el siguiente programa


#include <stdio.h>
int main(void) {
int nota;
printf ("Introduce nota: "); scanf ("%d", &nota);
switch (nota){
case 0:
case 1: printf ("No has estudiado nada ");
case 2: printf ("Mal ");
case 3:
case 4: printf ("Suspenso \n"); break;
case 5:
case 6: printf ("Aprobado \n"); break;
case 7:
case 8: printf ("Notable \n"); break;
case 9: printf ("Sobresaliente \n"); break;
case 10: printf ("Matricula Honor \n"); break;
default: printf ("\nNota erronea. %d \n", nota); break;
}
return 0;
}

1. Pruebe el programa introduciendo en distintas ejecuciones al menos los


siguientes valores 1, 5, 8, 9, 12 ¿Puede explicar cómo funciona la sentencia
switch?_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
¿Para que sirve el break? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2. Cambie el tipo de la variable num a float ¿Qué ocurre?_ _ _ _ _ _ _ _ _ _ _
3. ¿Funciona con valores reales como por ejemplo 6.5? _ _ _ _ _ _ _ _ _ _ _ _ _

27. Programa NotasValidas. Realice un programa que dado por teclado una nota
válida (entre 0 y 10) expresada como número real, escriba en pantalla la
calificación que le corresponde (No Presentado, Suspenso, Aprobado, Notable,
Sobresaliente, Matricula de Honor).
1. Análisis: Entender el problema. Ejemplos.
2. Realizar el algoritmo.
3. Probar el algoritmo
4. Codificarlo. Escribir código fuente, compilarlo y obtener el ejecutable
5. Probar el programa.
Realice de nuevo el problema de forma que la nota sea un valor entero. Utilice
la sentencia switch.

Pág 12

También podría gustarte