Forum: Miniräknare

Forum huvudsida -> Programmering -> Miniräknare

Sidor: 1

Till botten

Andy_yngel 18:46 - 15:e Mars 2007 | Post #1
Medlem
Inlägg: 22


Skicka PM
Hej igen.
Har gjort en basic miniräknare men när jag komplierar kommer det en jädra massa fel men jag kan inte fatta vrf. Snälla hjälp mig!


(SOURCE=cpp][SOURCE]
#include <iostream>

using namespace std;
int main()
{
    cout <<"Vilket räknesätt vill du använda?" << endl;
    int raknesatt;
    cin >> raknesatt;
    if (raknesatt == *);
    {
        int ett_tal;
        int ett_tal1;
        cout << "Skriv in talen du vill multiplecera:" << endl;
        cin >> ett_tal;
        cin >> ett_tal1;
        int multi_summa;
        multi_summa = ett_tal
  • ett_tal1;
        cout << "Svaret är " << multi_summa << " !" << endl;
    }
    else if (raknesatt == /);
    {
        cout << "Skriv in talen du vill dividera:" << endl;
        int ett_tall;
        int ett_tall1;
        cin >> ett_tall;
        cin >> ett_tall1;
        int divi_summa;
        divi_summa = ett_tall / ett_tall1;
        cout << "Svaret är " << divi_summa << " !" << endl;
    }
    else if (raknesatt == -);
    {
        int ett_talll;
        int ett_talll1;
        cout << " Skriv in talen du vill subtrahera:" << endl;
        cin >> ett_talll;
        cin >> ett_talll1;
        int subb_summa;
        subb_summa = ett_talll - ett_talll1;
        cout << "Svaret blir " << subb_summa << " !" << endl;
    }
    else if (raknesatt == +);
    {
        int etttal;
        int etttal1;
        cout << "Skriv in talen du vill addera:" << endl;
        cin >> etttal;
        cin >> etttal1;
        int addi_summa;
        addi_summa = etttal + etttal1;
        cout << "Svaret blir " << addi_summa << " !" << endl;
    }

    return 0;
}
  1. [/SOURCE][SOURCE=cpp]


-------------------------
Jag är nybörjare i c++ programmering!

Senast redigerad 18:52 - 15:e Mars 2007


Slash 19:17 - 15:e Mars 2007 | Post #2
Medlem
Inlägg: 141


Skicka PM
Det jag ser på en gång är att teckenkonstanter måste omges med '. Alltså else if (raknesatt == '+'), sen så ska if-satser (i de allra flesta fall) INTE avslutas med ett semikolon ;. Vidare så behöver du inte döpa variablerna olika i olika block om du inte vill. Så du slipper det något förvirrande int ett_tal, int ett_tall, int ett_talll och int etttal.

-------------------------
Ingen sigantur!



Andy_yngel 19:41 - 15:e Mars 2007 | Post #3
Medlem
Inlägg: 22


Skicka PM
Tack
Det funkade att kompliera men när jag kör det och väljer räknesätt så kommer det bara tryck på valfri tangent för att fortsätta. Jag har testat med cin get och cin ignore men det funkar ändå inte!

Vet nån vad som e felet!??

-------------------------
Jag är nybörjare i c++ programmering!

Senast redigerad 19:55 - 15:e Mars 2007


Smygis 20:36 - 15:e Mars 2007 | Post #4
Medlem
Inlägg: 90


Skicka PM
felet är
int raknesatt;

Det ska vara
char raknesatt;

-------------------------
Ingen signatur! <- OMG! Jag har inte någon signatur! Ge mig en signatur FFS!

Senast redigerad 20:56 - 15:e Mars 2007


main 11:07 - 16:e Mars 2007 | Post #5
Medlem
Inlägg: 40


Skicka PM
En rekommenderad metod är dock att ha en funktion t.ex. compute som tar vissa argument (inklusive operator), och ha en switch i den och utför räkneoperationerna efter det.

Om du bara ska ha två operander, så finns det väldigt enkla lösningar. Skall du dock ha ett uttryck som t.ex (3*4+8-(7^3) / 2) måste du skriva en parser (ganska komplicerat dock om du inte är så bra på C/C++ än).

Med två operander (PSEUDO):
läs in: tal1 op tal2
anrop: compute(tal1,op,tal2)
retur: resultat av beräkning (tal1 op tal2)
+
Ev. lagring av senaste operation.

-------------------------
- Real programmers code in binary



Andy_yngel 18:38 - 16:e Mars 2007 | Post #6
Medlem
Inlägg: 22


Skicka PM
Tack Smygis, det funkade perfekt!!!

och main, jag kan inte riktigt så mycket än så jag fattar det men snällt att du ville hjälpa till!

-------------------------
Jag är nybörjare i c++ programmering!



Sidor: 1

Forum huvudsida -> Programmering -> Miniräknare
Atom feed

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