Está en la página 1de 17

“Diseño de algoritmos”

Análisis del problema, Algoritmo en Pseint, Diagramas

clásico y Nassi Shneiderman y resultados

Por:

Alfredo Nolazco Rivas

Desarrollo de sistemas de información


Curso: Algoritmo y Estructuras de datos

Profesor, Mg. Jaime Jaramillo Moreno


1. Diseñe un pseudocódigo para convertir una longitud dada en metros a sus equivalentes
en centímetros, pies, pulgadas y yardas. Considere que: 1 metro = 100 centímetros, 1
pulgada = 2.54 centímetros, 1 pie = 12 pulgadas, 1 yarda = 3 pies.

Análisis del problema

Entrada Salidas
Metros Centimetros Pulgadas Pies Yardas
10 1000.00 393.70 32.81 10.94
15 1500.00 590.55 49.21 16.40
20 2000.00 787.40 65.62 21.87
50 5000.00 1968.50 164.04 54.68
100 10000.00 3937.01 328.08 109.36

Algoritmo en Pseint

Proceso ConvertirUnidadesLongitud

// Definicion de variables

Definir LongitudMetros Como Real;

Definir LongitudCentimetros, LongitudPulgadas, LongitdPies, LongitudYardas Como Real

//Captura de la Longitud en Metros

Escribir "Ingrese la longitud en Metros: ";

Leer LongitudMetros;

// Conversión según equivalencias

LongitudCentimetros = LongitudMetros*100;

LongitudPulgadas = LongitudCentimetros/2.54;

LongitudPies = LongitudPulgadas/12;

LongitudYardas = LongitudPies/3;

//Reporte de conversion

Escribir ConvertirATexto(LongitudMetros) + " Metros = " + ConvertirATexto(LongitudCentimetros) + " Centimetros";

Escribir ConvertirATexto(LongitudMetros) + " Metros = " + ConvertirATexto(LongitudPulgadas) + " Pulgadas";

Escribir ConvertirATexto(LongitudMetros) + " Metros = " + ConvertirATexto(LongitudPies) + " Pies";

Escribir ConvertirATexto(LongitudMetros) + " Metros = " + ConvertirATexto(LongitudYardas) + " Yardas";

FinProceso
Diagramas de flujo clásico y Nassi-Shneiderman

Resultados
2. Una institución benéfica europea ha recibido tres donaciones en soles, dolares y euros. La
donación será repartida en tres rubros: 70% para la implementación de un centro de
salud, 20% para un comedor de niños y el resto para gastos administrativos. Diseñe un
algoritmo que determine el monto en euros que le corresponde a cada rubro. Considere
que: 1 dólar = 3.52 soles, 1 dólar = 2.08 libras, 1 dólar = 1.07 euros.

Análisis del problema

Entradas Salidas (Euros)


Centro Salud Comedor Gastos
Soles Dolares Euros
(70%) Niños (20%) Administrativos (10%)
1000 1000 1000 1661.78 474.80 237.40
3000 3000 5000 6385.35 1824.39 912.19
10000 5000 2000 7272.84 2077.95 1038.98
20000 10000 3000 13845.68 3955.91 1977.95
4000 1000 5000 5100.14 1457.18 728.59

Algoritmo en Pseint

Proceso Donaciones

// Definición de variables

Definir DonacionSoles, DonacionDolares, DonacionEuros, DonacionTotalEuros Como Real;

Definir PorcentajeCentroSalud, PorcentajeComedorNinos, PorcentajeGastosAdm Como Real;

Definir MontoCentroSalud, MontoComedorNinos, MontoGastosAdm Como Real;

Definir TCDolarEuro, TCSolEuro Como Real;

//Inicializando Variables

PorcentajeCentroSalud=0.7;
PorcentajeComedorNinos=0.20;

PorcentajeGastosAdm=0.10;

TcDolarEuro = 1.07;

TcSolEuro = 1.07/3.52;

//Captura de Monto de donaciones

Escribir "Ingrese monto de donacion en Soles: ";

Leer DonacionSoles;

Escribir "Ingrese monto de donacion en Dolares: ";

Leer DonacionDolares;

Escribir "Ingrese monto de donacion en Euros: ";

Leer DonacionEuros;

//Total donaciones en Euro

DonacionTotalEuros = DonacionSoles*TcSolEuro + DonacionDolares*TcDolarEuro + DonacionEuros;

// Montos por rubros

MontoCentroSalud = PorcentajeCentroSalud*DonacionTotalEuros;

MontoComedorNinos = PorcentajeComedorNinos*DonacionTotalEuros;

MontoGastosAdm = PorcentajeGastosAdm*DonacionTotalEuros;

//Reporte de rdistribucion en Euros por rubro

Escribir "Al Centro de Salud le corresponde " + ConvertirATexto(MontoCentroSalud) + " Euros";

Escribir "Al Comedor para ninos le corresponde " + ConvertirATexto(MontoComedorNinos) + " Euros";

Escribir "A Gastos Administrativos le corresponde " + ConvertirATexto(MontoGastosAdm) + " Euros";

FinProceso

Diagramas de flujo clásico y Nassi-Shneiderman


Resultados

3. En una competencia atlética de velocidad, el tiempo se mide en minutos, segundos y


centésimas de segundo y, el espacio recorrido se mide en metros. Diseñe un algoritmo
para determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora = 60
minutos, 1 minuto = 60 segundos, 1 segundo = 100 centésimas de segundo, 1 kilómetro =
1000 metros.
Análisis del problema

Entradas Salidas
Distancia Tiempo
Distancia Tiempo
Segundo Centesimas Velocidad Km/Hrs
Metros Minutos Km Hrs
s de segundos
1000 59 55 500 1.00 1.00 1.00
2000 5 5 1000 2.00 0.09 22.86
500 3 50 50 0.50 0.06 7.81
800 2 40 20 0.80 0.04 17.98
300 4 30 30 0.30 0.08 4.00

Algoritmo en Pseint

Proceso VelocidadPromedio

// Definición de variables

Definir DistanciaRecMetros, TiempoRecMinutos, TiempoRecSegundos, TiempoRecCentSegundos Como Real;

Definir DistanciaKm, TiempoHoras, Velocidad Como Real;

//Captura de Distancia y tiempos de recorrido

Escribir "Ingrese la distancia recorrida en metros: ";

Leer DistanciaRecMetros;

Escribir "Ingrese la cantidad de minutos del recorrido: ";

Leer TiempoRecMinutos;

Escribir "Ingrese la cantidad de segundos del recorrido: ";

Leer TiempoRecSegundos;

Escribir "Ingrese la cantidad de centesimas de segundos del recorrido: ";

Leer TiempoRecCentSegundos;

// Calculo de la distancia en Kilometros, tiempo en horas y la velocidad

DistanciaKm = DistanciaRecMetros/1000;
TiempoHoras = (TiempoRecMinutos*60 + TiempoRecSegundos + TiempoRecCentSegundos/100)/3600;

Velocidad = DistanciaKm/TiempoHoras;

//Reporte de Velocidad

Escribir "La velocidad promedio es " + ConvertirATexto(Velocidad) + " Km/hora";

FinProceso

Diagramas de flujo clásico y Nassi-Shneiderman


Resultados
4. Diseñe un algoritmo que lea la hora actual del día HH:MM:SS y determine cuántas horas,
minutos y segundos restan para culminar el día.

Análisis del problema

Entradas Salidas
Hora actual Tiempo Restante
Segundo
Horas Minutos Horas Minutos Segundos
s
1 10 50 22 49 10
10 55 0 13 5 0
23 59 59 0 0 1
20 50 50 3 9 10
23 0 0 1 0 0

Algoritmo en Pseint
Proceso HorasMinSegRestantesDia

// Definición de variables

Definir HorasAct, MinutosAct, SegundosAct Como Entero;

Definir HorasRes, MinutosRes, SegundosRes Como Entero;

Definir TotalTiempoTransSeg,TotalTiempoResSeg como Real;

//Captura de Horas, Minutos y Segundos transcurridos en el dia (Hora Militar)

Escribir "Ingrese Hora Actual (Formato militar): ";

Leer HorasAct;

Escribir "Ingrese Minutos: ";

Leer MinutosAct;

Escribir "Ingrese Segundos: ";

Leer SegundosAct;

//Conversión de horas, minutos y segundos actuales a segundos

TotalTiempoTransSeg = HorasAct*3600 + MinutosAct*60 + SegundosAct;

//Calculo de tiempo restante en segundos

TotalTiempoResSeg = 24*3600 - TotalTiempoTransSeg;

// Calculo de horas restantes

HorasRes = trunc(TotalTiempoResSeg/3600);

// Calculo de minutos restantes

MinutosRes = trunc((TotalTiempoResSeg - HorasRes*3600)/60);

// Calculo de segundos restantes

SegundosRes = (TotalTiempoResSeg - HorasRes*3600 - MinutosRes*60);

//Reporte de Horas, Minutos y Segundos restantes en el dia

Escribir "Quedan " + ConvertirATexto(HorasRes) + " Horas " + ConvertirATexto(MinutosRes) +

" Minutos " + ConvertirATexto(SegundosRes) + " Segundos";


FinProceso

Diagramas de flujo clásico y Nassi-Shneiderman


Resultados

5. El sueldo neto de un vendedor se calcula como la suma de un sueldo básico de S/ 930.00


más el 12% del monto total vendido. Diseñe un algoritmo que determine el sueldo neto de
un vendedor sabiendo que hizo tres ventas en el mes.
Análisis del problema

Entradas Salidas
Sueldo Comisión(12% Sueldo
Ventas1 Ventas2 Ventas3
Básico ) Neto
200 500 1000 204 1134
930
1000 1000 1000 360 1290
800 700 1200 324 1254
1500 1300 2000 576 1506
3000 2000 1500 780 1710

Algoritmo en Pseint
Proceso SueldoNetoPagar

// Definición de variables
Definir SueldoBasico, SueldoNeto, Venta1, Venta2, Venta3, Comision Como Real;

//Inicializando Variables
SueldoBasico = 930;
Comision = 0.12;

//Captura de Montos de Venta


Escribir "Ingrese monto de Venta 1: ";
Leer Venta1;

Escribir "Ingrese monto de Venta 2: ";


Leer Venta2;

Escribir "Ingrese monto de Venta 3: ";


Leer Venta3;

//Calculo del Sueldo Neto


SueldoNeto = SueldoBasico + (Venta1 + Venta2 + Venta3)*Comision;

//Reporte del Sueldo Neto


Escribir "El sueldo neto a pagar es S/" + ConvertirATexto(SueldoNeto);

FinProceso
Diagramas de flujo clásico y Nassi-Shneiderman
Resultados

También podría gustarte