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: 2385
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontakt:
    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

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: 2199
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ść