[Lekcja 17 ] Zadanie domowe
Ostatnio zmodyfikowano 2016-05-23 09:45
Rashmistrz |
» 2014-10-24 16:32:55 Właśnie Wy krzywdzicie [...] |
Ja tylko mówię w czym błąd i ewentualnie odsyłam do konkretnych części artykułów. ;_; Staram się przewidzieć sytuację i co najlepiej podać. np. pw1602: Zamiast korzystać z pętli for użyj do...while. |
@pw1602
To niczego nie zmieni. To niczego na razie nie zmieni. |
A potem ktoś znowu potarza o tej pętli i autor tematu odpowiada: zastosowanie do while mi nie pomoże, pętla bedzie wykonaywala sie bez końca. |
|
|
matys210 |
» 2014-10-24 16:38:46 A więc bd naprowadzał, lecz nie podawał gotowców. |
|
Rashmistrz |
» 2014-10-24 17:34:55 A więc bd naprowadzał, lecz nie podawał gotowców. |
Przy nauce z kursu tak właśnie ma być. |
|
1aam2am1 |
» 2014-10-24 18:12:15 To jest offtop. Zamknijcie temat. Problem został rozwiązany. |
|
Ananke |
» 2016-05-23 08:43:57 Witam wszystkich. Jestem osobą początkującą dlatego proszę o wyrozumiałość. Zależy mi na tym,żeby wszystko dobrze zrozumieć i potrzebuję pewnych wyjaśnień. Chodzi mi o pierwszą cześć zadania domowego.Ja zaczęłam programować to tak:
#include <iostream>
using namespace std; int wczytajLiczbe() { int a; cin>>a; return a;
}
int main() { do { cout<<"Podaj liczbe:"; int liczba=wczytajLiczbe(); cout <<"Podales liczbe"<<liczba<< endl; }while (wczytajLiczbe==wczytajLiczbe); return 0; }
Głównie chodzi mi o wyjaśnienie tego, czy mogę w taki sposób zaprogramować podanie liczby a. Jeśli tak to za każdym razem przecież wynik będzie poprawny a nie bardzo wiem jak zrobić to inaczej. Niby wszystko się zgadza.Pętla działa, program prosi o wczytanie liczby, wczytuje ją i prosi o to ponownie ale nie rozumiem do końca treści zadania:"Napisz funkcję, która będzie wczytywała liczby ze standardowego strumienia wejścia i zwracała wczytywaną wartość".czy to nie jest oczywiste?Skoro wczytuje jakąś liczbę i proszę program by ją podał to jak ma podać inną? Czy aby "zagwarantować, że zwracana liczba zawsze jest poprawna" powinnam dodatkowo użyć funkcji if? Natomiast ponownie mam pytanie, w jaki sposób program mógłby podać inną nazwę? Rozumiem,że wyglądało by to inaczej przy losowaniu liczby ale tutaj przecież sama ją podaję.Przepraszam za długi wywód i zarazem będę wdzięczna za pomoc. |
|
carlosmay |
» 2016-05-23 09:08:59 while( wczytajLiczbe == wczytajLiczbe ); |
W ten sposób nie. Jest to pętla nieskończona. A tak na marginesie, w tej logice używany jest adres funkcji wczytaLliczbę(). Pętla nieskończona. PS: załóż nowy temat. Ten to offtop. |
|
mateczek |
» 2016-05-23 09:29:18 Właśnie Wy krzywdzicie, można naprowadzić na rozwiązanie, ale na Boga, nie podawać... Co potem będzie z tego wiedział jeśli się nie spyta? Działa? Działa, jedziemy dalej.
|
nie przesadzaj. Programowania najlepiej nauczyć się na przykładach !!! Zresztą nie tylko programowania. Samemu to najprędzej można nałapać złych nawyków. Tak samo ucząc się programowania jak i gry na skrzypcach, czy szybkiego pisania na klawiaturze!!! #include <iostream> #include<limits>
using namespace std; int wczytajLiczbe() { int liczba; while( !( cin >> liczba ) ) { cout << "to nie liczba wczytaj jeszcze raz!!!"; cin.clear(); cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); } return liczba; }
int main() { int liczba = wczytajLiczbe(); cout << liczba << endl; }
int wczytajLiczbe2() { int liczba; for(; !( cin >> liczba ); ) { cout << "to nie liczba wczytaj jeszcze raz!!!"; cin.clear(); cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); } return liczba; } |
|
carlosmay |
» 2016-05-23 09:45:56 @mateczek Rozwiązanie z for trochę naciągane ;) @Ananke - przejrzyj linki z tego tematu. Jest tam sporo przydatnych informacji. |
|
1 2 « 3 » |