[C++]Ciągi
Ostatnio zmodyfikowano 2015-05-23 16:45
chinczyk Temat założony przez niniejszego użytkownika |
[C++]Ciągi » 2015-05-23 13:35:09 Nie mam pomysłu jak zrobić funkcje która sprawdzi mi po kolei czy wszystkie wyrazy ciągu są geometryczne czy nie. Mój program sprawdza czy pierwsze wyrazu ciągu są okej później lipa. Nie wiem jak mam to zrobić proszę o pomoc. Podaje kawałek kodu. Licznik jest to liczba tablic, czyli inaczej ilość podanych liczb przez użytkownika. if( licznik > 3 ) { double q; q = 1.0 * liczba[ 1 ] / liczba[ 0 ]; for( int i = 1; i < licznik - 1; i++ ) { if( liczba[ i + 1 ] / liczba[ i ] != q ) { cout << "Podany ciag nie jest geometryczny" "\n"; return true; return false; } else { cout << "Podany ciag jest geometryczny" "\n"; } } } else { cout << "Ciag geometryczny: brak danych" << "\n"; }
|
|
pekfos |
» 2015-05-23 13:56:07 Nie porównuj dwóch liczb double przez ==. Zamiast tego powinno to wyglądać mniej więcej tak: std::abs( liczba[ i + 1 ] / liczba[ i ] - q ) < 0.0001
Im mniejsza stała, tym dokładniejsze sprawdzenie, przy czym pamiętaj o ograniczonej precyzji liczb. Jeśli tablica liczba[] nie zawiera liczb zmiennoprzecinkowych, musisz dodatkowo rzutować na double, choćby i przez przemnożenie razy 1.0, jak masz wcześniej w kodzie. |
|
chinczyk Temat założony przez niniejszego użytkownika |
» 2015-05-23 14:39:20 Powiem szczerze że dopiero zaczynam z c++ i nie za bardzo Cię zrozumiałem ale rozkminiłem takie coś i działa : double q; q = 1.0 * liczba[ 1 ] / liczba[ 0 ]; int h = 0;
for( int i = 0; i < licznik - 1; i++ ) { if( liczba[ i + 1 ] ==( liczba[ i ] * q ) ) h++; } if( h == licznik - 2 ) { cout << "Ciag jest geometryczny" << endl; } if( h != licznik - 2 ) { cout << "Ciag nie jest geometryczny" << endl; }
|
|
chinczyk Temat założony przez niniejszego użytkownika |
» 2015-05-23 16:45:28 Kolejny mój problem to program musi znaleźć miejsce i wielkość ilorazu największej bezwzglednej. Inaczej wpisuje użytkownik liczby 1 2 3 4 4 2 -5 -3. Najwieksza bezwzgledna w tym programie to |-5/2|=2,5. |
|
« 1 » |