Ejercicios de programación

14
  Ejercicios de programación Pseudocó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

Transcript of Ejercicios de programación

Page 1: Ejercicios de programación

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

Page 2: Ejercicios de programación

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"

Page 3: Ejercicios de programación

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  

Page 4: Ejercicios de programación

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

Page 5: Ejercicios de programación

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 */  

Page 6: Ejercicios de programació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.  

Page 7: Ejercicios de programación

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

Page 8: Ejercicios de programación

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.

Page 9: Ejercicios de programación

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  

Page 10: Ejercicios de programación

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  

Page 11: Ejercicios de programación

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:  

Page 12: Ejercicios de programación

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  

Page 13: Ejercicios de programación

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

Page 14: Ejercicios de programación

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