Avatar billede human Nybegynder
06. maj 2003 - 17:43 Der er 5 kommentarer og
2 løsninger

Tilføjelse af loop..?

Heysa!

Jeg er blevet træt af at tænke hver gang jeg skal bruge ohms lov, så jeg har bestemt for at skrive dette lille program:

#include <iostream>

using namespace std;

int main()
{
    double i = 0.0, u = 0.0, r = 0.0, p = 0.0;
    char lov = 0;

    cout << "Du kan regne i(AMP), u(Volt), r(Ohm) og p(Watt)." << endl << endl;
    cout << "Indtast hvad du vil regne ud (i,u,r,p): " << endl;
   
    cin >> lov;

    switch(lov)
    {
    case 'i':
        cout << "Indtast u så r: " << endl;
        cin >> u >> r;

        i = u / r;

        cout << "i er lig med: " << i << endl;
        break;
       
    case 'u':
        cout << "Indtast r så i: " << endl;
        cin >> r >> i;

        u = r * i;

        cout << "u er lig med: " << u << endl;
        break;

    case 'r':
        cout << "Indtast u så i: " << endl;
        cin >> u >> i;

        r = u / i;

        cout << "r er lig med: " << r << endl;
        break;

    case 'p':
        cout << "Indtast u så i: " << endl;
        cin >> u >> i;

        p = u * i;

        cout << "p er lig med: " << p << endl;
        break;

    default: cout << "Du indtastede hverken i, u, r eller p" << endl;
    }
   
    return 0;
}

Men hvordan får jeg tilføjet, så den spørger om jeg vil regne mere ud når den har udført en af case'ne. J, så starter programmet forfra, n så lukker det.

Noget siger mig det er et loop?
Avatar billede driis Nybegynder
06. maj 2003 - 17:56 #1
Det kan gøres på et utal af forskellige måder, bl.a.:

#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    double i = 0.0, u = 0.0, r = 0.0, p = 0.0;
    char lov = 0;
    char valg = 0 ;
    while ( valg != 'n' && valg != 'N' )
    {
        cout << "Du kan regne i(AMP), u(Volt), r(Ohm) og p(Watt)." << endl << endl;
        cout << "Indtast hvad du vil regne ud (i,u,r,p): " << endl;

        cin >> lov;

        switch(lov)
        {
        case 'i':
            cout << "Indtast u så r: " << endl;
            cin >> u >> r;

            i = u / r;

            cout << "i er lig med: " << i << endl;
            break;

        case 'u':
            cout << "Indtast r så i: " << endl;
            cin >> r >> i;

            u = r * i;

            cout << "u er lig med: " << u << endl;
            break;

        case 'r':
            cout << "Indtast u så i: " << endl;
            cin >> u >> i;

            r = u / i;

            cout << "r er lig med: " << r << endl;
            break;

        case 'p':
            cout << "Indtast u så i: " << endl;
            cin >> u >> i;

            p = u * i;

            cout << "p er lig med: " << p << endl;
            break;

        default: cout << "Du indtastede hverken i, u, r eller p" << endl;
        }

        cout << "\nVil du regne igen ? (J/N) " ;
        while ( !kbhit() ) ;
        valg = getch() ;
    }
   
    return 0;
}
Avatar billede gumbert Nybegynder
06. maj 2003 - 18:02 #2
#include <iostream>

using namespace std;

int main()
{
    double i = 0.0, u = 0.0, r = 0.0, p = 0.0;
    char lov = 0;
    char afslut;

    do{                    // Starten på løkken
    cout << "Du kan regne i(AMP), u(Volt), r(Ohm) og p(Watt)." << endl << endl;
    cout << "Indtast hvad du vil regne ud (i,u,r,p): " << endl;
   
    cin >> lov;

    switch(lov)
    {
    case 'i':
        cout << "Indtast u så r: " << endl;
        cin >> u >> r;

        i = u / r;

        cout << "i er lig med: " << i << endl;
        break;
       
    case 'u':
        cout << "Indtast r så i: " << endl;
        cin >> r >> i;

        u = r * i;

        cout << "u er lig med: " << u << endl;
        break;

    case 'r':
        cout << "Indtast u så i: " << endl;
        cin >> u >> i;

        r = u / i;

        cout << "r er lig med: " << r << endl;
        break;

    case 'p':
        cout << "Indtast u så i: " << endl;
        cin >> u >> i;

        p = u * i;

        cout << "p er lig med: " << p << endl;
        break;

    default: cout << "Du indtastede hverken i, u, r eller p" << endl;
    }

    do {                                      // Sikre at brugeren enten taster j eller n
    cout<<"Vil du proeve igen? j/n";
    cin>>afslut;
    if(afslut!='n'||'j')
    {
        cout<<"Forkert input\n";
    }
    }while (afslut!='n'||'j');

    }while(afslut=='j');
   
    return 0;
}


//For at lave menu i konsol plejer man at bruge do{ }while lykken
// i while () står argumentet for om lykken skal afsluttes ekse do{ cout<<"Hej"} while(a==1);
// Den er brugt 2 gange for at sikre at brugeren enten skriver j eller n
Avatar billede gumbert Nybegynder
06. maj 2003 - 18:02 #3
#include <iostream>

using namespace std;

int main()
{
    double i = 0.0, u = 0.0, r = 0.0, p = 0.0;
    char lov = 0;
    char afslut;

    do{                    // Starten på løkken
    cout << "Du kan regne i(AMP), u(Volt), r(Ohm) og p(Watt)." << endl << endl;
    cout << "Indtast hvad du vil regne ud (i,u,r,p): " << endl;
   
    cin >> lov;

    switch(lov)
    {
    case 'i':
        cout << "Indtast u så r: " << endl;
        cin >> u >> r;

        i = u / r;

        cout << "i er lig med: " << i << endl;
        break;
       
    case 'u':
        cout << "Indtast r så i: " << endl;
        cin >> r >> i;

        u = r * i;

        cout << "u er lig med: " << u << endl;
        break;

    case 'r':
        cout << "Indtast u så i: " << endl;
        cin >> u >> i;

        r = u / i;

        cout << "r er lig med: " << r << endl;
        break;

    case 'p':
        cout << "Indtast u så i: " << endl;
        cin >> u >> i;

        p = u * i;

        cout << "p er lig med: " << p << endl;
        break;

    default: cout << "Du indtastede hverken i, u, r eller p" << endl;
    }

    do {                                      // Sikre at brugeren enten taster j eller n
    cout<<"Vil du proeve igen? j/n";
    cin>>afslut;
    if(afslut!='n'||'j')
    {
        cout<<"Forkert input\n";
    }
    }while (afslut!='n'||'j');

    }while(afslut=='j');
   
    return 0;
}
sorry ville svare

//For at lave menu i konsol plejer man at bruge do{ }while lykken
// i while () står argumentet for om lykken skal afsluttes ekse do{ cout<<"Hej"} while(a==1);
// Den er brugt 2 gange for at sikre at brugeren enten skriver j eller n
Avatar billede human Nybegynder
06. maj 2003 - 18:21 #4
Takker til jer begge! Bruger Driis'. Gumbert, din virker ikke efter hensigt :/.
Ville ellers bruge din gumbert, synes den er lidt nemmere at se sig ud af ;o).
Avatar billede driis Nybegynder
06. maj 2003 - 18:26 #5
Min er stort set den samme som gumbert's. Bortset fra at jeg bruger getch() til at få en karakter fra tastaturet uden at brugeren behøver at trykke Enter.
Avatar billede human Nybegynder
06. maj 2003 - 18:27 #6
Ahh.. På den måde. Altid nemmere at forstå med en lille forklaring :O)
Avatar billede segmose Nybegynder
07. maj 2003 - 08:24 #7
Jeg ville blive idiot af at skulle svare j/n hver gang, hvorfor ikke tage
'q' for quit med i hoved spørgsmålet og spare sidste spørgsmål?

cout << "Du kan regne i(AMP), u(Volt), r(Ohm) og p(Watt) eller q(quitte)." << endl << endl;
    cout << "Indtast hvad du vil regne ud (i,u,r,p,q): " << endl;

...

}while(lov!='q');
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester