Prawdziwe oblicze Informatyki. Tysiące linijek kodu i kompilatory które nigdy nie wybaczają.
Awatar użytkownika

ProEditor

Posty: 21
Rejestracja: 23 sie 2012, 10:19
    Windows 8 Chrome

Post06 paź 2012, 11:00

Witam, proszę o pomoc jak powrócić do samego początku, gdy program wykona wszystkie polecenia:

Kod: Zaznacz cały

#include <iostream>
#include <cstdlib>
#include <math.h>




using namespace std;

int main()
{
    double a, b, c, x, x1, x2, delta, tak;
    int wybor;
    cout << "Witam, co chesz zrobic?" << "\n";
    cout << "1. Rownanie kwadratowe" << "\n";
    cout << "2. Wyjscie" << "\n";
    cin >> wybor;
    switch(wybor)
 {
    case 1 :
  {


    cout << "Witam w programie obliczajacym rownanie kwadratowe." << "\n";
    cout << "Majac rownanie postaci ax^2+bx+c:" << "\n";
    cout << "Podaj a: ";
    "\n";
    cin >> a;
    "\n";
    cout << "Podaj b: ";
    "\n";
    cin >> b;
    "\n";
    cout << "Podaj c: ";
    "\n";
    cin >> c;
    "\n";
    if((a==0) && !(b==0))
    {
       x=(-1)*c/b;
       cout << "Odp. x jest rowny: " << x << "\n";
    }
    if((a==0) && (b==0) && (c==0))
    {
       cout << "x nalezy do zbioru liczb rzeczywistych" << "\n";
    }
     if((a==0) && (b==0) && !(c==0))
    {
       cout << "Odp. x nalezy do zbioru pustego" << "\n";
    }
    if(!(a==0) && (b==0) && (c==0))
    {
       cout << "Odp. x jest rowny 0" << "\n";
    }
    if(!(a==0) && (b==0) && !(c==0))
    {
       x1=sqrt(-c/a);
       x2=(-1)*sqrt(-c/a);
       cout << "Odp. x jest rowny: " << x1 << "lub " << x2 << "\n";
    }
     if(!(a==0) && !(b==0) && (c==0))
    {
       x=(-1)*b/a;
       cout << "Odp. x jest rowny: " << x << "\n";
    }
     if(!(a==0) && !(b==0) && !(c==0))
    {
       delta=(b*b)+(-1)*4*a*c;
       if(delta>0)
       {
       x1=((-1)*b+(-1)*(sqrt(delta)))/2*a;
       x2=((-1)*b+(sqrt(delta)))/2*a;
       cout << "Odp. x jest rowny: " << x1 << " lub " << x2 << "\n";
       }
       else if(delta=0)
       {
       x=-b/2*a;
       cout << "Odp. x jest rowny: " << x << "\n";
       }
       else
       {
       cout << "Odp. Rownanie nie ma pierwiastkow!" << "\n";
       }
    }
    cout << "Dziekujemy za skorzystanie z programu" << "\n";
    cout << "Stworzyl *******" << "\n";
    break;
  }
  case 2 : exit(1); break;
 }
 system("pause");
}

Awatar użytkownika

lolasher

Zasłużony użytkownik
Posty: 2384
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontaktowanie:
    Windows 8 Opera

Post06 paź 2012, 11:20

Ten switch wstawiasz do pętli while, która przestaje powtarzać, gdy wybór równy dwa. a wyliczanie pierwiastków najprzejrzyściej byłoby wstawić do funkcji, ale nie będę cię przemęczał, bo dopiero zaczynasz...

Teoretycznie w tym przypadku prościej byłoby przez goto, ale GOTO UŻYWAĆ NIE WOLNO, GOTO ZABIJA KOTKI I KONIEC KROPKA. Jak jesteś ciekawy czemu to przejrzyj tematy o grze mediatora. Tak z góry mówię, żeby nie kusiło, bo ci się będzie ciężko odzwyczaić, a przy większych projektach na goto się zamotasz.

Awatar użytkownika

abc

Posty: 1
Rejestracja: 26 wrz 2012, 18:14
    Windows XP Opera

Post06 paź 2012, 11:27

ProEditor pisze:Witam, proszę o pomoc jak powrócić do samego początku, gdy program wykona wszystkie polecenia:

Kod: Zaznacz cały

#include <iostream>
#include <cstdlib>
#include <math.h>




using namespace std;

int main()
{
    double a, b, c, x, x1, x2, delta, tak;
    int wybor;
    cout << "Witam, co chesz zrobic?" << "\n";
    cout << "1. Rownanie kwadratowe" << "\n";
    cout << "2. Wyjscie" << "\n";
    cin >> wybor;
    switch(wybor)
 {
    case 1 :
  {


    cout << "Witam w programie obliczajacym rownanie kwadratowe." << "\n";
    cout << "Majac rownanie postaci ax^2+bx+c:" << "\n";
    cout << "Podaj a: ";
    "\n";
    cin >> a;
    "\n";
    cout << "Podaj b: ";
    "\n";
    cin >> b;
    "\n";
    cout << "Podaj c: ";
    "\n";
    cin >> c;
    "\n";
    if((a==0) && !(b==0))
    {
       x=(-1)*c/b;
       cout << "Odp. x jest rowny: " << x << "\n";
    }
    if((a==0) && (b==0) && (c==0))
    {
       cout << "x nalezy do zbioru liczb rzeczywistych" << "\n";
    }
     if((a==0) && (b==0) && !(c==0))
    {
       cout << "Odp. x nalezy do zbioru pustego" << "\n";
    }
    if(!(a==0) && (b==0) && (c==0))
    {
       cout << "Odp. x jest rowny 0" << "\n";
    }
    if(!(a==0) && (b==0) && !(c==0))
    {
       x1=sqrt(-c/a);
       x2=(-1)*sqrt(-c/a);
       cout << "Odp. x jest rowny: " << x1 << "lub " << x2 << "\n";
    }
     if(!(a==0) && !(b==0) && (c==0))
    {
       x=(-1)*b/a;
       cout << "Odp. x jest rowny: " << x << "\n";
    }
     if(!(a==0) && !(b==0) && !(c==0))
    {
       delta=(b*b)+(-1)*4*a*c;
       if(delta>0)
       {
       x1=((-1)*b+(-1)*(sqrt(delta)))/2*a;
       x2=((-1)*b+(sqrt(delta)))/2*a;
       cout << "Odp. x jest rowny: " << x1 << " lub " << x2 << "\n";
       }
       else if(delta=0)
       {
       x=-b/2*a;
       cout << "Odp. x jest rowny: " << x << "\n";
       }
       else
       {
       cout << "Odp. Rownanie nie ma pierwiastkow!" << "\n";
       }
    }
    cout << "Dziekujemy za skorzystanie z programu" << "\n";
    cout << "Stworzyl *******" << "\n";
    break;
  }
  case 2 : exit(1); break;
 }
 system("pause");
}

Widziałem temat taki tera na jednym z forów :P

Awatar użytkownika

ProEditor

Posty: 21
Rejestracja: 23 sie 2012, 10:19
    Windows 8 Chrome

Post06 paź 2012, 11:30

pisałem na wielu ;)

EDIT: sam doszedłem, i może dobrze, że samemu
Program po wykonaniu pyta czy kontynuować, czy wyjść i pięknie ;D

Awatar użytkownika

PisarzKsiazkowicz

Moderator
Posty: 2197
Rejestracja: 27 sty 2010, 7:53
    Windows 7 Opera

Post06 paź 2012, 12:08

To jak doszedłeś, to się podziel informacją, bądź miły dla ludzi, którzy natrafią na ten temat w Google.
ObrazekObrazek

Awatar użytkownika

ProEditor

Posty: 21
Rejestracja: 23 sie 2012, 10:19
    Windows 8 Chrome

Post06 paź 2012, 12:13

no fakt ;D dużo tych tematów

Kod: Zaznacz cały

#include...

main()
{
int wybor;
//wprowadzamy zmienne
do
{
system("cls");
kod naszego programu
//na koniec:
cout << "Co chcesz zrobic?" << "\n";
    cout << "1. Od poczatku" << "\n";
    cout << "2. Wyjscie" << "\n";
    cin >> wybor;
}
while(wybor==1);

//jesli ktos kliknie inna liczbe:
cout << "Dziekujemy za skorzystanie z programu" << "\n";
 system("pause");
}

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość