Você está na página 1de 20

DISEO LOGICO DE

PROGRAMAS

90 ALGORITMOS

Italo Yaranga Vite


ipyv@hotmail.com

Algoritmos
Estructurados

C++

Italo Yaranga Vite

GUIA PRCTICA
ALGORITMOS
ESTRUCTURADOS
C++

Pgina 1 de 20

INDICE
PAG
Secuenciales.............................................. 3

SESION 01 :

Procesos

SESION 02 :

Estructuras Condicionales............................................

21

SESION 03 :

Estructuras Selectivas

44

SESION 04 :

Estructuras Repetitivas Para........................................ 75

SESION 05 :

Estructuras Repetitivas Mientras................................... 94

SESION 06 :

Procedimientos .......................................................

114

SESION 07 :

Funciones ................................................................

135

SESION 08 :

Arreglos de datos

...................................................

156

SESION 09 :

Matrices de datos ....................................................

181

.............................................

Italo Yaranga Vite

S SESION 01
Los procesos secuenciales
Permiten realizar un proceso
tras otro no dependiendo de
alguna

condicin

variar la secuencia.

Pgina 3 de 20

que

haga

SESION 01
PROCESOS SECUENCIALES
1. Disear un algoritmo en donde un vendedor recibe un sueldo mensual ms un 10% de
comisin por ventas, el vendedor desea saber cunto dinero obtendr por las tres ventas
que realiza en el mes. Determinar el pago total que recibir a fin mes el vendedor.
Solucin:
*Anlisis de datos
E: vendedor, sm, vt1, vt2 ,vt3.
S: pt (pago total)
*Algoritmo
1.-Inicio
2.-vendedor='', sm=0.0, vt1=0.0, vt2=0.0, vt3=0.0,pt=0.0,c=0.0
3.-Leer vendedor, sb, vt1, vt2, vt3.
4.-c=(vt1+vt2+vt3)*0.10
pt=sb + c
5.-Escribir pt
6.-fin
*Prueba de escritorio
vendedor='juan'
sm=1800
vt1=200
vt2=400
vt3=600
pt=1920
*Implementacin del algoritmo.
//libreria de entrada y salida de datos por consola
#include <iostream.h>
#include <conio.h>
//procedimiento principal
int main(){
//declarar variables
char vendedor[20];//variable tipo cadena
double sm,pt,c; //variable tipo reales
int vt1,vt2,vt3; //variables enteras
//entrada de datos
cout<<"Ingresar Vendedor:";cin>>vendedor;
cout<<"Ingresar Sueldo mensual:";cin>>sm;
cout<<"Ingresar Venta1:";cin>>vt1;
cout<<"Ingresar Venta2:";cin>>vt2;
cout<<"Ingresar Venta3:";cin>>vt3;
//proceso de datos
c=(vt1+vt2+vt3)*0.10;
pt=sm+c;
//salida de datos
cout<<"El pago total es:"<<pt;
getch();//permite leer un carcter del teclado
}//fin del procedimiento

Italo Yaranga Vite


*Ejecucin del programa.

2. Disear un algoritmo que permita determinar el sueldo neto de un empleado, al cual se le


realiza un descuento del 13% (por planilla) de su sueldo bruto que se calcula en base a las
horas trabajadas al mes y su tarifa por hora trabajada. Visualizar sueldo bruto, descuento y
sueldo neto a pagar.
Solucin:
*Anlisis de datos
E: e (empleado), ht (horas trabajadas), th (tarifa por hora)
s: sb (sueldo bruto), d(descuento), sn (sueldo neto).
*Algoritmo
1.-inicio
2.-e='', ht=0, th=0.0, sb=0.0, d=0.0, sn=0.0
3.-leer e, ht ,th.
4.-sb=ht * th
d=sb * 0.13
sn=sb - d
5.-escribir sb, d, sn
6.-fin
*Prueba de Escritorio
ht=160
th=20
sb=3200
d=416
sn=2784

Pgina 5 de 20

*Implementacin del algoritmo.


//librerias de entrada y salida de datos por consola
#include <iostream.h>
#include <conio.h>
//procedimiento principal
int main(){
//declarar variables
int ht,th; //variables enteras
double sb,d,sn;
//entrada de datos
cout<<"Horas Trabajadas al mes:";cin>>ht;
cout<<"Tarifa x Hora:";cin>>th;
//proceso de datos
sb=ht*th;
d=sb*0.13;
sn=sb-d;
//salida de datos
cout<<""<<endl;
cout<<"-----Los Resultados Son:------:"<<endl;
cout<<""<<endl;
cout<<"Sueldo Bruto:"<<sb<<endl;
cout<<"Descuento:"<<d<<endl;
cout<<"Sueldo Neto:"<<sn<<endl;
getch();//permite leer un caracter del teclado
}//fin del procedimiento

*Ejecucin del programa.

Italo Yaranga Vite


3. Disear un algoritmo que permita distribuir una cantidad ingresada en soles y Visualice la
cantidad de billetes de cada denominacin de billetes de 200, 100, 50, 20, 10 y moneda 5,
2 y 1.
Solucin:
*Anlisis de datos
E: cs (cantidad soles)
S: b200, b100, b50, b20, b10, m5.
*Algoritmo
2.-cs=0,b200=0,b100=0,b50=0,b20=0,b10=0,m5=0,r=0, m2=0,m1=0
3.-leer cs
4.-b200=entero(cs/200)
r=residuo(cs/200)
b100=entero(r/100)
r=residuo(r/100)
b50=entero(r/50)
r=residuo(r/50)
b20=entero(r/20)
r=residuo(r/20)
b10=entero(r/10)
r=residuo(r/10)
m5=entero(r/5)
r=residuo(r/5)
m2=entero(r/2)
r=residuo(r/2)
m1=entero(r/1)
5.escribir b200,b100,b50,b20,b10,m5,m2,m1
6.fin
*Prueba de Escritorio
cs=385
b200=1, b100=1, b50=1, b20=1, b10=1, m5=1,m2=1,m1=1

Pgina 7 de 20

*Implementacin del algoritmo.


//libreria de e/s de datos por consola
#include <iostream.h>
//programa principal
main(){
//declarar variables
int cs,b200,b100,b50,b20,b10,m5,r,m2,m1;
//entrada de datos
cout<<"Ingresar Cantidad:";cin>>cs;
//proceso de datos
b200=int(cs/200);
r=cs%200;
b100=int(r/100);
r=r%100;
b50=int(r/50);
r=r%50;
b20=int(r/20);
r=r%20;
b10=int(r/10);
r=r%10;
m5=int(r/5);
r=r%5;
m2=int(r/2);
r=r%2;
m1=int(r/1);
//salida de datos
cout<<"Billetes de 200:"<<b200<<endl;
cout<<"Billetes de 100:"<<b100<<endl;
cout<<"Billetes de 50:"<<b50<<endl;
cout<<"Billetes de 20:"<<b20<<endl;
cout<<"Billetes de 10:"<<b10<<endl;
cout<<"Modedas de 5:"<<m5<<endl;
cout<<"Modedas de 2:"<<m2<<endl;
cout<<"Modedas de 1:"<<m1<<endl;
system("PAUSE");
} //fin de programa
*Ejecucin del programa.

Italo Yaranga Vite


4. Disear un algoritmo que permita obtener la depreciacin acumulada y el valor real de un
automvil para su reventa.
Solucin:
*Anlisis de datos
E: co (coste original), vu (vida til), vrc (valor de recuperacin), ap (aos de propiedad)
S: da (depreciacin acumulada), vr (valor real)
*Algoritmo
1.-inicio
2.-co=0.0, vu=0, vrc=0.0, ap=0, da=0.0, vr=0.0
3.-leer co, vu, vrc, ap
4.-da=ap*(co-vrc)/vu
vr=co-da
5.-escribir da, vr
6.-fin
*Prueba de Escritorio
co =20000
vu =6
vrc =2000
ap =2
da =6000
vr =14000

*Implementacin del algoritmo.


//libreria de entrada y salida de datos
#include <iostream.h>
#include <conio.h>
//procedimiento principal
int main () {
//declarar variables
int vu,ap;
double co,vrc,da,vr;
//entrada de datos
cout<<"LOS DATOS DEL VEHICULO:"<<endl;
cout<<"Ingresar el Coste Original: ";cin>>co;
cout<<"Ingresar vida Util: ";cin>>vu;
cout<<"Ingresar el valor de recuperacion: ";cin>>vrc;
cout<<"ingresar los aos de propiedad: ";cin>>ap;
//procesos de datos
da=ap*(co-vrc)/vu;
vr=co-da;
//salida de datos
cout<<""<<endl;
cout<<"La Depreciacion Acumulada es: "<<da<<endl;
cout<<"El valor Real actual es: "<<vr;
getch();
} //fin de procedimiento

Pgina 9 de 20

*Ejecucin del programa.

5. Disear un algoritmo que permita realizar las operaciones aritmeticas basicas como: suma,
resta, mult, divisin, residuo, potencia, raiz cuadrada mediante dos nmeros ingresados.
Solucin:
*Anlisis de datos
E:n1,n2
S:s(suma),r(resta),m(mult),d(div),
rs(residuo),p(potencia),rc(raiz cuadrada)
*Algoritmo
1.-inicio
2.-n1=0.0,n2=0.0,s=0.0,r=0.0,m=0.0,d=0.0,rs=0,p=0,rc=0.0
3.-leer n1,n2
4.-s=n1+n2
r=n1-n2
m=n1*n2
d=n1/n2
rs=residuo(n1/n2)
p=potencia(n1,n2)
rc=raiz(n1)
5.-escribir s,r,m,d,rs,p,rc
6.-fin
*Prueba de Escritorio
n1=10
n2=5
S=15
R=5
M=50
D=2
RS=0
P=100000
RC=3.16228

Italo Yaranga Vite


*Implementacin del algoritmo.
//libreria de e/s de datos
#include <iostream.h>
#include <conio.h>
#include <math.h>
//programa principal
int main(){
//declarar variables
double n1=0.0,n2=0.0,s=0.0,r=0.0,m=0.0,d=0.0,p=0,rc=0.0;
int rs=0;
//entrada de datos
cout<<"Ingresar Numero 1:";cin>>n1;
cout<<"Ingresar Numero 2:";cin>>n2;
//proceso de datos
s=n1+n2;
r=n1-n2;
m=n1*n2;
d=n1/n2;
rs=int(n1)%int(n2);
p=pow(n1,n2); //potencia
rc=sqrt(n1);//raizc
//salida de datos
cout<<"La suma es:"<<s<<endl;
cout<<"La resta es:"<<r<<endl;
cout<<"La mult es:"<<m<<endl;
cout<<"La divisin es:"<<d<<endl;
cout<<"El residuo es:"<<rs<<endl;
cout<<"La potencia es:"<<p<<endl;
cout<<"La raiz es:"<<rc<<endl;
getch();
}//fin de programa

*Ejecucin del programa.

Pgina 11 de 20

6. Disear un algoritmo que solicite al usuario su sueldo mensual, sus gastos de: renta, luz,
agua y comida y le muestre cunto dinero le queda.
Solucin:
*Anlisis de datos
E:sm,r,l,a,c
S:dr(dinero restante)
*Algoritmo
1.-inicio
2.-sm=0,r=0,l=0,a=0,c=0,dr=0,s=0
3.-leer sm,r,l,a,c
4.-s=r+l+a+c
dr=sm-s
5.-escribir dr
6.-fin
*Prueba de Escritorio
sm=2000
r=700
l=100
a=120
comida=300
dr=780

Italo Yaranga Vite


*Implementacin del algoritmo.
//librera de entrada y salida de datos
#include <iostream.h>
#include <conio.h>
//procedimiento principal
int main(){
//declarar variables
int sm,r,l,a,c,dr,s;
//entrada de datos
cout<<"Hallar dinero que le queda"<<endl;
cout<<endl;
cout<<"Ingresar sueldo mensual: ";cin>>sm;
cout<<"Ingresar gasto en renta: ";cin>>r;
cout<<"Ingresar gasto en luz: ";cin>>l;
cout<<"Ingresar gasto en agua: ";cin>>a;
cout<<"Ingresar gasto en comida: ";cin>>c;
//proceso de datos
s=r+l+a+c;
dr=sm-s;
//salida de datos
cout<<"El dinero que le queda es: "<<dr<<endl;
getch();//permite leer un caracter
}//fin de procedimiento

*Ejecucin del programa.

Pgina 13 de 20

7.- Digite un nmero entero positivo de tres cifras, luego visualice el nuevo formado por sus
cifras extremas y la inversa de dicho nmero.
Solucin:
*Anlisis de datos
E:n(numero)
S: nnum(digitos de extremos), inv_nnum(nmeros invertidos)
*Algoritmo
1.-inicio
2.-n=0.0, c1=0,c2=0,c3=0, nnum=0,inv_nnum=0,r=0
3.-leer n
4.-c1=entero(n/100)
r=residuo(n/100)
c2=entero(r/10)
r=residuo(r/10)
c3=entero(r)
nnum=(c1*10+c3)
inv_nnum=(c1+c3*10)
5.-escribir nnum,inv_nnum
6.-fin
*Prueba de Escritorio
n=483
nnum=43
inv_nnum=34
*Implementacin del algoritmo.
//libreria de e/s de datos
#include <iostream.h>
//progrma principal
main(){
//declarar variables
int n,c1,c2,c3,nnum,inv_nnum,r;
//entrada de datos
cout<<"Ingresar Cantidad:";cin>>n;
//proceso de datos
c1=n/100;
r=n%100;
c2=r/10;
r=r%10;
c3=r;
nnum=(c1*10+c3);//extremos de numeros
inv_nnum=(c1+c3*10);//numeros invertidos
//salida de datos
cout<<"Extremo de numeros:"<<nnum<<endl;
cout<<"Numero Invertidos:"<<inv_nnum<<endl;
system("PAUSE");
}//fin programa

Italo Yaranga Vite


*Ejecucin del programa.

Pgina 15 de 20

8.- Cual es el monto a devolver si nos prestan un capital c a una tasa de interes t%, durante n
periodos?
Solucin:
*Analisis de datos
E:c(capital),t(tasa de interes),n(periodos)
S:m(monto)
*Algoritmo
1.-Inicio
2.-c=0.0,t=0.0,n=0,m=0.0
3.-m=c*pow(1 + t ,n)
4.-escribir m
5.-fin
*Prueba de escritorio
c=500
t=0.2
n=5
m=1244.16

*Implementacin del algoritmo.


//libreria de e/s de datos
#include <iostream.h>
#include <math.h>
//programa principal
main(){
//declarar variables
double c,t,m,x;
int n;
//entrada de datos
cout<<"Ingrese el capital :";cin>>c;
cout<<"Ingrese la tasa de interes en decimales :";cin>>t;
cout<<"Ingrese el periodo :";cin>>n;
m=c*pow(1+t,n);
//salida de datos
cout<<"El monto total es :"<<m<<endl;
system("PAUSE");
}//fin programa

Italo Yaranga Vite


*Ejecucin del programa.

9.- Disear un algoritmo que permite obtener el tiempo en segundos , si se ingresa el tiempo en
horas, minutos y segundos.(Ejemplo 15hrs 20min 30seg).
Solucin:
*Analisis de datos
E:hr(horas),m(minutos),s(segundos)
S:ts(tiempo total en segundos)
*Algoritmo
1.-Inicio
2.-hr=0.0,m=0.0,s=0.0,ts=0.0
3.-leer hr,m,s
4.-ts=hr*3600 + m*60 + s
5.-escribir ts
6.-fin
*Prueba de escritorio
hr=5
m=30
s=40
ts=19840

Pgina 17 de 20

*Implementacin del algoritmo.


#include <iostream.h>
#include <stdlib.h>
//promgrama principal
main(){
//declarar variables
double hr,m,s,ts;
//entrada de datos
cout<<"Ingrese la cantidad de horas :";cin>>hr;
cout<<"Ingrese la cantidad de minutos :";cin>>m;
cout<<"Ingrese la cantidad de segundos :";cin>>s;
//proceso de datos
ts=hr*3600+m*60+s;
//salida de datos
cout<<"El tiempo total en segundos es :"<<ts<<endl;
system("PAUSE");
}//fin de programa

*Ejecucin del programa.

Italo Yaranga Vite


10.- Disear un algoritmo que permita convertir una cantidad de dolares a una cantidad soles,
teniendo en cuenta el tipo de cambio del dolar.
Solucin:
*Analisis de datos
E:cd(cantidad dolares),tc(tipo de cambio)
S:cs(cantidad soles)
*Algoritmo
1.-inicio
2.-cd=0.0,tc=0.0,cs=0.0
3.-leer cd,tc
4.-cs=cd*tc
5.-escribir cs
6.-fin
*Prueba de Escritorio
cd=375
tc=2.75
cs=1031.25
*Implementacin del algoritmo.
#include <iostream.h>
#include <stdlib.h>
//promgrama principal
main(){
//declarar variables
double hr,m,s,ts;
//entrada de datos
cout<<"Ingrese la cantidad de horas :";cin>>hr;
cout<<"Ingrese la cantidad de minutos :";cin>>m;
cout<<"Ingrese la cantidad de segundos :";cin>>s;
//proceso de datos
ts=hr*3600+m*60+s;
//salida de datos
cout<<"El tiempo total en segundos es :"<<ts<<endl;
system("PAUSE");
}//fin de programa
*Ejecucin del programa.

Pgina 19 de 20

Você também pode gostar