Post on 05-Aug-2015
UNIVERSIDAD TECNOLÓGICA
DEL NORTE DE GUANAJUATO
(UTNG)
Metodología de la programación
Grupo: GSI-0913
Profesor: Ing. Guillermo Ojeda.
José Sandoval López
No. Control: 1212100802
Dolores Hidalgo, C.I.N. Guanajuato a 06 de noviembre de 2012.
PROBLEMAS
ESTRUCTURAS SECUENCIALES
1.- Dada un cantidad en pesos, obtener la equivalencia en dólares, asumiendo que la unidad
cambiaría es un dato desconocido.
Pseudocódigo:
Proceso sin_titulo
Escribir "Cantidad De Pesos ";
Leer Pesos;
Escribir "Tasa Cambiaria ";
Leer Tasa;
Dolares<-Pesos/Tasa;
Escribir "Total de Pesos ";
Escribir Pesos;
Escribir "Tasa Cambiaria ";
Escribir Tasa;
Escribir "Equivalencia En Dolares ";
Escribir Dolares;
FinProceso
Corridas:
Corrida Datos Salida
Pesos Tasa Equivalencia
1 1500 11.5 130.434783
2 50000 12 4166.66667
3 30000 11.2 2678.57143
1.- Leer un número y escribir el valor absoluto del mismo. Pseudocódigo: Proceso sin_titulo Escribir "Ingrese el valor de numero:"; Leer numero; Si numero<0.0 Entonces absoluto <- -numero; SiNo absoluto <- numero; FinSi Escribir "Valor de absoluto: ", absoluto; FinProceso
Corrida Datos Salida
Numero Valor absoluto
1 1 1
2 45 45
3 1000 1000
3) La presión, el volumen y la temperatura de una masa de aire se relacionan por la formula:
Masa=(presión*volumen)/(0.37*(temperatura+460))
1.-Proceso sin_titulo
2.- Escribir "Ingresa la presion";
3.- Leer presion;
4.- Escribir "Ingresa volumen";
5.- Leer volumen;
6.- Escribir "Ingresa temperatura";
7.- Leer temperatura;
8.-
9.- masa<-(Presion*volumen)/(0.37*(temperatura+460));
10.-
11.- Escribir "La masa correspondiente a los datos ingresados es de: ", masa;
12.-
13.- FinProceso
CORRIDA DATOS DE ENTRADA SALIDA
PRESIÓN VOLUMEN TEMPERATURA MASA
1 12 10 15 0.682780512
2 5 20 15 0.5689900427
3 7 10 27 0.3884788279
4) Calcular el número de pulsaciones que una persona debe tener por cada 10 segundos de
ejercicio, si la formula es:
Num pulsaciones=(220-edad)/10
Proceso sin_titulo
Escribir "Ingresa la edad del paciente";
Leer edad;
pulsaciones<-((220-edad)/10);
Escribir "pulsaciones por cada 10 seg: ", pulsaciones;
FinProceso
CORRIDA DATOS DE
ENTRADA
SALIDA
EDAD PULSACIONES
1 18 20
2 28 19
3 29 19
4 48 17
5) Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario
anterior.
Proceso sin_titulo
Escribir "introducir sueldo";
Leer SUE;
Sup<-(SUE*.25)+SUE;
Escribir "Nuevo sueldo es de " , Sup;
FinProceso
Corrida Datos Salida
Sueldo Sueldo + Incremento
1 3000 3750
2 1500 1875
3 8000 10000
Proceso sin_titulo
Escribir "introducir sueldo anual";
Leer HOSPITAL
GIN<-(HOSPITAL*.40);
TRA<-(HOSPITAL*.30);
PED<-(HOSPITAL*.30);
Escribir "Presupuesto de ginecologia es de",GIN;
Escribir "Presupuesto de traumatologia es de",TRA;
Escribir "Presupuesto de padiatria es de",PED;
FinProceso
Corrida Datos Salida
Sueldo Anual Presupuesto Ginecología Traumatología Pediatría
1 150000 60000 45000 45000
2 400000 160000 120000 120000
3 456789 182715.6 137036.7 137036.7
7.- El dueño de una tienda compra un articulo a un precio determinado. Obtener el precio
en que lo debe vender para obtener una ganancia del 30%.
Pseudocódigo
Inicio
Escribir: “precio del articulo”
Leer: precio
Ganancia= precio*.30
Escribir: “ganancia”
Total= ganancia+precio
Escribir: total
Fin
8.- Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los
tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta
en una semana cualquiera.
Inicio
Escribir: “tiempo del lunes”
Leer: uno
Escribir: “tiempo del miércoles”
Leer: dos
Escribir: “tiempo del viernes”
Leer: tres
Tiempo= uno+dos+tres
Escribir: tiempo
Fin
Corrida
Corridas Datos de Entrada
Salida
1 5 6.5
2 10 13
3 4 5.2
4 20 26
Corridas Datos de
Entrada Salida
a b c
1 3 3 6
2 4 4 8
9.- Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas
invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con
respecto a la cantidad total invertida.
Proceso sin_titulo
Escribir "cantidad 1";
Leer Cantidad1;
Escribir "cantidad 2";
Leer Cantidad2;
Escribir "cantidad 3";
Leer Cantidad3;
Tot<-Cantidad1+Cantidad2+Cantidad3;
Uno<-Cantidad1/Tot*100;
Dos<-Cantidad2/Tot*100;
Tre<-Cantidad3/Tot*100;
Escribir "resultado 1 es.." ,Uno,"%";
Escribir "resultado 2 es..", Dos,"%";
Escribir "resultado 3 es...", Tre,"%";
FinProceso
9.-Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte
una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad
total invertida
Pseudocódigo
Proceso sin_titulo
Escribir "ingrese la cantidad de la persona 1"
Leer per1
Escribir "ingrese la cantidad de la persona 2"
Leer per2
Escribir "ingrese la cantidad de la persona 3"
Leer per3
cantidadto<-per1+per2+per3;
pp1<-per1*100/cantidadto
pp2<-per2*100/cantidadto
pp3<-per3*100/cantidadto
Escribir "porcentaje persona 1: ",pp1
Escribir "porcentaje persona 2: ",pp2
Escribir "porcentaje persona 3: ",pp3
FinProceso
10.-Un alumno desea saber cual será su promedio general en la tres materias mas difíciles que
surca y cua será el promedio que obtendrá en cada una de ellas. Estas materias se evalúan como
se muestra a continuación:
La calificación de matemáticas se obtiene de la sig. Manera:
Examen 90%
Promedio de tareas 10%
En esta materia se pidió un total de tres tareas
La calificación de física se obtiene de la sig. Manera:
Examen 80%
Promedio de tareas 20%
En esta materia se pidió un total de dos tareas.
La calificación de química se obtiene de la sig. Manera:
Examen 85%
Corrida Entrada cantidad Porcentaje
Persona 1 Persona 2 Persona 3 Persona 1 Persona 2 Persona 3
1 20 50 100 11.76 29.41 58.82
2 1000 2000 3000 16.67 33.33 50
Promedio de tareas 15%
En esta materia se pidió un promedio de tres tareas
Pseudocódigo
Proceso sin_titulo
Escribir "escribe que sacaste en el examen de
matematicas"
Leer examate
Escribir "escribe cuantas tareas entregaste"
Leer matetare
examate<- examate*90/100
matetare<- matetare*10/3
prommate<-(examate)+(matetare);
Escribir "promedio de Mate: ",prommate
Escribir "escribe que sacaste en el examen de fisica"
Leer exafisi
Escribir "Escribe cuantas tareas entregaste"
Leer fisitare
exafisi<-exafisi*80/100
matetare<-fisitare*20/2
profisi<-exafisi+matetare
Escribir "Promedio de Fisica",profisi
Escribir "Escribe que sacaste en el examen de
quimica"
Leer exaqui
Escribir "escribe cuantas tareas entregaste"
Leer quitare
exaqui<-exaqui*85/100
quitare<-quitare*15/3
proqui<-exaqui+quitare
Escribir "Promedio de quimica: ",proqui
proge<-(prommate+profisi+proqui)/3;
Escribir "Tu Promedio General es: ",proge
FinProceso
Corrida Matemáticas Física Química
Examen Tareas Examen Tarea Examen Tarea Promedio
1 80 3 90 2 95 2 88.25
2 100 1 100 0 100 1 87.77
ESTRUCTURAS DE DECISIÓN SIMPLES
1) Calcular el total que una persona debe pagar en un llantera, si el precio de cada llanta es de $800 si se compran menos de 5 llantas y de $700 si se compran 5 o mas.
Proceso sin_titulo
Escribir "CUANTAS LLANTAS??";
Leer LLANTAS;
Si (LLANTAS>5) Entonces
Sup<-(LLANTAS*700);
Escribir "$" , Sup;
Sino
Sup<-(LLANTAS*800);
Escribir "$", Sup;
FinSi
FinProceso
Corrida Datos Salida
Llantas
1 4 3200
2 20 14000
3 5 4000
2) En un supermercado se hace una promoción, mediante la cual el cliente obtiene un
descuento dependiendo de un numero que se escoge al azar. Si el numero escogido es
menor que 74 el descuento es del 15% sobre el total de la compra, si es mayor o igual a 74 el
descuento es del 20%. Obtener cuanto dinero se le descuenta.
Proceso sin_titulo
Escribir "Escribir cantidad";
Leer Cantidad;
Escribir "Escribir precio";
Leer Precio
Si (Cantidad>74) Entonces
Sup <-(Precio*.20) ;
SUM <-Sup+Precio;
Escribir "descuento del 20";
Sino
Sup <-(Precio*.15) ;
SUM <-Sup+Precio;
Escribir "descuento del 15";
FinSi
FinProceso
Corrida Datos Salida
Cantidad Precio Descuento
1 500 600 20
2 73 45 15
3 74 90 15
3) Calcular el numero de pulsaciones que debe tener una persona por cada 10 segundos de
ejercicio aerobico; la formula que se aplica cuando el sexo es femenino es:
num. pulsaciones = (220 - edad)/10 y
si el sexo es masculino:
num. pulsaciones = (210 - edad)/10
Proceso sin_titulo
Escribir "Edad";
Leer Edad;
Escribir "Sexo";
Leer F,M;
Si (F<>M),(M<>F) Entonces
Sup<-(220-Edad)/10;
Escribir "FEMENINO" , Sup;
Sino
Sup<-(210-Edad)/10;
Escribir "MASCULINO", Sup;
FinSi
FinProceso
Corrida Datos Salida
Edad Sexo
1 90 F Masculino 12
2 73 M Masculino 13.5
3 4 F Masculino 20.6
4) Una compañía de seguros esta abriendo un depto. de finanzas y estableció un programa
para captar clientes, que consiste en lo siguiente: Si el monto por el que se efectúa la fianza es
menor que $50 000 la cuota a pagar será por el 3% del monto, y si el monto es mayor que
$50 000 la cuota a pagar será el 2% del monto. La afianzadora desea determinar cual será la
cuota que debe pagar un cliente.
Proceso sin_titulo
Escribir "CUOOTAA";
Leer CUOTA;
Si (CUOTA>50000) Entonces
Sup<-(CUOTA*.02);
Escribir "MAYOR", Sup;
Sino
Sup<-(CUOTA*.03);
Escribir "MENOR", Sup;
FinSi
FinProceso
Corrida Datos Salida
Cuaota
1 50001 Mayor 1000.02
2 49000 Menor 1470
3 1 Menor o.o3
5.- En una escuela la colegiatura de los alumnos se determina según el numero de materias
que cursan. El costo de todas las materias es el mismo.
Se ha establecido un programa para estimular a los alumnos, el cual consiste en
lo siguiente: si el promedio obtenido por un alumno en el ultimo periodo es mayor o igual
que
9, se le hará un descuento del 30% sobre la colegiatura y no se le cobrara IVA;
si el promedio obtenido es menor que 9 deberá pagar
la colegiatura completa, la cual incluye el
10% de IVA.
Obtener cuanto debe pagar un alumno.
Proceso sin_titulo
Escribir "introduce la materia";
Leer Mate;
Escribir "promedio";
Leer Prom;
CostoMateria<-120;
Si Prom>=9 Entonces
desc<-CostoMateria*.3;
pagar<-CostoMateria-desc;
Escribir "Su descuento es de ",desc;
Escribir "La colegiatura a pagar es ",pagar;
Sino
iva<-CostoMateria*.1;
pagar<-CostoMateria+iva;
Escribir "el iva es de ",iva;
Escribir "La colegiatura a pagar es ",pagar;
FinSi
FinProceso
6.- Una empresa de bienes raíces ofrece casas de interés social, bajo las siguientes
condiciones: Si los ingresos del comprador son menores de $8000 o mas el enganche
será del 15% del costo de la casa y el resto se distribuirá en pagos mensuales, a
pagar en diez años. Si los ingresos del comprador son menos de $8000 o mas el
enganche será del 30% del costo de la casa y el resto se distribuirá en pagos mensuales
a pagar en 7 años.
La empresa quiere obtener cuanto debe pagar un comprador por
concepto de enganche y cuanto por cada pago parcial.
Proceso sin_titulo
Escribir "ingresos del trabajador";
Leer ingre;
Si (ingre>8000) Entonces
Enganxe<-(ingre*.15);
Escribir "su enganche es de: ",
Enganxe;
Sino
Enganxe<-(ingre*.30);
Escribir "su enganche es de: ",
Enganxe;
FinSi
FinProceso
corrida Datos de entrada salida Ingresos del trabajador
1 7000 $2100.00
2 10000 $1500.00
3 12000 $1800.00
Corrida Datos de entrada Salida Materia promedio Colegiatura
1 Español 5 132
2 Matemáticas 9 84
3 ingles 7 132
7) El gobierno ha establecido el programa SAR (Sistema de Ahorro para el Retiro) que
consiste en que los dueños de la empresa deben obligatoriamente depositar en una cuenta
bancaria un porcentaje del salario de los trabajadores; adicionalmente los trabajadores
pueden solicitar a la empresa que deposite directamente una cuota fija o un porcentaje de su
salario en la cuenta del SAR, la cual le será descontada de su pago.
Un trabajador que ha decidido aportar a su cuenta del SAR desea saber la cantidad total de dinero que estará depositado a esa cuenta cada mes, y el pago mensual que recibirá.
Proceso sin_titulo
Escribir "Ingrese salario mensual";
Leer Sal;
Escribir "elija opcion: 1... porcentaje de salario: 2.. cuota fija";
Leer uno ;
Si uno Entonces
Escribir "ingrese el porcentaje";
Leer Por;
Por<-Sal*(Por/100);
Escribir "cantidad que da por mes: ", Por;
SiNo
Escribir "ingrese monto";
Leer Mont;
Mont<-(Mont*100)/Sal;
Escribir "el porcentaje de su salario: ", Mont;
FinSi
FinProceso
Corrida Datos Salida
Salario Monto % Del salario
1 3000 600 20
2 50000 10 5000
8) Una persona desea iniciar un negocio, para lo cual piensa verificar cuanto dinero le
prestara el banco por hipotecar su casa. Tiene una cuenta bancaria, pero no quiere disponer
de ella a menos que el monto por hipotecar su casa sea muy pequeño. Si el monto de la
hipoteca es menor que $1 000 000 entonces invertirá el 50% de la inversión total y un socio
invertirá el otro 50%. Si el monto de la hipoteca es de $ 1 000 000 o mas, entonces invertirá el
monto total de la hipoteca y el resto del dinero que se necesite para cubrir la inversión total
se repartirá a partes iguales entre el socio y el.
Proceso sin_titulo
Escribir "Ingrese el valor de inversion total:";
Leer inversion_total;
Escribir "Ingrese el valor de monto de la hipoteca:";
Leer monto_de_la_hipoteca;
Si monto_de_la_hipoteca<1000000 Entonces
inversion <- inversion_total/2;
SiNo
inversion <- (inversion_total-monto_de_la_hipoteca)/2;
FinSi
inversion_del_socio <- inversion;
Escribir "Valor de inversion: ", inversion;
Escribir "Valor de inversion del socio: ", inversion_del_socio;
FinProceso
Corrida Datos Salida
Inversion Hipoteca Valor de inversion Valor de inversion del socio
1 700000 500000 350000 350000
2 50000 50000 25000 25000
9.- El gobierno del estado de México desea reforestar un bosque que mide determinado
numero de hectáreas. Si la superficie del terreno excede a 1 millón de metros cuadrados,
entonces decidirá sembrar de la sig. manera:
Proceso sin_titulo
Escribir "superficie del terreno";
Leer Sup_Terreno;
Si Sup_Terreno>1000000 Entonces
MetrosPino <-- Sup_Terreno *.70
Pinos <-- MetrosPino/10*8
MetrosOyamel <-- Sup_Terreno *.20
Oyameles <-- MetrosOyamel/15*15
MetrosCedro <-- Sup_Terreno *.10
Cedros <-- MetrosCedro/18*10
Sino
MetrosPino <-- Sup_Terreno *.50
Pinos <-- MetrosPino/10*8
MetrosOyamel <-- Sup_Terreno *.30
Oyameles <-- MetrosOyamel/15*15
MetrosCedro <-- Sup_Terreno *.20
Cedros <-- MetrosCedro/18*10
FinSi
Escribir "pinos....",Pinos;
Escribir "Oyameles....",Oyameles;
Escribir "cedros....",Cedros;
FinProceso
Corrida Datos Salida Salida
Superficie Pinos Oyameles Cedros
1 70000 28000 21000 7777.7777
2 50000 20000 15000 5555.5555
10) Una fabrica ha sido sometida a un programa de control de contaminación para lo cual
se efectúa una revisión de los puntos IMECA generados por la fabrica. El programa de
control de contaminación consiste en medir los puntos IMECA que emite la fabrica en
cinco días de una semana y si el promedio es superior a los 170 puntos entonces tendrá la
sanción de parar su producción por una semana y una multa del 50% de las ganancias
diarias cuando no se detiene la producción. Si el promedio obtenido de puntos IMECA es
de 170 o menor entonces no tendrá ni
sanción ni multa. El dueño de la fabrica
desea saber cuanto dinero perderá
después de ser sometido a la revisión.
Proceso sin_titulo
Escribir "puntos";
Leer Puntos;
Escribir "ganancias";
Leer Ganancias;
Si Puntos>170 Entonces
Sancion<-Ganancias/2
Escribir "sancion de...", Sancion;
Sino
Sancion<-0
Escribir "no paga ni multa ni sancion de....", Sancion;
FinSi
FinProceso
Corrida Datos Salida Salida
Puntos Ganancias Sancion
1 40 500 171
2 50000 20000 600
ESTRUCTURAS DE DECISIÓN DOBLE
1) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio de tres calificaciones es mayor o igual a 70; reprueba en caso contrario.
Proceso sin_titulo
Escribir "calificacion 1";
Leer Calif1;
Escribir "calificacion 2";
Leer Calif2;
Escribir "calificacion 3";
Leer Calif3;
Prom<-(Calif1+Calif2+Calif3)/3
Si Prom>7 Entonces
Escribir "aprobado";
Sino
Escribir "reprobado";
FinSi
FinProceso
Corrida Datos Salida
Calificacion 1 Calificacion 2 Calificacion 3 1 9 8 10 Aprobado
2 9 0 7 Reprobado
2.-En un almacén se hace un 20% de descuento a los clientes cuya compra supere los $1000
¿ Cual será la cantidad que pagara una persona por su compra?
Proceso sin_titulo
Escribir "compra de";
Leer Com;
Si Com>1000 Entonces
Des<-(Com*.20)
Sino
Des<-0
FinSi
Tot<-Com-Des
Escribir "total....",Tot;
FinProceso
Corrida Datos Salida
Compra
1 10000 8000
2 1000 1000
3) Un obrero necesita calcular su salario semanal, el cual se obtiene de la
siguiente manera:
Si trabaja 40 horas o menos se le paga $16 por hora
Si trabaja más de 40 horas se le paga $16 por cada una de las primeras
40 horas y $20 por cada hora extra.
Proceso
Escribir "Horas Trabajadas"
Leer Horas_T;
Si (Horas_T>40) Entonces
Horas_E<-Horas_T-40;
Salario_s<-Horas_E*20+40*16;
Sino
Salario_s<-Horas_T*16;
FinSi
Escribir "Salario Semanal = " , Salario_s
FinProceso
Corridas Datos de entrada salida
Horas Trabajadas Salario Semanal
1 45 740
2 85 1540
3 51 860
4) Un hombre desea saber cuanto dinero se genera por concepto de
intereses sobre la cantidad que tiene en inversión en el banco. El decidirá
reinvertir los intereses siempre y cuando estos excedan a $7000, y en ese caso
desea saber cuanto dinero tendrá finalmente en su cuenta.
Proceso sin_titulo
Escribir "Capital";
Leer cap;
Escribir "Porcentaje_int";
Leer Por_int
Int<-cap*(Por_int/100);
Si (Int>7000) Entonces
CapF<-cap+Int;
Escribir " Su capital final es: " , CapF
Sino
Escribir " no reinvertir intereses "
FinSi
FinProceso
Corridas Datos de entrada salida
Capital Porcentaje int Salario Final
1 10700 8% “no reinvertir
intereses”
2 548216 5% 575626.8
5) Que lea dos números y los imprima en forma ascendente
Proceso sin_titulo
Escribir "Escribe el primer numero";
Leer Num1
Escribir "Escribe el segundo numero";
Leer Num2
Si Num1>Num2 Entonces
Escribir Num1;
Escribir Num2;
Sino
Escribir Num2;
Escribir Num1;
FinSi
FinProceso
Corridas D. Entrada Salida Num1 Num2
1 3 4 3 y 4
2 5 2 2 y 5
6) Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber cuantas
calorías consume su cuerpo durante todo el tiempo que realice una misma actividad. Las
actividades que tiene permitido realizar son únicamente dormir o estar sentado en reposo.
Los datos que tiene son que estando dormido consume 1.08 calorías por minuto y estando
sentado en reposo consume 1.66 calorías por minuto.
Proceso sin_titulo
Escribir "Escribe los minutos en que estuvo en reposo";
Leer Tr;
Escribir "Escriba 1 si estuvo sentado o 2 si estuvo dormido";
Leer Actividad;
Calo_sentado<-1.08;
Calo_dormido<-1.66;
Si Actividad=1 Entonces
Sentado<-Tr*Calo_sentado;
Escribir "Sus calorias sentado son ",Sentado
Sino
Dormido<-Tr*Calo_dormido;
Escribir "Sus calorias dormido son ",Dormido
FinSi
FinProceso
Corridas D. entrada Salida
Minutos Opcion
1 1 1 1.08
2 1 2 3.32
3 1 4 3.32
7) Hacer un algoritmo que imprima el nombre de un articulo, clave, precio
original y su precio con descuento. El descuento lo hace en base a la clave, si la
clave es 01 el descuento es del 10% y si la clave es 02 el descuento en del 20%
(solo existen dos claves).
Proceso sin_titulo
Escribir "nombre";
Leer nomb;
Escribir "clave";
Leer clave;
Escribir "precio";
Leer prec_origen;
Si clave<-01 Entonces
prec_desc1<-(prec_origen*.10);
descuento1<-prec_origen-prec_desc1;
Escribir "descuento1...",descuento1;
Sino
prec_desc2<-(prec_origen*.20);
descuento2<-prec_origen-prec_desc2;
Escribir "descuento2...",descuento2;
FinSi
Escribir nomb;
Escribir clave;
Escribir "origen",prec_origen;
FinProceso
Corrida Datos Salida
Nombre Clave Precio Descuento
1 Pasta 8000 50 40
2 Jabon 1000 35 28
8) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si
se compran tres camisas o mas se aplica un descuento del 20% sobre el total de
la compra y si son menos de tres camisas un descuento del 10%
Proceso sin_titulo
Escribir "numero de camisetas";
Leer numero;
Escribir "precio de camisetas";
Leer precio;
Si numero>3 Entonces
total1<-precio*.20
descuento1<-precio-total1
Escribir "total 20% es de...",descuento1;
Sino
total2<-precio*.10
descuento2<-precio-total2
Escribir "total 10% es de...",descuento2;
FinSi
FinProceso
Corrida Datos de
Entrada Total a Pagar
Salida
1 128 102
2 140 112
3 290 72
9) Una empresa quiere hacer una compra de varias piezas de la misma clase a una fabrica
de refacciones. La empresa, dependiendo del monto total de la compra, decidirá que hacer
para pagar al fabricante.
Si el monto total de la compra excede de $500 000 la empresa tendrá la capacidad
de invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un
30% y el resto lo pagara solicitando un crédito al fabricante.
Si el monto total de la compra no excede de $500 000 la empresa tendrá capacidad
de invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al
fabricante.
El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a
crédito.
Proceso sin_titulo
Escribir "costo de la pieza";
Leer costopza;
Escribir "numero de la pieza";
Leer numpza;
totcomp<-costopza*numpza
Si totcomp>500000 Entonces
cantiv<-totcomp*.55
prestamo<-totcomp*.30
credito<-totcomp*.15
Sino
cantiv<-totcomp*.70
credito<-totcomp*.30
prestamo<-0
FinSi
int<-credito*.20
Escribir "cantidad vendida de...",cantiv;
Escribir "prestamo de...",prestamo;
Escribir "credito de...",credito;
Escribir "interes de...",int;
FinProceso
Corrida Datos Salida
Costo de la pieza Numero de la pieza Cantidad vendida Prestamo Credito Interes
1 1000 34 23800 0 10200 2040
2 350 50 12250 0 5250 1050
10) Una persona se encuentra con un problema de comprar un automóvil o un terreno, los
cuales cuestan exactamente lo mismo. Sabe que mientras el automóvil se devalúa, con el
terreno sucede lo contrario. Esta persona comprara el automóvil si al cabo de tres años la
devaluación de este no es mayor que la mitad del incremento del valor del terreno. Ayúdale a
esta persona a determinar si debe o no comprar el automóvil.
Proceso sin_titulo Escribir "costo de terreno/auto"; Leer costo; Escribir "tasa de devaluacion del auto"; Leer dev; Escribir "tasa de valucion del terreno"; Leer val; dev1<-((dev/100)*costo)*(3*12); val1<-((val/100)*costo)*(3*12); mitad<-val/2 Si dev1<mitad Entonces Escribir "comprar coche"; Sino Escribir "comprar terreno"; FinSi FinProceso
Corrida Datos Salida
Costo del terreno/ auto Tasa de devaluacion Auto
Tasa de devaluacion del Terreno Comprar
1 800000 25 25 Terreno
2 60000 60 15 Terreno
ESTRUCTURAS DE DECISIÓN MÚLTIPLES
1) Elabore un algoritmo, que calcule el aumento de sueldo de un trabajador, conociendo del
mismo, su nombre, tipo de trabajador, su sueldo y la cantidad de hijos que tiene. El
porcentaje de aumento del sueldo viene dado por el tipo de trabajador que es:
Tipo de trabajador
‘V’ 10%
‘G’ 15%
‘E’ 20%
‘O’ 30%
Adicionalmente se le paga una prima por cada hijo la cual es conocida y la misma para
todos.
Proceso sueldo
Escribir "nombre del trabajador";
Leer nombre;
Escribir "Tipo de trabajador";
Leer Tipo;
Escribir "sueldo";
Leer sueldo;
Escribir "Cantidad de hijos";
Leer cantidad;
Si tipo="V" Entonces
aumento<- sueldo*.10;
Sino
Si tipo="G" Entonces
aumento<- sueldo*.15;
Sino
Si tipo="E" Entonces
aumento<- sueldo*.20;
Sino
Si tipo="O" Entonces
aumento<- sueldo*.30;
Sino
Escribir tipo + " no es un tipo de empleado";
FinSi
FinSi
FinSi
FinSi
Prima<-cantidad*50;
Escribir "Aumento de:"+ nombre+" es: ",aumento;
Escribir "La prima por hijos es: ",prima;
Escribir "Su aumento total es: ",prima+aumento;
Escribir "su sueldo total es: ", sueldo+prima+aumento;
FinProceso
Corrida datos Aumento de
Abraham Prima por hijos Sueldo total
Nombre Abraham 750
100
3350
Tipo de trabajador
O
Sueldo 2500
Cantidad de hijos 2
2.- Elabore un algoritmo que solicite la cantidad a pedir para un articulo, según su
inventario, se conoce para cada artículo su tipo (1, 2,3) y la cantidad en existencia,
deseando calcular la cantidad a solicitar.
Proceso inventario
Cantidad<-0;
Solicita<-0;
solicita2<-0;
tipo1<-1;
tipo2<-2;
tipo3<-3;
Tipo<-0;
Error<-0;
Escribir "Numero de artículos";
Leer cantidad;
Escribir "Tipo de articulo";
Escribir "Opciones---1";
Escribir "Opciones---2";
Escribir "Opciones---3";
Leer tipo;
Si tipo=tipo1 Entonces
Solicita<-10;
Sino
Si tipo=tipo2 Entonces
Solicita<-15;
Sino
Si tipo=tipo3 Entonces
Solicita<-5;
Sino
Escribir "Error esto no es un tipo de articulo";
Error<-1;
FinSi
FinSi
FinSi
Si error=1 Entonces
Escribir "Fin del proceso";
Sino
Si cantidad < 10 Entonces
solicita2 <-20;
Sino
Si 10<= cantidad <20 Entonces
solicita2 <-15;
Sino
Si cantidad>= 20 Entonces
solicita2 <-10;
Sino
Escribir "error no se encuentra el rango";
FinSi
FinSi
FinSi
Escribir "TOTAL: se le solicita el: ", solicita+solicita2,"% ";
FinSi
Fin Proceso
Corrida Datos de entrada salida
Cantidad tipo sup
1 40 1 solicitar el 20%
2 30 2 Solicitar el 25%
3 20 3 Solicitar el 15%
4 15 4 error
3.- El colegio “Mi angelito” desea calcular el monto a pagar por inscripción del nuevo año escolar,
para las familias con hijos en el colegio. Para ello se conoce el número de hijos que tiene la familia
en el colegio, el monto de matricula por niño, el monto de la mensualidad del mes de septiembre
por niño y el monto de la sociedad de padres. Elabore un algoritmo que calcule el total a pagar por
la familia, si la sociedad de padres se cobra una vez por familiar y si se otorga un descuento por la
cantidad de hijos en el colegio que viene dado por la siguiente tabla.
Cantidad de hijos Descuento
2 niños 10%
3 niños 15%
> 3 niños 20%
Proceso
Escribir "Cuantos hijos tiene inscritos? ";
Leer Nh;
Monto<-600;
Si Nh=1 Entonces
desc<-(Nh*Monto)*0
MontoTotal<-600;
Escribir "Su descuento es de ",desc
Escribir "Esto es lo qe pagara ",MontoTotal ;
Sino
Si Nh=2 Entonces
desc<-(Nh*Monto)*.1;
MontoTotal<-(Monto*Nh)-desc;
Escribir "Su descuento es de ",desc
Escribir "Esto es lo que pagara ",MontoTotal
Sino
desc<-(Nh*Monto)*.15;
MontoTotal<-(Monto*Nh)-desc;
Escribir "Su descuento es de ",desc
Escribir "Esto es lo que pagara ",MontoTotal
FinSi
FinSi
FinProceso
Hijos inscritos Monto a pagar
1 600
2 1080
3 1530
4 2040
4.- En el Hospital "Seguimos en crisis" tienen las siguientes tarifas:
Tipo de enfermedad Costo/paciente/día
1 1500
2 1700
3 1900
Para lo cual se necesita que usted elabore un informe con el siguiente formato:
Paciente Días hospitalizados Tipo de enfermedad Total a pagar
Proceso sin_titulo
Escribir "Nombre Del Paciente: ";
Leer Paciente;
Escribir "Dias Hospitalizado: ";
Leer Dias;
Escribir "Tipo De Enfermedad";
Leer Tipo;
Si Tipo=1 Entonces
Costo<-Dias*1500;
Escribir "El Paciente ", Paciente;
Escribir "Tiene ",Dias," Dia(s) hospitalizado.";
Escribir "El cual tiene una enfermedad Tipo 1 "
Escribir "Saldo Total A Pagar Es: $",Costo;
Sino
Si Tipo=2 Entonces
Costo<-Dias*1700;
Escribir "El Paciente ", Paciente;
Escribir "Tiene ",Dias," Dia(s) hospitalizado.";
Escribir "El cual tiene una enfermedad Tipo 2 "
Escribir "Saldo Total A Pagar Es: $",Costo;
Sino
Si Tipo=3 Entonces
Costo<-Dias*1900;
Escribir "El Paciente ", Paciente;
Escribir "Tiene ",Dias," Dia(s) hospitalizado.";
Escribir "El cual tiene una enfermedad Tipo 3 "
Escribir "Saldo Total A Pagar Es: $",Costo;
Sino
Escribir "Error";
FinSi
FinSi
FinSi
FinProceso
Corrida Paciente Días Enfermedad Costo
1 Marco 4 1 (1500) 6000
2 Carla 1 2 (1700) 1700
3 César 5 3 (1900) 9500
5.- Escriba un algoritmo para mostrar por pantalla el nombre del día de acuerdo a un número (del 1
al 7) que se pase como entrada.
Proceso sin_titulo
Escribir "Ingresa Dia de la Semana (1 al 7) ";
Leer Dia;
Si Dia=1 Entonces
Escribir "Domingo";
Sino
Si Dia=2 Entonces
Escribir "Lunes";
Sino
Si Dia=3 Entonces
Escribir "Martes";
Sino
Si Dia=4 Entonces
Escribir "Miercoles";
Sino
Si Dia=5 Entonces
Escribir "Jueves";
Sino
Si Dia=6 Entonces
Escribir "Viernes";
Sino
Si Dia=7 Entonces
Escribir "Sabado";
Sino
Escribir "Error";
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinProceso
Corrida Datos Salida
Dia de la semana
1 1 Domingo
2 2 Lunes
3 3 Martes
ESTRUCTURAS SELECTIVAS ANIDADAS
1) Leer 2 números; si son iguales que los multiplique, si el primero es mayor que el segundo que los reste y si no que los sume.
Proceso sin_titulo Escribir "Introducir numero entero"; Leer N; Escribir "Introducir numero entero"; Leer Z; Si (N = Z) Entonces Multiplicacion<- Z*N Escribir "Multiplicacion : ", Multiplicacion; Sino Si (N > Z) Entonces Resta<- N - Z Escribir "Resta : ",Resta; Sino Suma<- N+Z Escribir "Suma : ",Suma; FinSi FinSi FinProceso
CORRIDAS DATOS SALIDA
N Z
1 4 4 16
2 5 3 2
3 3 5 8
2) Leer tres números diferentes e imprimir el numero mayor de los tres.
Proceso sin_titulo Escribir "Introduce el primer numero"; Leer X; Escribir "Introduce el segundo numero "; Leer N; Escribir "Introduce el tercer numero "; Leer Z; Si (X > N) Y (X > Z) Entonces X<-X Escribir "El numero mayor es : ", X; Sino Si (N > X) Y ( N > Z) Entonces N<-N Escribir "El numero mayor es : ",N; Sino Escribir "El numero mayor es : ",Z; FinSi FinSi FinProceso
CORRIDAS DATOS SALIDA
Corrida X N Z Salida
1 8 7 6 8
2 4 9 5 9
3 2 4 6 6
3) Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas
extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el
resto se consideran horas extras y que estas se pagan al doble de una hora normal cuando no
exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se
pagan las horas normales y el resto al triple.
Proceso sin_titulo
Escribir "Precio de la hora de trabajo";
Leer paga;
Escribir "Horas trabajadas";
Leer horas;
Si (horas>40) Entonces
horas<-horas-40;
Si (horas>8) Entonces
total<-8*(paga*2);
horas<-horas-8;
total<-total+(horas*(paga*3));
Sino total<-horas*(paga*2);
FinSi
total<-total+(40*paga);
Sino total<-horas*paga;
FinSi
Escribir "Total:",total;
FinProceso
Corrida Datos Salida
Precio Hra de trabajo Horas trabajadas Total
1 80 8 640
2 1000 6 6000
3 69 8 552
4.- Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si este se le asigna
como un porcentaje de su salario mensual que depende de su antigüedad en la empresa de
acuerdo con la siguente tabla:
Tiempo Utilidad
Menos de un año 5% del salario
1 año o mas y menos de 2 años 7% del salario
2 años o mas y menos de 5 años 10% del Salario
5 años o mas y menos de 10 años 15% del salario
10 años o mas 20% del salario
Proceso sin_titulo
Escribir "salario";
Leer sm;
Escribir "antiguedad";
Leer antig;
Si antig<1 Entonces
util<-sm*0.05
Sino
Si (antig>2)(antig<2) Entonces
util<-sm*0.07
Sino
Si (antig>2)(antig<5) Entonces
util<-sm*0.10
Sino
Si (antig>5)(antig<10) Entonces
util<-sm*0.15
Sino
util<-sm*0.20
FinSi
FinSi
FinSi
FinSi
Escribir util;
FinProceso
5-.En una tienda de descuento se efectúa una promoción en la cual se hace un descuento. Sobre el valor de la compra total según el color de la bolita que el cliente saque al pagar en caja. Si la bolita es de color blanco no se le hará descuento alguno, si es verde se le hará un 10% de descuento, si es amarilla un 25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el cliente deberá pagar por su compra. se sabe que solo hay bolitas de los colores mencionados.
Proceso sin_titulo
Cuenta<-0;
Descuento<-0;
Pago<-0;
Escribir "Total a pagar";
Leer Cuenta;
Escribir "Color de bolita?";
Escribir "________________________";
Escribir "Para blanco escriba 1";
Escribir "Para verde escriba 2";
Escribir "Para amarilla escriba 3";
Escribir "Para azul escriba 4";
Escribir "Para rojo escriba 5";
Leer respuesta;
Si Respuesta=1 Entonces
Escribir "No hay descuento su total a pagar es: ",cuenta;
Sino
Si Respuesta=2 Entonces
Descuento<-Cuenta*.10;
Escribir "Su total pagar es: ",cuenta-descuento;
Escribir "Su descuento fue de: ",descuento;
Sino
Si Respuesta=3 Entonces
Descuento<-Cuenta*.25;
Escribir "Su total pagar es: ",cuenta-descuento;
Escribir "Su descuento fue de: ",descuento;
Sino
Si Respuesta=4 Entonces
Descuento<-Cuenta*.50;
Escribir "Su total pagar es: ",cuenta-descuento;
Escribir "Su descuento fue de: ",descuento;
Sino
Si Respuesta=5 Entonces
Escribir "Felicidades no paga el dia de
hoy!!!!!! ";
Sino
Si Respuesta>=6 Entonces
Escribir "Error";
Sino
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinProceso
Corridas Datos de entrada Salida
Cuenta Núm. De la bolita
$100 1 “No hay descuento”
$200 6 “Error”
$100 2 “Su descuento es de: $25” “Su total apagar es de: $75”
$200 5 “Felicidades el día de hoy no paga!!!!!!”
$500 3 “Su descuento es de: $250” “Su total apagar es de: $250”
$100 4 “Su descuento es de: $75” “Su total apagar es de: $25”
6-.El IMSS requiere clasificar a las personas que se jubilaran en el año de 1997. Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas adscritas a la jubilación por edad deben tener 60 años o más y una antigüedad en su empleo de menos de 25 años. Las personas adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo de 25 años o más. Las personas adscritas a la jubilación por antigüedad en su empleo de 25 años o más. Determina en qué tipo de jubilación quedara adscrita una persona
Proceso sin_titulo
Edad<-0;
Antguedad_De_Empleo<-0
Escribir "Escribir edad de la persona";
Leer Edad;
Escribir "Antiguedad de su empleo";
Leer Antiguedad;
Si Edad>=60 y Antiguedad<25 Entonces
Escribir "Jubilacion por edad";
Sino
Si Edad<60 y antiguedad>25 Entonces
Escribir "Jubilacion joven";
Sino
Si Edad>60 y Antiguedad>25 Entonces
Escribir "Jubilacion adulta";
Sino
FinSi
FinSi
FinSi
FinProceso
Corridas Datos de entrada Salida
Edad Antiguedad
1 61 26 “Jubilación adulta”
2 59 26 “Jubilación joven”
3 60 24 “Jubilación por edad”
7) En una fábrica de computadoras se planea ofrecer a los clientes un descuento
que dependerá del número de computadoras que compre. Si las computadoras
son menos de cinco se les dará un 10% de descuento sobre el total de la compra;
si el número de computadoras es mayor o igual a cinco pero menos de diez se le
otorga un 20% de descuento; y si son 10 o mas seles da un 40% de descuento. El
precio de cada computadora es de $11,000.
Proceso computadoras
Escribir "Ingrese cantidad de computadoras a comprar: ";
Leer comp;
Si comp<5 Entonces
desc<-11000*0.1;
Escribir "Cantidad a pagar: ",desc;
FinSi
Si comp>=5&comp<10 Entonces
desc<-11000*0.2;
Escribir "Cantidad a pagar: ",desc;
FinSi
Si comp>10 Entonces
desc<-11000*0.4;
Escribir "Cantidad a pagar: ",desc;
FinSi
FinProceso
Corrida Datos Salida
Cantidad de computadoras Total a pagar
1 60 4400
2 5 2200
3 1 1100
8) En una llantera se ha establecido una promoción de las llantas marca “Ponchadas”, dicha
promoción consiste en lo siguiente:
Si se compran menos de cinco llantas el precio es de $300 cada una, de $250 si se
compran de cinco a 10 y de $200 si se compran mas de 10.
Obtener la cantidad de dinero que una persona tiene que pagar por cada una de las
llantas que compra y la que tiene que pagar por el total de la compra.
Proceso llantas
Escribir "Cuantas llantas compraras? ";
Leer N;
Si N<5 Entonces
cant<-N*300;
Escribir "Tiene que pagar: ",cant;
FinSi
Si N>=5 & N<=10 Entonces
cant<-N*250;
Escribir "Tiene que pagar: ",cant;
FinSi
Si N>10 Entonces
cant<-N*200;
Escribir "Tiene que pagar: ",cant;
FinSi
FinProceso
Corrida Datos Salida
Cantidad de llantas Total a pagar
1 15 3000
2 7 1750
3 1 300
9) En un juego de preguntas a las que se responde “Si” o “No” gana quien responda
correctamente las tres preguntas. Si se responde mal a cualquiera de ellas ya no se pregunta la
siguiente y termina el juego. Las preguntas son:
1. Colon descubrió América?
2. La independencia de México fue en el año 1810?
3. The Doors fue un grupo de rock Americano?
Proceso sin_titulo
Escribir "Teclea 1 para Si, y 2 para No":
Escribir "¿Colon descubrio America?":
Leer N;
Si (N = 1) Entonces
Escribir "¿La independencia de Mexico fue en el ano 1810?":
Leer N;
Si (N = 1) Entonces
Escribir "¿The Doors fue un grupo de rock Americano?":
Leer N;
Si (N = 1) Entonces
Escribir "Felicidades as ganado el premio de los $50,000,0000 de pesos"
Sino
Escribir "Siga participando":
FinSi
Sino
Escribir "Siga participando":
FinSi
Sino
Escribir "Siga participando":
FinSi
FinProceso
Corridas ¿Colon descubrio America?
¿La independencia de Mexico fue en el ano 1810?
The Doors fue un grupo de rock Americano?":
Salida
1 1 1 1 Felicidades as ganado el premio de los $50,000,0000 de pesos
2 1 2 Siga participando
3 1 1 2 Siga participando
10) Una frutería ofrece las manzanas con descuento según la siguiente NUM. DE KILOS %
-
2.01 - 5.01 -
10.01 en
Determinar cuanto pagara una persona que compre manzanas es esa
Proceso sin_titulo
Escribir "Escribe los Kilos" "k" ;
Escribir "Escribe el Precio por Kilo" "Precio" ;
Leer K;
Leer Precio;
Si K < = 2 Entonces
Escribir "No hay descuento";
Sino
Si K > 2 o < = 5 Entonces
Escribir Precio * .10;
Escribir "Es el descuento que se realizara" ;
Sino
Si K > 5 o < = 10 Entonces
Escribir Precio * .15
Escribir "Es el descuento que se realizara" ;
Sino
Si K > 10 Entonces
Escribir Precio * .20
Escribir "Es el descuento que se realizara" ;
Sino
FinSi
FinSi
FinSi
FinSi
FinProceso
Corridas Datos de entrada Salida
k Precio
1 2 10 No hay descuento
2 5 10 1 de descuento
3 10 15 1.5 de descuento
4 20 20 2 de descuento