Buenas noches,
//Disculpen el titulo es que no sabia como expresar la idea.
Disculpen es que tengo una duda, he buscado un poco pero no me aclaro en un libro de programación no recuerdo el nombre saque una copia de por hay xD ponen un programa que dice lo siguiente: "Leer el valor en grados centigrados de las temperaturas registradas c/dia durante las 2 ultimas semanas de Lunes a domingo. Encuentre e imprima el día más caliente y la temperatura registrada ese día."
Este problema lo he resuelto con el siguiente codigo:
#include "iostream.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
int di=1, di1=1; //Contadores empleados para los métodos leer_s1() y leer_s2()
class problema {
double Tem, Tem2, c, c1; /* Variables donde se cargan y que posterior mente uso para evaluar la impresión.*/
char Dia[10]; //Utilizado en leer_s1() para imprimir el día que indique el contador
char Dia1[10]; //Utilizado en leer_s2() para imprimir el día que indique el contador
char Dres[10]; //Guarda el día mas cálido luego de la evaluación.
char Dres1[10]; //Guarda el día mas cálido luego de la evaluación.
public:
void leer_s1(){
if(di==1)
strcpy(Dia, "Lunes");
else if (di==2)
strcpy(Dia, "Martes");
else if (di==3)
strcpy(Dia, "Miercoles");
else if (di==4)
strcpy(Dia, "Jueves");
else if (di==5)
strcpy(Dia, "Viernes");
else if (di==6)
strcpy(Dia, "Sabado");
else if (di==7)
strcpy(Dia, "Domingo");
cout<<"\n\nIngrese la temperatura del "<<Dia<<" ";
cin>>Tem;
di=di+1; //contador se incrementa a cada ciclo
}
void leer_s2(){
if(di1==1)
strcpy(Dia1, "Lunes");
else if (di1==2)
strcpy(Dia1, "Martes");
else if (di1==3)
strcpy(Dia1, "Miercoles");
else if (di1==4)
strcpy(Dia1, "Jueves");
else if (di1==5)
strcpy(Dia1, "Viernes");
else if (di1==6)
strcpy(Dia1, "Sabado");
else if (di1==7)
strcpy(Dia1, "Domingo");
cout<<"\n\nIngrese la temperatura del "<<Dia1<<" ";
cin>>Tem2;
di1=di1+1; // misma fusión que el anterior contador.
}
void evalu_s1(){
if(Tem>c){
c=Tem;
strcpy(Dres, Dia);
}
}
void evalu_s2(){
if(Tem2>c1){
c1=Tem2;
strcpy(Dres1, Dia1);
}
}
resul(){
if(c>c1)
cout<<"El dia mas caliente fue "<<Dres<<" con una temperatura de "<<c<<" grados.";
else if(c==c1){
cout<<"En la semana uno y la semana dos se repitio la temperatura mas calida en el siguiente orden";
cout<<"\n\n"<<Dres<<" con "<<c<<" grado. ";
cout<<"\n\n"<<Dres1<<" con "<<c1<<" grados. ";
}
else
cout<<"El dia mas caliente fue "<<Dres1<<" con una temperatura de "<<c1<<" grados.";
}
};
void main (void) {
clrscr();
int contador=0; //variable que controla el primer ciclo while.
int contador1=0; //variable que controla el segundo ciclo while.
class problema ob;
cout<<"\t Primera semana";
while(contador != 7){
ob.leer_s1();
ob.evalu_s1();
contador=contador+1;
}
cout<<"\n\n\t Segunda semana";
while(contador1 != 7){
ob.leer_s2();
ob.evalu_s2();
contador1=contador1+1;
}
cout<<"\n\n La respuesta es: \n\n";
ob.resul();
getch();
}
Esto fue compilado en TC 3.0 corre sin ningún problema ahora bien mi duda es la siguiente " Como puedo validar cuando el día mas cálido se repite en la misma semana mas de dos veces ? anexe un condicional en el método resul() que evalúa si el día mas cálido se da en las dos semanas. pero no se como hacer por ejemplo:
Semana n.
Lunes 40º
martes 30º
miercoles40º
-
-
Osea el día mas cálido fueron lunes y miércoles de la misma semana. como hago para imprimir eso. no se me estaré ahogando en un baso de agua pero la verdad no
se me ha ocurrido bien como.
Bueno me despido gracias por su atención y disculpen la molestias...
y_young