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

zadanie z lekcji 11 pętla nieskończona

Ostatnio zmodyfikowano 2010-04-15 21:44
Autor Wiadomość
Pirotechnik
» 2010-04-15 19:03:49
w nastepnej lekcji bedziesz mial przyklad jak to zrobić póki co to ja jeszcze troche popróbuje :)
P-16176
TheLukon
» 2010-04-15 19:31:53
kurcze no to powoli się poddaje...
Jaki z Ciebie programista?! Programista nigdy się nie poddaje, tylko czasami zwiesza;p
P-16177
grykon
Temat założony przez niniejszego użytkownika
» 2010-04-15 20:17:11
hehe pewa :) dzięki za plaskacza żebym się opamiętał ;) także problem w sumie rozwiązany ale jeszcze nie zamykam tematu może ktoś podrzuci lepsze rozwiązanie, bo ja na poziomie na którym jestem w kursie a zakładam że tak są wymyślane zadania że ktoś krok po kroku przechodzi przez lekcje to wykonać to jest niemożliwe i było to chyba bardziej jako haczyk żeby sobie pokombinować i pokobinowałem... oj dużo kombinowałem rzutowania itp. ale no nie dało rady... więc uważam to za haczyk... ale jak już pisałem nie zamykam jeszcze tematu bo może ktoś wpadnie na jakiś very fajny pomysł (z użyciem wiedzy do lekcji nr 11 włącznie) który chętnie przeczytam :)
P-16180
malan
» 2010-04-15 21:18:46
Może dodam swoje trzy grosze ;p. Przeglądając kod zauważyłem kilka "dziwnych" rzeczy:

1.
C/C++
int bilet[ filmow ][ 1 ];
Stworzyłeś tutaj dwuwymiarową tablicę intów..., ale po co? W zupełności wystarczyłaby jednowymiarowa:
C/C++
int bilet[ filmow ];
Analogicznie odwołujesz się do niej (np.):
C/C++
bilet[ 0 ]

2.
C/C++
for( int i = 0; i < filmow; i++ )
{
    bilet[ i ][ 0 ] = biletowNaFilm;
}
Można to również rozwiązać tak:
C/C++
//Przy DEKLARACJI tablicy
int bilet[ filmow ] = { biletowNaFilm, biletowNaFilm, biletowNaFilm, biletowNaFilm };

3. Pętla nieskończona... Wkurzające nie ? :) Dobra, więc jest ona spowodowana tym, że do zmiennej typu int chcesz bezczebelnie wpakować literę (p)!
Rozwiązanie:
a) Możesz dodać jeden warunek (myślę, że będzie to poprawnie):
C/C++
cout << "Ile biletow chcesz sprzedac?" << endl << "Jesli chcesz wyjsc do menu wpisz litere p";
cin >> sprzedaj;

if( cin.good() ) // Sprawdź, czy wpisano (w tym przypadku) liczbę, nie wystąpił błąd
{
    //Kod
} else
{
    cin.sync(); // Wyczyść bufor
    cin.clear(); // Zadzwoń do cin i powiedz, że już dobrze
}
b) "Jesli chcesz wyjsc do menu wpisz 0" - nikt nie chce kupić 0 (zero) biletów prawda? :) Musiałbyś wtedy pozmieniać trochę warunki:
if( sprzedaj > 0 /* ... */ )
... itd.
Koniec :). Mam nadzieje, że chociaż trochę pomogłem :).
P-16181
grykon
Temat założony przez niniejszego użytkownika
» 2010-04-15 21:44:41
rzeczywiście 3 grosze hehe :) a teraz się pousprawiedliwiam:
1 grosz: rzeczywiście też tak mi się to nie podobało że drugi wymiar nie był wykorzystywany i jak to mawiają górale mea culpa
2 grosz: tutaj ta pętla jest tak specjalnie bo chciałem żeby zmienna filmow przechowywała ile jest filmów i automatikos ta pętla taką liczbę filmów daje tyle biletów (dla ewentualnego edytora takiego pliku kiedy wejdzie nowy film do kina dodaje film do tablicy film a zmiennej filmow wpisuje ile tych filmow jest a nie dorzuca kolejny film do deklaracji (tak mi się wydaje że jest ładniej)
3 grosz: czyli da się powiedzieć temu cinowi żeby sobie dał spokój xD fajnie fajnie :) ale to już że tak powiem poza programem... ten kto wymyślał te ćwiczenia do kursu to jakaś przebiegła bestia była... ale podoba mi się bardzo ten kurs bo zmusza do myślenia i są fajne przykłady (jestem typem który lubi sprawdzać swoje zdolności a często brakuje pomysłów na to co już bym umiał napisać a ten kurs daje te pomysły i sprawdzam co umiem a co nie i jak są właśnie np. takie problemy to zaczynają się schodki i szukamy rozwiązania... algorytmu bądź funkcji... a jak nie daję rady to męczymy innych (czytaj was forum :P ))
teraz uważam że mogę zamknąć pomocnym za pomoc dziękuję i jestem na początku kursu więc sądzę że jeszcze nie raz będę marudził :) a póki co
Pozdrawiam
P-16183
1 « 2 »
Poprzednia strona Strona 2 z 2