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

Pętla for z krokiem

Ostatnio zmodyfikowano 2016-01-11 14:55
Autor Wiadomość
locf
Temat założony przez niniejszego użytkownika
Pętla for z krokiem
» 2016-01-10 21:40:08
Napisz pętlę for, która drukuje wszystkie wartości typu double od -0.8 do 3.5 z krokiem 0.2.

Jeśli mam taki kod:
 
C/C++
#include <iostream>

using namespace std;

int main()
{
    for( double i = - 0.8; i <= 3.5; i += 0.2 )
    {
        cout << i << " ";
    }
    return 0;
}
.

to zamiast zera mam jakieś dziwne "śmieci" zaczerpnięte chyba z pamięci.
Dlaczego tak się dzieje i jak poprawić ten program?
P-143350
1aam2am1
» 2016-01-10 22:01:22
To nie śmieci to notacja wykładnicza
P-143352
locf
Temat założony przez niniejszego użytkownika
» 2016-01-10 22:03:59
czyli program jest prawidłowo napisany?
P-143353
1aam2am1
» 2016-01-10 22:10:44
Tak jest napisany prawidłowo te -5.55112e-17 to ok -0,0000000000000000555112
P-143356
pekfos
» 2016-01-10 23:41:16
czyli program jest prawidłowo napisany?
I tak, i nie. Zależy, czy dopuszczasz takie błędy obliczeń.

Można to zrobić też tak
C/C++
for( int i = 0; i <( 3.5 - - 0.8 ) / 0.2; ++i )
     std::cout << 0.2 * i + - 0.8 << ' ';
P-143359
locf
Temat założony przez niniejszego użytkownika
» 2016-01-11 13:09:35
Dziękuję za pomoc. W poleceniu ma być typ double, więc nie wiem, czy to rozwiązanie byłoby uznane, mimo że wypisuje liczby prawidłowo.
P-143366
carlosmay
» 2016-01-11 14:55:33
W poleceniu ma być typ double, więc nie wiem, czy to rozwiązanie byłoby uznane, mimo że wypisuje liczby prawidłowo.
3.5 to przecież liczba typu double.
Jaki problem, aby podmienić liczby zmiennymi o tych wartościach?
P-143368
« 1 »
  Strona 1 z 1