Está en la página 1de 6

ALGORITMO COMPARATIVO DE RECTNGULOS

FACULTA DE INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES

INGENIERA EN AUTOMTICA INDUSTRIAL

OCTUBRE 19 DE 2015

POPAYN
ALGORITMO COMPARATIVO DE RECTNGULOS

PRESENTADO A:

MAGISTER CARLOS ALBERTO ARDILA ALBARRACIN

DOCENTE DEPARTAMENTO DE SISTEMAS

PRESENTADO POR:

SEBASTIN REYES PRADO

CODIGO 104715020635

FACULTA DE INGENIERIA EN ELECTRNICA Y TELECOMUNICACIONES

INGENIERA EN AUTOMTICA INDUSTRIAL

OCTUBRE 19 DE 2015

POPAYN
Anlisis:

Datos de entrada: B , H ; (Base de los rectngulos , Altura de los rectngulos ).

Datos de salida: rea , BMenor y HMenor; (rea , B , H del rectngulo con menor permetro ) .

Procesos:

1. Se inicializa las variables globales ( B , H , rea , Mperimetro , BMenor , HMenor ).


2. Se leen los valores de B y H .
3. Se llama al subprograma Validacin para que valide con un estructura condicional
Mientras ( B>0 ) y ( H>0) contine . en caso contrario vuelva a pedir los valores.
4. Si ( B>0 ) y ( H>0) entra a la siguiente estructura condicional.
5. Si cumple las condiciones imprima valores aceptados y que vuelva los resultados al
algoritmo cliente.
6. Con un Mientras en el algoritmo cliente que valide que el ciclo no termine hasta que (B!=0)
and (H!=0), sino vuelva a pedir los valores de B y H .
7. Entra a subprograma rea que calcule el permetro del rectngulo y que se actualice
cada vez que se entre al ciclo.
8. Se vuelve a pedir los datos de B y H para que Mientras (B!=0) and (H!=0) se valide con el
subprograma - validacin y se repita hasta que el usuario digite cero para los valores de
B y H y el ciclo termina.
9. Se devuelven los resultados y se imprimen rea, BMenor, HMenor del rectngulo con
menor permetro.
/*****************************************************************************/
// Subprograma que recibe la base y la altura de los rectangulos
//que se desean ingresar y despues compare e imprima el area del rectangulo
//con menor perimetro.
/*****************************************************************************/
#include <iostream>
using namespace std;
/*****************************************************************************/
void validacion(float* , float*);
void area(float , float , float*, float*, float*,float*);
/*****************************************************************************/
main()
{
float B , H , AREA , MPerimetro, BMenor, HMenor ;
MPerimetro =99999999 ;
cout<<"Digite la base: "; cin>>B;
cout<<"Digite la altura : "; cin>>H;
validacion (&B , &H);
while ((B!=0)&&(H!=0))
{
area(B , H , &AREA, &MPerimetro, &BMenor, &HMenor);
cout<<"\nDigite la base: "; cin>>B;
cout<<"\nDigite la altura : "; cin>>H;
validacion (&B , &H);
}
cout<<BMenor<<"\nEs la base"<<endl;
cout<<HMenor<<"\nEs la altura"<<endl;
cout<<AREA<< "\nEs el area del rectangulo con menor perimetro "<<endl;
cout<<endl<<endl; system("PAUSE");
}
/*****************************************************************************/
void validacion(float *B , float *H)
{ while ((*B<0)||(*H<0))
{ cout<<"\nValor NO valido. los lados deben ser positivo.";
cout<<"\nDigite la base: "; cin>>*B;
cout<<"\nDigite la altura : "; cin>>*H;
}
while (((*B==0)&&(*H!=0))||((*B!=0)&&(*H==0)))
{ cout<<"\nValor NO valido. Digite de nuevo.";
cout<<"\nDigite la base: "; cin>>*B;
cout<<"\nDigite la altura : "; cin>>*H;
} cout<<"Valores de ACEPTADOS"<<endl;
}
/*****************************************************************************/
void area(float B , float H , float *AREA, float *MPerimetro, float *BMenor, float *HMenor)
{ float Perimetro=0;
Perimetro = (2 * B + 2 * H );
if (*MPerimetro > Perimetro)
{
*MPerimetro = Perimetro;
*AREA=(B * H);
*BMenor=B;
*HMenor=H;
}
}
/*****************************************************************************/
// Subprograma que recibe la base y la altura de los rectangulos
//que se desean ingresar y despues compare e imprima el area del rectangulo
//con menor perimetro.
/*****************************************************************************/
#include <iostream>
using namespace std;
/*****************************************************************************/

void validacion(float* , float*);


void area(float , float , float*, float*, float*,float*);

/*****************************************************************************/
main()
{
float B , H , AREA , MPerimetro, BMenor, HMenor ;
MPerimetro =99999999 ;

cout<<"Digite la base: "; cin>>B;


cout<<"Digite la altura : "; cin>>H;

validacion (&B , &H);

while ((B!=0)&&(H!=0))
{
area(B , H , &AREA, &MPerimetro, &BMenor, &HMenor);

cout<<"\nDigite la base: "; cin>>B;


cout<<"\nDigite la altura : "; cin>>H;

validacion (&B , &H);


}

cout<<BMenor<<"\nEs la base"<<endl;
cout<<HMenor<<"\nEs la altura"<<endl;
cout<<AREA<< "\nEs el area del rectangulo con menor perimetro "<<endl;

cout<<endl<<endl; system("PAUSE");
}
/*****************************************************************************/
void validacion(float *B , float *H)
{
while ((*B<0)||(*H<0))
{
cout<<"\nValor NO valido. los lados deben ser positivo.";
cout<<"\nDigite la base: "; cin>>*B;
cout<<"\nDigite la altura : "; cin>>*H;
}
while (((*B==0)&&(*H!=0))||((*B!=0)&&(*H==0)))
{
cout<<"\nValor NO valido. Digite de nuevo.";
cout<<"\nDigite la base: "; cin>>*B;
cout<<"\nDigite la altura : "; cin>>*H;
}

cout<<"Valores de ACEPTADOS"<<endl;

}
/*****************************************************************************/
void area(float B , float H , float *AREA, float *MPerimetro, float *BMenor, float *HMenor)
{
float Perimetro=0;
Perimetro = (2 * B + 2 * H );
if (*MPerimetro > Perimetro)
{
*MPerimetro = Perimetro;
*AREA=(B * H);
*BMenor=B;
*HMenor=H;

}
}