Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zabezpieczenie dzielenia przed wartoscia 0 (kalkulator).

Ostatnio zmodyfikowano 2015-08-24 16:05
Autor Wiadomość
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 :
C/C++
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).
P-136813
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.
P-136814
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.
P-136821
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.
C/C++
if( b == 0 )
{
    std::cout << "Nie wolno dzielić przez zero." << std::endl;
    return 0; //exit( 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.
P-136825
carlosmay
» 2015-08-24 15:22:16
while( b <= 0 )
Przecież można dzielić przez liczbę ujemną.
P-136826
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.
P-136829
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.
P-136830
« 1 »
  Strona 1 z 1