[C++] program na wuznaczanie...

Awatar użytkownika
refuss
Użytkownik
Użytkownik
Posty: 153
Rejestracja: 19 sty 2008, o 17:11
Płeć: Mężczyzna
Lokalizacja: knurów
Podziękował: 41 razy
Pomógł: 4 razy

[C++] program na wuznaczanie...

Post autor: refuss »

witam mam tu dla niektórych zapewne prosty program lecz mi coś tu nei pasuje i nie chce on w pełni działać

program jest następujący:

Kod: Zaznacz cały

#include<iostream>
using namespace std;

int r;
double pi;

int main()
{
    int r,P,pi;
    cout <<"Wprowadz promien kola r: "<< endl;
    cin >> r ;
    pi = 3.14;
    P = pi*r*r;
    cout<<"Pole kola wynosi "<< P << endl;
    getchar();
}
program ma pytać o promień koła i wyznaczać jego powierzchnię:
1) co tu jest nie tak??
2) czy w jakiś sposób można zapisać w C++ litery greckie np. liczbę \(\displaystyle{ \pi}\)??

za odpowiedź będę wdzięczny i nagradzam +++

PS. nie myślcie że ja sięuczę sam ... bo to akurat jest z książki Bruce Eckel "Thinking in C++" i z niej się uczę właśnie...
Dumel
Użytkownik
Użytkownik
Posty: 2000
Rejestracja: 19 lut 2008, o 17:35
Płeć: Mężczyzna
Lokalizacja: Stare Pole/Kraków
Podziękował: 60 razy
Pomógł: 202 razy

[C++] program na wuznaczanie...

Post autor: Dumel »

Kod: Zaznacz cały

...
double pi;
...
int main()
{
    int pi;
    ...
}
pi najpierw deklarujesz globalnie a potem lokalnie względem funkcji main(), więc występuje konflikt oznaczeń.
liter greckich, hebrajskich, rosyjskich, koreańskich itd. itp. nie da się wpisać
Ostatnio zmieniony 7 kwie 2008, o 11:27 przez Dumel, łącznie zmieniany 2 razy.
Rafal88K
Użytkownik
Użytkownik
Posty: 311
Rejestracja: 15 mar 2007, o 16:52
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 28 razy
Pomógł: 54 razy

[C++] program na wuznaczanie...

Post autor: Rafal88K »

pi nie może być int tylko float lub double, tak obcina Ci część ułamkową, np. 3.14 => 3, 3.99 => 3

[ Dodano: 7 Kwietnia 2008, 11:30 ]
Zrób tak:

Kod: Zaznacz cały

#include<iostream>
using namespace std;

int main(int argc, char** agrv)
{
    const double pi = 3.14159;
    double r, p;
    
    cout << "Wprowadz promien kola r: ";
    cin >> r ;
    
    p = pi * r * r;
    
    cout << "Pole kola wynosi " << p << endl;
    
    return 0;
}
Awatar użytkownika
amdfanatyk
Użytkownik
Użytkownik
Posty: 98
Rejestracja: 27 mar 2005, o 14:59
Płeć: Mężczyzna
Lokalizacja: /dev/zero
Podziękował: 9 razy
Pomógł: 7 razy

[C++] program na wuznaczanie...

Post autor: amdfanatyk »

Dumel pisze:

Kod: Zaznacz cały

...
double pi;
...
int main()
{
    int pi;
    ...
}
pi najpierw deklarujesz globalnie a potem lokalnie względem funkcji main(), więc występuje konflikt oznaczeń.
Nie występuje żaden konflikt tylko następuje przesłonięcie symbolu pi, co z punktu widzenia kompilatora nie jest niczym niedozwolonym a z punktu widzenia programisty jest to zachowanie intuicyjne i jak najbardziej poprawne.
ODPOWIEDZ