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

[Rozdział 30] Zadanie domowe

Ostatnio zmodyfikowano 2015-11-18 17:19
Autor Wiadomość
Deivid
Temat założony przez niniejszego użytkownika
[Rozdział 30] Zadanie domowe
» 2015-11-16 13:46:20
Witajcie. To znowu ja :)
Mam nadzieję że moderatorzy wyznają zasadę "kto pyta, nie błądzi" i za częste zakładanie tematów nikt mnie nie zbanuje, oraz nie zirytuje się "durnymi" pytaniami :)

Otóż jakoś metodą prób i błędów udało mi się rozwiązać zadanie 2 z rozdziału 30. Ogólnie mniej więcej (raczej więcej) ogarniam zagnieżdżanie pętli, ale pojawiły się braki z wcześniejszego działu, z obsługi przerwań pętli.
Oto mój kod:
C/C++
#include<iostream>
using namespace std;
int main()
{
    for( int i = 1; i <= 3; i++ )
    {
        for( int j = 2; j <= 4; j++ )
        {
            if( j <= i )
                 continue;
           
            for( int k = 3; k <= 5; k++ )
            {
                if( k <= j )
                     continue;
               
                cout << i << j << k << endl;
            }
        }
    }
    return 0;
}
Program działa prawidłowo, ale nie wiem dlaczego :)
Wiem na jakiej zasadzie działa wypisanie pętli bez warunków, prosiłbym o wręcz "łopatologiczne" wytłumaczenie jak rozumieć w tym programie owe warunki.
P-140208
carlosmay
» 2015-11-16 14:07:30
Mam nadzieję że moderatorzy wyznają zasadę "kto pyta, nie błądzi"
 wstęp nie napawa optymizmem.
Otóż jakoś metodą prób i błędów udało mi się rozwiązać zadanie
 każdy sposób jest dobry, choć lepiej pisać kod świadomie.
Proponuje uruchomić program w trybie debugowania i prześledzić krok po kroku działanie programu.
Warto nauczyć się obsługiwać debuger, bardzo ułatwia znajdowanie błędów w programie (np. gdy program działa, ale nie zgodnie z oczekiwaniami).
nikt mnie nie zbanuje, oraz nie zirytuje się "durnymi" pytaniami :)
 pytania powinny być precyzyjne, lub choć spróbować je sprecyzować.
ale pojawiły się braki z wcześniejszego działu,
 to wróć i doczytaj czego nie wiesz (nie pamiętasz).
prosiłbym o wręcz "łopatologiczne" wytłumaczenie jak rozumieć w tym programie owe warunki.
 nie wszystko zrozumiesz patrząc na ekran monitora.
Prześledź działanie programu wypisując na kartce jak zmieniają się zmienne w warunkach w pętli i jakie wypisywane są na ekran.

POWODZENIA

P-140209
Deivid
Temat założony przez niniejszego użytkownika
» 2015-11-16 14:18:28
Proponuje uruchomić program w trybie debugowania i prześledzić krok po kroku działanie programu.
Warto nauczyć się obsługiwać debuger, bardzo ułatwia znajdowanie błędów w programie (np. gdy program działa, ale nie zgodnie z oczekiwaniami).
Rozwiniesz myśl jak to zrobić?
Opcje Debugowania mam zablokowane (szare litery), nigdy nie korzystałem z tej opcji.
P-140210
carlosmay
» 2015-11-16 14:34:48
Niedziałający debugger Code::Blocks

Aby zadziałał debugger musisz ustawić Breakpoint'a w miejscu, w którym chcesz zastopować program i przyjrzeć się poszczególnym zmiennym.
Jest mnóstwo info na ten temat w necie. Filmiki na YouTube.

Nie używam Code::Blocks do debugowania, więc nie podpowiem Ci co i jak.
Visual ma megadebugger i jest banalny w obsłudze.
P-140211
Rashmistrz
» 2015-11-17 14:01:39
Wskazówki:
-Do wykonania tego zadania wystarczy tyle zmiennych, co pętli.
-...cały problem, to nadać im odpowiednie wartości początkowe.
P-140291
Deivid
Temat założony przez niniejszego użytkownika
» 2015-11-18 17:19:33
Wydaje mi się, że zrozumiałem już działanie "continue". Rashmistrz w tym co napisałeś to sądzę że trzeba nadać wartości początkowe w pętli. np:
C/C++
for( int i = 0;....)
for( int j = i + 1;....)
for( int k = j + 1;...)
To taki koncept bez użycia i przetestowania w programie ;)
P-140338
« 1 »
  Strona 1 z 1