vb5f9dca
Curso

04 - Instrucciones de Control - Selección

📋 Contenidos

Objetivos

Aprender a expresar decisiones en C a partir de condiciones sobre los datos.

Contenidos

Selección y condiciones

Operadores de comparación

Operadores lógicos

Estructuras if, if-else y else if

switch-case

Traducción desde pseudocódigo

Material de Clase

Presentaciones

Práctico

Ver ejercicios

Ejercicio 1

Enunciado: Escribir un programa que lea el precio de un producto y la cantidad de unidades a comprar. Si la cantidad es mayor o igual a 10, aplicar un descuento del 15% e imprimir el precio final; de lo contrario, imprimir el precio sin descuento.

Casos sugeridos: 5 unidades; 10 unidades.


Ejercicio 2

Enunciado: Escribir un programa que lea una temperatura en grados Celsius e indique el estado del agua: "solido" si es menor a 0, "liquido" si está entre 0 y 100 inclusive, o "gaseoso" si es mayor a 100.

Casos sugeridos: -5, 0, 37, 100, 120.


Ejercicio 3

Enunciado: Escribir un programa que lea un número entero del 1 al 7 e imprima el nombre del día de la semana correspondiente. Si el número está fuera de ese rango, imprimir "dia invalido". Usar switch.


Ejercicio 4

Enunciado: Escribir un programa que lea un número entero e indique si está en el rango cerrado [10, 50]. Imprimir "dentro del rango" o "fuera del rango" según corresponda.

Casos sugeridos: 9, 10, 50, 51.


Ejercicio 5

Enunciado: Escribir un programa que lea tres números enteros e imprima el mayor de los tres.

Casos sugeridos: (4, 9, 2), (7, 7, 3), (-2, -8, -1).


Ejercicio 6

Enunciado: Escribir un programa que lea los tres lados de un triángulo e indique si es equilátero, isósceles o escaleno. Asumir que siempre forman un triángulo válido.


Ejercicio 7

Enunciado: Escribir un programa que lea un número de mes (1 a 12) e imprima la estación del año correspondiente en el hemisferio sur. Usar switch con múltiples case por bloque.


Ejercicio 8

Enunciado: Escribir un programa que lea un usuario (int) y una contraseña (int). Si el usuario es 1234 y la contraseña es 5678, imprimir "Acceso permitido"; si el usuario es correcto pero la contraseña no, imprimir "Contrasena incorrecta"; en cualquier otro caso, imprimir "Usuario no encontrado".


Ejercicio 9

Enunciado: Escribir un programa que lea el color de un semáforo (1 = rojo, 2 = amarillo, 3 = verde) y si hay peatones cruzando (1 = si, 0 = no). Si el semáforo es verde y no hay peatones, imprimir "Avanzar"; si el semáforo es amarillo, imprimir "Precaucion"; en cualquier otro caso, imprimir "Detener".


Ejercicio 10

Enunciado: Escribir un programa que lea la edad de un pasajero y calcule el precio del boleto de colectivo (tarifa base: $500). Los menores de 12 años y los mayores de 64 pagan la mitad; los que tienen entre 12 y 64 años pagan la tarifa completa.

Casos sugeridos: 11, 12, 64, 65.


Ejercicio 11

Enunciado: Leer una nota entera entre 0 y 100 e imprimir:

  • "insuficiente" si es menor a 60,
  • "aprobado" si está entre 60 y 79,
  • "muy bueno" si está entre 80 y 89,
  • "excelente" si es 90 o más.

Ejercicio 12

Enunciado: Leer un año entero e indicar si es bisiesto o no usando esta regla simplificada: es bisiesto si es divisible por 4 y no lo es en caso contrario.


Ejercicio 13

Enunciado: Leer una opción entera:

  • 1 -> imprimir "Consultar saldo",
  • 2 -> imprimir "Depositar",
  • 3 -> imprimir "Retirar",
  • 4 -> imprimir "Salir".

Si la opción no coincide con ninguna, imprimir "Opcion invalida". Usar switch.


Ejercicio 14

Enunciado: Leer dos datos:

  • si el estudiante está inscripto (1 = si, 0 = no),
  • si trajo documento (1 = si, 0 = no).

Imprimir:

  • "Puede ingresar" si cumple ambas condiciones,
  • "Falta documentacion" si está inscripto pero no trajo documento,
  • "No habilitado" en cualquier otro caso.

Ejercicio 15: = vs ==

Enunciado: El siguiente programa tiene un error lógico en la condición.

if (edad = 18) {
    printf("Tiene 18\n");
}

Tareas:

  1. Explicar por qué = no sirve para comparar.
  2. Escribir una versión corregida.
  3. Probar la condición con valores que entren y que no entren al caso.

Ejercicio 16: Condición mal formulada

Enunciado: Se quiere validar que un número esté entre 1 y 100.

if (numero >= 1 || numero <= 100) {
    printf("Numero valido\n");
}

Tareas:

  1. Explicar por qué la condición acepta valores incorrectos.
  2. Corregir la condición.
  3. Probar con valores dentro y fuera del rango.

Recursos

Para Practicar

Bibliografía