Está en la página 1de 30

UAP

Docente: Mg. Flix Pucuhuayla Revatta

TAREA ALGORITMOS
Desarrollar todo en Word - URGENTE Pseudocdigo C++ Diagrama de Flujo

Lo envan a mi correo: uap_pucuhuayla@outlook.es Fecha: hasta la hora del examen oral

f_pucuhuayla@doc.uap.edu.pe

PROBLEMAS 1. Leer tres nmeros que denoten una fecha (da, mes, ao). Comprobar que es unafecha vlida. Si no es vlida escribir un mensaje de error. Si es vlida escribir la fecha cambiando el nmero del mes por su nombre. Ej. si se introduce 1- 2- 2006, se deber imprimir 1 de febrero de 2006. El ao debe ser mayor que 0. Pseudocdigo Proceso sin_titulo Escribir "ingrese el dia del ao"; Leer dia; Escribir "ingrese el mes del ao "; Leer mes; Escribir "ingrese el ao "; Leer ano; Si dia>0 & dia<31 Entonces Si mes>0 & mes<=12 Entonces Si ano>0 Entonces Segun mes Hacer mes=1: Escribir "la fecha es: ",dia,"de enero ",ano; mes=2: Escribir "la fecha es: ",dia,"de febrero ",ano; mes=3: Escribir "la fecha es: ",dia,"de marzo ",ano; mes=4: Escribir "la fecha es: ",dia,"de abril ",ano; mes=5: Escribir "la fecha es: ",dia,"de mayo ",ano; mes=6: Escribir "la fecha es: ",dia,"de junio ",ano;

UAP mes=7:

Docente: Mg. Flix Pucuhuayla Revatta

Escribir "la fecha es: ",dia,"de julio",ano; mes=8: Escribir "la fecha es: ",dia,"de agosto ",ano; mes=9: Escribir "la fecha es: ",dia,"de setiembre ",ano; mes=10: Escribir "la fecha es: ",dia,"de octubre",ano; mes=11: Escribir "la fecha es: ",dia,"de noviembre",ano; mes=12: Escribir "la fecha es: ",dia,"de diciembre ",ano; FinSegun FinSi FinSi FinSi FinProceso

C++ #include<iostream.h> #include<cstdlib> #include<conio.h>

int main() {int dia,mes,ano;

cout<<"\n ingrese el dia del ao ";cin>>dia; cout<<"\n ingrese el mes del ao ";cin>>mes; cout<<"\n ingrese el ao ";cin>>ano; if( dia>0 && dia<31) {if( mes>0 && mes<=12) {if(ano>0) { switch(mes) {case 1: cout<<"\n la fecha es: "<<dia<<" de enero "<<ano; break; case 2: cout<<"\n la fecha es: "<<dia<<" de febrero "<<ano; break; case 3: cout<<"\n la fecha es: "<<dia<<" de marzo "<<ano; break; case 4: cout<<"\n la fecha es: "<<dia<<" de abril "<<ano;

UAP

Docente: Mg. Flix Pucuhuayla Revatta

break; case 5: cout<<"\n la fecha es: "<<dia<<" de mayo"<<ano; break; case 6: cout<<"\n la fecha es: "<<dia<<" de junio "<<ano; break; case 7: cout<<"\n la fecha es: "<<dia<<" de julio "<<ano; break; case 8: cout<<"\n la fecha es: "<<dia<<" de agosto "<<ano; break; case 9: cout<<"\n la fecha es: "<<dia<<" de setiembre "<<ano; break; case 10: cout<<"\n la fecha es: "<<dia<<" de octubre "<<ano; break; case 11: cout<<"\n la fecha es: "<<dia<<" de noviembre"<<ano; break; case 12: cout<<"\n la fecha es: "<<dia<<" de diciembre "<<ano; break; } }}} cout<<endl; system ("pause"); getch(); return 0;}

UAP Diagrama de Flujo

Docente: Mg. Flix Pucuhuayla Revatta

UAP

Docente: Mg. Flix Pucuhuayla Revatta

2. Algoritmo que dado un ao, nos diga si es bisiesto o no. Un ao es bisiesto bajo las siguientes condiciones: Un ao divisible por 4 es bisiesto y no debe ser divisible entre 100. Si un ao es divisible entre 100 y adems es divisible entre 400, tambin resulta bisiesto. Pseudocdigo Proceso sin_titulo Escribir "ingrese el ao "; Leer ano; Si ano%4=0 & ano%100>0 Entonces Escribir " el ao ingresado es bisiesto"; Sino Escribir "el ao no es bisiesto"; FinSi Si ano%100=0 & ano%400=0 Entonces Escribir " el ao ingresado es bisiesto"; Sino Escribir "el ao no es bisiesto"; FinSi FinProceso C++ #include<iostream.h> #include<cstdlib> #include<conio.h>

int main() {int ano;

cout<<"\n ingrese el ao ";cin>>ano;

UAP if( ano%4==0 && ano%100!=0) {cout<<" el ao ingresado es bisiesto ";}

Docente: Mg. Flix Pucuhuayla Revatta

if( ano%100==0 && ano%400==0) {cout<<" el ao ingresado es bisiesto ";} else {cout<<"el ao no es bisiesto"; } cout<<endl; system ("pause"); getch(); return 0;} Diagrama de Flujo

Docente: Mg. Flix Pucuhuayla Revatta UAP 3. Una solicitante de trabajo presenta cinco prueba distintas (La puntuacin mxima es 10). Se clasifican de la siguiente forma: CONTRATADO, si por lo menos tienes dos pruebas con 9. ARCHIVAR si no se contrata pero tiene todas las pruebas con al menos 7. RECHAZAR cuando ni se contrata ni se archiva. Escribir un algoritmo que tenga como entrada el nombre y las clasificaciones del solicitante y muestre el nombre y la clasificacin, as como el total de puntos obtenidos en todas las pruebas.

Pseudocdigo Proceso sin_titulo Dimension a[50],b[50]; s<-0; k<-0; m<-0; Escribir "ngrese el nombre de solicitante "; Leer b; Para i<-1 Hasta 5 Hacer Escribir "ingrese la nota ",i; Leer a[i]; s<-s+a[i]; FinPara Escribir "clasificacion"; Para i<-1 Hasta 5 Hacer Si a[i]=10 Entonces k<-k+1; FinSi FinPara Si k=5 Entonces Escribir "CONTRATADO"; FinSi Para i<-1 Hasta 5 Hacer Si a[i]=9 Entonces m<-m+1; FinSi FinPara Si m=2 Entonces Escribir "ARCHIVAR"; FinSi Para i<-1 Hasta 5 Hacer

UAP Si a[i]<=7 Entonces k<-k+1; FinSi FinPara Si k=5 Entonces Escribir "RECHAZAR"; FinSi FinProceso C++ #include<cstdlib> #include<conio.h> #include<iostream.h>

Docente: Mg. Flix Pucuhuayla Revatta

int main() {int a[50],s=0,k=0,m=0; char nomb[50]; cout<<"ingrese el nombre de solicitante ";cin>>nomb; for(int i=0;i<5;i++) {cout<<"ingrese la nota "<<i+1<<" : ";cin>>a[i]; s=s+a[i];} cout<<"clasificacion"; for(int i=0;i<5;i++) { if(a[i]==10) {k=k+1;}} if(k==5) {cout<<"\n CONTRATADO";} for(int i=0;i<5;i++) { if(a[i]==9) { m=m+1;}} if(m==2) {cout<<"\n ARCHIVAR";} for(int i=0;i<5;i++) { if(a[i]<=7) {k=k+1;}} if(k==5) {cout<<"\n RECHAZAR";} cout<<endl; system ("pause"); getch(); return 0;}

UAP

Docente: Mg. Flix Pucuhuayla Revatta

UAP

Docente: Mg. Flix Pucuhuayla Revatta

4. Escribir un algoritmo que lea dos nmeros cualesquiera e invoque una funcin denominada MULTIPLO que determine si alguno de los nmeros ledos el mltiplo del otro. El algoritmo deber mostrar un mensaje que salga el resultado de la comprobacin Pseudocdigo Proceso sin_titulo Escribir "ingrese el primer numero"; Leer a; Escribir " ingrese el segundo numero "; Leer b; Si a>=b Entonces Si a%b=0 Entonces Escribir "los numeros son multiplos"; Sino Escribir "los numeros no son multiplos"; FinSi FinSi Si b>=a Entonces Si b%a=0 Entonces Escribir "los numeros son multiplos"; Sino Escribir "los numeros no son multiplos"; FinSi FinSi FinProceso C++ #include<cstdlib> #include<conio.h> #include<iostream.h> int main() {int a,b; cout<<"ingrese el primer numero ";cin>>a; cout<<"ingrese el segundo numero ";cin>>b;

if(a>=b) {if(a%b==0) {cout<<" el numero "<<a<<" es multiplo de "<<b;}} else

UAP

Docente: Mg. Flix Pucuhuayla Revatta

{cout<<"los numeros no son multiplos ";} if(b>a) { if(b%a==0) {cout<<" el numero "<<b<<" es multiplo de "<<a;}} else {cout<<"los numeros no son multiplos ";} cout<<endl; system ("pause"); getch(); return 0;} Diagrama de Flujo

UAP

Docente: Mg. Flix Pucuhuayla Revatta

5. Escribir un algoritmo que: A) Lea un nmero entero positivo de cuatro (4) dgitos. B) Invoque una funcin denominada ORDEN que invierta el orden de dichos dgitos (Ejemplo: 1357 => 7531) y C) Muestre el nmero ledo y el nmero invertido

Pseudocdigo Proceso sin_titulo Dimension b[50]; Escribir "Ingrese un numero de 4 digitos"; Leer n; b[4]<-n/1000; n<-n-b[4]*1000; b[3]<-n/100; n<-n-b[3]*100; b[2]<-n/10; n<-n-b[2]*10; b[1]<-n; Escribir "el numero invertido es: " ; Para i<-1 Hasta 4 Hacer Escribir b[i]; FinPara FinProceso

UAP

Docente: Mg. Flix Pucuhuayla Revatta

C++ #include<iostream.h> #include<cstdlib> #include <conio.h> int main () { int n,b[50]; cout<<"Ingrese un numero de 4 digitos: "; cin>>n; b[3]=n/1000; n=n-b[3]*1000; b[2]=n/100; n=n-b[2]*100; b[1]=n/10; n=n-b[1]*10; b[0]=n; cout<<"el numero invertido es: "; for(int i=0;i<4;i++) {cout<<b[i];} cout<<endl ; system ("pause"); getch(); return 0;}

UAP Diagrama de Flujo

Docente: Mg. Flix Pucuhuayla Revatta

UAP

Docente: Mg. Flix Pucuhuayla Revatta

6. Hacer un algoritmo que A) Lea cuatro (4) nmeros, B) Invoque dos funciones, una para determinar el mximo comn divisor (MCD) y la otra para determinar el mnimo comn mltiplo (MCM) de los nmeros ledos y C) Muestre los nmeros ledos y el valor de MCD y del MCM de los mismos. Pseudocdigo Proceso sin_titulo Escribir "ingrese el primer numero"; Leer a; Escribir " ingrese el segundo numero "; Leer b; Escribir "ingrese el tercer numero "; Leer c; Escribir "ingrese el cuarto numero" ; Leer d; i<-1; Mientras i<=a Hacer Si a%i=0 Entonces Si b%i=0 Entonces Si c%i=0 Entonces Si d%i=0 Entonces mayordivisor<-i; i<-i+1; FinSi FinSi FinSi FinSi FinMientras n<-a*b*c*d; Mientras n>0 Hacer Si n%a=0 Entonces Si n%b=0 Entonces Si n%c=0 Entonces Si n%d=0 Entonces minimo<-n; n<-n-1; FinSi FinSi FinSi FinSi FinMientras

UAP

Docente: Mg. Flix Pucuhuayla Revatta

Escribir "los numeros leidos es "; Escribir " ",a; Escribir " ",b; Escribir " ",c; Escribir " ",d; Escribir "el minimo comun multiplo es ",minimo; Escribir "el maximo comun divisor es ",mayordivisor; FinProceso C++ #include<cstdlib> #include<conio.h> #include<iostream.h> int main() {int a,b,i=1,c,d,e,mayordivisor=1,n,minimo=1; cout<<"ingrese el primer numero ";cin>>a; cout<<"ingrese el segundo numero ";cin>>b; cout<<"ingrese el tercer numero ";cin>>c; cout<<"ingrese el cuarto numero ";cin>>d; while(i<=a) {if(a%i==0) {if(b%i==0) if(c%i==0) if(d%i==0) mayordivisor=i;} i++; } n=a*b*c*d; while(n>0) {if(n%a==0) {if(n%b==0) if(n%c==0) if(n%d==0) { minimo=n;}} n--; } cout<<"los numeros leidos es "<<a<<" "<<b<<" "<<c<<" "<<d; cout<<"\n el minimo comun multiplo es "<<minimo; cout<<"\n el maximo comun divisor es "<<mayordivisor; cout<<endl; system ("pause"); getch(); return 0;}

UAP Diagrama de Flujo

Docente: Mg. Flix Pucuhuayla Revatta

Docente: Mg. Flix Pucuhuayla Revatta UAP 7. Disear un algoritmo que calcule cuanto de peso le recomienda un nutricionista bajar a su paciente al mes de acuerdo a su sobrepeso y gnero:

Gnero Kilos de Hombre Mujer sobrepeso 15 0.8% 0.5% 6 10 0.7% 0.4% 11 ms 0.6% 0.3% Pseudocdigo Proceso sin_titulo Escribir "ingrese el tipo de genero:"; Escribir "hombre (h) "; Escribir "mujer (m) "; Leer g; Escribir " ingrese su sobrepeso "; Leer s; Si g='h' Entonces Si s>=1 & s<=5 Entonces r<-s*0.8; FinSi Si s>=6 & s<=10 Entonces r<-s*0.7; FinSi Si s>=11 Entonces r<-s*0.6; FinSi FinSi Si g='m' Entonces Si s>=1 & s<=5 Entonces r<-s*0.5; FinSi Si s>=6 & s<=10 Entonces r<-s*0.4; FinSi Si s>=11 Entonces r<-s*0.3; FinSi FinSi Escribir " se recomineda bajar: ",r; FinProceso

UAP C++ #include <conio.h> #include <iostream.h> #include <string.h> int main() {float r,s; char g; cout<<"\n ingrese el tipo de genero:"; cout<<"\n hombre (h) :"; cout<<"\n mujer (m) : \n "; cin>>g; cout<<" \n ingrese su sobrepeso ";cin>>s; if (g=='h') { if(s>=1 && s<=5) {r=s*0.8;} if(s>=6 && s<=10) {r=s*0.7;} if(s>=11) {r=s*0.6;} } if (g=='m') { if(s>=1 && s<=5) {r=s*0.5;} if(s>=6 && s<=10) {r=s*0.4;} if(s>=11) {r=s*0.3;} } cout<<"\n se recomineda bajar : "<<r; cout<<"\n \n"; system(" PAUSE"); getch(); return 0;}

Docente: Mg. Flix Pucuhuayla Revatta

UAP Diagrama de Flujo

Docente: Mg. Flix Pucuhuayla Revatta

UAP

Docente: Mg. Flix Pucuhuayla Revatta

8. Disear un algoritmo que calcule el monto que recaud el promotor del concierto de Madonna en su ltimo concierto donde hubo 30,000 asistentes y 3 tipos de entradas. Entradas VIP Platea Mezanine Pseudocdigo Proceso sin_titulo Escribir " ingrese la cantidad de asistentes"; Leer n; Escribir " ingrese la cantidad de asistentes ZONA VIP "; Leer v; Escribir " ingrese la cantidad de asistentes ZONA PLATEA "; Leer p; Escribir "ingrese la cantidad de asistentes ZONA MEZANINE" ; Leer m; montov<-v*900; montop<-p*600; montom<-m*300; montototal<-montov+montop+montom; Escribir "el monto recaudado es :",montototal; Fin de proceso Precio $ 900 600 300

C++ #include<iostream.h> #include<cstdlib> #include <conio.h> int main () { int n,v,m,p, montov,montop,montom,montototal; cout<<"tipo entradas y precios \n"; cout<<"ZONA VIP .......PRECIO :900\n"; cout<<"ZONA PLATEA ....PRECIO :600\n"; cout<<"ZONA MEZANINE...PRECIO :300\n"; cout<<" ingrese la cantidad de asistentes ";cin>>n;

Docente: Mg. Flix Pucuhuayla Revatta UAP cout<<" ingrese la cantidad de asistentes ZONA VIP ";cin>>v; cout<<" ingrese la cantidad de asistentes ZONA PLATEA ";cin>>p; cout<<" ingrese la cantidad de asistentes ZONA MEZANINE ";cin>>m;

montov=v*900; montop=p*600; montom=m*300; montototal=montov+montop+montom; cout<<"el monto recaudado es :"<<montototal; cout<<endl; system ("pause"); getch(); return 0;} Diagrama de Flujo

UAP

Docente: Mg. Flix Pucuhuayla Revatta

9. Guardar en una matriz de 5 x 6 nmeros enteros, se pide calcular la cuantos nmeros mltiplos de 3 hay en la matriz. 15 2 17 42 26 21 1 16 34 53 30 8 14 45 54 18 13 36 43 62 22 12 5 19 63 23 11 110 27 90

Respuesta: Pseudocdigo

La cantidad de alumnos del primer ciclo mayores de edad es: 10

Proceso sin_titulo Dimension b[6], a[5,5]; K<-1; Escribir ' ingrese los elmentos de la matriz 5x6'; Para J<-1 Hasta 5 Hacer Para I<-1 Hasta 6 Hacer Leer a[J,I]; FinPara FinPara Para J<-1 Hasta 5 Hacer Para I<-1 Hasta 6 Hacer Escribir " ",a[J,I]; FinPara FinPara Para J<-1 Hasta 5 Hacer Para I<-1 Hasta 6 Hacer Si a[J,I]%3=0 Entonces K<-K+1; FinSi FinPara FinPara Escribir 'la cantidad de elementos de la matriz multiplos de 3 es ',K;

FinProceso

UAP C++ #include<iostream.h> #include<cstdlib> #include <conio.h>

Docente: Mg. Flix Pucuhuayla Revatta

int main () { int a[50][50],b[50],k=0,q,temp; cout<<" ingrese los elmentos de la matriz 5x6 : \n"; for(int j=0;j<5;j++){ for(int i=0;i<6;i++) cin>>a[j][i];} cout<<" la matriz ingresada es : \n "; for(int j=0;j<5;j++) { for(int i=0;i<6;i++) { cout<<a[j][i]<<"\t";} cout<<endl; } for(int j=0;j<5;j++){ for(int i=0;i<6;i++) { if(a[j][i]%3==0) k=k+1;}} cout<<"la cantidad de elementos de la matriz multiplos de 3 es "<<k; cout<<"\n"; system ("pause"); getch(); return 0;}

UAP

Docente: Mg. Flix Pucuhuayla Revatta

Diagrama de Flujo

UAP

Docente: Mg. Flix Pucuhuayla Revatta

10. Guardar en una matriz cuadrada de tamao 5 nmeros enteros de tres dgitos. Mostrar los dgitos que ocupan el lugar de las centenas de los nmeros ubicados en filas pares con columnas impares. Como se muestra la tabla. Finalmente,ordenar el vector resultado en forma descendente y mostrarlo. 365 217 122 787 895 Pseudocdigo Proceso sin_titulo Dimension b[6], a[5,5]; K<-1; Escribir 'ingresenel tamao de la matriz'; Leer n; Para J<-1 Hasta 5 Hacer Para I<-1 Hasta 5 Hacer Leer a[I,J]; FinPara FinPara Para I<-1 Hasta 5 Hacer Para J<-1 Hasta 5 Hacer Escribir " ",a[I,J]; FinPara FinPara Para I<-1 Hasta 5 Hacer Para J<-1 Hasta 5 Hacer Si J%2=0 & I%2>0 Entonces b[K]<-(a[I,J]/100); K<-K+1; FinSi FinPara FinPara Escribir 'los dgitos que ocupan el lugar de las centenas de los nmeros ubicados en filas pares con columnas impares'; Para I<-1 Hasta 6 Hacer Escribir " ",b[I]; FinPara FinProceso 453 383 987 645 432 756 651 432 998 332 345 358 388 847 634 863 532 745 456 589

UAP

Docente: Mg. Flix Pucuhuayla Revatta

C++

#include<iostream.h> #include<cstdlib> #include <conio.h> int main () { int n,a[50][50],b[50],k=0,q,temp; cout<<"Ingrese tamao de la matriz: "; cin>>n; for(int j=0;j<n;j++){ for(int i=0;i<n;i++) cin>>a[i][j];} cout<<" la matriz ingresada es : \n "; for(int i=0;i<n;i++){ for(int j=0;j<n;j++) cout<<a[j][i]<<"\t"; cout<<endl;} for(int i=0;i<n;i++) { for(int j=0;j<n;j++) if(i%2!=0 && j%2==0) { b[k]=a[j][i]/100;; k=k+1;}} cout<<"\n"; for(int k=0;i<k;i++) {cout<<" "<< b[k];} system ("pause"); getch(); return 0;}

Diagrama de Flujo

UAP

Docente: Mg. Flix Pucuhuayla Revatta

UAP

Docente: Mg. Flix Pucuhuayla Revatta

UAP

Docente: Mg. Flix Pucuhuayla Revatta