Documente Academic
Documente Profesional
Documente Cultură
nmerodeterminadodeveces,sedenominaSENTENCIAS
REPETITIVAS(Bucles).Seejecutanmientrassecumpleuna
determinadacondicindeevaluacin
Diseo de bucles
La repeticin se realiza mediante:
1.-Contador
2.- En forma interactiva entre usuario y programa
3.- La funcin parte entera.
PreTest
PosTest
# conocido de
3 tipos
Pre test
mientras
PosTest
Repetir
/hacer
Numero inst.
Conocidas
desde
Mientras(<cond>)
inicio
<instrs>;
<Variable para bucle>
fin
Bucles vs Condicionales
Aplicacin1
Escribir un programa que permita encontrar la
sumaacumuladadelaserie:
2
3
4
5
k
1 + 2 + 3 + 4 +.+ n
El programa debe ser interactivo, es decir;
despus de cada ejecucin, el sistema enva el
mensaje:
Desea continuar..? (S / N). Si edita S contina
ejecutandoelprograma,enotrocasofinaliza.
Inicio
EnterossumS=0,i=1,n;letraresp;
Mientras (resp=S)
inicio
imprimir("Ingreseun#deelementos:";leer(n);
Mientras(i<=n)
Inicio
sumaS=sumaS+pow(1,i+1)
i=i+1
Fin
Imprimir("Suma=:",sumaS)
Imprimir("nuevaoperacion..?(S/N)",leer(resp)
sumaS=0
fin// del mientras resp==s
Fin
Aplicacin2
Escribirunprogramaquepermitaleerunnmero
compuestopormsdeundgitoyluegomostrar:
Total de dgitos, total de dgitos pares e impares,
nmeroinvertido,totaldesumadedgitosparese
impares respectivamente. El programa debe ser
interactivo,esdecir;despusdecadaejecucin,el
sistemaenvaelmensaje:
Desea continuar..? (S / N). Si edita S contina
ejecutandoelprograma,enotrocasofinaliza.
Inicio
Enterosr,d,n,inv=0,par=0,impar=0,nd,sump=0,sumimpar=0;charresp='s';
Mientras(resp=='s')
Inicio
imprimir("Ingreseunnmeroconmasde1dgito:";leer(n);
r=n;nd=0;//inicializcontadordedgitos
Mientras(n>0)
Inicio
d=n%10;
nd=nd+1;
Si(d%2==0)entonces
inicio
par++;sump+=d;
fin
Sino
Inicio
impar++;sumimpar+=d;
Fin
inv=inv*10+d;n=n/10;
Fin
Imprimir(nd,inv,par,sump,impar,sumimpar)
Imprimir(Continuar(s/n),leer(resp;
Fin
Fin
hacer /repetir
<instrucciones>
mientras (<cond>);
figura 1
figura 2
repetir
<instrucciones>
hasta que <cond>
hacer
<instrucciones>
mientras <cond>
Aplicacin:leerEdadyverificarlalgicadefigura1y2
Ahora,usando
1.-Operadorlgicoy
Proceso Repetir_FActorial
definir resp como caracter;
definir n,i, fact como enteros;
repetir
i<-1;
fact<-1;
repetir
Escribir "Ingrese n=
";leer n;
Hasta Que (n>0)
Repetir
fact<-fact*i
i<-i+1;
Hasta Que (i>n)
escribir " El factorial es =
",fact;
escribir "Desea hacer buevo
calculo..? (S/N) ==>"; Leer
resp; sin bajar;
Hasta Que resp!='S'
si resp='N' entonces
Escribir " Gracias por su
visita...";
voidmain(){intN,a=0,b,num,t=0;charresp
system("titlePorCordovaNeriTeodoro");system("color5a");
do {clrscr();system("color1b");gotoxy(10,2);
cout<<"DESCOMPONERNUMEROENSUMADECUADRADOS";
gotoxy(10,5);cout<<"IngreseNumero=";cin>>N;
do{b=0;
do { num=pow(a,2)+pow(b,2);
if((num==N)&&(a<=b))
{gotoxy(10,8+t);
t++;
cout<<t<<".-"<<num<<"="<<a<<"^2+"<<b<<"^2,";
gotoxy(40,8+t-1);cout<<"condicion:"<<a<<"<="<<b;
}
b++;
}while(b<=N);
a++;
}while(a<=N);
gotoxy(10,10);cout<<"Totaldeformas="<<t;
t=0;
gotoxy(10,14);cout<<"Sr.quiereingresarnuevonumero
<S/N>:";resp=toupper(getch());
}while(resp=='S');getch();
}
Tutor : Crdova Neri T
25
26
Aplicacin1.-:Disearunprogramaquepermitaencontrarlasumaacumuladade
la:
1
2
3
n
serie= 1 + 2 + 3+.+n
Inicio
enterosi=1,sumaS=0,n,dato;
Imprimir("ingreseterminos),
;leer(n)//validon
hacer
Imprimir(""Ingresenmerodetrminos=";leer(n);
mientras(n<1);
Imprimir("Udsumar"<<n<<"trminosdelaserie";
Hacer
sumaS=sumaS+pow(i,i);
i++;
mientras (i<=n);
Imprimir("Lasumaes,sumaS)
2
3
4
k
serie= 1 + 2 + 3+.+n
voidmain()
{inti=1,sumaS=0,n,dato;
do{gotoxy(10,4);cout<<"Ingresenmerodetrminos=";cin>>n;
} while(n<1);
cout<<"Udsumar"<<n<<"trminosdelaserie";
do{sumaS=sumaS+pow(i,i+1);
i++;
}while (i<=n);
cout<<"Lasumaes=<<sumaS
voidmain()
{intn,k=0,a,i=1,spp=0,spn=0,sip=0,simpp=0,simpn=0;
gotoxy(10,2);cout<<"Ingresetotaldenumeros=";cin>>n;
do{k++;gotoxy(10,3+k);cout<<"Ingresenumero"<<k<<"=";cin>>a;
if(a%2==0)
{if(a>0)
{spp=spp+a;}
else
{spn=spn+a;}
}
else
{if(a>0)
{simpp=simpp+a;}
else
{simpn=simpn+a;}
}
i++;
}while(i<=n);
gotoxy(10,17);cout<<"SumaParesPositivos="<<spp;
gotoxy(10,18);cout<<"SumaParesNegativos="<<spn;
gotoxy(10,21);cout<<"SumaImparesPositivos="<<simpp;
gotoxy(10,22);cout<<"SumaImparesNegativos="<<simpn;getche();
}
voidmain()
{system("color1b");intuser,clave,pc1,pc2,pc3,pc4,min=20;
charresp;
system("titlePorCordovaNerit.");
intn,k=0,a,i=1,spp=0,spn=0,sip=0,simpp=0,simpn=0;
gotoxy(15,6);cout<<"<<<<MODULODEVALIDACION>>>>>>";
gotoxy(20,8);cout<<"___________________________";
gotoxy(20,14);cout<<"___________________________";
do{
gotoxy(25,10);clreol();system("color1b");cout<<"Usuario=";cin>>user;
gotoxy(25,12);clreol();system("color1b");cout<<"Clave=";cin>>clave;
gotoxy(35,12);cout<<"****";
if((user==100)&&(clave==123))
{gotoxy(25,16);cout<<"Bienvenido....";
}
i++;
}while(!((user==100)&&(clave==123)));
gotoxy(25,18);cout<<"CONTINUAR...................";getche();
clrscr();
do{k++;clrscr();system("color6A");
gotoxy(25,6);cout<<">>>SISTEMAACADEMICO<<<<";
gotoxy(20,7);cout<<"_____________________________________";
do{gotoxy(25,9);clreol();system("color6A");cout<<"IngresePc1=;cin>>pc1;
}while(pc1<0||pc1>20);
gotoxy(25,10);cout<<"IngresPc2=";cin>>pc2;
gotoxy(25,11);cout<<"IngresPc3=";cin>>pc3;
gotoxy(25,12);cout<<"IngresPc4=";cin>>pc4;
if(min>pc1){min=pc1;}
if(min>pc2){min=pc2;}
if(min>pc3){min=pc3;}
if(min>pc4){min=pc4;}
gotoxy(55,12);cout<<"Notaminima="<<min;
floatpp=((pc1+pc2+pc3+pc4)-min)/3.0;
gotoxy(25,14);cout<<"Promediodepracticas="<<pp;
if(pp>11.5)
{gotoxy(60,14);cout<<"APROBADO";}
else
{gotoxy(60,14);cout<<"DESAPROBADO";}
gotoxy(10,23);cout<<"Deseaprocesarnotasdenuevoalumno..?<S/N>==>";
resp=getch();
}while(resp=='S');
if(resp=='N'){clrscr();system("color4a");gotoxy(20,12);cout<<"Graciasvisitagetche();}
CordovaNeriT.
33
33
#definelinea"-----------------------------------------------"
voidmain()
{intN,a,b,num,t=0;
charresp;system("titlePorCordovaNeriTeodoro");system("color5a");
do
{clrscr();system("color1b");gotoxy(10,2);
cout<<"DESCOMPONERNUMEROENSUMADECUADRADOS";
gotoxy(5,3);cout<<"____________________________________________";
gotoxy(10,5);cout<<"IngreseNumero=";cin>>N;
a=1;
do{
b=1;
do
{num=pow(a,2)+pow(b,2);
if((num==N)&&(a<=b))
{t++;
gotoxy(10,8+t);cout<<t<<".-"<<num<<"="<<a<<"^2+"<<b<<"^2,";
gotoxy(40,8+t);cout<<"condicion:"<<a<<"<="<<b;
}
b++;
}while(b<=N);
a++;
}while(a<=N);
gotoxy(10,12);cout<<"Totaldeformas="<<t;getche();
t=0;//actualizar
gotoxy(10,16);cout<<"Sr.quiereingresarnuevonumero<S/N>:";resp=toupper(getch());
}while(resp=='S');getch();
34
35
Aplicacion
Inicio
enterosi=1,sumaS=0,n,dato;
Imprimir("ingreseterminos),
;leer(n)//validon
hacer
Imprimir(""Ingresenmerodetrminos=";leer(n);
mientras(n<1);
Imprimir("Udsumar"<<n<<"trminosdelaserie";
Hacer
sumaS=sumaS+pow(i,i+1);
i++;
mientras (i<=n);
Imprimir("Lasumaes,sumaS)
Conceptualizaciom
1
Contador
inicializado
Condicion
booleana
Incrementar
el contador
i=1
i<=n
i= i+1
37
38
Aplicacin
2
3
4
k
Programa para sumar serie 1 + 2 + 3+.+ n
Permiterealizarinstruccionesconociendo
el nmero de iteraciones.
Sintaxis:
desde (inicializar;<condicin>; contador)
inicio
<instrs>;
fin
donde:
1.-inicializar:indicavalordondeiniciael
bucle.
2.-<condicin>: se evala antes de cada
iteracin. Si es verdadera, se ejecuta el
bloque de <instrs>, en caso contrario se
termina la estructura y se salta a la
instruccinsiguiente.
3.-Contador:eslainstruccinaejecutarse
Tutor : Crdova Neri T
cuandoseterminacadaiteracin
39
40
voidmain()
{intcont,min=21,nota,k=0,n,i=1,sumaS=0;charresp;
system("titleCordovaNeriT.");
//registrar();//validaelnumerodenotasaleer
do{clrscr();system("color1b");
gotoxy(10,2);cout<<"234k";
gotoxy(10,3);cout<<"SUMANDOSERIE:1+2+3+...+n";
gotoxy(5,4);cout<<"----------------------------------------------";
gotoxy(10,6);cout<<"Ingreseterminos=";cin>>n;
for(i=1;i<=n;i++)
{
sumaS=sumaS+pow(i,i+1);
}
gotoxy(10,9);cout<<"Lasumaes="<<sumaS;
gotoxy(10,13);cout<<"Sr.deseacontinuar..?(S/N)==>";
cin>>resp;
sumaS=0;
}while(resp=='S');
}
Tutor : Crdova Neri T
41
Aplicacin.-ParalosprocesosmostradosenelsiguienteDFD,disearunprograma
quepermitacalcularelpromediodenotas
42
44
44
46
voidmain()
{inti,j,mult,und=0,dosd=0,tresd=0,may=0;
system("titlePorCordovaNeriT.for_tabla_Mult.cpp");system("color1E");
gotoxy(15,2);cout<<"TABLADEMULTIPLICARDE12*12";
gotoxy(5,3);cout<<"------------------------------------------------------";
for(i=1;i<=12;i++)
{for(j=1;j<=12;j++)
{mult=i*j;gotoxy(2+4*i,4+j);cout<<mult;
if(mult<10){und++;}
else
if((mult<100)&&(mult>9)){dosd++;}
else
if((mult>99)&&(mult<1000)){tresd++;may=mult;}
}
}
gotoxy(5,18);cout<<"------------------------------------------------------";
gotoxy(12,19);cout<<"Enlatablahay:";
gotoxy(12,21);cout<<"1.-"<<und<<"numerosde1digito.";
gotoxy(12,22);cout<<"2.-"<<dosd<<"numerosde2digitos.";
gotoxy(12,23);cout<<"3.-"<<tresd<<"numerosde3digitos.";
gotoxy(12,24);cout<<"4.-"<<"Elmayornumerode3digitoses:"<<may;
getche();
}
Tutor : Crdova Neri T
47
Nmeros amigos:
Modulodevalidacion
48
48
49
voidmain()
{intnv=0,i,j,ni=0,n,k,a,b,sumadiva=0,sumadivb=0;
charuser[5],clave[4],resp='S',opc,resp1;
system("titlePor:CordovaNeri,T:FOR_DO_IF_VALD_2010_IF_LP_ABRIL");
system("color1b");system("color4A");
do{ni++;
if(ni<=3)
{clrscr();system("color1b");
gotoxy(27,4);cout<<"==>VALIDANDODATOSDELUSUARIO<==";
gotoxy(10,8);cout<<linea;
gotoxy(10,14);cout<<linea;
gotoxy(25,10);cout<<"Usuario=";gotoxy(25,11);cout<<"Clave=";
gotoxy(35,16);cout<<"IntentoNumero"<<ni;
for(i=0;i<4;i++)
{gotoxy(35+i,10);user[i]=getch();cout<<"*";
}
for(j=0;j<3;j++)
{gotoxy(35+j,11);clave[j]=getch();cout<<"*";
}
}
else
{clrscr();system("color4a");gotoxy(20,12);
textcolor(16);cout<<"Ud.superosusalternativas...hastaluego";getche();exit(0);
}
}while((strcmp(strupr(user),"FIIS")!=0)&&(strcmp(clave,"123")!=0));
Tutor : Crdova Neri T
50
gotoxy(5,7);cout<<"------------------------------------------------------------------";
do
{gotoxy(15,6);clreol();system("color8b");cout<<"Ingrese#A=";cin>>a;
}while(a<1);
do
{gotoxy(48,6);clreol();system("color8b");cout<<"Ingrese#B=";cin>>b;
}while(b<1);
k=0;
for(i=1;i<a;i++)
{if(a%i==0)
{sumadiva=sumadiva+i;
gotoxy(5,8+k);cout<<"DivisoresdeA="<<i;k++;
}
}
gotoxy(10,20);cout<<"Sumadedivisores="<<sumadiva;
inth=0;
for(j=1;j<b;j++)
{if(b%j==0)
{sumadivb=sumadivb+j;
gotoxy(50,8+h);cout<<"DivisoresdeB="<<j;h++;
}
}
51
gotoxy(43,20);cout<<"Sumadedivisores="<<sumadivb;
gotoxy(8,19);cout<<"------------------------------------------------------------------";
if(sumadiva==b&&sumadivb==a)
{gotoxy(8,22);cout<<"Losnumeros"<<a<<"y"<<b<<"sonAMIGOS";
}
else
{gotoxy(8,22);cout<<"LOSNUMEROSNOSONAMIGOS";getche();
}
n++;
gotoxy(8,23);cout<<"Sr.deseairalMenuPrincipal..?(S/N)==>";
resp=toupper(getch());//cin>>resp;
}//findewhile(res=='S')
52
Aplicacin
2
3
4
k
Programa para sumar serie 1 + 2 + 3+.+ n
Inicio
enterosi=1,sumaS=0,n;
Imprimir("ingreseterminos),leer(n)//validon
hacer
Imprimir(""Ingresenmerodetrminos=";leer(n);
mientras(n<1);
Imprimir("Udsumar"<<n<<"trminosdelaserie";
desde(i=1,i<=n,i++)
inicio
sumaS=sumaS+pow(i,i+1);
fin
Imprimir("Lasumaes,sumaS)
Fin
53
Moduloparavalidadatodeentrada:n>0para
Calcularsufactorial.El usuario solo tiene 3
intentos.Enotrocasofinalizar
Modulo para instrs de calcular el factorial de n.
54
55
Modo interactivo
56
Inicio
enteros n,fact=1,i,nd=0,d,nvi=0, nvcs=0,
Imprimir(" ingrese terminos ), leer(n) // valido n
hacer
nvcs++; imprimir(" Consulta #:" ,nvcs);
hacer
nvi++; //numero de veces intentos
imprimir(" Intento # :" ,nvi);
if(nvi<=3) imprimir(" Ingrese = ), leer(n);
sino imprimir(" Dato incorrecto, excedio intentos ..")
mientrase(n<0);
imprimir(" Dato correcto, continuar..);
desde(i=1;i<=n;i++)
inicio
fact=i*fact;
fin
imprimir(Factorial de ,n," = ,fact;
aux=fact;
mientras(aux>0)
inicio
d%=10; nd++; aux/=10;
fin
imprimir(" Factorial de ,n," = ,fact," tiene ,nd," cifras ";
nvi=0; fact=1; nd=0;
imprimir(" Sr. desea continua..?(S/N)==>"; leer(resp)
mientras(resp=='S');
fin
57
58
voidmain(){//FOR_MAYOR_SEC_2015.cpp
system("titlePorCordovaNeriT.for_mayor_SEC_2014_prg2.cpp");
ntn,i,edad=1;
intmax=0,cont=0,sec=0,posic=0,ord=0,a,aux1,x,p,j=0,nv=0,d;
gotoxy(10,2);cout<<"POBLACIONNIOS";
gotoxy(5,3);cout<<"-----------------------------------------";
gotoxy(10,5);cout<<"Ingresenumerodeedades=";cin>>n;
for(i=1;i<=n;i++)
{do{gotoxy(20,6+i);clreol();cout<<"Edad["<<i<<"]=";cin>>edad;
}
while(edad<1||edad>9);]
if(edad>0&&edad<10)
{j++;
if(max<edad)
{max=edad;cont=1;posic=j;}
else
{if(max==edad)
{cont++;posic=posic*10+j;}
}
sec=sec*10+edad;
}
}
//Ordenar
59
for(a=1;a<=9;a++)
{aux1=sec;nv=0;
while(aux1>0)
{d=aux1%10;
if(d==a)
{nv=nv+1;}
aux1=aux1/10;
}
ord=a*((pow(10,nv)-1)/9)+ord*pow(10,nv);
}system("color1b");
gotoxy(15,13);cout<<"REPORTESDEEDADESDENIOS";
gotoxy(5,14);cout<<"-----------------------------------------";
gotoxy(10,15);cout<<"Mayor:";
gotoxy(10,16);cout<<"Veces:";
gotoxy(10,17);cout<<"Secuencia:";
gotoxy(10,18);cout<<"Pocisiones:";
gotoxy(10,19);cout<<"Ordenado:";
gotoxy(25,15);cout<<max;
gotoxy(25,16);cout<<cont;
gotoxy(25,17);cout<<sec;
gotoxy(25,18);cout<<posic;
gotoxy(25,19);cout<<ord;getche();}
60
Variables//FOR_MAYOR_SEC_2015.cpp
ntn,i,edad=1;max=0,cont=0,sec=0,posic=0,ord=0,a,aux1,x,p,j=0,nv=0,d;
Inicio
Imprimir"Ingresenumerodeedades=,leern;
desdei=1hastanhacer
inicio
Imprimir"Edad["<<i<<"]=";leeredad;
si(edad>0&&edad<10)entonces
inicio
j++;
si(max<edad)entonces
iniciomax=edad;cont=1;posic=j;
fin
sino
inicio
si(max=edad)entonces
inicio
cont++;posic=posic*10+j;
fin
fin
sec=sec*10+edad;
fin
61
Recorridoa:1..9consec=426AUX1=<-SEC
1.- CUANDO a=1 d=4,2,6
Mientras 426>0 hacer
inicio
d<-426 % 10 //d=6
si (6==1 ) entonces
inicio
No hace nada, es F, nv<-0
fin
aux1=aux1/10 //aux1=42
fin
Mientras 42>0 entonces
Inicio
d<-42%10 //d=2;
Si (2==1) es F nv<-0
aux1=42/10 // aux1=4
Mientras 4>0 hacer
inicio
d=4%10 //d=4
si ( 4==2) entonces es F, nv<-0
Aux1<-4/10 =0 con lo cual termina la descomp de sec
fin
Ord=1*((pow(10,0)-1)/9+ord*pow(10,0)=0
62
Recorridoa:1..9consec=426AUX1=<-SEC
2.- CUANDO a=2 d=4,2,6
Mientras 426>0 hacer
inicio
d<-426 % 10 //d=6
si (6==2 ) entonces
inicio
No hace nada, es F, nv<-0
fin
aux1=aux1/10 //aux1=42
fin
Mientras 42>0 entonces
Inicio
d<-42%10 //d=2;
Si (2==2) es F nv<-1
aux1=42/10 // aux1=4
Mientras 4>0 hacer
inicio
d <- 4%10 //d=4
si ( 4==2) entonces es V , nv<-0+1 =1
Aux1 <- 4/10 =0 con lo cual termina la descomp de sec
fin
Ord=2*((pow(10,1)-1)/9+ord*pow(10,1)=2
63
64
voidmain(){//paranios,adultosyancianos
intn,i,edad=1;max1=0,cont1=0,sec1=0,posic1=0,ord1=0,a,aux1,x,p,j=0;
intmax2=0,cont2=0,sec2=0,posic2=0,ord2=0,b,aux2,y,q,k=0;
intmax3=0,cont3=0,sec3=0,posic3=0,ord3=0,c,aux3,z,r,l=0;
gotoxy(20,8);cout<<"Ingresenumerodeedades=";cin>>n;
for(i=1;i<=n;i++){
do{gotoxy(20,10+i);clreol();cout<<"Ingreseedad=";cin>>edad;}
while(edad<1||edad>60);
//Paranios
if(edad>0&&edad<10){
j++;if(max1<edad){
max1=edad;cont1=1;posic1=j;}
else{ if(max1==edad){
cont1++;posic1=posic1*10+j;}
}
sec1=sec1*10+edad;}//ParaAdultos
if(edad>9&&edad<18){k++;
if(max2<edad){
max2=edad;cont2=1;posic2=k;}
else{
if(max2==edad){cont2++;posic2=posic2*10+k;}}
sec2=sec2*100+edad;}
65
//ParaMayores
if(edad>17&&edad<61){
l++;if(max3<edad){max3=edad;
cont3=1;posic3=l;}
else{
if(max3==edad){cont3++;posic3=posic3*10+l;}
}
sec3=sec3*100+edad;}
}//OrdenarNios
for(a=1;a<=9;a++)
{aux1=sec1;x=0;
while(aux1>0)
{p=aux1%10;
if(p==a)
{x=x+1;}
aux1=aux1/10;
}
ord1=a*((pow(10,x)-1)/9)+ord1*pow(10,x);
}
66
Adultos
for(b=10;b<=17;b++)
{aux2=sec2;y=0;
while(aux2>0)
{q=aux2%100;
if(q==b){y=y+1;}
aux2=aux2/100;
}
ord2=b*((pow(100,y)-1)/99)+ord2*pow(100,y);
}//Mayores
for(c=18;c<=60;c++)
{aux3=sec3;z=0;
while(aux3>0)
{r=aux3%100;
if(r==c){z=z+1;}
aux3=aux3/100;
}
ord3=c*((pow(100,z)-1)/99)+ord3*pow(100,z);
}
67
//Mostrarreporte
clrscr();system("color1b");
gotoxy(2,11);cout<<"Edades:";gotoxy(20,10);cout<<"Ninos";
gotoxy(20,11);cout<<"1..9";gotoxy(40,10);cout<<"Adultos";
gotoxy(40,11);cout<<"10..17";gotoxy(60,10);cout<<"Mayores";
gotoxy(60,11);cout<<"18..60";
gotoxy(2,13);cout<<"Mayor:";gotoxy(2,14);cout<<"Veces:";
gotoxy(2,15);cout<<"Secuencia:";gotoxy(2,16);cout<<"Pocisiones:";
gotoxy(2,17);cout<<"Ordenado:";
gotoxy(20,13);cout<<max1;gotoxy(40,13);cout<<max2;
gotoxy(60,13);cout<<max3;
gotoxy(20,14);cout<<cont1;gotoxy(40,14);cout<<cont2;
gotoxy(60,14);cout<<cont3;
gotoxy(20,15);cout<<sec1;gotoxy(40,15);cout<<sec2;
gotoxy(60,15);cout<<sec3;
gotoxy(20,16);cout<<posic1;gotoxy(40,16);cout<<posic2;
gotoxy(60,16);cout<<posic3;
gotoxy(20,17);cout<<ord1;gotoxy(40,17);cout<<ord2;
gotoxy(60,17);cout<<ord3;
getche();
}
68
SECUENCIADIGITOS
voidmain(){//for_ordena_asc_2015.cpp
system("titlePorCordovaNeriT.for_mayor_SEC_2014_prg2.cpp");
ntn,i,edad=1;
intmax=0,cont=0,sec=0,posic=0,ord=0,a,aux1,x,p,j=0,nv=0,d;
gotoxy(10,2);cout<<"POBLACIONNIOS";
gotoxy(5,3);cout<<"-----------------------------------------";
gotoxy(10,5);cout<<"Ingresenumerodeedades=";cin>>n;
for(i=1;i<=n;i++)
{do{gotoxy(20,6+i);clreol();cout<<"Edad["<<i<<"]=";cin>>edad;
}
while(edad<1||edad>9);]
if(edad>0&&edad<10)
{j++;
if(max<edad)
{max=edad;cont=1;posic=j;}
else
{if(max==edad)
{cont++;posic=posic*10+j;}
}
sec=sec*10+edad;
}
}
69
Launiversidadaplicatrestiposdeexmenesasuspostulantes:Lospostulantesque
obtengan por lo menos dos exmenes aprobados (mayor o igual a 11) son
Admitidos, en caso contrario son Rechazados. En base a esto se pide disear un
programaquepermita:
MostrarporcadapostulanteelmensajeAdmitidooRechazado
PresentarelnumerodeingresantesporFacultad
c)Facultadconmayorymenornumerodeingresantes.
d)Elnumerototaldenoingresantesalasdiferentesfacultades
Ahora,silosdatosdelinformticosonincorrectoselsistemaenvaelmensajeSr.
Sus datos fueron ledos con error, Desea continuar ..?. El sistema solo debe
aceptar3errores,luegofinalizaconelmensajeGracias por consultar...
70
Presentacin1:InformacindefacultadesPresentacin2:Ingresoporfacultad
Presentacin
3:
Informacin
de
facultades I y sus 3
notas:11,13,15
Presentacin
3.-
Resultados
de
despusdeingresar6
facultades
Tutor : Crdova Neri T
AddYourTe
71
71
ariables
j,cont_sist=0,cont_ind=0,cont_quim=0,cont_amb=0,cont,
k=0,nota,notas=0,nno=0:Enteros
cfac,nomb[10],nomb1[10]:cadenaopc='S:carcter
Inicio
imprimir(FACULTADES:'S','I','Q','A')
Desdei<-1hasta800hacer
inicio
imprimir(Alumno#:,);
hacer
imprimir(IngreseFacultad=,leer(fac)
if(fac=='S'||fac=='I'||fac=='Q'||fac=='A')
inicio(imprimir(Facultad,fac,"existe:";
fin
sino
inicioimprimir(FacultadNoexiste,
mientras(!(fac=='S'||fac=='I'||fac=='Q'||fac=='A'));
k=0;
72
Desdehasta3hacer//leer3notasporfacultad
{inicio
hacer
//estoyenlafacyleo3notas
k++;
Im,primir(Ingrese3notas),leernota
mientrasnota<0)||(nota>20));
//formolistadodenotas
notas=notas+nota*pow(100,nno);
nno++;
//lanotaleidaloverificosiesaprobadaentoncescuento
si(nota>10)entonces//cuentolasnotasaprobadas
{cont++;
}
fin//findelforparalecturade3practicasporfacultad
imprimir(NotasIngresadas=,notas);
notas=0;//actualizo
73
nno=0;
//veosiexisten2omasnotasaprobadas
si(cont>=2)entonces//Siexisten2omasnotasaprobadas..
inicio
Imprimir("AlumnoADMITIDOenFacultad,,fac)
//acumulolosingresantesporfacultad
Encasoquefaccorrespondaa
inicio
'A':cont_amb++;
'I':cont_ind++;
'Q':cont_quim++;
'S':cont_sist++;
fin
cont=0;
}//finifcont>=2
sino
imprimir(AlumnoRECHAZADOenFacultad,fac,}
}//findelforde8000
Imprimir(LosingresantesporFacultad
74
75
voidmain()
{system("titlePorCordovaNeriT.");
intj,cont_sist=0,cont_ind=0,cont_quim=0,cont_amb=0,
cont,k=0,nota,notas=0,nno=0;;
charfac,nomb[10],nomb1[10],opc='S';
while(opc=='S')
{clrscr();system("color2F");
gotoxy(25,9);cout<<"SISTEMADEEXAMENDEADMISION2012";
gotoxy(23,10);cout<<"------------------------------------------";
gotoxy(28,12);cout<<"FACULTADES:'S','I','Q','A'";
//gotoxy(15,13);cout<<"------------------------------------------";
getche();system("color1b");
76
for(inti=1;i<=8;i++)//maximo8000alumnos
{system("color1b");gotoxy(5,5);cout<<"Alumno#:"<<i;
do{
clrscr();system("color1b");
gotoxy(5,6);cout<<"IngreseFacultad=";
fac=toupper(getche());
for(int j=1;j<=3;j++)//leer3notasporfacultad
{do
{//estoyenlafacyleo3notas
k++;
gotoxy(5,7);cout<<"Ud.estaenlaFacultad"<<fac<<":";
gotoxy(5,8);cout<<linea;
gotoxy(5,9);clreol();system("color1b");
cout<<"Ingrese3notasporalaFacultad"<<fac<<"=";cin>>nota;
}while((nota<0) || (nota>20));
//formolistadodenotas
notas=notas+nota*pow(100,nno);
nno++;
//lanotaleidaloverificosiesaprobadaentoncescuento
78
gotoxy(5,10);cout<<"NotasIngresadas="<<notas;
notas=0;//actualizo
nno=0;
//veosiexisten2omasnotasaprobadas
if(cont>=2) // Si existen 2 o mas notas aprobadas ..
{gotoxy(5,15);cout<<"AlumnoADMITIDOenFacultad<<"<<fac<<">>
";
getche();clrscr();//acumulolosingresantesporfacultad
switch(fac)
{case'A':cont_amb++;break;case'I':cont_ind++;break;
case'Q':cont_quim++;break;case'S':cont_sist++;break;
}
cont=0;
}//finifcont>=2
else
{gotoxy(5,15);system("color4a");
cout<<"AlumnoRECHAZADOenFacultad<<"<<fac<<">>";getche();
}
}//findelforde8000
79
system("color1b");
gotoxy(5,18);cout<<"LosingresantesporFacultadson:";
gotoxy(5,19);cout<<"Sistemas="<<cont_sist;
gotoxy(5,20);cout<<"Industriales="<<cont_ind;
gotoxy(5,21);cout<<"Quimica="<<cont_quim;
gotoxy(5,22);cout<<"Ambientales="<<cont_amb;
cont_sist=0,cont_ind=0,cont_quim=0,cont_amb=0;
gotoxy(10,23);
cout<<"Procesearnuevoexamendeadmision..?(S/N)==>";
opc=toupper(getche());
}
}//findelmain
http://www.listamusical.com/videos/compadres-de-tarma-mulizay-huayno/p_i3xA8N10k
80
81
Aplicacin1
Escribir un programa que permita encontrar la
sumaacumuladadelaserie:
2
3
4
5
k
1 + 2 + 3 + 4 +.+ n
El programa debe ser interactivo, es decir;
despus de cada ejecucin, el sistema enva el
mensaje:
Desea continuar..? (S / N). Si edita S contina
ejecutandoelprograma,enotrocasofinaliza.
82
Inicio
EnterossumS=0,i=1,n;letraresp;
Mientras (resp=S)
inicio
imprimir("Ingreseun#deelementos:";leer(n);
Mientras(i<=n)
Inicio
sumaS=sumaS+pow(1,i+1)
i=i+1
Fin
Imprimir("Suma=:",sumaS)
Imprimir("nuevaoperacion..?(S/N)",leer(resp)
sumaS=0
fin// del mientras resp==s
Fin
83
Aplicacin2
Escribirunprogramaquepermitaleerunnmero
compuestopormsdeundgitoyluegomostrar:
Total de dgitos, total de dgitos pares e impares,
nmeroinvertido,totaldesumadedgitosparese
impares respectivamente. El programa debe ser
interactivo,esdecir;despusdecadaejecucin,el
sistemaenvaelmensaje:
Desea continuar..? (S / N). Si edita S contina
ejecutandoelprograma,enotrocasofinaliza.
84
85
Inicio
Enterosr,d,n,inv=0,par=0,impar=0,nd,sump=0,sumimpar=0;charresp='s';
Mientras(resp=='s')
Inicio
imprimir("Ingreseunnmeroconmasde1dgito:";leer(n);
r=n;nd=0;//inicializcontadordedgitos
Mientras(n>0)
Inicio
d=n%10;
nd=nd+1;
Si(d%2==0)entonces
inicio
par++;sump+=d;
fin
Sino
Inicio
impar++;sumimpar+=d;
Fin
inv=inv*10+d;n=n/10;
Fin
Imprimir(nd,inv,par,sump,impar,sumimpar)
Imprimir(Continuar(s/n),leer(resp;
Fin
Fin
86
Llamado
bucle
con
salida
controlada, ejecuta <instrucciones>
lo mismo que la estructura mientras,
con la diferencia que primero
ejecuta una <instruccin> y luego
verifica la <condicin>. Cuando
salida es V: continuar repitiendo el
proceso, si es F: continuar con
otras instrucciones
Sintaxis
Figura a
figura b
-----------------------------------------------repetir
hacer
<instrucciones><instrucciones>
hasta que(<cond>) mientras (<cond>)
Tutor : Crdova Neri T
87
Enparticular.-Leeredad
1.-Sedebeverificarqueseencuentraen:1..60
Instruccin:Ingresaredad=20
Condicin:20>0y20<61..?
Vy
V=V.
Conclusin:edadesaceptadaysaledelbucle.
2.-
Instruccin:leeredad=-12
Condicin:-12>0y-12<61.?
FyV=F
Conclusin:volveraleernuevaedad.conlacualseiniciael
bucle
Tutor : Crdova Neri T
88
Ilustracin.-Leeredadkedades
ycalcularsupromedio
89
90
91
92
93
Aplicacin
4.-
Disear un programa
que permita leer n
nmeros enteros, la
lecturafinalizacuando
se lee un numero
negativo.
Mostrar
cuantos
nmeros
ingresados
son
impares y cuantos
sonpares
94
Inicio
enterosi=1,sumaS=0,n,dato;
Imprimir("ingreseterminos),
;leer(n)//validon
hacer
Imprimir(""Ingresenmerodetrminos=";leer(n);
mientras(n<1);
Imprimir("Udsumar"<<n<<"trminosdelaserie";
Hacer
sumaS=sumaS+pow(i,i+1);
i++;
mientras (i<=n);
Imprimir("Lasumaes,sumaS)
Tutor : Crdova Neri T
95
96
Aplicacin
2
3
4
k
Programa para sumar serie 1 + 2 + 3+.+ n
Inicio
enterosi=1,sumaS=0,n;
Imprimir("ingreseterminos),leer(n)//validon
hacer
Imprimir(""Ingresenmerodetrminos=";leer(n);
mientras(n<1);
Imprimir("Udsumar"<<n<<"trminosdelaserie";
desde(i=1,i<=n,i++)
inicio
sumaS=sumaS+pow(i,i+1);
fin
Imprimir("Lasumaes,sumaS)
Fin
97
Moduloparavalidadatodeentrada:n>0para
Calcularsufactorial.El usuario solo tiene 3
intentos.Enotrocasofinalizar
Modulo para instrs de calcular el factorial de n.
98
99
100
Inicio
enteros n,fact=1,i,nd=0,d,nvi=0, nvcs=0,
Imprimir(" ingrese terminos ), leer(n) // valido n
hacer
nvcs++; imprimir(" Consulta #:" ,nvcs);
hacer
nvi++; //numero de veces intentos
imprimir(" Intento # :" ,nvi);
if(nvi<=3) imprimir(" Ingrese = ), leer(n);
sino imprimir(" Dato incorrecto, excedio intentos ..")
mientrase(n<0);
imprimir(" Dato correcto, continuar..);
desde(i=1;i<=n;i++)
inicio
fact=i*fact;
fin
imprimir(Factorial de ,n," = ,fact;
aux=fact;
mientras(aux>0)
inicio
d%=10; nd++; aux/=10;
fin
imprimir(" Factorial de ,n," = ,fact," tiene ,nd," cifras ";
nvi=0; fact=1; nd=0;
imprimir(" Sr. desea continua..?(S/N)==>"; leer(resp)
mientras(resp=='S');
fin
101
102
//WHILE_SUMA_DIG.cpp
voidmain()
{intn,d,sumap=0,sumaip=0,nvi=0,nv=0,secp=0,secip=0;
system("color1b");system("titlePorCordovaNeriTeodoro");
gotoxy(10,2);cout<<"Ingresenumero=";cin>>n;
intdd,ki=0,k=0,d2,sumaap=0,secaap=0,sumaiip=0;
Intseciip=0,kii=0,kk=0,np=0,par=0,impar=0,nip=0;
while(n>0)
{d=n%1000;
if(d%2==0)
{par=par+d*pow(1000,np);np++;
gotoxy(10,4);cout<<"NumerosPares="<<par;
while(d>0)
{dd=d%10;
if(dd%2==0)
{sumap=sumap+dd;secp=secp+dd*pow(10,k);k++;
}
else
{sumaip=sumaip+dd;secip=secip+dd*pow(10,ki);ki++;
}
d=d/10;
}
}
else
103
{impar=impar+d*pow(1000,nip);nip++;
gotoxy(5,12);cout<<"------------------------------------";
gotoxy(10,14);cout<<"NumerosImPares="<<impar;
while(d>0)
{d2=d%10;
if(d2%2==0)
{sumaap=sumaap+d2;secaap=secaap+d2*pow(10,kk);kk++;}
else
{sumaiip=sumaiip+d2;seciip=seciip+d2*pow(10,kii);kii++;
}
d=d/10;
}
}
n=n/1000;
}
gotoxy(10,6);cout<<"Secuenciapar="<<secp;
gotoxy(10,7);cout<<"Sumapares="<<sumap;
gotoxy(10,9);cout<<"SecuenciaImpar="<<secip;
gotoxy(10,10);cout<<"Sumaimpares="<<sumaip;
gotoxy(10,16);cout<<"Secuenciapar="<<secaap;
gotoxy(10,17);cout<<"Sumapares="<<sumaap;
gotoxy(10,19);cout<<"SecuenciaImpar="<<seciip;
gotoxy(10,20);cout<<"sumaimpares="<<sumaiip;getche();
104
}
105
//sec_cambios_num.cpp
voidmain()
{inta,b,d1,d2;
system("color1b");system("titlePorCordovaNeriTeodoro");
gotoxy(10,2);cout<<"INTERCAMBIODEDIGITOS";
gotoxy(10,4);cout<<"Ingresenumeroa=";cin>>a;
gotoxy(10,5);cout<<"Ingresenumerob=";cin>>b;
d1=a%10;
d2=b%10;
a=a-d1+d2;
b=b-d2+d1;
//Salidaderesultados
gotoxy(10,7);cout<<"Losdigitosaintercambiarson"<<d1<<","<<d2;
gotoxy(10,9);cout<<"Losnuevosnumerosson:";
gotoxy(10,11);cout<<"a="<<a;
gotoxy(10,12);cout<<"b="<<b;
getche();
}
106
107
/profes_Horas_Exam.cpp
voidmain()
{intca,cb,cc,hora,min,tiempo;
system("color1b");
system("titlePorCordovaNeriTeodoro");
gotoxy(10,2);cout<<"TIEMPODECALIFICACION";
gotoxy(5,3);cout<<"--------------------------------------";
gotoxy(10,5);cout<<"Ingresecantidaddeexamenesdetipoa=";cin>>ca;
gotoxy(10,6);cout<<"Ingresecantidaddeexamenesdetipob=";cin>>cb;
gotoxy(10,7);cout<<"Ingresecantidaddeexamenesdetipoc=";cin>>cb;
tiempo=(ca*5)+(cb*7)+(cc*8);
hora=tiempo/60;
min=tiempo%60;
gotoxy(10,10);
cout<<"Seemplea"<<hora<<"horascon"<<min<<"minutos";
getche();
}
108
Aplicacin
109
//if_emplados_categ.cpp
voidmain()
{intcant,sw=0;
floatpago,bonf,desc=25;
charcat,prod;
system("color1b");
system("titlePrCordovaNeriteodoro");
gotoxy(10,1);cout<<"PALNILLASDEEMPLEADOS";
gotoxy(5,2);cout<<"----------------------------------";
gotoxy(10,4);cout<<"Ingresarcategora:";cin>>cat;
gotoxy(10,5);cout<<"Ingreseproductoqueproduce(T)ejas,
(L)osetas:";cin>>prod;
gotoxy(10,6);cout<<"Ingresarcantidadproducida:
;cin>>cant;
//Clculos
110
switch(prod)
{case'T':switch(cat)
{ {case'A':pago=2.50*cant;break;
case'B':pago=2.00*cant;break;
case'C':pago=1.50*cant;break;
default:
{gotoxy(10,8);cout<<"Categoranoexiste";getche();
}
}//FINDET
break;
case'L':switch(cat)
{case'A':pago=2.00*cant;break;
case'B':pago=1.50*cant;break;
case'C':pago=1.00*cant;break;
default:
{gotoxy(10,9);cout<<"Categoranoexiste";getche();
}
}//FNDEL
break;
}
111
}//fincasoprincipal
if(cant<=250)
{bonf=0;
}
else
if(cant<=500)
{bonf=50.00;
}
else
if(cant<=1000)
{bonf=100.00;
}
else
{bonf=150.00;
}
pago=pago+bonf-desc;
gotoxy(10,12);cout<<"Supagoes:S/."<<pago;getche();
}
112
Aplicacin
113
17+10+1970=1997
1+9+9+7=26
Elnmerodeltarotcalculadoes8:2+6=8
Pararealizarestecalculo,elalgoritmopideunafechaenelformato
dd/mm/aa,dondeddeseldia,mmeselmesyaaeselao.
Lasumadecadaunadeestasvariablesquecomponelafecha,serealiza
mediantelaoperacin:nro=dd+mm+aa,queenvaloreses:
nro=17+10+1970=1997
Luego,tenemosquedescomponernro,hallandocadadgitoeirsumndolo.
Paraestecasoemplearemoslasoperaciones:
digito nroMod10,parahallarcadadgito.
tarot
tarot+digito,parasumarcadadgito
nro
nroDiv10,paraacortarelnmero
Alacabarlaprimeraiteracindelbucle,obtendremoselvalorde26paralavariable
tarot, pero como el enunciado nos pide que el nmero del tarot sea de un solo
digito,entoncesesnecesariorepetirelmismoproceso,paralocualhacemos
nro=tarotutilizandootrobuclequeseaexterno.
114
115
//Leerdatos
Escribir(Ingresarfecha)
Leer(d,m,a)
nro=d+m+a
Mientras(nro>9)Hacer
inicio
tarot=0
Mientras(nro>0)Hacer
INICIO
digito=nroMod10
tarot=tarot+digito
nro=nroDiv10
FIN
nro=tarot
fin
Escribir(Elnmerodeltarotes,tarot)
Fin
116
//while_tarot.cpp
voidmain()
{intdigito,d,m,a,nro=0,tarot=0;system("color1b");
system("titlePrCordovaNeriteodoro");
gotoxy(10,1);cout<<"GENERANDO,SUTAROT";
gotoxy(5,2);cout<<"----------------------------------";
gotoxy(10,4);cout<<"Ingresardiadenacimientos=";cin>>d;
gotoxy(10,5);cout<<"Ingresarmesdenacimientos=";cin>>m;
gotoxy(10,6);cout<<"Ingresaranniodenacimientos=";cin>>a;
nro=d+m+a;
while(nro>9)
{tarot=0;
while(nro>0)
{digito=nro%10;
tarot=tarot+digito;
nro=nro/10;
}
nro=tarot;
}
gotoxy(10,9);cout<<"ElnumerodelTarotes"<<tarot;
getche();
}
117
118
voidmain()
{system("color4a");charletra[11]={"ABCDEFK"};
intcodigo,i,sum=0,t,k,mod11;gotoxy(5,6);
cout<<"Ingresecodigo=";cin>>codigo;
k=codigo;t=1;
while(t<=6)
{sum=sum+(8-t)*(codigo%10);
gotoxy(5,10+t);
cout<<"Suma["<<t<<"]="<<(8-t)<<"*"<<codigo%10<<"="<<sum<<"+";
codigo=codigo/10;t++;
}
mod11=sum%11;
for(i=0;i<=10;i++)
{if(mod11==0)
{gotoxy(10,12);cout<<"codigoAutogenerado="<<k<<"A";}
if(sum==1)
{gotoxy(10,13);cout<<"codigoAutogenerado="<<k<<"B";}
if(mod11==2)
{gotoxy(10,14);cout<<"codigoAutogenerado="<<k<<"C";}
if(mod11==3)
{gotoxy(10,20);cout<<"codigoAutogenerado==>"<<k<<letra[3];
}
}
119