21
 DISEÑO LOGICO DE PROGRAMAS 90 ALGORITMOS Italo Yaranga Vite [email protected] Algoritmos Estructurados C++ 

Parte de La Guia de Practica de Algoritmos

Embed Size (px)

Citation preview

Page 1: Parte de La Guia de Practica de Algoritmos

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++ 

Page 2: Parte de La Guia de Practica de Algoritmos

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++

Page 3: Parte de La Guia de Practica de Algoritmos

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

Page 4: Parte de La Guia de Practica de Algoritmos

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. 

Page 5: Parte de La Guia de Practica de Algoritmos

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.

Page 6: Parte de La Guia de Practica de Algoritmos

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:

Page 7: Parte de La Guia de Practica de Algoritmos

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.

Page 8: Parte de La Guia de Practica de Algoritmos

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:

Page 9: Parte de La Guia de Practica de Algoritmos

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.

Page 10: Parte de La Guia de Practica de Algoritmos

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.

Page 11: Parte de La Guia de Practica de Algoritmos

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:

Page 12: Parte de La Guia de Practica de Algoritmos

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.

Page 13: Parte de La Guia de Practica de Algoritmos

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:

Page 14: Parte de La Guia de Practica de Algoritmos

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.

Page 15: Parte de La Guia de Practica de Algoritmos

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. 

Page 16: Parte de La Guia de Practica de Algoritmos

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.

Page 17: Parte de La Guia de Practica de Algoritmos

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. 

Page 18: Parte de La Guia de Practica de Algoritmos

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:

Page 19: Parte de La Guia de Practica de Algoritmos

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.

Page 20: Parte de La Guia de Practica de Algoritmos

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.