Date post: | 13-Apr-2018 |
Category: |
Documents |
Upload: | enrique-tasayco-pachas |
View: | 238 times |
Download: | 0 times |
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 1/20
DISEÑO LOGICO DEPROGRAMAS
90 ALGORITMOS
Italo Yaranga [email protected]
Algoritmos
Estructurados
C++
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 2/20
Italo Yaranga Vite
Página 1 de 20
GUIA PRÁCTICA
ALGORITMOS
ESTRUCTURADOS
C++
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 3/20
INDICE
PAGSESION 01 : Procesos Secuenciales.............................................. 3
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
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 4/20
Italo Yaranga Vite
Página 3 de 20
S E S I O N 0 1
Los procesos secuenciales
Permiten realizar un proceso
tras otro no dependiendo de
alguna condición que haga
variar la secuencia.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 5/20
*Análisis de datos E: vendedor, sm, vt1, vt2 ,vt3.S: pt (pago total)
*Algoritmo1.-Inicio2.-vendedor='', sm=0.0, vt1=0.0, vt2=0.0, vt3=0.0,pt=0.0,c=0.03.-Leer vendedor, sb, vt1, vt2, vt3.
4.-c=(vt1+vt2+vt3)*0.10pt=sb + c5.-Escribir pt6.-fin
*Prueba de escritorio vendedor='juan'sm=1800vt1=200vt2=400vt3=600pt=1920
//libreria de entrada y salida de datos por consola#include <iostream.h>#include <conio.h>//procedimiento principalint main(){
//declarar variableschar vendedor[20];//variable tipo cadenadouble 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 datosc=(vt1+vt2+vt3)*0.10;pt=sm+c;//salida de datoscout<<"El pago total es:"<<pt;
getch();//permite leer un carácter del teclado}//fin del procedimiento
SESION 01
PROCESOS SECUENCIALES
1. Diseñar un algoritmo en donde un vendedor recibe un sueldo mensual más un 10% decomisión por ventas, el vendedor desea saber cuánto dinero obtendrá por las tres ventasque realiza en el mes. Determinar el pago total que recibirá a fin mes el vendedor.
Solución:
*Implementación del algoritmo.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 6/20
Italo Yaranga Vite
Página 5 de 20
*Análisis de datos E: e (empleado), ht (horas trabajadas), th (tarifa por hora)
s: sb (sueldo bruto), d(descuento), sn (sueldo neto).
*Algoritmo 1.-inicio2.-e='', ht=0, th=0.0, sb=0.0, d=0.0, sn=0.03.-leer e, ht ,th.4.-sb=ht * thd=sb * 0.13sn=sb - d5.-escribir sb, d, sn6.-fin
*Prueba de Escritorio ht=160th=20sb=3200d=416sn=2784
*Ejecución del programa.
2. Diseñar un algoritmo que permita determinar el sueldo neto de un empleado, al cual se lerealiza un descuento del 13% (por planilla) de su sueldo bruto que se calcula en base a lashoras trabajadas al mes y su tarifa por hora trabajada. Visualizar sueldo bruto, descuento ysueldo neto a pagar.
Solución:
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 7/20
//librerias de entrada y salida de datos por consola#include <iostream.h>#include <conio.h>//procedimiento principalint main(){
//declarar variablesint ht,th; //variables enterasdouble sb,d,sn;//entrada de datoscout<<"Horas Trabajadas al mes:";cin>>ht;cout<<"Tarifa x Hora:";cin>>th;//proceso de datossb=ht*th;d=sb*0.13;sn=sb-d;
//salida de datoscout<<""<<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
*Implementación del algoritmo.
*Ejecución del programa.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 8/20
Italo Yaranga Vite
Página 7 de 20
*Análisis 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=03.-leer cs4.-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,m16.- fin
*Prueba de Escritorio cs=385b200=1, b100=1, b50=1, b20=1, b10=1, m5=1,m2=1,m1=1
3. Diseñar un algoritmo que permita distribuir una cantidad ingresada en soles y Visualice lacantidad de billetes de cada denominación de billetes de 200, 100, 50, 20, 10 y moneda 5,2 y 1.
Solución:
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 9/20
//libreria de e/s de datos por consola#include <iostream.h>//programa principalmain(){
//declarar variables
int cs,b200,b100,b50,b20,b10,m5,r,m2,m1;//entrada de datoscout<<"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 datoscout<<"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
*Implementación del algoritmo.
*Ejecución del programa.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 10/20
Italo Yaranga Vite
Página 9 de 20
//libreria de entrada y salida de datos#include <iostream.h>#include <conio.h>//procedimiento principalint main () {
//declarar variablesint 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 años de propiedad: ";cin>>ap;//procesos de datosda=ap*(co-vrc)/vu;vr=co-da;//salida de datoscout<<""<<endl;cout<<"La Depreciacion Acumulada es: "<<da<<endl;cout<<"El valor Real actual es: "<<vr;
getch();} //fin de procedimiento
4. Diseñar un algoritmo que permita obtener la depreciación acumulada y el valor real de unautomóvil para su reventa.
Solución:
*Análisis de datos E: co (coste original), vu (vida útil), vrc (valor de recuperación), ap (años de propiedad)
S: da (depreciación acumulada), vr (valor real)
*Algoritmo1.-inicio2.-co=0.0, vu=0, vrc=0.0, ap=0, da=0.0, vr=0.03.-leer co, vu, vrc, ap4.-da=ap*(co-vrc)/vu
vr=co-da5.-escribir da, vr6.-fin
*Prueba de Escritorio co =20000vu =6vrc =2000ap =2da =6000vr =14000
*Implementación del algoritmo.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 11/20
*Análisis de datosE:n1,n2S:s(suma),r(resta),m(mult),d(div),rs(residuo),p(potencia),rc(raiz cuadrada)
*Algoritmo1.-inicio2.-n1=0.0,n2=0.0,s=0.0,r=0.0,m=0.0,d=0.0,rs=0,p=0,rc=0.03.-leer n1,n24.-s=n1+n2
r=n1-n2m=n1*n2d=n1/n2rs=residuo(n1/n2)p=potencia(n1,n2)rc=raiz(n1)
5.-escribir s,r,m,d,rs,p,rc6.-fin
*Prueba de Escritorion1=10n2=5S=15R=5M=50D=2RS=0P=100000
RC=3.16228
*Ejecución del programa.
5. Diseñar un algoritmo que permita realizar las operaciones aritmeticas basicas como: suma,resta, mult, división, residuo, potencia, raiz cuadrada mediante dos números ingresados.
Solución:
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 12/20
Italo Yaranga Vite
Página 11 de 20
//libreria de e/s de datos#include <iostream.h>#include <conio.h>#include <math.h>//programa principal
int main(){//declarar variablesdouble 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 datoscout<<"Ingresar Numero 1:";cin>>n1;cout<<"Ingresar Numero 2:";cin>>n2;//proceso de datoss=n1+n2;r=n1-n2;m=n1*n2;d=n1/n2;
rs=int(n1)%int(n2);p=pow(n1,n2); //potenciarc=sqrt(n1);//raizc//salida de datoscout<<"La suma es:"<<s<<endl;cout<<"La resta es:"<<r<<endl;cout<<"La mult es:"<<m<<endl;cout<<"La división 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
*Implementación del algoritmo.
*Ejecución del programa.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 13/20
*Análisis de datos E:sm,r,l,a,c
S:dr(dinero restante)
*Algoritmo 1.-inicio2.-sm=0,r=0,l=0,a=0,c=0,dr=0,s=03.-leer sm,r,l,a,c4.-s=r+l+a+c
dr=sm-s5.-escribir dr6.-fin
*Prueba de Escritorio
sm=2000r=700l=100a=120comida=300dr=780
6. Diseñar un algoritmo que solicite al usuario su sueldo mensual, sus gastos de: renta, luz,agua y comida y le muestre cuánto dinero le queda.
Solución:
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 14/20
Italo Yaranga Vite
Página 13 de 20
//librería de entrada y salida de datos#include <iostream.h>#include <conio.h>//procedimiento principalint main(){
//declarar variablesint sm,r,l,a,c,dr,s;//entrada de datoscout<<"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 datoss=r+l+a+c;dr=sm-s;//salida de datoscout<<"El dinero que le queda es: "<<dr<<endl;getch();//permite leer un caracter
}//fin de procedimiento
*Implementación del algoritmo.
*Ejecución del programa.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 15/20
*Análisis de datos E:n(numero)
S: nnum(digitos de extremos), inv_nnum(números invertidos)
*Algoritmo 1.-inicio2.-n=0.0, c1=0,c2=0,c3=0, nnum=0,inv_nnum=0,r=03.-leer n4.-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_nnum6.-fin*Prueba de Escritorio n=483nnum=43inv_nnum=34
//libreria de e/s de datos#include <iostream.h>//progrma principalmain(){//declarar variablesint n,c1,c2,c3,nnum,inv_nnum,r;
//entrada de datoscout<<"Ingresar Cantidad:";cin>>n;
//proceso de datosc1=n/100;r=n%100;c2=r/10;r=r%10;
c3=r;nnum=(c1*10+c3);//extremos de numerosinv_nnum=(c1+c3*10);//numeros invertidos//salida de datoscout<<"Extremo de numeros:"<<nnum<<endl;cout<<"Numero Invertidos:"<<inv_nnum<<endl;system("PAUSE");
}//fin programa
7.- Digite un número entero positivo de tres cifras, luego visualice el nuevo formado por suscifras extremas y la inversa de dicho número.
Solución:
*Implementación del algoritmo.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 16/20
Italo Yaranga Vite
Página 15 de 20
*Ejecución del programa.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 17/20
*Analisis de datosE:c(capital),t(tasa de interes),n(periodos)
S:m(monto)
*Algoritmo1.-Inicio2.-c=0.0,t=0.0,n=0,m=0.03.-m=c*pow(1 + t ,n)4.-escribir m5.-fin
*Prueba de escritorioc=500t=0.2
n=5m=1244.16
//libreria de e/s de datos#include <iostream.h>#include <math.h>//programa principalmain(){//declarar variablesdouble c,t,m,x;int n;//entrada de datoscout<<"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 datoscout<<"El monto total es :"<<m<<endl;system("PAUSE");
}//fin programa
8.- ¿Cual es el monto a devolver si nos prestan un capital c a una tasa de interes t%, durante nperiodos?
Solución:
*Implementación del algoritmo.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 18/20
Italo Yaranga Vite
Página 17 de 20
*Analisis de datosE:hr(horas),m(minutos),s(segundos)S:ts(tiempo total en segundos)
*Algoritmo1.-Inicio2.-hr=0.0,m=0.0,s=0.0,ts=0.03.-leer hr,m,s4.-ts=hr*3600 + m*60 + s5.-escribir ts6.-fin
*Prueba de escritoriohr=5m=30s=40ts=19840
*Ejecución del programa.
9.- Diseñar un algoritmo que permite obtener el tiempo en segundos , si se ingresa el tiempo enhoras, minutos y segundos.(Ejemplo 15hrs 20min 30seg).
Solución:
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 19/20
#include <iostream.h>#include <stdlib.h>//promgrama principalmain(){//declarar variables
double hr,m,s,ts;//entrada de datoscout<<"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 datosts=hr*3600+m*60+s;//salida de datoscout<<"El tiempo total en segundos es :"<<ts<<endl;system("PAUSE");}//fin de programa
*Implementación del algoritmo.
*Ejecución del programa.
7/21/2019 Parte de La Guia de Practica de Algoritmos
http://slidepdf.com/reader/full/parte-de-la-guia-de-practica-de-algoritmos 20/20
Italo Yaranga Vite
*Analisis de datos
E:cd(cantidad dolares),tc(tipo de cambio)S:cs(cantidad soles)
*Algoritmo1.-inicio2.-cd=0.0,tc=0.0,cs=0.03.-leer cd,tc4.-cs=cd*tc5.-escribir cs6.-fin
*Prueba de Escritorio
cd=375tc=2.75cs=1031.25
#include <iostream.h>#include <stdlib.h>//promgrama principalmain(){//declarar variablesdouble hr,m,s,ts;
//entrada de datoscout<<"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 datosts=hr*3600+m*60+s;//salida de datoscout<<"El tiempo total en segundos es :"<<ts<<endl;system("PAUSE");
}//fin de programa
10.- Diseñar un algoritmo que permita convertir una cantidad de dolares a una cantidad soles,teniendo en cuenta el tipo de cambio del dolar.
Solución:
*Implementación del algoritmo.
*Ejecución del programa.