Post on 12-Jul-2015
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 1/14
Ejercicios deprogramaciónPseudocódigos
Algunos pseudocódigos de unos problemas , la solución de estos depende de su
algoritmo o bien pseudocódigo.
2011
CARLOS VENTURA AYER, SALGADO LOPEZ IVAN 1 “E”
UNIVERSIDAD POLITECNICA DE MORELOS
01/01/2011
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 2/14
LOGICA DE PROGRAMACION Página 2
CALCULANDO EL FACTORIAL.
#include<stdio.h>
int factorial(int n) { if(n<2)
return 1; else
return n * factorial(n-1); } int main() { int num=0; printf("::CALCULAR FACTORIAL:: \n");
printf("Introduce un numero: ");scanf("%i",&num); //Pedir variable num printf(" \tEl resultado es: %i \n", factorial(num)); //Llama la funcion e imprimeresultado return 0;
}
El caso base es que cuando n valga 1 o 0 retorna un 1, de lo contrario retorna lamultiplicación de n * el factorial del numero anterior n-1. Supongamos queintroducimos el número 3, cuyo factorial es 6 (3*2*1 = 6 ).
1. n=3 No entra al caso base. Guardamos para después la operación 3 *
factorial(2)2. n=2 No entra al caso base. Guardamos para después la operación 2 *factorial(1)
3. n=1 Entra al caso base. Retorna 1, por lo tanto factorial(1) = 14. Hacemos la última operación que guardamos 2 * factorial(1) = 2 * 1 = 2, por
lo tanto factorial(2) = 25. Hacemos la siguiente operación que guardamos 3 * factorial(2) = 3 * 2 = 66. El factorial es 6
UN AÑO ES BISIESTO
Escribir un algoritmo que determine si un año es bisiesto. Un año es bisiesto si esmúltiplo de 4 (por ejemplo 1984). Los años múltiplos de 100 no son bisiestos,salvo si ellos son también múltiplos de 400 (2000 es bisiesto, pero; 1800 no lo es).
InicioAño, B : enteroLeer "Año"Si (B mod 4000 = 0) entonces
Mostrar "Año es bisiesto"
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 3/14
LOGICA DE PROGRAMACION Página 3
Fin_SiSi (B mod 100 = 0) entonces
Mostrar "Año no es bisiesto"
Fin_SiSi (B mod 4 = 0) entoncesMostrar "Año es bisiesto"
SinoMostrar "Año no es bisiesto"
Fin_SiFinNUMERO MAYOR O MENOR DE 5 NUMEROS DE UNA LISTA
cinco numeros que vamos introduciendo por teclado.
PROGRAMA mayor_menor
ENTORNO:
con <- 0
n <- 0
maximo <- 0
minimo <- 99999
ALGORITMO:
Borrar_pantalla( )
MIENTRAS con <= 5 HACER
ESCRIBIR "N£mero: "
LEER n
SI n > maximo ENTONCES
maximo = n
FINSI
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 4/14
LOGICA DE PROGRAMACION Página 4
SI n < minimo ENTONCES
minimo <- n
FINSI
con <- con + 1
FINMIENTRAS
ESCRIBIR "El mayor de los n£meros es: "
ESCRIBIR maximo
ESCRIBIR "El menor de los n£meros es: "
ESCRIBIR minimo
FINPROGRAMA
Solicitar enpantalla un número menor a 100. Partiendo de 0 imprimir en pantallatodos los números en forma ascendente hasta llegar al número introducido. Nota:Utilizar operador booleano.
ProgramaContadorAscendente
*****//Imprimirnúmerode1an
*****
Inicio
DeclaraxContadornint
Borrar_pantall()
Entorno
Imprime"IntroducirValor:"
LeerxContador
sixContador>100ORxContador=0
irainicio
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 5/14
LOGICA DE PROGRAMACION Página 5
fin_si
//ValoraincrementarhastallegaraxContador
xC=1
hacer_mientrasxcontador=Xc
imprimir"Números:"xC
xC=xC++
fin_mientra
simprimir"Números:"xC
fin_programa
AÑO ROMANO:
ENTERO: R, I, N;
ALGORITMO
LEER (“Introduce un numero menor de 5000 para pasar a romano: “, N);
MIENTRAS (N >= 5000) HACER
LEER (“Error - Introduzca un numero menor de 5000: “, N);
FIN_MIENTRAS
SI (N>= 1000) ENTONCES
R= N MOD 1000; /* MOD = Resto de la división */
N= N DIV 1000; /* DIV = Cociente de la división */
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 6/14
LOGICA DE PROGRAMACION Página 6
PARA I=0 HASTA I=N HACER
ESCRIBIR (“M”);
FIN_PARA
FIN_SI
N = R; /* Seguimos trabajando con el resto */
SI (N>=500) ENTONCES
R = N MOD 500;
N = N DIV 500;
PARA I=0 HASTA I=N HACER
ESCRIBIR (“D”);
FIN_PARA
FIN_SI
N = R;
… /* Repetimos este proceso */
Realice un Pseudocódigo que calcule la nómina salarial neto, de unos obreros cuyo trabajo se paga en horas. El cálculo se realiza de la siguiente forma:
- Las primeras 35 horas a una tarifa fija.
- Las horas extras se pagan a 1.5 más de la tarifa fija.
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 7/14
LOGICA DE PROGRAMACION Página 7
- Los impuestos a deducir de los trabajadores varian, segun el sueldo mensual si el sueldo es menos a $20,000.00 el sueldo es libre de impuesto y si es al contrario se cobrará un 20% de impuesto.
Inicio
Canstante Tarifa= 50.
Variables Horas, Sueldo, dif_horas, tarifa_extra, Salario_extra, Sueldo_mes,Impuesto, Sueldo_total.
Imprimir "Introduce las Horas de Trabajo ==> "
Leer Horas.
Si Horas <= 35 entonces
Sueldo= horas * tarifa.
Sino
Dif_horas= Horas - 35
tarifa_extra=(tarifa * 1.5)
Salario_exta= tarifa_extra * Dif_horas
Sueldo=(35*tarifa)+ salario_extra.
Sueldo_mes = sueldo * 4
Impuesto=0
Si sueldo_mes > 20000 entonces
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 8/14
LOGICA DE PROGRAMACION Página 8
Impuesto = (Sueldo_mes* 0.20)
Salario_total = Sueldo_mes - Impuesto
Imprimir "Tu sueldo al mes es: ", sueldo_mes,"Valor de Impuesto: ", Impuesto," El salario Neto es: ",Salario_total.
sino
Imprimir "Tu sueldo Neto es: ", sueldo_mes.
Fin.
Escribir un Pseudocódigo que encuentre y despliegue los números primos entre
uno y cien. Un número primo es divisible entre el mismo y la unidad por lo tanto unnumero primo no puede ser par excepto el dos (2).
Inicio
Variables primo, cont, div, res.
Primo = 1.
Hacer mientras primo<=100
Div =0.
Cont =1.
Hacer Mientras cont <= primo
Res = cont mod primo
si res = 0 entonces
Div = div +1.
Fin si
Cont = cont +1.
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 9/14
LOGICA DE PROGRAMACION Página 9
Fin de Hacer mientras
si div<=2 entonces
imprimir primo
Fin si.
Primo = primo + 1.
Fin de Hacer mientras
Fin.
Hacer un pseudocodigo que imprima los numeros del 1 al 100. Que calcule la
suma de todos los numeros pares por un lado, y por otro, la de todos los
impares.
PROGRAMA par_impar
ENTORNO:
i <- 1
sumapar <- 0
sumaimp <- 0
ALGORITMO:
Borrar_pantalla( )
MIENTRAS i < 101 HACER
SI i = int( i / 2 ) * 2 ENTONCES
sumapar <- sumapar + i
SINO
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 10/14
LOGICA DE PROGRAMACION Página 10
sumaimp <- sumaimp + i
FINSI
i <- i + 1
FINMIENTRAS
ESCRIBIR "La suma de los pares es: "
ESCRIBIR sumapar
ESCRIBIR "La suma de los impares es: "
ESCRIBIR sumaimp
FINPROGRAMA
-Realizar la tabla de multiplicar de un numero entre 0 y 10.
PROGRAMA tabla
ENTORNO:
num <- -1
ALGORITMO:
HACER Numero
Borrar_pantalla( )
EN 5,10 ESCRIBIR "Tabla de multiplicar del n£mero: "
EN 5,40 LEER num
i <- 0
fi <- 8
MIENTRAS i <= 10 HACER
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 11/14
LOGICA DE PROGRAMACION Página 11
EN fi,15 ESCRIBIR num
EN fi,19 ESCRIBIR " * "
EN fi,23 ESCRIBIR i
EN fi,25 ESCRIBIR " = "
EN fi,29 ESCRIBIR num * i
fi <- fi + 1
i <- i + 1
FINMIENTRAS
FINPROGRAMA
------------------------------
SUBPROGRAMA Numero
MIENTRAS num < 0 HACER
Borrar_pantalla( )
EN 10,25 ESCRIBIR "N£mero: "
EN 10,33 LEER num
FINMIENTRAS
FINSUBPROGRAMA
Simular cien tiradas de dos dados y contar las veces que entre los dos
suman 10.
PROGRAMA dado
ENTORNO:
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 12/14
LOGICA DE PROGRAMACION Página 12
c <- 0
i <- 0
ALGORITMO:
Borrar_pantalla( )
MIENTRAS i < 101 HACER
SI Int( Rnd( ) * 6 ) + Int( Rnd( ) * 6 ) + 2 = 10 ENTONCES
c <- c + 1
FINSI
i <- i + 1
FINMIENTRAS
EN 10,20 ESCRIBIR "Las veces que suman 10 son: "
EN 10,48 ESCRIBIR c
FINPROGRAMA
PROGRAMA caballos
ENTORNO:
dibujo <- "****"
col1 <- 4
col2 <- 4
ALGORITMO:
Borrar_pantalla( )
EN 10,col1 ESCRIBIR dibujo
EN 10,col2 ESCRIBIR dibujo
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 13/14
LOGICA DE PROGRAMACION Página 13
MIENTRAS col1 <= 75 Y col2 <= 75 HACER
SI Rnd( ) <= 0.5 ENTONCES
EN 10,col1 ESCRIBIR Espacios( 4 )
col1 <- col1 + 4
EN 10,col1 ESCRIBIR dibujo
SINO
EN 12,col2 ESCRIBIR Espacios( 4 )
col2 <- col2 + 4
EN 12,col2 ESCRIBIR dibujo
FINSI
FINMIENTRAS
EN 16,20 ESCRIBIR "El ganador es el caballo n£mero: "
SI col1 >= 75 ENTONCES
EN 16,54 ESCRIBIR "1"
SINO
EN 16,54 ESCRIBIR "2"
FINSI
FINPROGRAMA
Algoritmo búsqueda:
procedure busca() // Busca un valor en el arreglo y si no lo encuentra regresa elvalor más próximo encontrado
Declara arreglo tabla[10]int elem = 0 // Elemento de búsqueda
// Elementos del Arreglo
5/12/2018 Ejercicios de programaci n - slidepdf.com
http://slidepdf.com/reader/full/ejercicios-de-programacion-55a2382f95cad 14/14
LOGICA DE PROGRAMACION Página 14
tabla[1]=10tabla[2]=20tabla[3]=30
tabla[4]=40tabla[5]=50tabla[6]=60tabla[7]=70tabla[8]=80tabla[9]=90tabla[10]=100
leer elem // Elemento de búsqueda
inf = 1 // Variable a incrementar (La Variable inf cambia de valor conforme se
divide la busqueda)tam = len(tabla) // Tamaño del Arreglo (La Variable cambia de valor conforme sedivide la busqueda)
medio = int((inf+tam)/2) // Punto medio para dividir la busqueda
Hacerlo mientras Tam > Inf Y tabla[medio] <> elem // Mientras sea diferentesignifica que aun no encuentra el valor a buscar.
SI elem < tabla[medio]tam=medio-1
Otroinf=medio+1
FinSiFinMientras
?"El Valor se encontró en el indice: ", medio?"Valor Proximo encontrado:",tabla[medio]
Return