Está en la página 1de 8

60 ejercicios de Algoritmo

VARIABLES. ACUMULADORES. CONTADORES. BUCLES Y TOMA DE


DECISIONES

1.   Ingresar 5 números y calcular su media.

2.   Escribir el algoritmo necesario para calcular y mostrar el cuadrado de un


número. El número debe ser mayor que cero, en caso de error que aparezca el
mensaje "ERROR, el número debe ser mayor que cero"

3.   De 10 números ingresados indicar cuantos son mayores a cero y cuantos


son menores a cero.

4.   Diseñar un algoritmo que calcule la longitud de la circunferencia y el área del


círculo de radio dado.

5.   Diseñar un algoritmo que calcule la superficie de un triángulo a partir del


ingreso de su base y altura y muestre el resultado.

6.   Hacer el algoritmo que nos permita introducir un número por teclado y nos
informe si es positivo o negativo

7.   Hacer el algoritmo que nos permita introducir un número por teclado y nos
informe si es par o impar

8.   Escribir el algoritmo que me permita leer un número decimal que representa


una cantidad de grados Celsius y convierta dicho valor a la cantidad equivalente
en grados Fahrenheit. La salida del programa puede ser de la siguiente forma:
100  grados celsius son 212 grados Fahrenheit

9.   Dados ciertos centímetros como entrada de tipo decimal, escribir su


equivalente a pies (enteros) y pulgadas (decimal), dando las pulgadas con una
precisión de 1 lugar decimal. Considerar 2.54 cm por pulgada y 12 pulgadas por
pie. La salida podrá ser: 333.3 cm son 10 pies y 11.2 pulgadas.

10.   Escribir en Pseudocódigo  y codificar en C un programa que lea  20


caracteres. Luego de la lectura indicar cuantas "a" se ingresaron, cuantas "e, i, o,
u"

11.   Realizar un algoritmo que permita ingresar un número correspondiente a los


días de una semana y muestre el nombre del día. Que se permita trabajar hasta
que el usuario indique lo contrario. 

12.   Escribir en Pseudocódigo y codificar en C un programa que muestre los


números impares entre 0 y 100 y que imprima cuantos impares hay

13.   Hacer el algoritmo que imprima los números pares entre el 1 y el  100

14.   Hacer el algoritmo que imprima los números del 1 al 100

15.   Hacer el algoritmo que imprima los números del 100 al 0 en orden


decreciente

16.   Diseñar un algoritmo que imprima y sume la serie de números


3,6,9,12,...,99.

17.   Escribir en Pseudocódigo y codificar en C un programa que muestre los


múltiplos de 2 y de 3 y de ambos comprendidos entre 0 y 100

18.   Ingresar un número, entero y efectuar la suma de todos los números que le


anteceden, comenzando desde 0 y mostrar el resultado por pantalla

19.   Hacer el algoritmo que imprima todos los números naturales que hay desde
la unidad hasta un número que introducimos por teclado

20.   Hacer el algoritmo que nos permita contar los múltiplos de 3 desde la


unidad hasta un número que introducimos por teclado

21.   Escribir en Pseudocódigo y codificar en C un programa que muestre los


números primos comprendidos entre 0 y 100

22.   Diseñar en Pseudocódigo y codificar en C un algoritmo que permita ingresar


10 números, ninguno de ellos igual a cero. Se pide sumar los positivos, obtener
el producto de los negativos y luego mostrar ambos resultados.

23.   Diseñar el algoritmo necesario para que habiéndose leído el valor de 2


variables NUM1 y NUM2 se intercambien los valores de las variables, es decir
que el valor que tenía NUM1 ahora lo contenga NUM2 y viceversa

24.   Escribir un programa que visualice una tabla de los N primeros números,


siendo N un número que ingresa el usuario. Utilizar el siguiente diseño de salida
suponiendo que el usuario ingresó un tres:
   NÚMERO   CUADRADO   CUBO
   1   1   1
   2   4   8
   3   9   27

25.   Diseñar en Pseudocódigo y codificar en C un algoritmo que permita


registrar de los empleados de una fábrica (no se sabe cuantos) su peso y saber
cuantos pesan hasta 80 kg. inclusive y cuantos pesan más de 80 kg. 

26.   En una tienda de artículos para caballeros al final del día se carga en la
computadora las boletas que confeccionaron los distintos vendedores para
saber cuanto fue la comisión del día de cada uno de ellos. Los datos que se
ingresan (por boleta) son: el número de vendedor y el importe. Cuando no hay
más boletas para cargar se ingresa 0. Teniendo en cuenta que el negocio tiene 3
vendedores y que el porcentaje sobre las ventas es del 5%, indicar cuánto ganó
cada vendedor en el día

27.   Ingresar por teclado 3 números correspondientes a los lados de un


triángulo. Teniendo en cuenta que la suma de los dos lados menores tiene que
ser superior al lado mayor para que formen un triángulo, indicar si los números
indicados forman un triángulo y si lo forman que tipo de triángulo es (según sus
lados).

28.   Dados 3 números donde el primero y el último son límites de un intervalo,


indicar si el tercero pertenece a dicho intervalo

29.   Por teclado se ingresa  el valor hora de un empleado. Posteriormente se


ingresa el nombre del empleado, la antigüedad y la cantidad de horas trabajadas
en el mes. Se pide calcular el importe a cobrar teniendo en cuenta que al total
que resulta de multiplicar el valor hora por la cantidad de horas trabajadas, hay
que sumarle la cantidad de años trabajados multiplicados por $30, y al total de
todas esas operaciones restarle el 13% en concepto de descuentos. Imprimir el
recibo correspondiente con el nombre, la antigüedad, el valor hora, el total a
cobrar en bruto, el total de descuentos y el valor neto a cobrar.

30.   Realizar la tabla de multiplicar de un número entre 0 y 10 de forma que se


visualice de la siguiente forma:
4x1= 4
4x2= 8
..........

31.   Hacer el algoritmo que luego de ingresar 2 números por teclado, imprima


los números naturales que hay entre ambos empezando por el más pequeño,
contar cuántos números hay y cuántos de ellos son pares. 

32.   Se registran de los empleados de una empresa Número de legajo, sueldo y


sexo (1 femenino y 2 masculino). Diseñar en Pseudocódigo y codificar en C un
algoritmo que permita informar cuantas mujeres ganan más de $ 500 y cuantos
hombres ganan menos de $ 400.

MÁXIMOS Y MÍNIMOS

33.   Se ingresa por teclado la cantidad de agua caída, en milímetros día a día
durante un mes. Se pide determinar el día de mayor lluvia, el de menor y el
promedio

34.   Hacer el algoritmo que imprima el mayor y el menor de una serie de 5


números que vamos introduciendo por teclado.

35.De los alumnos de una escuela se registra su apellido y nombre y su altura.


Diseñar en Pseudocódigo un algoritmo que indique el nombre del alumno más
alto y su altura (sólo uno es el más alto).

36. Diseñar un algoritmo que permita calcular el promedio de un alumno


sabiendo que se ingresa por alumno la nota de 6 materias y su nombre. No se
sabe la cantidad de alumnos. Se pide mostrar: NOMBRE DEL ALUMNO:
PROMEDIO:

37. Del registro de partes meteorológico por cada día se registra la fecha,
temperatura máxima y temperatura mínima. Diseñar en Pseudocódigo un
algoritmo que permita informar: el día más frío y cual fue esa temperatura
el día más  cálido y cual fue esa temperatura

38. De las 20 participantes de un concurso de belleza se van registrando de uno


en uno los siguientes datos:
Apellido y Nombre
Puntos por inteligencia 
Puntos por Cultura general
Puntos por Belleza
Se necesita informar por pantalla:
Apellido y nombre de la concursante de mayor puntaje general
Puntaje acumulado por todas las participantes en Cultura general, en Inteligencia
y en Belleza.
De los tres puntajes acumulados en el ítem anterior cual fue el menor
39. Escribir un programa que calcule el salario semanal de cada trabajador de
una empresa dada la tarifa horaria y el número de horas trabajadas además del
nombre. Se debe permitir al usuario  indicar cuando desea dejar de ingresar
datos.

40. Ídem al anterior pero informando al finalizar (el ingreso de datos y los cálculos
correspondientes) la cantidad de empleados a los que se les calculó el salario.

41.Ídem al anterior agregando en el informe final nombre del empleado de mayor


salario con el monto del salario correspondiente y nombre del empleado de
menor salario con el monto del salario correspondiente

42.Ídem al anterior agregando en el informe final el costo de la empresa en


salarios y el salario promedio

43.En un club se registran de uno en uno los siguientes datos de sus socios:
Número de socio
Apellido y nombre
Edad
Tipo de deporte que practica (1 tenis, 2 rugby, 3 voley, 4 hockey, 5 futbol)
Diseñar en Pseudocódigo un algoritmo que permita emitir por pantalla cuantos
socios practican tenis y cuantos paddle y el promedio de edad de los jugadores
de cada deporte

44.Escribir un programa que determine si un año es bisiesto. Un año es bisiesto


si es múltiplo de 4. Los años múltiplos de 100 no son bisiestos, salvo si ellos
también son múltiplos de 400 (2000 es bisiesto pero 1900 no)

45.Un profesor de matemática de un establecimiento educativo registra de cada


alumno Nº de legajo, nombre y promedio. Según el promedio desea saber
cuantos alumnos aprobaron (promedio mayor o igual a 7), cuantos rinden en
diciembre (promedio menor a 7 y mayor o igual a 4) y cuantos rinden examen en
marzo (promedio menor a 4). Además  desea conocer el Nº de legajo y nombre
del alumno con mejor promedio.

46. Diseñar el algoritmo que le presente al usuario un menú de opciones con las
cuatro operaciones básicas (suma, resta, multiplicación, división). Según la
operación elegida ingresará 2 números enteros, se realizará la misma y se
mostrará por pantalla el resultado. El usuario podrá trabajar en el programa hasta
que indique lo contrario. Recordar que la división por cero es indeterminada.

47.La fecha de Pascua corresponde al primer domingo después de la primera


luna llena que sigue al equinoccio de primavera, y se calcula con las siguientes
expresiones:
A = año mod 19
B = año mod 4
C = año mod 7
D = (19*A + 24) mod 30
E = (2*B + 4*C + 6*D + 5) mod 7
N = (22 + D + E)
En el que N indica el número del día de marzo (o Abril si N > 31) correspondiente
al domingo de Pascua. Realizar un programa que calcule esa fecha para los años
2003 y 2004.

48. Escribir un programa, en lenguaje C, que:

1º) Pida por teclado el resultado (dato entero) obtenido al lanzar un dado de seis
caras.
2º) Muestre por pantalla el número en letras (dato cadena) de la cara opuesta al
resultado obtenido.

Nota 1: En las caras opuestas de un dado de seis caras están los números: 1-6,
2-5 y 3-4.

Nota 2: Si el número del dado introducido es menor que 1 ó mayor que 6, se


mostrará el mensaje: "ERROR: Número incorrecto.".

49. En la siguiente tabla se muestra el número de camas de las habitaciones


de una casa rural, además de la planta donde está ubicada cada una de
ellas:

Escribir un programa, en lenguaje C, que:

1º) Muestre el listado de las habitaciones de la casa rural.


2º) Pida por teclado el número (dato entero) asociado a una habitación.
3º) Muestre por pantalla la planta y el número de camas de la habitación
seleccionada.

Nota: Si el número introducido por el usuario, no está asociado a ninguna


habitación, se mostrará el mensaje: "ERROR: <número> no está asociado a
ninguna habitación.".

50. Crear un programa que permita al usuario introducir, de uno en uno, cuantos
caracteres quiera. Es decir, después de introducir un carácter el programa
preguntará: otro (S/N)? y mientras el usuario elija “S” permitirle que siga
introduciendo nuevos caracteres de forma ilimitada. Pero en vez de caracteres
con números reales. Pero en vez de caracteres con números enteros. Pero en
vez de caracteres con cadenas de caracteres de hasta 50 caracteres (reservando
50 posiciones para cada cadena).

51. Realizar un programa en c, el cual ha de leer de un archivo 10 valores


numéricos y a continuación crear un vector en memoria de forma dinámica. Se ha
de solicitar un valor numérico por consola y multiplicar cada uno de los elementos
del vector por dicho valor numérico, una vez realizado todos los procesos cerrar
el archivo y liberar la memoria utilizada por el vector.

52. Crear un programa que abra un fichero llamado “prueba.txt” (previamente


creado con el block de notas y guardado en la misma carpeta donde este el
programa) y que muestre el contenido del mismo por pantalla carácter a carácter.

53. Crear un programa que abra un fichero llamado “prueba.txt” (previamente


creado con el block de notas y guardado en la misma carpeta donde este el
programa) y que muestre el contenido del mismo por pantalla pasando a
mayúscula los caracteres que estén en minúscula.

54. Crear un programa que cree un fichero llamado salidatexto.txt y permita al


usuario escribir en él todo el texto que desee. Dejará de introducir texto cuando
introduzca un asterisco “*”.

55. Crear un programa que abra un fichero llamado “prueba.txt” (previamente


creado con el block de notas y guardado en la misma carpeta donde este el
programa) y que muestre el contenido del mismo por pantalla por líneas y cada
línea con su número de línea.

56. Crear un programa capaz de copiar un fichero (word por ejemplo, o cualquier
otro tipo) en otro. El fichero creado se llamará “copia_de” y el nombre del archivo
a copiar. El fichero a copiar lo puede elegir el usuario, y si no existe debe tener la
opción de escribir otro nombre hasta que escriba el nombre de un fichero que
exista.
Nota: Para trabajar con ficheros es interesante configurar el explorador de
Windows para que no oculte las extensiones de los archivos para tipos de
archivos conocidos.
Esta opción suele encontrarse en Herramientas -> opciones de carpeta -> Ver.
Las extensiones de los archivos son usadas por el sistema operativo para poder
informar al usuario acerca del tipo de archivo de que se trata sin necesidad de
conocer lo que hay dentro. Si creamos un archivo con la extensión .doc por
ejemplo, lo etiquetará como un archivo de word, si le ponemos .pdf creerá que es
un pdf e intentará abrirlo con acrobat cuando hagamos doble clic, etc. Para
nuestras prácticas podemos inventar una extensión que esté sin utilizar, por
ejemplo .mio, así reconoceremos nuestros ficheros y los diferenciaremos del
resto.

57. Crear un programa para gestionar una agenda de clientes, para una empresa,
con los campos: “nombre (50 caracteres)”, “dirección (100 caracteres)”, “teléfono
(entero sin signo)”, “estado_pagos (float con signo)”. El estado de pagos será un
número negativo indicando la cantidad de dinero que debe el cliente.
El programa debe presentar al usuario un menú con las siguientes opciones:
a) Agregar cliente.
b) ver datos de todos los clientes.
c) Buscar clientes por teléfono. Esta opción pedirá al usuario el teléfono del
cliente deseado y mostrará los demás datos de dicho cliente por pantalla. Si
no lo encuentra, avisará de ello y volverá al menú principal.
d) Modificar los datos de un cliente y guardarlos de nuevo en el fichero.
e) Listar solamente los clientes con deudas (es decir, aquellos en los que
“estado_pagos” es menor que cero).
f) Borrar un cliente de la agenda.
El programa trabajará con un archivo (clientes.mio por ejemplo) que debe crear la
primera vez que se ejecute el programa.

58. Añadir al programa anterior la opción de trabajar con varias agendas. Al


iniciar el programa el usuario podrá elegir el nombre del fichero que quiere cargar.
En el menú del programa aparecerá la opción de cambiar de fichero de trabajo.
Esta opción serviría si el usuario tiene varias empresas o si quiere guardar los
datos de los clientes de distintas secciones en varias bases de datos, por
ejemplo.

59. Realizar un programa que permita guardar números en una lista. Debe tener
un menú con las opciones, añadir elemento e imprimir todos. Además debe tener
la posibilidad de buscar y eliminar un elemento de la lista.

60. Repetir el ejercicio anterior utilizando un árbol binario.

También podría gustarte