Demoncros Temat założony przez niniejszego użytkownika |
Zabezpieczenie dzielenia przed wartoscia 0 (kalkulator). » 2015-08-24 12:42:10 Witam, mam taki problem. Czy mozna zrobic zabezpieczenie przed wartoscia 0 w dzieleniu w zgrabniejszy sposob niz : float dzielenie() { float a; cin >> a; float b; cin >> b; if( b == 0 ) { exit( 0 ); } return a / b; }
pytam dlatego bo zeby to zrobic to poszukalem troche na forum i dodalem nowa biblioteke <cstdlib> by komenda zadzialala (wiec bez pomocy internetu bym nie dal rady tego wymyslic a w zadaniach z kalkulatorkiem za kazdym razem jest mowa o zabezpieczaniu przed 0). |
|
SeaMonster131 |
» 2015-08-24 12:56:25 W przypadku gdy b jest równe 0, funkcja może np. zwracać 0 albo możesz dodać pętlę, która będzie się wykonywać dopóki użytkownik jako b wpisuje 0, itd. |
|
cichy3993 |
» 2015-08-24 14:07:45 float dzielenie() { float a; cin >> a; do { cout >> "Dzielnik nie moze byc zerem! >> endl; float b; cin >> b; } while ( b <= 0 ) return a/b; }
Oczywiscie nie musisz pisac o tym dzielniku. Ja nie znam prostszego sposobu. |
|
pekfos |
» 2015-08-24 15:20:16 bez pomocy internetu bym nie dal rady tego wymyslic a w zadaniach z kalkulatorkiem za kazdym razem jest mowa o zabezpieczaniu przed 0 |
To jest twój problem. if( b == 0 ) { std::cout << "Nie wolno dzielić przez zero." << std::endl; return 0; } return a / b;
|
Chcesz powiedzieć, że nie potrafiłbyś czegoś takiego wymyślić, gdybyś nie znalazł funkcji exit()..? Jeśli uważasz, że zabezpieczenie się przed jakimś przypadkiem danych wejściowych jest równoznaczne z zakończeniem programu, gdy ten przypadek nastąpi, to lepiej zmień nastawienie. Jak chcesz zapisać plik tekstowy i, z jakiegoś powodu, pliku nie udaje się otworzyć, to raczej nie chciałbyś, by edytor 'zabezpieczał' się, posyłając efekty twojej pracy do piachu. |
|
carlosmay |
» 2015-08-24 15:22:16 while( b <= 0 ) Przecież można dzielić przez liczbę ujemną. |
|
Demoncros Temat założony przez niniejszego użytkownika |
» 2015-08-24 15:46:39 @pekfos przeciez nie prosze o rozwiazanie zadania za mnie. Pisze w sytuacji gdzie wiem ze mozna rozwiazac cos inaczej ale moim tokiem rozumowania nie bylem wstanie do tego dojsc. Nie wpadlem na to ze petle moge sobie wstawic w dowolnym miejscu i ze moze ona obejmowac tak naprawde jeden wiersz kodu. Teraz dzieki wam juz wiem i moge ta wiedze wykorzystac pozniej gdy bede powolutku nabierac dalej doswiadczenia. Pamietaj tez ze to forum odwiedzaja osoby ktore tak jak ja postanowily nauczyc sie jezyka c++ wiedzac o komputerach tyle ze mozna na nich grac ewentualnie pakietem office sie pobawic. Wypowiedzi typu "to twoj problem" gdzie w samym opisie masz ze "od problemow jest forum" nie zachecaja do dalszego zaglebiania sie w wiedze ktorej jest multum na tej stronie. Zadaj sobie pytanie gdy zaczynales programowac jakie (z perspektywy czasu) debilne pytania przychodzily ci do glowy i postaraj sie miec wiecej wyrozumialosci dla osob ktore komende std::cout poznaly jakos 5 dni temu. |
|
pekfos |
» 2015-08-24 16:05:58 Wypowiedzi typu "to twoj problem" gdzie w samym opisie masz ze "od problemow jest forum" nie zachecaja do dalszego zaglebiania sie w wiedze ktorej jest multum na tej stronie. |
Eee.. to nie było w tym znaczeniu. " To jest twój problem" wprowadza do opisu twojego właściwego problemu, a nie stwierdza "to twój problem, radź sobie sam". Napisałeś, że musiałeś się wspomagać internetem i korzystać z wiedzy, do której kurs jeszcze nie doszedł, podczas gdy wszystko, czego potrzebowałeś, jest ci już znane, tylko nie pomyślałeś o tym, by tego użyć. Możesz znać std::cout od 5 dni, zakładam że C++ znasz równie długo. Ile się ty właściwie przez ten czas nauczyłeś? Cóż, tego nie może być bardzo dużo. Gdybyś sobie wypisał, co potrafisz zrobić samo w sobie (postawić warunek, pętle, itp) i miał w myśli zadanie, jakie masz wykonać, to prawdopodobnie udałoby ci się coś złożyć z dostępnych klocków. To nie musiałby działać, ale to można doszlifować, jak się więcej poczyta, poeksperymentuje, lub można z tym pójść na forum - a to byłby już zupełnie innej kategorii temat. |
|
« 1 » |