Foros del Web » Programación para mayores de 30 ;) » C/C++ »

IF no me hace caso

Estas en el tema de IF no me hace caso en el foro de C/C++ en Foros del Web. No se que estoy haciendo mal por ejemplo, tal vez no conozcan de electronica pero por ejemplo si pongo: NARANJA NARANJA NARANJA DORADO, debe salirme ...
  #1 (permalink)  
Antiguo 14/05/2013, 21:22
 
Fecha de Ingreso: mayo-2013
Ubicación: Huacho
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Exclamación IF no me hace caso

No se que estoy haciendo mal por ejemplo, tal vez no conozcan de electronica pero por ejemplo si pongo: NARANJA NARANJA NARANJA DORADO, debe salirme 33000 ohmios. Pero cuando escribo naranja en le primer color me sale DATO ERRONEO, no entiendo si estoy poniendo
if(color1=="NARANJA")
valor1=3;

Ayudaaaaaaaaaaaaaaa

Código C++:
Ver original
  1. #include<iostream.h>
  2. #include<conio.h>
  3. #include<math.h>
  4.  
  5. void main(){
  6. int valor1, valor2, RE;
  7. float valor3, tolerancia, VMax, VMin;
  8. char color1[8], color2[8], color3[8], color4[8];
  9.  
  10.  
  11. cout<<"LOS COLORES DISPONIBLES A INGRESAR SON :\n\n";
  12. cout<<"NEGRO";
  13. cout<<"\nMARRON";
  14. cout<<"\nROJO";
  15. cout<<"\nNARANJA";
  16. cout<<"\nAMARILLO";
  17. cout<<"\nVERDE";
  18. cout<<"\nAZUL";
  19. cout<<"\nMORADO";
  20. cout<<"\nGRIS";
  21. cout<<"\nBLANCO";
  22. cout<<"\nDORADO";
  23. cout<<"\nPLATEADO";
  24. cout<<"\nNINGUNO";
  25. cout<<"\n\nBRINDE EL PRIMER COLOR (numero): ";cin>>color1;
  26.  
  27.     if(color1=="NEGRO")
  28.     valor1=0;
  29.     else    if(color1=="MARRON")
  30.         valor1=1;
  31.          else   if(color1=="ROJO")
  32.                 valor1=2;
  33.                else if(color1=="NARANJA")
  34.                     valor1=3;
  35.                      else   if(color1=="AMARILLO")
  36.                             valor1=4;
  37.                            else if(color1=="VERDE")
  38.                                 valor1=5;
  39.                                  else   if(color1=="AZUL")
  40.                                         valor1=6;
  41.                                        else if(color1=="MORADO")
  42.                                             valor1=7;
  43.                                              else   if(color1=="GRIS")
  44.                                                     valor1=8;
  45.                                                    else if(color1=="BLANCO")
  46.                                                         valor1=9;
  47.                                                          else
  48.                                                          cout<<"dato erroneo";
  49.  
  50.  
  51.  
  52.  
  53. cout<<"\nBRINDE EL SEGUNDO COLOR (numero): ";cin>>color2;
  54.     if(color2=="NEGRO")
  55.     valor2=0;
  56.     else    if(color2=="MARRON")
  57.         valor2=1;
  58.          else   if(color2=="ROJO")
  59.                 valor2=2;
  60.                else if(color2=="NARANJA")
  61.                     valor2=3;
  62.                      else   if(color2=="AMARILLO")
  63.                             valor2=4;
  64.                            else if(color2=="VERDE")
  65.                                 valor2=5;
  66.                                  else   if(color2=="AZUL")
  67.                                         valor2=6;
  68.                                        else if(color2=="MORADO")
  69.                                             valor2=7;
  70.                                              else   if(color2=="GRIS")
  71.                                                     valor2=8;
  72.                                                    else if(color2=="BLANCO")
  73.                                                         valor2=9;
  74.                                                          else
  75.                                                          cout<<"dato erroneo";
  76.  
  77.  
  78. cout<<"\nBRINDE EL TERCER COLOR (numero): ";cin>>color3;
  79.     if(color3=="NEGRO")
  80.     valor3=1;
  81.     else    if(color3=="MARRON")
  82.         valor3=10;
  83.          else   if(color3=="ROJO")
  84.                 valor3=100;
  85.                else if(color3=="NARANJA")
  86.                     valor3=1000;
  87.                      else   if(color3=="AMARILLO")
  88.                             valor3=10000;
  89.                            else if(color3=="VERDE")
  90.                                 valor3=100000;
  91.                                  else   if(color3=="AZUL")
  92.                                         valor3=1000000;
  93.                                        else if(color3=="MORADO")
  94.                                             valor3=10000000;
  95.                                              else   if(color3=="GRIS")
  96.                                                     valor3=100000000;
  97.                                                    else if(color3=="BLANCO")
  98.                                                         valor3=1000000000;
  99.                                                          else   if(color3=="DORADO")
  100.                                                                 valor3=0.1;
  101.                                                                else if(color3=="PLATEADO")
  102.                                                                     valor3=0.01;
  103.                                                                      else
  104.                                                                                     cout<<"dato erroneo";
  105.  
  106. cout<<"\nBRINDE EL CUARTO COLOR (numero): ";cin>>color4;
  107.     if(color4=="DORADO")
  108.    tolerancia=5;
  109.    else if(color4=="PLATEADO")
  110.         tolerancia=10;
  111.          else   if(color4=="NINGUNO")
  112.                 tolerancia=20;
  113.                else
  114.                cout<<"dato erroneo";
  115.  
  116. RE=valor1*valor3*10+valor2*valor3;
  117. VMax=RE+RE*tolerancia*0.01;
  118. VMin=RE-RE*tolerancia*0.01;
  119. cout<<"La resistencia electrica es de "<<RE<<" ohmios";
  120. cout<<"\nLa tolerancia es de +- "<<tolerancia<<" %";
  121. cout<<"\nEl valor maximo es "<<VMax;
  122. cout<<"\nEl valor minimo es "<<VMin;
  123.  
  124.  
  125. }
  #2 (permalink)  
Antiguo 14/05/2013, 21:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: IF no me hace caso

Tu problema es simple.

Cuando haces color1 == "NARANJA", lo que haces en realidad es comprar si los punteros de color1 y el arreglo de caracteres constante "NARANJA".

Basta con que cambies:
Código C++:
Ver original
  1. char color1[8], color2[8], color3[8], color4[8];

Con
Código C++:
Ver original
  1. string color1, color2, color3, color4;

Código C++:
Ver original
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. int valor1, valor2, RE;
  8. float valor3, tolerancia, VMax, VMin;
  9. string color1, color2, color3, color4;
  10.  
  11.  
  12. cout<<"LOS COLORES DISPONIBLES A INGRESAR SON :\n\n";
  13. cout<<"NEGRO";
  14. cout<<"\nMARRON";
  15. cout<<"\nROJO";
  16. cout<<"\nNARANJA";
  17. cout<<"\nAMARILLO";
  18. cout<<"\nVERDE";
  19. cout<<"\nAZUL";
  20. cout<<"\nMORADO";
  21. cout<<"\nGRIS";
  22. cout<<"\nBLANCO";
  23. cout<<"\nDORADO";
  24. cout<<"\nPLATEADO";
  25. cout<<"\nNINGUNO";
  26. cout<<"\n\nBRINDE EL PRIMER COLOR (numero): ";cin>>color1;
  27.  
  28.     if(color1=="NEGRO")
  29.     valor1=0;
  30.     else    if(color1=="MARRON")
  31.         valor1=1;
  32.          else   if(color1=="ROJO")
  33.                 valor1=2;
  34.                else if(color1=="NARANJA")
  35.                     valor1=3;
  36.                      else   if(color1=="AMARILLO")
  37.                             valor1=4;
  38.                            else if(color1=="VERDE")
  39.                                 valor1=5;
  40.                                  else   if(color1=="AZUL")
  41.                                         valor1=6;
  42.                                        else if(color1=="MORADO")
  43.                                             valor1=7;
  44.                                              else   if(color1=="GRIS")
  45.                                                     valor1=8;
  46.                                                    else if(color1=="BLANCO")
  47.                                                         valor1=9;
  48.                                                          else
  49.                                                          cout<<"dato erroneo";
  50.  
  51.  
  52.  
  53.  
  54. cout<<"\nBRINDE EL SEGUNDO COLOR (numero): ";cin>>color2;
  55.     if(color2=="NEGRO")
  56.     valor2=0;
  57.     else    if(color2=="MARRON")
  58.         valor2=1;
  59.          else   if(color2=="ROJO")
  60.                 valor2=2;
  61.                else if(color2=="NARANJA")
  62.                     valor2=3;
  63.                      else   if(color2=="AMARILLO")
  64.                             valor2=4;
  65.                            else if(color2=="VERDE")
  66.                                 valor2=5;
  67.                                  else   if(color2=="AZUL")
  68.                                         valor2=6;
  69.                                        else if(color2=="MORADO")
  70.                                             valor2=7;
  71.                                              else   if(color2=="GRIS")
  72.                                                     valor2=8;
  73.                                                    else if(color2=="BLANCO")
  74.                                                         valor2=9;
  75.                                                          else
  76.                                                          cout<<"dato erroneo";
  77.  
  78.  
  79. cout<<"\nBRINDE EL TERCER COLOR (numero): ";cin>>color3;
  80.     if(color3=="NEGRO")
  81.     valor3=1;
  82.     else    if(color3=="MARRON")
  83.         valor3=10;
  84.          else   if(color3=="ROJO")
  85.                 valor3=100;
  86.                else if(color3=="NARANJA")
  87.                     valor3=1000;
  88.                      else   if(color3=="AMARILLO")
  89.                             valor3=10000;
  90.                            else if(color3=="VERDE")
  91.                                 valor3=100000;
  92.                                  else   if(color3=="AZUL")
  93.                                         valor3=1000000;
  94.                                        else if(color3=="MORADO")
  95.                                             valor3=10000000;
  96.                                              else   if(color3=="GRIS")
  97.                                                     valor3=100000000;
  98.                                                    else if(color3=="BLANCO")
  99.                                                         valor3=1000000000;
  100.                                                          else   if(color3=="DORADO")
  101.                                                                 valor3=0.1;
  102.                                                                else if(color3=="PLATEADO")
  103.                                                                     valor3=0.01;
  104.                                                                      else
  105.                                                                                     cout<<"dato erroneo";
  106.  
  107. cout<<"\nBRINDE EL CUARTO COLOR (numero): ";cin>>color4;
  108.     if(color4=="DORADO")
  109.    tolerancia=5;
  110.    else if(color4=="PLATEADO")
  111.         tolerancia=10;
  112.          else   if(color4=="NINGUNO")
  113.                 tolerancia=20;
  114.                else
  115.                cout<<"dato erroneo";
  116.  
  117. RE=valor1*valor3*10+valor2*valor3;
  118. VMax=RE+RE*tolerancia*0.01;
  119. VMin=RE-RE*tolerancia*0.01;
  120. cout<<"La resistencia electrica es de "<<RE<<" ohmios";
  121. cout<<"\nLa tolerancia es de +- "<<tolerancia<<" %";
  122. cout<<"\nEl valor maximo es "<<VMax;
  123. cout<<"\nEl valor minimo es "<<VMin;
  124.  
  125. return 0;
  126. }
  #3 (permalink)  
Antiguo 14/05/2013, 22:12
 
Fecha de Ingreso: mayo-2013
Ubicación: Huacho
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: IF no me hace caso

Eso que aparece en mi codigo c++: "(numero)" no debe estar ahi, obvienlo.
  #4 (permalink)  
Antiguo 14/05/2013, 22:17
 
Fecha de Ingreso: mayo-2013
Ubicación: Huacho
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: IF no me hace caso

Ya reemplaze pero sigue sin funcionar razpeitia :(
  #5 (permalink)  
Antiguo 14/05/2013, 22:21
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: IF no me hace caso

Trata de correr el ejemplo que puse. A mi me funciono perfectamente.

¿Que compilador estas usando?
  #6 (permalink)  
Antiguo 14/05/2013, 22:27
 
Fecha de Ingreso: mayo-2013
Ubicación: Huacho
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: IF no me hace caso

Borland c++ v5
  #7 (permalink)  
Antiguo 14/05/2013, 22:30
 
Fecha de Ingreso: mayo-2013
Ubicación: Huacho
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: IF no me hace caso

undefiny symbol string
statement missing
undefiny symbol color1
undefiny symbol color2
undefiny symbol color3
undefiny symbol color4
  #8 (permalink)  
Antiguo 14/05/2013, 23:40
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: IF no me hace caso

Tienes varias opciones:

1. Usa un compilador mas reciente.
2. En lugar de string puedes mantenerlos como arreglo de caracteres. Pero vas a tener que hacer la comparación usando strcmp en lugar del operador ==
  #9 (permalink)  
Antiguo 14/05/2013, 23:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: IF no me hace caso

Otra cosa no olvides hacer #include <string> si planeas usar strings.
  #10 (permalink)  
Antiguo 15/05/2013, 05:39
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: IF no me hace caso

Una pregunta, para que demonios usas la librería conio?
  #11 (permalink)  
Antiguo 15/05/2013, 09:27
 
Fecha de Ingreso: mayo-2013
Ubicación: Huacho
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: IF no me hace caso

Okas voy a probar razpeita
  #12 (permalink)  
Antiguo 16/05/2013, 23:10
 
Fecha de Ingreso: mayo-2013
Mensajes: 1
Antigüedad: 11 años
Puntos: 0
Respuesta: IF no me hace caso

Lo que le falta a tu codigo son varias cosas:

1. Lo que menciona razpeitia de poner esas variables como string
2. Segun mi opinion una cadena para guardar lo que introdusca el usuario, y convertirla a mayusculas si es que la ingresaron como minusculas. Despues igualar la cadena leida y convertida a mayusculas (si fuera el caso de que estuviera en minusculas) al string correspondiente
3. Un while para que cada vez que pidas el color se repita si lo que ingresaron no es igual a ninguna de las opciones y dar un mensaje de error

El código que probé en Borland es el siguiente ... (Gracias por presentarme este problema, esta muy interezante)


Código C++:
Ver original
  1. #include<iostream.h>   //CPlayMas H
  2. #include<conio.h>
  3. #include<math.h>
  4. #include<string>
  5.  
  6.  
  7.  
  8. void main(){
  9. int valor1, valor2, RE;
  10. float valor3, tolerancia, VMax, VMin;
  11. string color1, color2, color3, color4;
  12. char color[8];
  13.  
  14.  
  15. cout<<"LOS COLORES DISPONIBLES A INGRESAR SON :\n\n";
  16. cout<<"NEGRO";
  17. cout<<"\nMARRON";
  18. cout<<"\nROJO";
  19. cout<<"\nNARANJA";
  20. cout<<"\nAMARILLO";
  21. cout<<"\nVERDE";
  22. cout<<"\nAZUL";
  23. cout<<"\nMORADO";
  24. cout<<"\nGRIS";
  25. cout<<"\nBLANCO";
  26. cout<<"\nDORADO";
  27. cout<<"\nPLATEADO";
  28. cout<<"\nNINGUNO";
  29. cout<<"\n\nBRINDE EL PRIMER COLOR (numero): ";cin>>color;
  30.  
  31.  
  32. for(int i=0; i<=8; i++)
  33. color[i]=toupper(color[i]);
  34.  
  35. color1=color;
  36.  
  37.  
  38.     if(color1=="NEGRO")
  39.     valor1=0;
  40.     else    if(color1=="MARRON")
  41.         valor1=1;
  42.          else   if(color1=="ROJO")
  43.                 valor1=2;
  44.                else if(color1=="NARANJA")
  45.                     valor1=3;
  46.                      else   if(color1=="AMARILLO")
  47.                             valor1=4;
  48.                            else if(color1=="VERDE")
  49.                                 valor1=5;
  50.                                  else   if(color1=="AZUL")
  51.                                         valor1=6;
  52.                                        else if(color1=="MORADO")
  53.                                             valor1=7;
  54.                                              else   if(color1=="GRIS")
  55.                                                     valor1=8;
  56.                                                    else if(color1=="BLANCO")
  57.                                                         valor1=9;
  58.                                                          else
  59.                                                          cout<<"dato erroneo";
  60.  
  61.  
  62.  
  63.  
  64. cout<<"\nBRINDE EL SEGUNDO COLOR (numero): ";cin>>color;
  65.  
  66. for(int i=0; i<=8; i++)
  67. color[i]=toupper(color[i]);
  68.  
  69. color2=color;
  70.  
  71.     if(color2=="NEGRO")
  72.     valor2=0;
  73.     else    if(color2=="MARRON")
  74.         valor2=1;
  75.          else   if(color2=="ROJO")
  76.                 valor2=2;
  77.                else if(color2=="NARANJA")
  78.                     valor2=3;
  79.                      else   if(color2=="AMARILLO")
  80.                             valor2=4;
  81.                            else if(color2=="VERDE")
  82.                                 valor2=5;
  83.                                  else   if(color2=="AZUL")
  84.                                         valor2=6;
  85.                                        else if(color2=="MORADO")
  86.                                             valor2=7;
  87.                                              else   if(color2=="GRIS")
  88.                                                     valor2=8;
  89.                                                    else if(color2=="BLANCO")
  90.                                                         valor2=9;
  91.                                                          else
  92.                                                          cout<<"dato erroneo";
  93.  
  94.  
  95. cout<<"\nBRINDE EL TERCER COLOR (numero): ";cin>>color;
  96.  
  97. for(int i=0; i<=8; i++)
  98. color[i]=toupper(color[i]);
  99.  
  100. color3=color;
  101.  
  102.     if(color3=="NEGRO")
  103.     valor3=1;
  104.     else    if(color3=="MARRON")
  105.         valor3=10;
  106.          else   if(color3=="ROJO")
  107.                 valor3=100;
  108.                else if(color3=="NARANJA")
  109.                     valor3=1000;
  110.                      else   if(color3=="AMARILLO")
  111.                             valor3=10000;
  112.                            else if(color3=="VERDE")
  113.                                 valor3=100000;
  114.                                  else   if(color3=="AZUL")
  115.                                         valor3=1000000;
  116.                                        else if(color3=="MORADO")
  117.                                             valor3=10000000;
  118.                                              else   if(color3=="GRIS")
  119.                                                     valor3=100000000;
  120.                                                    else if(color3=="BLANCO")
  121.                                                         valor3=1000000000;
  122.                                                          else   if(color3=="DORADO")
  123.                                                                 valor3=0.1;
  124.                                                                else if(color3=="PLATEADO")
  125.                                                                     valor3=0.01;
  126.                                                                      else
  127.                                                                                     cout<<"dato erroneo";
  128.  
  129. cout<<"\nBRINDE EL CUARTO COLOR (numero): ";cin>>color;
  130.  
  131. for(int i=0; i<=8; i++)
  132. color[i]=toupper(color[i]);
  133.  
  134. color4=color;
  135.  
  136.  
  137.     if(color4=="DORADO")
  138.    tolerancia=5;
  139.    else if(color4=="PLATEADO")
  140.         tolerancia=10;
  141.          else   if(color4=="NINGUNO")
  142.                 tolerancia=20;
  143.                else
  144.                cout<<"dato erroneo";
  145.  
  146. RE=valor1*valor3*10+valor2*valor3;
  147. VMax=RE+RE*tolerancia*0.01;
  148. VMin=RE-RE*tolerancia*0.01;
  149. cout<<"La resistencia electrica es de "<<RE<<" ohmios";
  150. cout<<"\nLa tolerancia es de +- "<<tolerancia<<" %";
  151. cout<<"\nEl valor maximo es "<<VMax;
  152. cout<<"\nEl valor minimo es "<<VMin;
  153.  
  154. cout<<"\n\nPresione algo...";
  155.  
  156. }

Etiquetas: int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:42.