Acerca de¶
Estos ejercicios están diseñados para afianzar los conceptos más fundamentales de la programación en C. A través de ellos, practicarás el uso de variables, la entrada y salida por consola, y la implementación de estructuras de control básicas como lazos y condicionales para resolver problemas simples y generar secuencias numéricas.
Consideraciones Generales¶
Función Principal: La lógica principal que resuelve cada enunciado debe estar contenida en una función, incluso si no se especifica explícitamente.
Estilo: Todo el código debe adherirse a la guía de estilo de la cátedra.
Entrada y Salida: Separá la lógica de tu programa de las operaciones de entrada/salida. Las funciones principales no deben interactuar directamente con el usuario, a menos que ese sea su propósito específico.
1.1: Cuenta regresiva¶
Descripción¶
Este ejercicio consiste en implementar un programa que realice una cuenta regresiva desde un número entero positivo N
hasta 1, para finalmente imprimir un mensaje de “¡Lanzamiento!”. El objetivo es practicar el uso de lazos (bucles) y la gestión de tiempos de ejecución simples.
Para que la cuenta no sea instantánea y se pueda percibir en tiempo real, se debe introducir una pausa de 1 segundo entre cada número impreso.
Ayuda (pseudocódigo)
ALGORITMO cuenta_regresiva
ENTRADA: numero_inicio (entero)
INICIO
PARA i DESDE numero_inicio HASTA 1 CON PASO -1 HACER
ESCRIBIR i, "..."
ESPERAR 1 segundo
FIN PARA
ESCRIBIR "¡Lanzamiento!"
FIN
1.2: ¡Hola mundo!¶
Descripción¶
El “Hola, mundo!” es el primer paso tradicional en el aprendizaje de un nuevo lenguaje de programación. El objetivo es escribir el programa más simple posible que produzca una salida visible en la pantalla, confirmando que el compilador y el entorno de desarrollo están configurados y funcionando correctamente.
Ayuda (pseudocódigo)
ALGORITMO hola_mundo
INICIO
ESCRIBIR "Hola, mundo!"
FIN
1.3: Saludador¶
Descripción¶
Este ejercicio amplía el “Hola, mundo!” para que el programa interactúe con el usuario. Debe solicitarle su nombre y luego mostrar un saludo personalizado que lo incluya. Sirve para practicar la lectura de datos desde la entrada estándar.
Ayuda (pseudocódigo)
ALGORITMO saludador
VARIABLES:
nombre (cadena)
INICIO
ESCRIBIR "Por favor, ingresa tu nombre:"
LEER nombre
ESCRIBIR "Hola mundo, ", nombre, "!"
FIN
1.4: Secuencias de Pares e Impares¶
1.4.1: Pares en un rango¶
Descripción¶
El programa debe ser capaz de identificar y mostrar todos los números pares que existen dentro de un intervalo cerrado [n, m]
, donde los límites n
y m
son proporcionados por el usuario.
Ayuda (pseudocódigo)
ALGORITMO pares_en_rango
ENTRADA: n, m (enteros)
INICIO
PARA i DESDE n HASTA m HACER
SI i MOD 2 == 0 ENTONCES
ESCRIBIR i
FIN SI
FIN PARA
FIN
1.4.2: Primeros N Impares¶
Descripción¶
Este ejercicio consiste en generar una secuencia de números impares, comenzando desde 1, hasta alcanzar un total de N
términos, donde N
es un número proporcionado por el usuario.
Ayuda (pseudocódigo)
ALGORITMO primeros_n_impares
ENTRADA: n_terminos (entero)
INICIO
PARA k DESDE 1 HASTA n_terminos HACER
impar = 2 * k - 1
ESCRIBIR impar
FIN PARA
FIN
1.5: Operaciones con Rangos Numéricos¶
1.5.1: Secuencia Ascendente¶
Descripción¶
El objetivo es mostrar una secuencia de números enteros que comienza en un número n
y termina justo antes de un número m
. Esto corresponde al intervalo matemático [n, m)
.
Ayuda (pseudocódigo)
ALGORITMO secuencia_ascendente
ENTRADA: n, m (enteros)
INICIO
PARA i DESDE n HASTA m-1 HACER
ESCRIBIR i
FIN PARA
FIN
1.5.2: Secuencia Descendente¶
Descripción¶
Similar al anterior, pero esta vez la secuencia debe ir en orden descendente. Se parte de un número n
y se retrocede hasta un número m
, sin incluirlo. Esto corresponde al intervalo (m, n]
.
Ayuda (pseudocódigo)
ALGORITMO secuencia_descendente
ENTRADA: n, m (enteros)
INICIO
PARA i DESDE n HASTA m+1 CON PASO -1 HACER
ESCRIBIR i
FIN PARA
FIN
1.5.3: Sumatoria¶
Descripción¶
Calcular la suma de todos los números enteros en un rango cerrado [n, m]
. Esto es equivalente a la operación matemática .
Ayuda (pseudocódigo)
ALGORITMO sumatoria_rango
ENTRADA: n, m (enteros)
VARIABLES:
suma (entero)
INICIO
suma = 0
PARA i DESDE n HASTA m HACER
suma = suma + i
FIN PARA
ESCRIBIR "La suma es: ", suma
FIN
1.5.4: Suma de Cuadrados¶
Descripción¶
Calcular la suma de los cuadrados de todos los números enteros en un rango cerrado [n, m]
. La operación es .
Ayuda (pseudocódigo)
ALGORITMO suma_cuadrados_rango
ENTRADA: n, m (enteros)
VARIABLES:
suma_cuadrados (entero)
INICIO
suma_cuadrados = 0
PARA i DESDE n HASTA m HACER
suma_cuadrados = suma_cuadrados + (i * i)
FIN PARA
ESCRIBIR "La suma de cuadrados es: ", suma_cuadrados
FIN
1.6: Par o Impar¶
Descripción¶
Este es un ejercicio fundamental de lógica condicional. El programa debe solicitar un número entero al usuario y determinar si es par (divisible por 2) o impar.
Ayuda (pseudocódigo)
ALGORITMO verificar_par_impar
ENTRADA: numero (entero)
INICIO
LEER numero
SI numero MOD 2 == 0 ENTONCES
ESCRIBIR "El número ", numero, " es Par."
SINO
ESCRIBIR "El número ", numero, " es Impar."
FIN SI
FIN
1.7: Signo de un Número¶
Descripción¶
El programa debe clasificar un número real (de punto flotante) ingresado por el usuario en una de tres categorías: positivo, negativo o cero.
1.8: Fórmulas Geométricas¶
1.8.1: Área de Triángulo (Base y Altura)¶
Descripción¶
Calcular el área de un triángulo a partir de las longitudes de su base y su altura. La fórmula es .
Ayuda (pseudocódigo)
ALGORITMO area_triangulo_base_altura
ENTRADA: base, altura (reales)
VARIABLES:
area (real)
INICIO
LEER base
LEER altura
area = (base * altura) / 2
ESCRIBIR "El área del triángulo es: ", area
FIN
1.8.2: Área de Triángulo (Fórmula de Herón)¶
Descripción¶
Calcular el área de un triángulo conociendo únicamente la longitud de sus tres lados (a
, b
, c
). Para esto se utiliza la fórmula de Herón.
Ayuda (pseudocódigo)
ALGORITMO area_triangulo_heron
ENTRADA: lado1, lado2, lado3 (reales)
VARIABLES:
s, area (reales)
INICIO
LEER lado1, lado2, lado3
// Opcional: Validar desigualdad triangular
s = (lado1 + lado2 + lado3) / 2
area = RAIZ_CUADRADA(s * (s - lado1) * (s - lado2) * (s - lado3))
ESCRIBIR "El área del triángulo es: ", area
FIN
1.8.3: Círculo¶
Descripción¶
Calcular el área y la circunferencia (perímetro) de un círculo a partir de su radio.
Ayuda (pseudocódigo)
ALGORITMO circulo_calculos
ENTRADA: radio (real)
CONSTANTES:
PI = 3.14159
VARIABLES:
area, circunferencia (reales)
INICIO
LEER radio
area = PI * radio * radio
circunferencia = 2 * PI * radio
ESCRIBIR "Área: ", area
ESCRIBIR "Circunferencia: ", circunferencia
FIN
1.8.4: Trapecio¶
Descripción¶
Calcular el área de un trapecio dadas las longitudes de sus dos bases paralelas y su altura.
Ayuda (pseudocódigo)
ALGORITMO area_trapecio
ENTRADA: base_mayor, base_menor, altura (reales)
VARIABLES:
area (real)
INICIO
LEER base_mayor, base_menor, altura
area = ((base_mayor + base_menor) / 2) * altura
ESCRIBIR "El área del trapecio es: ", area
FIN
1.8.5: Polígono Regular¶
Descripción¶
Calcular el área de un polígono regular (lados y ángulos iguales) a partir del número de lados, la longitud de un lado y la apotema.
Ayuda (pseudocódigo)
ALGORITMO area_poligono_regular
ENTRADA: num_lados (entero), long_lado, apotema (reales)
VARIABLES:
perimetro, area (reales)
INICIO
LEER num_lados, long_lado, apotema
perimetro = num_lados * long_lado
area = (perimetro * apotema) / 2
ESCRIBIR "El área del polígono es: ", area
FIN
1.8.6: Rectángulo¶
Descripción¶
Calcular el área y el perímetro de un rectángulo dadas las longitudes de su largo y su ancho.
Ayuda (pseudocódigo)
ALGORITMO rectangulo_calculos
ENTRADA: largo, ancho (reales)
VARIABLES:
area, perimetro (reales)
INICIO
LEER largo, ancho
area = largo * ancho
perimetro = 2 * (largo + ancho)
ESCRIBIR "Área: ", area
ESCRIBIR "Perímetro: ", perimetro
FIN
1.9: Conversiones de Unidades¶
1.9.1: Temperaturas¶
Descripción¶
Crear un programa que pueda convertir temperaturas entre las escalas Celsius, Fahrenheit y Kelvin.
Ayuda (pseudocódigo) para celsius a fahrenheit.
ALGORITMO convertir_c_a_f
ENTRADA: grados_celsius (real)
VARIABLES:
grados_fahrenheit (real)
INICIO
LEER grados_celsius
grados_fahrenheit = (grados_celsius * 9.0 / 5.0) + 32
ESCRIBIR grados_celsius, "°C son ", grados_fahrenheit, "°F"
FIN
1.9.2: Ángulos a Segundos¶
Descripción¶
Convertir una medida de ángulo dada en formato sexagesimal (grados, minutos y segundos) a su valor total equivalente en segundos.
Ayuda (pseudocódigo)
ALGORITMO angulo_a_segundos
ENTRADA: grados, minutos, segundos (enteros)
VARIABLES:
total_segundos (entero)
INICIO
LEER grados, minutos, segundos
total_segundos = (grados * 3600) + (minutos * 60) + segundos
ESCRIBIR "El total en segundos es: ", total_segundos
FIN
1.10: Tabla de Multiplicar¶
Descripción¶
El programa debe solicitar un número entero al usuario y mostrar su tabla de multiplicar, desde el 1 hasta el 10.
Ayuda (pseudocódigo)
ALGORITMO tabla_de_multiplicar
ENTRADA: numero_base (entero)
INICIO
LEER numero_base
PARA i DESDE 1 HASTA 10 HACER
resultado = numero_base * i
ESCRIBIR numero_base, " x ", i, " = ", resultado
FIN PARA
FIN
1.11: Patrón de Asteriscos (Triángulo)¶
Descripción¶
Implementar un programa que pida un número n
e imprima un triángulo rectángulo de n
filas de altura, construido con asteriscos.
1.12: Calculadora Básica¶
Descripción¶
Crear un programa que funcione como una calculadora simple. Debe solicitar al usuario dos números y un carácter que represente la operación aritmética a realizar (+, -, *, /).
Ayuda (pseudocódigo)
ALGORITMO calculadora
ENTRADA: num1, num2 (reales), operador (caracter)
VARIABLES:
resultado (real)
INICIO
LEER num1, operador, num2
SEGUN operador HACER
CASO '+': resultado = num1 + num2
CASO '-': resultado = num1 - num2
CASO '*': resultado = num1 * num2
CASO '/':
SI num2 != 0 ENTONCES
resultado = num1 / num2
SINO
ESCRIBIR "Error: División por cero."
TERMINAR
FIN SI
CASO CONTRARIO:
ESCRIBIR "Error: Operador no válido."
TERMINAR
FIN SEGUN
ESCRIBIR "Resultado: ", resultado
FIN
1.13: Adivina el Número¶
Descripción¶
Desarrollar un juego simple donde el programa genera un número secreto aleatorio y el usuario debe adivinarlo. El programa proporciona pistas para guiar al usuario.
Ayuda (pseudocódigo)
ALGORITMO adivina_el_numero
VARIABLES:
numero_secreto, intento_usuario (enteros)
INICIO
numero_secreto = generar_aleatorio(1, 100)
HACER
ESCRIBIR "Adivina el número (1-100):"
LEER intento_usuario
SI intento_usuario > numero_secreto ENTONCES
ESCRIBIR "Muy alto."
SINO SI intento_usuario < numero_secreto ENTONCES
ESCRIBIR "Muy bajo."
FIN SI
MIENTRAS intento_usuario != numero_secreto
ESCRIBIR "¡Felicidades! Adivinaste el número."
FIN
1.14: Serie de Fibonacci (Iterativa)¶
Descripción¶
Generar y mostrar los primeros n
términos de la serie de Fibonacci. En esta serie, cada número es la suma de los dos anteriores, comenzando con 0 y 1.
Ayuda (pseudocódigo)
ALGORITMO fibonacci_iterativo
ENTRADA: n (entero)
VARIABLES:
a, b, siguiente, i (enteros)
INICIO
SI n >= 1 ENTONCES ESCRIBIR 0
SI n >= 2 ENTONCES ESCRIBIR 1
a = 0
b = 1
PARA i DESDE 3 HASTA n HACER
siguiente = a + b
ESCRIBIR siguiente
a = b
b = siguiente
FIN PARA
FIN
1.15: Cálculo de Interés Simple¶
Descripción¶
Implementar una función que calcule el monto final y el interés simple ganado a partir de un capital inicial, una tasa de interés anual y un período de tiempo en años.
Ayuda (pseudocódigo)
ALGORITMO interes_simple
ENTRADA: capital, tasa_anual, anios (reales)
VARIABLES:
interes_ganado, monto_final (reales)
INICIO
LEER capital, tasa_anual, anios
// Asegurarse que la tasa esté en formato decimal
tasa_decimal = tasa_anual / 100
interes_ganado = capital * tasa_decimal * anios
monto_final = capital + interes_ganado
ESCRIBIR "Interés ganado: ", interes_ganado
ESCRIBIR "Monto final: ", monto_final
FIN
1.16: Índice de Masa Corporal (IMC)¶
Descripción¶
Escribir un programa que calcule el Índice de Masa Corporal (IMC) de una persona y lo clasifique según las categorías de la OMS.
Ayuda (pseudocódigo)
ALGORITMO calcular_imc
ENTRADA: peso_kg, altura_m (reales)
VARIABLES:
imc (real)
INICIO
LEER peso_kg, altura_m
imc = peso_kg / (altura_m * altura_m)
ESCRIBIR "Su IMC es: ", imc
SI imc < 18.5 ENTONCES
ESCRIBIR "Categoría: Bajo peso"
SINO SI imc < 25 ENTONCES
ESCRIBIR "Categoría: Normal"
SINO SI imc < 30 ENTONCES
ESCRIBIR "Categoría: Sobrepeso"
SINO
ESCRIBIR "Categoría: Obesidad"
FIN SI
FIN
1.17: Días del Mes¶
Descripción¶
Crear un programa que, dado un mes (como número del 1 al 12) y un año, determine y muestre cuántos días tiene ese mes. Este ejercicio requiere manejar el caso especial de febrero en los años bisiestos.
Ayuda (pseudocódigo)
ALGORITMO dias_del_mes
ENTRADA: mes, anio (enteros)
VARIABLES:
es_bisiesto (booleano)
INICIO
LEER mes, anio
es_bisiesto = (anio MOD 4 == 0 Y anio MOD 100 != 0) O (anio MOD 400 == 0)
SEGUN mes HACER
CASO 1, 3, 5, 7, 8, 10, 12:
ESCRIBIR "31 días"
CASO 4, 6, 9, 11:
ESCRIBIR "30 días"
CASO 2:
SI es_bisiesto ENTONCES
ESCRIBIR "29 días"
SINO
ESCRIBIR "28 días"
FIN SI
CASO CONTRARIO:
ESCRIBIR "Mes no válido."
FIN SEGUN
FIN
1.18: Máximo de Tres Números¶
Descripción¶
El objetivo es encontrar el valor más grande entre tres números enteros proporcionados por el usuario. Este ejercicio se centra en el uso de condicionales anidados o operadores lógicos para realizar comparaciones múltiples.
Ayuda (pseudocódigo)
ALGORITMO maximo_de_tres
ENTRADA: a, b, c (enteros)
VARIABLES:
maximo (entero)
INICIO
LEER a, b, c
maximo = a
SI b > maximo ENTONCES
maximo = b
FIN SI
SI c > maximo ENTONCES
maximo = c
FIN SI
ESCRIBIR "El número más grande es: ", maximo
FIN
1.19: Clasificación de Triángulo¶
Descripción¶
Dados los largos de tres lados, el programa debe determinar si pueden formar un triángulo válido y, en caso afirmativo, clasificarlo como equilátero (todos los lados iguales), isósceles (dos lados iguales) o escaleno (todos los lados diferentes).
Ayuda (pseudocódigo)
ALGORITMO clasificar_triangulo
ENTRADA: a, b, c (reales)
INICIO
LEER a, b, c
SI (a+b > c) Y (a+c > b) Y (b+c > a) ENTONCES
SI a == b Y b == c ENTONCES
ESCRIBIR "Es un triángulo Equilátero."
SINO SI a == b O b == c O a == c ENTONCES
ESCRIBIR "Es un triángulo Isósceles."
SINO
ESCRIBIR "Es un triángulo Escaleno."
FIN SI
SINO
ESCRIBIR "Los lados no forman un triángulo válido."
FIN SI
FIN
1.20: Desglose de Billetes¶
Descripción¶
Dado un monto de dinero entero, el programa debe calcular la cantidad mínima de billetes de distintas denominaciones para representar dicho monto.
Ayuda (pseudocódigo)
ALGORITMO desglose_billetes
ENTRADA: monto (entero)
VARIABLES:
cantidad_billetes (entero)
INICIO
LEER monto
denominaciones = [1000, 500, 200, 100, 50, 20, 10]
PARA cada d EN denominaciones HACER
cantidad_billetes = monto / d
SI cantidad_billetes > 0 ENTONCES
ESCRIBIR cantidad_billetes, " billete(s) de ", d
FIN SI
monto = monto MOD d
FIN PARA
FIN
1.21: Piedra, Papel o Tijera¶
Descripción¶
Implementar el clásico juego de Piedra, Papel o Tijera para que un usuario juegue una partida contra la computadora.
Ayuda (pseudocódigo)
ALGORITMO piedra_papel_tijera
VARIABLES:
eleccion_usuario, eleccion_pc (entero)
INICIO
ESCRIBIR "Elige: 1-Piedra, 2-Papel, 3-Tijera"
LEER eleccion_usuario
eleccion_pc = generar_aleatorio(1, 3)
SI eleccion_usuario == eleccion_pc ENTONCES
ESCRIBIR "Empate."
SINO SI (eleccion_usuario == 1 Y eleccion_pc == 3) O \
(eleccion_usuario == 2 Y eleccion_pc == 1) O \
(eleccion_usuario == 3 Y eleccion_pc == 2) ENTONCES
ESCRIBIR "¡Ganaste!"
SINO
ESCRIBIR "Perdiste."
FIN SI
FIN
1.22: Patrón de Pirámide¶
Descripción¶
Implementar un programa que pida un número n
e imprima un triángulo rectángulo de n
filas de altura, construido con asteriscos.
Ayuda (pseudocódigo)
ALGORITMO piramide_asteriscos
ENTRADA: n (entero)
INICIO
PARA fila DESDE 1 HASTA n HACER
// Imprimir espacios
PARA espacio DESDE 1 HASTA n - fila HACER
ESCRIBIR " " SIN SALTO DE LÍNEA
FIN PARA
// Imprimir asteriscos
PARA asterisco DESDE 1 HASTA 2 * fila - 1 HACER
ESCRIBIR "*" SIN SALTO DE LÍNEA
FIN PARA
ESCRIBIR SALTO DE LÍNEA
FIN PARA
FIN
1.23: Validación de Contraseña Simple¶
Descripción¶
Crear un programa que solicite una contraseña al usuario y no le permita continuar hasta que ingrese la contraseña correcta. Este ejercicio practica el uso de lazos do-while
y la comparación de cadenas.
Ayuda (pseudocódigo)
ALGORITMO validar_contrasena
CONSTANTES:
CLAVE_SECRETA = "password123"
VARIABLES:
intento (cadena)
INICIO
HACER
ESCRIBIR "Ingrese la contraseña:"
LEER intento
MIENTRAS intento != CLAVE_SECRETA
ESCRIBIR "Acceso concedido."
FIN
1.24: Cajero Automático (Menú)¶
Descripción¶
Simular la interfaz de un menú de cajero automático. El programa debe mostrar una lista de opciones y ejecutar una acción simple según la elección del usuario, repitiendo el proceso hasta que el usuario decida salir.
Ayuda (pseudocódigo)
ALGORITMO cajero_automatico
VARIABLES:
saldo (real)
opcion, monto (entero)
INICIO
saldo = 1000.0
HACER
ESCRIBIR "1. Consultar Saldo"
ESCRIBIR "2. Depositar"
ESCRIBIR "3. Retirar"
ESCRIBIR "4. Salir"
LEER opcion
SEGUN opcion HACER
CASO 1: ESCRIBIR "Su saldo es: ", saldo
CASO 2:
ESCRIBIR "Ingrese monto a depositar:"
LEER monto
saldo = saldo + monto
CASO 3:
ESCRIBIR "Ingrese monto a retirar:"
LEER monto
SI monto <= saldo ENTONCES
saldo = saldo - monto
SINO
ESCRIBIR "Saldo insuficiente."
FIN SI
FIN SEGUN
MIENTRAS opcion != 4
FIN
1.25: Patrón de Rombo¶
Descripción¶
Implementar un programa que pida un número impar n
e imprima un rombo de asteriscos de n
filas de altura.
Ayuda (pseudocódigo)
ALGORITMO rombo_asteriscos
ENTRADA: n (entero impar)
INICIO
// Parte superior (pirámide)
PARA fila DESDE 1 HASTA (n/2) + 1 HACER
// Imprimir espacios y asteriscos como en el ejercicio de la pirámide
FIN PARA
// Parte inferior (pirámide invertida)
PARA fila DESDE n/2 HASTA 1 CON PASO -1 HACER
// Imprimir espacios y asteriscos de forma similar pero con el lazo decreciente
FIN PARA
FIN
1.26: Promedio de N Números¶
Descripción¶
Escribir un programa que sea flexible en la cantidad de números a promediar. Primero debe preguntar al usuario cuántos números va a ingresar y luego calcular el promedio de esa cantidad de números.
Ayuda (pseudocódigo)
ALGORITMO promedio_n_numeros
VARIABLES:
cantidad, i (enteros)
numero, suma, promedio (reales)
INICIO
ESCRIBIR "¿Cuántos números desea promediar?"
LEER cantidad
suma = 0
PARA i DESDE 1 HASTA cantidad HACER
ESCRIBIR "Ingrese el número ", i, ":"
LEER numero
suma = suma + numero
FIN PARA
SI cantidad > 0 ENTONCES
promedio = suma / cantidad
ESCRIBIR "El promedio es: ", promedio
FIN SI
FIN
1.27: Contador de Dígitos¶
Descripción¶
Crear una función que reciba un número entero y devuelva la cantidad de dígitos que lo componen.
Ayuda (pseudocódigo)
ALGORITMO contar_digitos
ENTRADA: numero (entero)
VARIABLES:
contador (entero)
INICIO
SI numero == 0 ENTONCES
RETORNAR 1
FIN SI
contador = 0
// Manejar números negativos
numero_abs = VALOR_ABSOLUTO(numero)
MIENTRAS numero_abs > 0 HACER
numero_abs = numero_abs / 10
contador = contador + 1
FIN MIENTRAS
RETORNAR contador
FIN
1.28: Invertir un Número Entero¶
Descripción¶
Implementar una función que tome un número entero y devuelva otro número con los dígitos en orden inverso.
Ayuda (pseudocódigo)
ALGORITMO invertir_numero
ENTRADA: numero (entero)
VARIABLES:
invertido, digito (enteros)
INICIO
invertido = 0
MIENTRAS numero != 0 HACER
digito = numero MOD 10
invertido = (invertido * 10) + digito
numero = numero / 10
FIN MIENTRAS
RETORNAR invertido
FIN
1.29: Potencia con Lazos¶
Descripción¶
Escribir una función que calcule base^exponente
sin usar la función pow()
de la biblioteca math.h
. Debe funcionar para exponentes enteros no negativos.
Ayuda (pseudocódigo)
ALGORITMO potencia_iterativa
ENTRADA: base (real), exponente (entero)
VARIABLES:
resultado (real)
INICIO
resultado = 1.0
PARA i DESDE 1 HASTA exponente HACER
resultado = resultado * base
FIN PARA
RETORNAR resultado
FIN
1.30: Menú de Conversiones¶
Descripción¶
Crear un programa robusto que presente al usuario un menú con varias opciones de conversión de unidades (ej. Celsius a Fahrenheit, Metros a Pies, Kilogramos a Libras). El programa debe repetir el menú hasta que el usuario elija la opción de salir.
Ayuda (pseudocódigo)
ALGORITMO menu_conversiones
VARIABLES:
opcion (entero)
INICIO
HACER
ESCRIBIR "1. Celsius a Fahrenheit"
ESCRIBIR "2. Metros a Pies"
ESCRIBIR "3. Salir"
LEER opcion
SEGUN opcion HACER
CASO 1: llamar funcion_convertir_c_a_f()
CASO 2: llamar funcion_convertir_m_a_pies()
FIN SEGUN
MIENTRAS opcion != 3
FIN
1.31: Validación de Fecha¶
Descripción¶
Crear una función que valide si una combinación de día, mes y año corresponde a una fecha real en el calendario gregoriano.
Ayuda (pseudocódigo)
FUNCION es_fecha_valida(dia, mes, anio)
VARIABLES:
dias_en_mes (entero)
INICIO
SI anio < 1 O mes < 1 O mes > 12 O dia < 1 O dia > 31 ENTONCES
RETORNAR FALSO
FIN SI
// Lógica para dias_en_mes (similar al ejercicio 1.17)
...
SI dia > dias_en_mes ENTONCES
RETORNAR FALSO
FIN SI
RETORNAR VERDADERO
FIN FUNCION
1.32: Dibujar un Cuadrado Hueco¶
Descripción¶
Pedir al usuario un número n
y dibujar el contorno de un cuadrado de n x n
utilizando asteriscos. El interior del cuadrado debe estar vacío.
Ayuda (pseudocódigo)
ALGORITMO cuadrado_hueco
ENTRADA: n (entero)
INICIO
PARA fila DESDE 1 HASTA n HACER
PARA columna DESDE 1 HASTA n HACER
SI fila == 1 O fila == n O columna == 1 O columna == n ENTONCES
ESCRIBIR "*" SIN SALTO DE LÍNEA
SINO
ESCRIBIR " " SIN SALTO DE LÍNEA
FIN SI
FIN PARA
ESCRIBIR SALTO DE LÍNEA
FIN PARA
FIN
1.33: Suma Separada de Pares e Impares¶
Descripción¶
Dado un rango de números [n, m]
, el programa debe calcular la suma de todos los números pares y la suma de todos los números impares de forma independiente y mostrar ambos resultados.
Ayuda (pseudocódigo)
ALGORITMO suma_pares_impares_rango
ENTRADA: n, m (enteros)
VARIABLES:
suma_pares, suma_impares (enteros)
INICIO
suma_pares = 0
suma_impares = 0
PARA i DESDE n HASTA m HACER
SI i MOD 2 == 0 ENTONCES
suma_pares = suma_pares + i
SINO
suma_impares = suma_impares + i
FIN SI
FIN PARA
ESCRIBIR "Suma de pares: ", suma_pares
ESCRIBIR "Suma de impares: ", suma_impares
FIN
1.34: Número de la Suerte¶
Descripción¶
Un número de la suerte es un entero con una cantidad par de dígitos, donde la suma de los dígitos de la primera mitad es igual a la suma de los dígitos de la segunda mitad. El programa debe verificar si un número dado es de la suerte.
Ayuda (pseudocódigo)
ALGORITMO numero_de_la_suerte
ENTRADA: numero (entero)
VARIABLES:
total_digitos, mitad_digitos, i (enteros)
primera_mitad, segunda_mitad (enteros)
suma1, suma2 (enteros)
INICIO
LEER numero
total_digitos = contar_digitos(numero)
SI total_digitos MOD 2 != 0 ENTONCES
ESCRIBIR "No es un número de la suerte (dígitos impares)."
TERMINAR
FIN SI
mitad_digitos = total_digitos / 2
divisor = potencia(10, mitad_digitos)
primera_mitad = numero / divisor
segunda_mitad = numero MOD divisor
suma1 = sumar_digitos(primera_mitad)
suma2 = sumar_digitos(segunda_mitad)
SI suma1 == suma2 ENTONCES
ESCRIBIR "Es un número de la suerte."
SINO
ESCRIBIR "No es un número de la suerte."
FIN SI
FIN