Está en la página 1de 5

Lista de Ejercicios 5

Curso: Programación
Grupo: MEC1-1
Docente: D.S.c. Raquel E. Patiño Escarcina
_________________________________________________________________________

Los ejercicios a seguir deben ser resueltos y luego deberán ser probados en el entorno de
programación, por lo cual la solución a cada pregunta debe incluir:
● Diagrama de Flujo.
● Depuración a mano de los programas y explicación del porqué de los resultados.
● Capturas de pantalla del estado de cada variable (depuración) después de la
ejecución de cada instrucción comparando con la depuración a mano.

1.
#include<iostream>
using namespace std;

int main (int argc, char *argv[]) {


unsigned int a;
prueba:
cout<<"Ingrese un numero entre 1 y 50\n";
cin>>a;
if (a<=25)
cout<<"usted ingreso "<<a<<", gracias por visitarnos.\n";
else{
cout<<"usted ingreso "<<a<<", siga intentando ..."<<endl;
goto prueba;
}
return 0;
}

2.
#include<iostream>
using namespace std;

int suma(int n){


if (n>1)
return n+suma(n-1);
else if (n==1)
return 1;
else
return 0;
}

int main (int argc, char *argv[]) {


unsigned int a;
cout<<"Ingrese un numero\n";
cin>>a;
cout<<"El resultado es "<<suma(a)<<", gracias por visitarnos.\n";
return 0;
}

3.
#include<iostream>
using namespace std;

int main (int argc, char *argv[]) {


char columna, columna_destino;
unsigned short int fila, fila_destino;
lbl_fila:
cout<<"Ingrese la fila de su caballo (leida desde su sensor
entre 1 y 8)\n";
cin>>fila;
if (fila<1 || fila >8)
goto lbl_fila;
lbl_columna:
cout<<"Ingrese la columna de su caballo (leida desde
su sensor entre a y h)\n";
cin>>columna;
if (columna<'a' || columna >'h')
goto lbl_columna;
lbl_fila_destino:
cout<<"Ingrese la fila de destino de su caballo (leida
desde su sensor entre 1 y 8)\n";
cin>>fila_destino;
if (fila_destino<1 || fila_destino >8)
goto lbl_fila_destino;
lbl_columna_destino:
cout<<"Ingrese la columna de destino de su caballo
(leida desde su sensor entre a y h)\n";
cin>>columna_destino;
if (columna_destino <'a' || columna_destino >'h')
goto lbl_columna_destino;
lbl_comprobacion:
cout<<"Su caballo se movio desde "<<columna<<fila<<" hacia
"<<columna_destino<<fila_destino<<", por lo tanto, ";
if ((abs(fila_destino-fila)==2 && abs(columna_destino-
columna)==1) || (abs(fila_destino-fila)==1 && abs(columna_destino-
columna)==2))
cout<<"su movimiento es valido (aceptarlo con un beep
agudo y de bajo volumen)"<<endl;
else
cout<<"su movimiento NO es valido (rechazarlo con un
beep grave y de alto volumen)"<<endl;
return 0;
}

4.
#include<iostream>
using namespace std;

int main (int argc, char *argv[]) {


int angulo;
unsigned int velocidad;
cout<<"============================= ATENCION
============================="<<endl;
cout<<"Este programa puede adaptarse para usar sensores y
actuadores en \n";
cout<<"lugar de expresiones como cin y cout, es decir que el angulo y
la \n";
cout<<"pueden obtenerse de sensores en un equipo IoT"<<endl;

cout<<"=====================================================
==============="<<"\n\n\n\n";
cout<<"Ingrese la velocidad actual de la bicicleta (km/h)";
cin>>velocidad;
cout<<"Ingrese el angulo de inclinacion actual de la bicicleta (grados
sexagesimales entre -180 y 180) ";
cin>>angulo;
int inclinacion;
if (angulo<-45)
inclinacion = -2; // -2 representa mucha inclinación a la
izquierda
else if (angulo<-5)
inclinacion = -1; // -1 representa poca inclinación a la izquierda
else if (angulo<5)
inclinacion = 0; // 0 representa sin inclinación aparente
else if (angulo<45)
inclinacion = 1; // 1 representa poca inclinación a la derecha
else
inclinacion = 2; // 2 representa mucha inclinación a la derecha
switch (inclinacion){
case -2:
if (velocidad>=70)
cout<<"La bibicleta esta a un altisima velocidad girando
a la izquierda, posiblemente el ciclista sufra un accidente grave, avisar a los
paramedicos\n";
else if (velocidad>=5)
cout<<"La bicicleta esta girando a la izquierda de forma
muy cerrada, posiblemente el ciclista sufra un accidente aparatoso\n";
else
cout<<"La bicicleta esta en reposo en le piso tendida a
la izquierda\n";
break;
case -1:
if (velocidad>=5)
cout<<"La bicicleta esta girando a la izquierda\n";
else
cout<<"La bicicleta esta en reposo apoyada en algun
objeto a la izquierda\n";
break;
case 0:
if (velocidad>=5)
cout<<"La bicicleta esta avanzando en linea recta\n";
else
cout<<"La bicicleta esta en reposo\n";
break;
case 1:
if (velocidad>=5)
cout<<"La bicicleta esta girando a la derecha\n";
else
cout<<"La bicicleta esta en reposo apoyada en algun
objeto a la derecha\n";
break;
default:
if (velocidad>=70)
cout<<"La bibicleta esta a un altisima velocidad girando
a la derecha, posiblemente el ciclista sufra un accidente grave, avisar a los
paramedicos\n";
else if (velocidad>=5)
cout<<"La bicicleta esta girando a la derecha de forma
muy cerrada, posiblemente el ciclista sufra un accidente aparatoso\n";
else
cout<<"La bicicleta esta en reposo en le piso tendida a
la derecha\n";
}
return 0;
}

5. Cambie el programa 4 para que no se use la estructura switch-case, en su lugar


debe usar puro if-else

6. Desarrollar un programa que se pueda usar en un drone pra comprobar si es que el


mismo se está cayendo y hacia donde está cayendo (o solo está girando)
considerando su velocidad de vuelo y los ángulos de giro devueltos por un
giroscopio (consulte la siguiente página para comprender como funcionan un
giroscopio https://www.5hertz.com/index.php?route=tutoriales/tutorial&tutorial_id=13)
Importante: Debe usar obligatoriamente la estructura switch-case
7. Modificar el programa 6 para que no se use la estructura switch-case, en su lugar
debe usar puro if-else

También podría gustarte