You are on page 1of 5

Programación estructurada 2016 – TP repaso parcial

//repaso parcial - E03


//Diseñe un algoritmo (diagrama de flujo y pseudocódigo) que permita mostrar los N
//primeros términos de la sucesión de Fibonacci. Considere que la solución debe
//implementarse utilizando estructuras REPETITIVAS.
#include <stdlib.h>
#include <stream.h>
main ()
{
int f,f1=1, f2=1,n;
cout << "Ingrese la cantidad de terminos de fibonacci a visualizar: ";
cin >> n;
for (f=1;f<=n;f++)
{
if (f<=2)
{
cout << f << "º termino= " << f1 << endl;
}
else
{
if (f%2==0)
{
f1=f1+f2;
cout << f << "º termino= " << f1 << endl;
}
else
{
f2=f1+f2;
cout << f << "º termino= " << f2 << endl;
}
}
}
system("pause");
}

//repaso parcial - E04


//Diseñe un algoritmo (diagrama de flujo y pseudocódigo) permita ingresar una serie de
//números y determinar el máximo, el mínimo y el promedio de los valores introducidos.
//El ingreso finaliza a petición del usuario.
#include <stdlib.h>
#include <stream.h>
main ()
{
int n,max,min,acum=0,cont=0;
float prom=0;
char sigo;
bool band=true;
do
{
cout << "Ingrese un numero: ";
cin >> n;
cont++;
if (band)
{
max=n;
min=n;
band=false;
acum=acum+n;
}
else
{
acum=acum+n;
if (n>max)
{
max=n;
}
if (n<min)
{
Click aquí para ir al Grupo de Clases
de Apoyo de Unidad Estudiantil
Programación estructurada 2016 – TP repaso parcial

min=n;
}
}
cout << "sigo? [S/N]: ";
cin >> sigo;
}while (sigo=='S' || sigo=='s');
prom=acum/cont;
cout << "El promedio de valores ingresados es: " << prom << endl;
cout << "El maximo valor ingresado fue: " << max << endl;
cout << "El minimo valor ingresado fue: " << min << endl;
system("pause");
}

//repaso parcial - E05


//Diseñe un algoritmo modular que presente un menu con las siguientes opciones:
//1) Ingresar numeros (el ingreso finaliza con valor 0, debe controlarse que al
//menos se introduzcan 5 valores) y determinar el minimo;
//2) Mostrar el cuadrado (calculado mediante la suma de impares) del valor minimo
//obtenido en la opcion 1;
//3) Calcular el factorial del cuadrado obtenido en la opcion 2;
//4) Salir. Implemente cada opcion utilizando procedimientos y/o funciones.
//Indique el paso de parametros utilizado. Ademas, controle las siguientes
//restricciones:
//Menu: la presentacion y eleccion de opciones se realiza mediante un modulo.
//Opcion 1: los valores ingresados deben ser positivos (el usuario no puede
//dejar el ingreso hasta introducir al menos 5 valores positivos).
//Opcion 2: Solo esta disponible si se ejecuto la opcion 1.
//Opcion 3: Solo esta disponible si se ejecuto la opcion 2.
//Opcion 4: Debe mostrar un mensaje con los datos personales del programador
//(Nombre y Apellido, DNI, Carrera que cursa) y fecha de creacion del programa.
#include <stdlib.h>
#include <iostream.h>
void menu(int &op, bool band1, bool band2, bool band3);
int minimo();
int cuadrado(int n);
int factorial(int n);
void salir();

main ()
{
int opc=0,min=0,cuad=0;
bool b1=true,b2=false,b3=false;
do
{
menu(opc,b1,b2,b3);
switch (opc)
{
case 1:
min=minimo();
cout << "El minimo es: " << min << endl;
b1=false;
b2=true;
b3=false;
break;
case 2:
cuad=cuadrado(min);
cout << min << "^2= " << cuad << endl;
b3=true;
break;
case 3: cout << cuad << "!= " << factorial(cuad) <<
endl;break;
case 4: salir();break;
}
}while(opc!=4);
system("pause");
}

Click aquí para ir al Grupo de Clases


de Apoyo de Unidad Estudiantil
Programación estructurada 2016 – TP repaso parcial

void menu(int &op, bool band1, bool band2, bool band3)


{
do
{
cout << "1- Calcular minimo" << endl;
if (band2)
{
cout << "2- Calcular minimo^2" << endl;
if (band3)
{
cout << "3- Calcular (minimo^2)!" << endl;
}
}
cout << "4- Salir" << endl;
cout << "Escoja una opcion: " << endl;
cin >> op;
}while(op<1 || op>4 || (op==2 && band1) || (op==3 && band1) || (op==3 && !band1 &&
band2 && !band3));
return;
}

int minimo()
{
int cont=1,m,n;
do
{
cout << "Ingrese el " << cont << "º valor positivo: ";
cin >> n;
if (n>0)
{
if (cont==1)
{
m=n;
}
else
{
if (n<m)
{
m=n;
}
}
cont++;
}
}while(cont<5 || (cont>=5 && n!=0));
return(m);
}

int cuadrado(int n)
{
int x,c=0;
for (x=1;x<=(2*n-1);x=x+2)
{
c=c+x;
}
return(c);
}

int factorial(int n)
{
int f,facto=1;
for (f=2;f<=n;f++)
{
facto=facto*f;
}
return(facto);
}

Click aquí para ir al Grupo de Clases


de Apoyo de Unidad Estudiantil
Programación estructurada 2016 – TP repaso parcial

void salir()
{
cout << "Nombre y Apellido: " << endl;
cout << "DNI: " << endl;
cout << "Carrera: " << endl;
cout << "Fecha: " << endl;
return;
}

//TP Parcial repaso - E06


//Diseñe un algoritmo modular que presente un menu con las siguientes opciones:
//1) Ingresar los limites para un intervalo numerico (el intervalo debe comprender como
//minimo 10 valores)
//2) Mostrar los valores primos del intervalo ingresado en la opcion 1
//3) Calcular el factorial del limite inferior ingresado en la opcion 1
//4) Salir.
//Implemente cada opcion utilizando procedimientos y/o funciones. Indique el paso de
//parametros utilizado.
//Ademas, controle las siguientes restricciones:
//Menu: la presentacion y eleccion de opciones se realiza mediante un modulo.
//Opcion 1: los valores ingresados deben ser positivos y el rango especificado debe
//comprender al menos 10 valores enteros (el usuario no puede dejar el ingreso hasta
//introducir valores correctos). Por ejemplo, valor inicial igual a 13 y valor final
//igual a 20 no sera correcto (contiene solo 8 valores).
//Opcion 2: Solo esta disponible si se ejecuto la opcion 1.
//Opcion 3: Solo esta disponible si se ejecuto la opcion 1.
//Opcion 4: Debe mostrar un mensaje con los datos personales del programador
//(Nombre y Apellido, DNI, Carrera que cursa) y fecha de creacion del programa.
#include <stdlib.h>
#include <iostream.h>
void menu(int &op, bool band1, bool band2);
void rango(int &linf, int &lsup);
void primos(int linf, int lsup);
int factorial(int n);
void salir();

main ()
{
int opc=0,inf,sup;
bool b1=true,b2=false;
do{
menu(opc,b1,b2);
switch (opc){
case 1:
rango(inf,sup);
b1=false;
b2=true;
break;
case 2:
primos(inf,sup);
break;
case 3:
cout << inf << "!= " << factorial(inf) << endl;
break;
case 4:
salir();
break;
}
}while(opc!=4);
system("pause");
}

void menu(int &op, bool band1, bool band2)


{
do{
cout << "1- Ingresar limites del rango" << endl;
if (band2){
Click aquí para ir al Grupo de Clases
de Apoyo de Unidad Estudiantil
Programación estructurada 2016 – TP repaso parcial

cout << "2- Valores primos en el rango" << endl;


cout << "3- Factorial del limite inferior" << endl;
}
cout << "4- Salir" << endl;
cout << "Escoja una opcion: " << endl;
cin >> op;
}while(op<1 || op>4 || (op==2 && band1) || (op==3 && band1));
return;
}

void rango(int &linf, int &lsup)


{
do{
do{
cout << "Ingrese el Limite Inferior: ";
cin >> linf;
}while (linf<0);
do{
cout << "ingrese el Limite Superior: ";
cin >> lsup;
}while (lsup<0);
}while(lsup-linf<10);
return;
}

void primos(int linf, int lsup)


{
int x,y;
bool bprimo=true;
cout << "Primos entre [" << linf << ".." << lsup << "]" << endl;
for (x=linf;x<=lsup;x++){
for (y=2;y<x;y++){
if (bprimo){
if (x%y==0){
bprimo=false;
}
}
}
if (bprimo){
cout << x << endl;
}
bprimo=true;
}
return;
}

int factorial(int n)
{
int f,facto=1;
for (f=2;f<=n;f++)
{
facto=facto*f;
}
return(facto);
}

void salir()
{
cout << "Nombre y Apellido: " << endl;
cout << "DNI: " << endl;
cout << "Carrera: " << endl;
cout << "Fecha: " << endl;
return;
}

Click aquí para ir al Grupo de Clases


de Apoyo de Unidad Estudiantil

You might also like