Anda di halaman 1dari 15

Fundamentos de Programacin

Integrantes: Reinoso Daniel, Garcs Marcelo, Borja Patricio


NRC: 4388

Dada la siguiente instruccin:

Si A<B Entonces Si B<= C Entonces Proceso UNO Si C<>D


Entonces X 1 Caso Contrario X 2 Fin Proceso UNO
Caso _Contrario X 3 Caso Contrario X 4

Solucin: Reescribiendo.
Si A<B Entonces
Si B<= C Entonces
Proceso UNO
Si C<>D Entonces
X1
Caso Contrario
X2
Fin Proceso UNO
Caso _Contrario
X 3
Caso Contrario
X 4
Solucin: sin anidamiento.
Si A<B Entonces
Si B<= C Entonces
Proceso UNO
Si C<D Entonces
X1
Si C>D Entonces
X1
Caso Contrario
X2

Fundamentos de Programacin

Fin Proceso UNO


Caso _Contrario
X 3
Caso_contrario
X 4

- En la siguiente estructura verificar si hay condiciones redundantes o contradictorias,


si las hay, eliminarlas; y escribir a continuacin una estructura equivalente ms
simple.
Si A<B Entonces
Si C<D Entonces
X 1
Caso_contrario
Si A<C Entonces
Si B<D Entonces
X 2
Caso Contrario
X 3
Caso_contrario
Si A<D Entonces
Si B<C Entonces
X 4
Caso_contrario
X 5
Caso_contrario
X 6
Caso_contrario
X 7
Redundantes:
Si A<C Entonces
Si B<D Entonces
Caso_contrario
X 6
Caso_contrario
X 7

- Un distribuidor de material elctrico vende alambres en rollos de 500 y 300 y 75 m.


Crear un programa que ingrese la longitud total de mts que requiere el cliente y que
imprima el nmero de rollos de alambre 500, 300 y 75 y tambin los mts de alambre
faltantes.

Fundamentos de Programacin

Programa ALAMBRE;
Var
ROLLO NUMERO: Hilera;
LONGITUDIND, NROLLOS, NMETROS: Entero;
LONGITUDFIN: Real;
Inicia Alambre
Escribir (Ingrese el numero de rollos);
Leerysaltar (NROLLOS);
Escribir (Ingrese longitud individual de cada rollo.);
Leerysaltar (LONGITUDIND);
LONGITUDFIN NROLLOS *NMETROS;
Si LONGITUDFIN > 75 Entonces
LONGITUDFIN 75
Caso_contrario
Si LONGITUDFIN >300 Entonces
LONGITUDFIN 300
Si LONGITUDFIN > 500 Entonces
LONGITUDFIN 500
Escribirysaltar (El numero de rollos: , NROLLOS);
Escribirysaltar (Metros en rollo: , MROLLOS=;
Escribirysaltar (Longitud inicial :, LONGIND);
Escribirysaltar (Longitud Final: , LONGFIN, metros);
Fin Programa ALAMBRE..

-Una compaa ha decidido dar a sus mejores empleados un bono de gratificacin por
navidad. La compaa usa la siguiente frmula para determinar la gratificacin: se
resta 2/3 de las horas de ausencia a las horas extras trabajadas y se distribuye el
bono de acuerdo a la siguiente tabla:

Programa para bono de gravitacin segn condiciones:


PROGRAMA ALFA

Programa BONO;
Var
NOMBRE: Hilera;
SOBRET, HEXTRAS, HAUSENCIA: Entero;
GRAFITI: Real;
Inicia Bono
Escribir (Ingrese el nombre del empleado);

Fundamentos de Programacin

Leerysaltar (NOMBRE);
Escribir (Ingrese nmero de horas extras);
Leerysaltar (HEXTRAS);
Escribir (Ingrese nmero de horas de ausencia);
Leerysaltar (HAUSENCIA);
SOBRET REDONDEA (HEXTRAS -2/3 *HAUSENCIA);
Si SOBRET > 40 Entonces
GRATIFI 500
Caso_contrario
Si SOBRET>30 Entonces
GRATIFI400
Caso_contrario
Si SOBRET>20 Entonces
GRATIFI300
Caso_contrario
Si SOBRET>10 Entonces
GRATIFI200
Caso_contrario
Si SOBRET>0 Entonces
GRATIFII100
Caso_contrario
Si SOBRET <= 0 Entonces
GRATIFI0;
Escribirysaltar (El empleado: , NOMBRE);
Escribirysaltar (Ha trabajado: , HEXTRAS=;
Escribirysaltar (Tiene :, HAUSENCIA);
Escribirysaltar (Recibe: , GRATIFI, dlares);
Fin Programa BONO.

-Escribir un programa que encuentre y despliegue los nmeros primos entre uno y
cien. Un nmero primo es divisible entre el mismo y la unidad por lo tanto un numero
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

Fundamentos de Programacin

Res = cont mod primo


si res = 0 entonces
Div = div +1.
Fin si
Cont = cont +1.
Fin de Hacer mientras
si div<=2 entonces
imprimir primo
Fin si.
Primo = primo + 1.
Fin de Hacer mientras
Fin.

18. Realizar un programa que calcule los mltiplo ente 4 y n, donde n se


ingresa desde teclado.
Programa Mult_4Num;
Var
N, Tot, I: Entero
Tipo: Hilera
Inicio Programa Mult_4Num;
Repetir
Escribir (Ingrese el valor de N: );
Leerysaltar(N);
Hasta_que N>4;

Fundamentos de Programacin

Tot N;
I 1;
Repetir
Tot 4 + I;
Si (Tot MOD 4 = 0) entonces
Tipo Multiplo de Cuatro;
Casos_contrario
Si (Tot MOD 4 <> 0) Entonces
Tipo No es multiplo;
Hasta_que Tot = N;
Escribirysaltar(El numero mltiplo entre 4 y n es y es ,Tot,Tipo);
Fin Programa Mult_4Num;
21. Escriba un programa que calcule el n-esimo trmino de la serie.
Programa Secuceinci_Numeros;
Var
N, F1, F2; Entero
Inicio Programa Secuceinci_Numeros;
Repetir
Escribir(Ingrese el valor de N);
Leerysaltar(N);
Hasta_que N >= 3;
F1 1;
F2 2;
PARA i 2 a N HACER
Proceso CLCULO
F2 = F1 + F2;
F1 = F2 - F1;

Fundamentos de Programacin

Fin Proceso CLCULO


Escribirysaltar (El nuevo termino es:, F2);
Fin Programa Secuceinci_Numeros.
22. Realizar un programa que genere la serie Fibonacci hasta obtener N
trminos, donde N es un numero entero positivo ingresado por teclado.
Programa Fibo_nacci;
Var
x, y, z, cont: Entero
Inicio Programa Fibo_nacci;
X 0;
Y 1;
Escribir (Ingrese el valor de cont);
Leerysaltar (cont);
Para (cont1 a 20) Hacer
Proceso Clculo
z=x+y;
Escribirysaltar(El valor de z es,z);
x=y;
y=z;
Fin Proceso Clculo;
Escribirysaltar (El valor de z es,z)
Fin Programa Fibo_nacci.
31. Disear un programa que se ingrese el nombre el sueldo mensual de cada
empleado de una empresa, y que luego imprima el porcentaje de empleados
que:
-

Ganan ms de 1000 dlares al mes.


Ganan entre 500 y 1000 dlares al mes.
Ganan menos de 500 dlares al mes.

Indicando sueldo alto, sueldo medio y sueldo bajo, respectivamente.

Fundamentos de Programacin

Programa Sueldo;
Var
S, N, I: Entero;
Tipo, Nombre: Hilera;
Inicio Programa Sueldo;
Escribir(Ingrese el nmero de empleados a calcular);
Leerysaltar(N);
Para(I 0 a N) Hacer
Escribir(Ingrese el nombre del empleado);
Leerysaltar(Nombre);
Escribir(Ingrese el sueldo del empleado);
Leerysaltar(S);
Si (S>100) entonces {
Tipo Sueldo Alto;
}Caso_contrario
Si (S>=500 Y S<=100) entonces {
Tipo Sueldo Medio;
} Caso_contrario
Si (S<500) entonces {
Tipo Sueldo Bajo;
}
Escribirysaltar(El nombre es, su sueldo es y el tipo es,Nombre,S,Tipo)
Fin Programa Sueldo.
32. Realizar un programa que ingrese las notas de una materia de un curso
para determinar cuntas notas se encuentran de acuerdo al siguiente cuadro:
NOTA
18<= NOTA <=20
15<= NOTA <= 17

MENSAJE
Sobresaliente
Muy Buena

Fundamentos de Programacin

12<= NOTA <= 14


10<= NOTA <=11
0 <= NOTA <= 9
Otro rango

Buena
Regular
Deficiente
Fuera de Rango

Programa Calcular_notas
Var
n,n1,i: Entero
Inicio Programa Calcular_notas;
Escribir("ingrese cuantas notas va a ingresar");
Leerysaltar(n1);
Para(i0 a n1) Hacer
Escribir("ingrese las notas: ");
Leerysaltar (n);
Si (n>=18 && n <=20) entonces {
Escribirysaltar ("su nota es sobresaliente",n);
}Caso_contrario
Si (n>=15 && n<=17) entonces {
Escribirysaltar ("su nota es muy buena",n);
} Caso_contrario
Si (n>=12 && n<=14){
Escribirysaltar ("su nota es buena",n);
} Caso_contrario
Si (n>=10 && n<=11) entonces {
Escribirysaltar ("su nota es regular",n);
} Caso_contrario
Si (n>=0 && n<=9) entonces {
Escribirysaltar ("su nota es deficiente",n);

Fundamentos de Programacin

} Caso_contrario entonces {
Escribirysaltar ("su nota ingresada esta fuera de rango:",n);
}
Fin Programa Calcular_notas.
35. Escribir un programa que ingrese una hora de la siguiente forma:
HORA=? (*1<=enero<=59)
MINUTO=? (*1<=enero<=59)
SEGUNDO =? (*1<=enero<=59)
Validar la hora, crear un mensaje de error si no es correcta. Imprimir la hora
actual y la correspondiente al segundo siguiente. Considerar el fin del da, de a
hora y del minuto.
Programa HORA
Var
HORA, MINUTO, SEGUNDO: Entero;
FLAG: LOGICO;
INICIA

HORA

REPETIR
ESCRIBIR ( INGRESE HORA);
LEERYSALTAR(HORA);
SI(HORA>=1)Y(HORA<=59)ENTONCES
FLAGVERDADERO
CASO_CONTRARIO
PROCESO

MENSAJE1

FLAG FALSO<
ESCRIBIRYSALTAR(ERROR,1<=HORA<=59)
FIN PROCESO MENSAJE1
HASTA_QUE FLAG= VERDADERO;
REPETIR

Fundamentos de Programacin

ESCRIBIR ( INGRESE MINUTO);


LEERYSALTAR(MINUTO);
SI(MINUTO>=1)Y(MINUTO<=59)ENTONCES
FLAGVERDADERO
CASO_CONTRARIO
PROCESO

MENSAJE2

FLAG FALSO
ESCRIBIRYSALTAR(ERROR,1<=MINUTO<=59)
FIN PROCESO MENSAJE2
REPETIR
ESCRIBIR ( INGRESE SEGUNDO);
LEERYSALTAR(SEGUNDO);
SI(SEGUNDO>=1)Y(SEGUNDO<=59)ENTONCES
FLAGVERDADERO
CASO_CONTRARIO
PROCESO

MENSAJE3

FLAG FALSO
ESCRIBIRYSALTAR(ERROR,1<=SEGUNDO<=59)
FIN PROCESO MENSAJE3
ESCRIBIRYSALTAR (HORA ACTUAL ES: HORA,/, MINUT,/,SEGUNDO);

37. Imprimir todos los nmeros primos desde el 1 hasta un numero N


ingresado. Un numero primo es el que se divide para 1 y para si mismo.
Programa NumPrimo
VAR
Numero, Coeficiete, Divisor;Entero
Inicia NumPrimo

Fundamentos de Programacin

ESCRIBIR ( INGRESE NUMERO);


LEERYSALTAR(NUMERO);
SI (NUMERO <=0) ENTONCES
ESCRIBIRYSALTAR ( NO ES NUMERO PRIMO )
CASO_CONTRARIO
Si (Numero >=0)Entonces
(Coeficiente=1)Y(Divisor=0)
Si (Coeficente <=Numero)Entonces
Si ( Numero DIV Coficiente=0) Verdadero
Divisor +1
Caso_Contrario
Coeficiente + 1
Caso_Contrario
EscribirySaltar ( Si es numero primo)

43.- Realizar un programa que lea una serie de N datos que representan el
peso de un grupo de nios internados en el hospital Vaca Ortiz y que
confeccione la siguiente tabla:
Entre 0.000 y 10.000KG hay7.. Nios
Entre 10.001 y 20.000KG hay 2.. nios
Entre 20.001 y 30.000KG hay 1.. nios
De mas de 30.000KG

hay2..niios

Luego el programa debe determinar el promedio de los pesos de los nios de


acuerdo a la tabla anterior y el promedio total. Si el promedio de un grupo de
nios es menor al promedio total, imprimir un mensaje Observacion.
Programa Peso
Var

Fundamentos de Programacin

Nios: Entero
Inicia Peso
Inicia_proceso Grupo1
Si (nios<=0.000)Y(nios>=10.000)Entonces
Pertenece al Grupo 1
Sum (Elementos de grupo 1) Div (Numero total de elementos)
Escribirysaltar ( PromedioGrupo1)
Termina_proceso Grupo1
Caso_Contrario
Inicia_proceso Grupo2
Si (nios<=10.001)Y(nios>=20.000)Entonces
Pertenece al Grupo 2
Sum (Elementos de grupo 2) Div (Numero total de elementos)
Escribirysaltar ( PromedioGrupo2)
Termina_proceso Grupo2
Caso_Contrario
Inicia_proceso Grupo3
Si (nios<=20.001)Y(nios>=30.000)Entonces
Pertenece al Grupo 3
Sum (Elementos de grupo 3) Div (Numero total de elementos)
Escribirysaltar ( PromedioGrupo3)
Termina_proceso Grupo3
Caso_Contrario
Inicia_proceso Grupo4
Si (nios>=30.000)Entonces
Pertenece al Grupo 4
Sum (Elementos de grupo 4) Div (Numero total de elementos)

Fundamentos de Programacin

Escribirysaltar ( PromedioGrupo4)
Termina_proceso Grupo4
Inicia Promtotal
SUM (PromedioGrupo1; PromedioGrupo4; PromedioGrupo3; PromedioGrupo4)
DIV (4)
Si(PromedioGrupo1; PromedioGrupo4; PromedioGrupo3; PromedioGrupo4 <=
Promtotal)
Escribirysaltar (Observacion)
Caso_Contrario
Escribirysaltar (Promedio Total)

45.- El equipo de futbol L.D.U ha tenido una buena campaa y desea premiar a
sus jugadores con un aumento de salario en la siguiente temporada. Los
sueldos sern ajsutados de la siguiente forma:
SUELDO ACTUAL
0-900
901-1.300
1.301-1.800
SOBRE 1.800

AUMENTO
20
10
5
NADA

Disear un programa que lea el nombre del jugador y su salario actual y que a
continuacin imprima el nombre, el sueldo actual y el sueldo aumentado.
Tambin, al final de la lista debe proporcionar el monto total de la nmina actual
y el monto total de la nueva nomina que incluye los aumentos mencionados.
Considerar que el equipo tiene como mximo un cuadro de 30 jugadores.
Programa SalarioLDU
VAR
NombreJugador; Hilera

Fundamentos de Programacin

SueldoActual,Sueldoaumentado; Entero
Inicia SalarioLDU
Si (Sueldoactual<=0)Y(Sueldoactual>=900)Entonces
Sum(Sueldoactual+20)
Caso_contrario
Si (Sueldoactual<=900.1)Y(Sueldoactual>=1300)Entonces
Sum(Sueldoactual+10)
Caso_contrario
Si (Sueldoactual<=1301)Y(Sueldoactual>=1800)Entonces
Sum(Sueldoactual+5)
Caso_contrario
Si (Sueldoactual>=1801)Entonces
No se aumenta
Inicia SumaSueldo
Sum(SueldoActual de las 30 personas)
Escribirysaltar (Total sin aumento)
Termina SumaSueldo
Inicia SumaSueldoAumento
Sum(Sueldoactual+20, Sueldoactual+10, Sueldoactual+5)
Escribirysaltar (Total coN aumento)
Termina SumaSueldoaUMENTO

Anda mungkin juga menyukai