Вы находитесь на странице: 1из 11

UNIVERSIDAD NACIONAL DE INGENIERIA

Facultad de Ingeniería Industrial y de Sistemas


Curso : Algoritmo y Estructura de Datos
Docente : Mg. Córdova Neri Teodoro
Problemas

Debe Ud. Implementarlo en PseInt y luego indicar que procesos hace cada
problema

1.- lee n alumnos y por alumno prácticas, luego lista: las practicas concatenadas,
Aprobados o Desaprobados
Proceso notas_alumnos
Definir n,pc,aprob,desaprob,i,j Como Entero;
Escribir "Ingrese la cantidad de alumnos en el aula.";
Repetir
leer n;
si n<4 entonces
Escribir "Ingrese de nuevo la cantidad de alumnos que mìnimo es 4.";
FinSi
Hasta Que n>=4
i<-0;
mientras i<n hacer
aprob<-0;
desaprob<-0;
para j<-1 hasta 4 hacer
Escribir "Ingrese la nota de la pràctica ",j," si el alumno no se

presentò digite 0";


Repetir
leer pc;
si n<0 o n>20 Entonces

Escribir "Ingrese de nuevo la nota de la pràctica ",j;


FinSi
Hasta Que 0<=n y n<=20
si pc>9 entonces
aprob<-100*aprob+pc;
Sino
desaprob<-10*desaprob+pc;
FinSi
FinPara
Escribir "Nùmero aprobado: ",aprob;
Escribir "Nùmero desaprobado: ",desaprob;
i<-i+1;
FinMientras
FinProceso.

2.- leer 3 numeros y mostrar: el minimo, el mayor y el medio


Proceso maximo_minimo
definir maximo, minimo, a,b,c,medio como enteros;
escribir "Ingrese a = ";leer a;sin saltar;
escribir "Ingrese b = ";leer b;sin saltar;
escribir "Ingrese c = ";leer c;sin saltar;
minimo<-a;
maximo<-a;
si(b>maximo) entonces
maximo<-b;
FinSi
si(c>maximo) entonces
maximo<-c;
FinSi
si (b<minimo ) entonces
minimo<-b;
FinSi
si(c<minimo) Entonces
minimo<-c;
FinSi
medio<-(a+b+c)-(minimo+maximo);
escribir " El maximo es = ",maximo;
escribir " El minimo es = ",minimo;
escribir " El medio es = ",medio;
FinProceso

3.- programa para sumar serie, se debe definir intervalo donde se realiza la suma

Proceso serie_Desde

Definir n,i,acum,aux,ldi,ldd Como Entero;


acum<-0;
escribir " desde donde va a sumar..?";leer ldi; sin saltar;
escribir "hasta doonde va a sumar..?";leer ldd; sin saltar;

//PARA NO HACER EL SI, EL INTERCAMBIO BASTA VALIDA LA


LECTURA
//mi contador mes LEIDO.....
si(ldi<=ldd) entonces
escribir "Su intervalo es correcto sumare..";
para ldi<-1 hasta ldd hacer
acum<-acum+ ldi^(ldi+1);
finpara
escribir "Suma desde =",acum;
Sino

escribir "Su intervalo es incorrecto sera ordenado..";


aux<-ldi;
ldi<-ldd;
ldd<-aux;
para ldi<-1 hasta ldd hacer
acum<-acum+ldi^(ldi+1);
finpara
escribir "Suma desde =",acum;
FinSi
FinProceso

4.- convertir número a binario

roceso Ejercicio05
Definir n, aux, r, b, i, op Como Entero;

Repetir
Limpiar Pantalla;
Escribir "Programa que convierte un numero Decimal a Binario";
Escribir "--------------------------------------------------";

Repetir
Escribir " Ingrese numero = "; Leer n; sin bajar;
Si (n<=0) Entonces
Escribir "Valor no valido.";
FinSi
Hasta Que (n>0)

Escribir " Descomposición de ",n," en Binario = ";


aux<-n;
b<-0; i<-0;
Mientras (aux>0) Hacer
r <- aux%2;
Escribir " ",r;
b <- b+r*10^i;
i <- i+1;
aux <- trunc(aux/2);
FinMientras

Escribir " Binario = ",b; Escribir "";


Escribir "Desea continuar..? (Presione 1): "; Leer op; sin bajar;
Hasta Que (op<>1)

FinProceso

5.- leer un número con k cifras y luego formar el número que represente el dato
mayor
Proceso sin_titulo
definir n, a,b,c,mayor,res,nv como enteros;
definir resp como caracter;
nv<-0;
Repetir
nv<-nv+1; escribir " ";
Escribir " Proceso # : ",nv;
Escribir "----------------------------------------";
escribir " ";
Repetir
Escribir " Sr. ingrese n = "; Leer n;sin bajar;
escribir " ";
Hasta Que n>=100 & n<1000
a<-trunc(n/100);
res<-(n%100);
b<-trunc(res/10);
c<-res%10;
Si a>b & a>c Entonces
Si b>c Entonces
mayor<-a*100+b*10+c;
Sino
mayor<-a*100+c*10+b;
FinSi
Sino
Si b>a & b>c Entonces
Si a>c Entonces
mayor<-b*100+a*10+c;
Sino
mayor<-b*100+c*10+a;
FinSi
Sino
Si b>a Entonces
mayor<-c*100+b*10+a;
Sino
mayor<-c*100+a*10+b;
FinSi
FinSi
FinSi
Escribir " El mayor numeroformado = ",mayor;
escribir " ";
Escribir "----------------------------------------";
Escribir " Sr. desea continuar...? (S/N)==>"; Leer resp;sin
bajar;
hasta que resp!='S'

FinProceso
6.- programa que muestra un menú de opción:

Escribir " -------------------------";


Escribir " <1> Invertir Número ";
Escribir " <2> Suma de Cuadrados ";
Escribir " <3> Promedio de edades ";
Escribir " <4> Salir ";
Escribir " -------------------------";
Luego implementar cada opción
Procedso menu
Definir n, d, inv, aux, cb, cop, opc, a, b, num, t, n1, n2, i, ed, sed, ns, cop1
como entero;
Definir pro como real;
Definir resp, opc2, opc3, opcf como caracter;

opcf <-'S';
Mientras (opcf ='s' o opcf='S') hacer
Limpiar Pantalla;
Escribir "";
Escribir " MENÚ DE OPERACIONES";
Escribir " -------------------------";
Escribir "";

Escribir " -------------------------";


Escribir " <1> Invertir Número ";
Escribir " <2> Suma de Cuadrados ";
Escribir " <3> Promedio de edades ";
Escribir " <4> Salir ";
Escribir " -------------------------";
Escribir "";
Escribir " <Edite opción> ==> "; leer opc; sin saltar;

Segun opc Hacer


1: inv <-0;
resp<-'S';
cop<-0;
Mientras resp =='S'o resp=='s' hacer
Limpiar Pantalla;
cop<-cop+1; //Contador de numero de
procesos
Escribir "";
Escribir "Ud. está en la operación número: ",
cop;
Escribir " INVERTIR NÚMERO";
Escribir "--------------------------";
Escribir "";

Escribir "Ingrese n= "; leer n; sin saltar;


aux<- n;//saco una copia
cb<-0;
Mientras aux>0 Hacer
cb <-cb+1;

d<- aux%10;
inv <- inv*10+d;
aux<-trunc(aux/10);

FinMientras

Escribir "";
Escribir "Número: ",n;
Escribir "Número Invertido =", inv;
inv <-0;
Escribir "Cantidad de bucles realizados= ", cb;
//Numero de veces que se paso por el bucle para dar un resultado
Escribir "";
Escribir "Sr. ¿Desea continuar? (S/N)==> ";
leer resp; sin bajar;
FinMientras

Limpiar Pantalla;
Escribir "Gracias.";

2: opc2 <-'S';
cop1<-0;
Mientras opc2='S' o opc2='s' hacer
Limpiar Pantalla;
cop1<-cop1+1;
Escribir "";
Escribir "Ud. está en la operación número: ",
cop1;
Escribir " SUMA DE CUADRADOS";
Escribir "-------------------------------------------";
Escribir "";
Escribir "Ingrese Número= "; leer num; sin
saltar;

t<-0;
a<-1;
Mientras (a<=num) hacer
b<-0;
Mientras (b<=num) hacer
n1<-a^2+b^2;
si n1==num y a<=b entonces
t<-t+1;
Escribir "";
Escribir t,".-", num, " =
",a,"^2 + ", b, "^2 , ", a,"<=",b;
FinSi

b<-b+1;
FinMientras

a<-a+1;
FinMientras

Escribir "";
Escribir "Total de formas = ",t;
Escribir "¿Desea continuar? (S/N)==>"; leer
opc2; sin bajar;
FinMientras

Limpiar Pantalla;
Escribir "Gracias.";

3: ns<-0;
opc3<-'S';
Mientras opc3='s' o opc3= 'S' hacer
Limpiar Pantalla;
ns<-ns+1;
Escribir "Número de Sección: ", ns;
Escribir "";
Escribir " PROMEDIO DE EDADES DE
SECCIÓN";
Escribir "-----------------------------------";
Escribir "";
Escribir "Ingrese total de alumnos: "; leer n2;
sin saltar;

i<-1;
sed<-0;
Mientras (i<=n2) Hacer
Escribir "Edad ", i, ".-"; leer ed; sin saltar;
sed<-sed+ed;

i<-i+1;
FinMientras
Escribir "";
Escribir "La suma de edades = ", sed;
pro<- trunc(sed/n2);
Escribir "Promedio de edades = ", pro;
Escribir "";
Escribir "¿Desea continuar con otra sección?
(S/N)==>"; leer opc3; sin saltar;
FinMientras

Limpiar Pantalla;
Escribir "";
Escribir "Gracias.";

4: Limpiar Pantalla;
Escribir "";
Escribir "Vuelva pronto.";

De Otro Modo:
Limpiar Pantalla;
Escribir "";
Escribir "Sr. su opción no existe.";
FinSegun
Escribir "";
Escribir "----------------------------------------------";
Escribir "";
Escribir "¿Desea volver al Menú Principal? (S/N)==>"; leer opcf; sin
saltar;
FinMientras

FinProceso

8.- problema de Admision. Ver guía

Proceso Admision
definir Sec_notas,codigo, t,k, mod11,sum,j,i,n como enteros;
definir fac, cont_sist,cont_ind,cont_quim,cont_amb, cont,nota,notas,nno
como enteros;
notas<-0;nno<-0;
Sec_notas<-0;cont_sist<-0;cont_ind<-0;cont_quim<- 0;cont_amb<-
0;cont<-0;
escribir " SISTEMA DE EXAMEN DE ADMISION 2016 ";
escribir " FACULTADES : S:1, I:2, Q:3, A:4 ";
Escribir "--------------------------------------------";
escribir "Ingrese numero de apostulantes = ";leer n;sin saltar;
para i<-1 hasta n hacer
escribir "Ingrese Facultad = "; leer fac; sin saltar;
para j<-1 hasta 3 hacer
escribir "Ingrese 3 notas:"; leer nota;sin saltar;
Sec_notas<-sec_notas+nota*100^nno;
nno<-nno+1;
si (nota >10) Entonces
cont<-cont+1; // cuento las notas aprobadas
FinSi
finpara
escribir "Notas Ingresadas = ",sec_notas;
sec_notas<-0; nno<-0;
si (cont>=2) entonces
escribir "";
escribir " Alumno ADMITIDO en Facultad << ",fac, " >> " ;
escribir "";
segun (fac) hacer
1:cont_sist<-cont_sist+1;
2:cont_ind<-cont_ind+1;
3:cont_quim<-cont_quim+1;
4: cont_amb<-cont_amb+1;
FinSegun
cont<-0;
sino
escribir " Alumno RECHAZADO en Facultad << ",fac;;
FinSi //fin if cont>=2
FinPara
escribir "";
escribir " Los ingresantes por Facultad son : ";

escribir" Sistemas = ",cont_sist;


escribir" Industriales = ",cont_ind;
escribir" Quimica = ",cont_quim;
escribir" Ambientales = ",cont_amb;
cont_sist<-0;cont_ind<-0;cont_quim<- 0;cont_amb<-0;
FinProceso

9.- Sistema Banco, pago con tarjeta E, V , M..

Proceso Banco
definir tipoTarjeta Como Caracter;
definir ValorCompra, recarga,totalPagar como real;
escribir " SISTEMA DE VENTAS ";
escribir " --------------------------";
escribir " ( Se acepta Tarjetas E, V, M ) ";
escribir " Ingrese Valor de Compra = S/."; leer valorCompra; sin saltar;
escribir " Ingrese tipo de tarjeta = "; leer tipoTarjeta; sin saltar;
si tipoTarjeta =='E' o tipoTarjeta =='e' Entonces
recarga<-0;
totalPagar<-valorCompra+recarga;
escribir " Monto a cancelar con tarjeta Electron = S/.",totalPagar;
Sino
si(tipoTarjeta =='V' o tipoTarjeta =='v') entonces
recarga<-valorCompra*0.05;
totalPagar<-valorCompra+recarga;
escribir " Monto a cancelar con tarjeta Visa =
S/.",totalPagar;
Sino
si(tipoTarjeta =='M' o tipoTarjeta =='m') entonces
recarga<-valorCompra*0.07;;
totalPagar<-valorCompra+recarga;
escribir " Monto a Cancedlar con tarjeta
Mastercard = S/.",totalPagar;
escribir "-------------------------------------------------
-----------------";
FinSi
FinSi
FinSi
FinProceso

10.- Programa para leer notas y luego mostrar;


Secuencia de notas ingresadas
Menor Nota = "
Poscion = "
Promedio = "

Algoritmo While_alumnos
definir pc,i,n,secN,men,pos, sumap como enteros;
sumap<-0;

definir prom como real;


ESCRIBIR " MODULO DE NOTAS ";
ESCRIBIR "";
escribir "Ingrese total de practicas = ";leer n; sin saltar;
i<-1;
secN<-0;
pos<-0;
men<-20;
mientras i<=n hacer
escribir "pc[",i,"]="; leer pc;sin saltar;
secN<-secN*100+pc;

si pc < men entonces


men<-pc;

FinSi
sumap<-sumap+pc;
i<-i+1;
finmientras
Esperar Tecla;
Limpiar Pantalla;
escribir " REPORTES PROMEDIO ";
escribir "----------------------------";
escribir " Notas = ",secN;
escribir " Menor Nota = ",men;
escribir " Poscion = ",pos;
escribir " Promedio = ",(sumap-men)/(n-1);
escribir "";

FinAlgoritmo

Вам также может понравиться