Forum: Miniräknare hjälp!

Forum huvudsida -> Programmering -> Miniräknare hjälp!

Sidor: 1

Till botten

Alfie 14:42 - 14:e December 2009 | Post #1
Medlem
Inlägg: 5


Skicka PM
Började programera igår kväll och läste igenom hela Nybörjar guiden. Förstår allting. Så ville testa att göra nått helt eget. Tänkte att en miniräknare kan inte vara så svårt.
Provade lite, lyckades få +-funktionen att funka iallafall. Men även om jag vill att den ska räkna delat så räkar den ändå plus.
Någon vänlig själ kanske har lust att hjälpa mig en lite?

  1. # include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int tal_ett;
  8.  
  9. int tal_tva;
  10.  
  11. int summa;
  12.  
  13. char raknesett[10];
  14.  
  15. cout << "Välkommen till Johan's enkla miniräknare!" << endl;
  16.  
  17. cout << "Tal 1: ";
  18.  
  19. cin >> tal_ett;
  20.  
  21. cout << "Välj räknesett (+, -, / eller *): ";
  22.  
  23. cin >> raknesett;
  24.  
  25. cout << "Tal 2: ";
  26.  
  27. cin >> tal_tva;
  28.  
  29. if ("raknesett == '+'")
  30. {
  31. summa = tal_ett + tal_tva;
  32. }
  33.  
  34. else if ("raknesett == '-'")
  35. {
  36. summa = tal_ett - tal_tva;
  37. }
  38.  
  39. else if ("raknesett == '/'")
  40. {
  41. summa = tal_ett / tal_tva;
  42. }
  43.  
  44. else if ("raknesett == '*'")
  45. {
  46. summa = tal_ett * tal_tva;
  47. }
  48.  
  49. cout << "Svar: " << summa;
  50.  
  51. cin.ignore(255,' ');
  52. cin.get();
  53.  
  54. return 0;
  55.  
  56. }





Kekke 16:07 - 14:e December 2009 | Post #2
Medlem
Inlägg: 4


Skicka PM
För att din första if-sats alltid är true.

Använd
if(!strcmp(raknesatt, "/"))

-------------------------
Ingen signatur!



Alfie 16:21 - 14:e December 2009 | Post #3
Medlem
Inlägg: 5


Skicka PM
    Citat av Kekke:
För att din första if-sats alltid är true.

Använd
if(!strcmp(raknesatt, "/"))


Måste finnas nått annat att göra! Citerar en kompis från msn:
strcmp är för typen string
strcmp = string compare

Och jag använder mig av char, inte string.





Kekke 16:29 - 14:e December 2009 | Post #4
Medlem
Inlägg: 4


Skicka PM
if(raknesatt[0] == '/')

-------------------------
Ingen signatur!



Alfie 17:35 - 14:e December 2009 | Post #5
Medlem
Inlägg: 5


Skicka PM
Tack för hjälpen! Återkommer om det uppstår fler problem!

EDIT: Där kom problemen!
Ska göra en lite mer anvancerad miniräknare!
Undrar hur man gör för att komma till baka till main-funktionen om svar = 2.

  1. # include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int raknefunktion();
  6.  
  7. int raknefunktion()
  8. {
  9. float tal_ett;
  10. float tal_tva;
  11. float summa;
  12. char raknesett[1];
  13. int svar;
  14.  
  15.  
  16.  
  17. cout << "Miniräknare!" << endl;
  18.  
  19. cout << "Tal 1: ";
  20.  
  21. cin >> tal_ett;
  22.  
  23. cout << "Välj räknesett (+, -, / eller *): ";
  24.  
  25. cin >> raknesett;
  26.  
  27. cout << "Tal 2: ";
  28.  
  29. cin >> tal_tva;
  30.  
  31. if (raknesett[0] == '+')
  32. summa = tal_ett + tal_tva;
  33.  
  34. else if (raknesett[0] == '-')
  35. summa = tal_ett - tal_tva;
  36.  
  37. else if (raknesett[0] == '/')
  38. summa = tal_ett / tal_tva;
  39.  
  40. else if (raknesett[0] == '*')
  41. summa = tal_ett * tal_tva;
  42.  
  43. cout << "Svar: " << summa << endl;
  44.  
  45. cout << "Vill räkna ett tal till? (ja=1 eller nej=2)" << endl;
  46.  
  47. cin >> svar;
  48.  
  49. if (svar == 2)
  50. return;
  51.  
  52. }
  53.  
  54. int main ()
  55. {
  56. int cmeny;
  57.  
  58. cout << "############################# "
  59. << "# # "
  60. << "# Miniräknare by Alfie # "
  61. << "# # "
  62. << "# v 1.0 # "
  63. << "# # "
  64. << "############################# ";
  65.  
  66. cout << "Meny: 1.Miniräknare 2.Slumpgenerator 3.Pi";
  67. cin >> cmeny;
  68.  
  69. if (cmeny == 1)
  70. {
  71. system("cls");
  72. raknefunktion();
  73.  
  74. }
  75.  
  76.  
  77. cin.ignore(255,' ');
  78. cin.get();
  79.  
  80. return 0;
  81.  
  82. }



Senast redigerad 18:32 - 14:e December 2009


martin310 19:11 - 14:e December 2009 | Post #6
Medlem
Inlägg: 132


Skicka PM
Du måste i sådana fall stoppa in en while loop.
Om det inte är som du vill så använder du break; för att avsluta den!

-------------------------

Hjälp jorden med Granola, det är gratis och funkar på både Windows och Linux, och försämrar inte datorns prestandad!





Kekke 19:27 - 14:e December 2009 | Post #7
Medlem
Inlägg: 4


Skicka PM
Aldrig bra vana att göra oändliga while-loopar.

while(input != '2')
{
//visa räknaren

//i slutet, hämta input och kolla i while loopen va det är igen.
}

//avsluta programmet
return 0;

-------------------------
Ingen signatur!



Alfie 22:14 - 14:e December 2009 | Post #8
Medlem
Inlägg: 5


Skicka PM
Skulle någon kunna vara vänlig att förklara en gång till och lite tydligare. Jag ursäktar, men jag är total nybörjare. Jag kanske ger mig på för svåra saker?




Sidor: 1

Forum huvudsida -> Programmering -> Miniräknare hjälp!
Atom feed

Du får inte posta i den här tråden | Till toppen