matematykaszkolna.pl
c++ adam: jest ktoś chętny pomóc mi w napisaniu programu w C++ do przeliczania km/h −> m/s, cm/s i cale ?
20 kwi 20:03
Trivial: A czego nie rozumiesz?
20 kwi 20:04
adam: nie wiem jak to napisać, bo ten mi nie działa prawidłowo #include <iostream> #include <cstdio> #include <math.h> using namespace std; int main() { double x; cout << "Wpisz predkosc w km/h: "; cin >> x; printf("%.2f km/h to:%3.f m i %2.0f cm na sekunde lub %.3f cali/minute.\n", x, floor(x*10/36), 100*(x*10/36−floor(x*10/36)), x*100000/2.54/60); system("pause"); return 0; }
20 kwi 20:06
Trivial: Masz type error w printfie. %f przyjmuje floaty, a dajesz double. Do doubli jest %lf. Lepiej używaj po prostu cout << ... Wtedy nie da się zrobić tego błędu (za to da się inne emotka).
20 kwi 20:09
Trivial: Jeszcze takie pytanko, po co bierzesz podłogę z wyników? (floor)
20 kwi 20:16
adam: #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main(){ { double x; cout << "Wpisz predkosc w km/h: "; cin >> x; cout<<"%.2f km/h to:"<<%3.f m << "i" << %2.0f <<"cm na sekunde lub"<< %.3f <<"cali/minute.\n" << x << floor(x*10.0/36) 100*(x*10.0/36−floor(x*10.0/36)), x*100000/2.54/60); system("pause"); return 0; }
20 kwi 20:18
adam: na zajęciach było podane że można użyć.. a jak dalej z tym floor pozamieniać mój kod źródłowy?
20 kwi 20:19
Trivial: No nie bardzo...
20 kwi 20:19
adam: mam zaokrąglić cale do 3 miejsc po przecinku, metry mają być całkowite, a centymetry zaokrąglić do wat. całkowitej
20 kwi 20:21
Trivial: To floor jest zupełnie niepotrzebne. Ten cout jest zupełnie źle. W ogóle sprawdzasz jak to działa przed wysłaniem?
20 kwi 20:21
adam: pomożesz, to ważne dla mnie?
20 kwi 20:22
adam: nie sprawdziłem..
20 kwi 20:22
adam: nie wiem co w tym cout, to mój 2 program..
20 kwi 20:24
Trivial: cout po prostu bierze coś i to wypisuje. Można utworzyć cały łańcuch wypisywania w ten sposób: cout << "A" << 3 << "B" << endl; ← wypisze A3B
20 kwi 20:26
adam: czyli to %f jest tu zbędne i mam napisać np. x*10.0/36? a jak to np. zaokrąglić do 3 miejsc
20 kwi 20:28
adam: mógłbyś napisać mi co w tym cout napisać?
20 kwi 20:30
Draghan: Słuchaj Triviala, dobrze prawi emotka Ode mnie takie pytanie: dlaczego mieszasz strumienie z printf? Jaki był Twój cel? I drugie pytanie: do czego Ci biblioteka matematyczna?
20 kwi 20:34
Trivial: Tak. Przykład: cout << "Po konwersji: " << x*10.0/36 << endl; Do zaokrąglania służy setprecision(int) z nagłówka iomanip. #include <iomanip> cout << setprecision(3) << 2.23423423 << endl; ← wypisze 2.23
20 kwi 20:34
Draghan: O, ale mi się wiadomości opóźniły. Kiedy czytałem ten wątek, miał tylko 4 wiadomości O.o
20 kwi 20:34
adam: #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main(){ double km,cal; int m,cm; cout << "Wpisz predkosc w km/h:"; cin >> km; m = floor(km/3.6); cm = round((km/3.6 − m) * 100); cal = km * 100000 / 2.54 / 60; cout << endl << fixed << setprecision(2) << km << " km/h to " << m << " m i " << cm << " cm na sekund lub " << fixed << setprecision(3) << cal << " cali/minute."; } tutaj też coś nie tak..
20 kwi 20:37
Dziadek Mróz: [code] #include "stdafx.h" #include <iostream> using namespace std; int main() { double kmh, ms, cms, cals; char ch; do { cout << "\nWybierz opcję:\nkm/h −>\n\t1 − m/s\n\t2 − cm/s\n\t3 − cal/s\n\tQ − koniec\n"; cin >> ch; switch (ch) { case '1': { cout << "\nPodaj prędkość w km/h: "; cin >> kmh; ms = (kmh * 1000) / (3600); cout << kmh << "km/h = " << ms << "m/s\n"; break; } case '2': { cout << "\nPodaj prędkość w km/h: "; cin >> kmh; cms = (kmh * 100000) / (3600); cout << kmh << "km/h = " << cms << "cm/s\n"; break; } case '3': { cout << "\nPodaj prędkość w km/h: "; cin >> kmh; cals = (kmh*39370.08) / (3600); cout << kmh << "km/h = " << cals << "cal/s\n"; break; } case 'Q': case 'q': { cout << "\nKoniec\nWciśnij klawisz aby zakończyć..."; char end; cin >> end; return 0; } default: { cout << "Podałeś złą opcję!\n"; break; } } } while (ch != 'Q' || ch != 'q'); } [/code]
20 kwi 20:39
Godzio: U mnie działa normalnie. Jaki Ci błąd wyskakuje?
20 kwi 20:40
adam: to jest w formie pd i moge sobie sprawdzic i wynik mam 2/5
20 kwi 20:48
adam: w dev nie wyswietla bledu, dziala normalnie
20 kwi 20:48
Dziadek Mróz: Visual Studio 2013 Professional W DEV c++ zwykle pojawiają się błędy przy złej instalacji programu, może po pierwszym uruchomieniu nie zaakceptowałeś instalacji bibliotek i dodatków? Nauki programowania stosuj na systemach linux (Debian, Ubuntu, Mandriva, DSL, ...) bo tam najłatwiej korzystać z funkcji zawartych w bibliotekach.
20 kwi 20:52
Trivial: Tutaj proste rozwiązanie: http://ideone.com/LSBc7k Zaokrąglenia dorób sam.
20 kwi 20:58
adam: #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main(){ float km,cal; float cm; float m; cout << "Wpisz predkosc w km/h:"; cin >> km; m=floor(3.6*km) cm = round((3.6*km − m) * 100) cal=656,168*km cout << endl << fixed << setprecision(2) << km << " km/h to " << m << " m i " << cm << " cm na sekund lub " << fixed << setprecision(3) << cal << " cali/minute."; return 0; } prosze jeszcze o sprawdzenie tego programu emotka wyskakuje 1 blad
20 kwi 21:52
adam: cm = round((3.6*km − m) * 100) tu jest błąd ale ja go nie widze
20 kwi 22:01