Sentencia FOR
c++ – Robot y plataforma de 50 y 10 posiciones
Tenemos a nuestro robot subido en una plataforma móvil de 50 posiciones. El robot al iniciar el algoritmo puede estar situado en cualquiera de ellas. Cada vez que iniciamos el algoritmo existirán una cantidad de bloques sin determinar (sólo podrá existir un bloque por cada posición). Lo que queremos es que después de que el robot se recorra todas y cada una de las posiciones (preferentemente de la 1 a la 50), nos figa si existen más posiciones con bloques o posiciones sin bloques.
#include<iostream.h>
#include<conio.h>
void main()
{int cb,sb;
char caja,op;
do
{cb=0;sb=0;
clrscr();
cout<<"Escirbir v si hay caja y escribir f si no hay caja en la plataforma"<<endl;
cout<<"********************************************************************"<<endl<<endl;
for(int c=1;c<51;c++)
{
do
{cout<<"Hay caja en posicion ["<<c<<"]=";
cin>>caja;
} while(caja!='f' && caja!='v');
if(caja=='v')
{cb++;
}
if(caja=='f')
{sb++;
}
}
cout<<"cantidad de posiciones que estan con bloques:"<<cb<<endl;
cout<<"cantidad de posiciones que estan sin bloques:"<<sb<<endl;
cout<<"desea continuar [s/n]:";
cin>>op;
}
while(op=='s');
}
2.- Recorrido de robot en plataforma de 10 posiciones
#include<iostream.h>
#include<conio.h>
void main()
{char bloqueA,bloqueB;
int pos1, pos2;
clrscr();
cout<<"Ingresar Primer bloque:";
cin>>bloqueA;
cout<<"Ingresar posicion del bloque"<<bloqueA<<":";
cin>>pos1;
cout<<"Ingresar segundo bloque:";
cin>>bloqueB;
cout<<"Ingresar posicion del bloque"<<bloqueB<<":";
cin>>pos2;
cout<<endl;
if(pos1!=10 && pos2!=10)
{
if(pos1!=pos2)
{
if(bloqueA=='A' || bloqueA=='a')
{if(pos1==1)
cout<<"No hay cambios para hacer, porque robot A esta en:"<<pos1<<endl;
else
{ while(pos1!=1)
{pos1=pos1-1;
{
if(pos1==1)
cout<<"El cambio se hizo, el bloque A esta en posicion:"<<pos1;
else
{if(pos1!=1)
{do
{
pos1=pos1-1;
}while(pos1!=1);
}
if(pos1==1)
cout<<"El cambio se hizo, el bloque A esta en posicion:"<<pos1<<endl;
}
}
}
}
}
if(bloqueB=='b' || bloqueB=='B')
{if(pos2==2)
cout<<"No hay cambios para hacer, porque robot B esta en:"<<pos2<<endl;
else
{ while(pos2!=2)
{pos2=pos2-1;
{
if(pos2==2)
cout<<"El cambio se hizo, el bloque B esta en posicion:"<<pos2;
else
{if(pos2!=2)
{do
{
pos2=pos2-1;
}while(pos2!=2);
}
if(pos2==2)
cout<<"El cambio se hizo, el bloque B esta en posicion:"<<pos2<<endl;
}
}
}
}
}
}
else
cout<<"Hay un error, bloque A y bloque B tienen las mismas posiciones";
}
else
cout<<"Tiene que ser menor de 10, porque la ultima posicion no se tiene en cuenta";
getch();
}
Continuando con FOR, les comparto el siguiente post: Cuadrado de los primeros 20 números