Kod: Zaznacz cały
#include <iostream>
using namespace std;
int x,y;
int main()
{
for(x = 1; x <=6; x++)
{
for(y = 6; y>=x; y--)
{
cout << "*";
}
cout << endl;
}
return 0;
}
Staram się to zrozumieć i tworzę na prawdę dziwne rzeczy, żeby mnie olśniło i dlatego proszę o pomoc w wyprowadzenia z błędnego rozumienia i o wskazanie drogi. Moje próby wyglądają następująco:
jeżeli mamy 2 pętle, drugą zagnieżdżoną, to podstawiam pod nie wartości, zdaje sobie sprawę, że później warunki są błędne i różne od tego co mówią, ale staram się poprostu zrozumieć, jak to program liczy i jakie kroki wykonuje:
Kod: Zaznacz cały
x=1 | 1<=6 | 1+1
y=6 | 6>=1 | 6-1
(6)>=(1<=6)
x=2 | 2<=6 | 2+1
y=5 | 5>=1 | 5-1
(5)>=(2<=6)
x=3 | 3<=6 | 3+1
y=4 | 4>=1 | 4-1
(4)>=(3<=6)
x=4 | 4<=6 | 4+1
y=3 | 3>=1 | 3-1
(3)>=(4<=6) // mam tutaj świadomość, że 3 nie jest większe lub równe 4, ale czy to nie jest jakiś warunek, gdzie mino wartości logicznej false, pętla nadal działa bo przyjmując że y>=x osiągnie wartość true ? w zasadzie to dla mnie największy kłopot.
x=5 | 5<=6 | 5+1
y=2 | 2>=1 | 2-1
(2)>=(5<=6)
x=6 | 6<=6 | 6+1
y=1 | 1>=0 | 1-1
(1)>=(6<=6)
Bardzo proszę o dystans do mnie i do siebie, jak i cierpliwość w łopatologicznym tłumaczeniu, chcę to zrozumieć i mam świadomość, że to dla większości jest łatwe, a ja mam kłopot z myśleniem abstrakcyjnym, ale na prawdę, bardzo się staram.1. (to jest wiersz pierwszy x=1; wykonuj dotąd dopóki x będzie większe lub równe 6; ) //1 pętla
{
(ilość gwiazdek y=6;) // 2 pętla mieszcząca się w pętli 1
{
wypisz ******
}
przejdź do drugiego wiersza;
}
2. (to jest wiersz drugi x=2; wykonuj dotąd dopóki x będzie mniejsze lub równe 6; dodaj 1)
{
(ilość gwiazdek y=5; wykonuj dotąd dopóki (y>=x) będzie większe lub równe 6, odejmij 1)
{
wypisz *****
}
przejdź do trzeciego wiersza;
}
3. (to jest wiersz trzeci x=3; wykonuj dotąd dopóki x będzie mniejsze lub równe 6; dodaj 1)
{
(ilość gwiazdek y=4; wykonuj dotąd dopóki y>=x będzie większe lub równe 6, odejmij 1)
{
wypisz ****
}
przejdź do czwartego wiersza;
}
4. (to jest wiersz czwarty x=4; wykonuj dotąd dopóki x będzie mniejsze lub równe 6; dodaj 1)
{
(ilość gwiazdek y=3; wykonuj dotąd dopóki y>=x będzie większe lub równe 6, odejmij 1)
{
wypisz ***
}
przejdź do piątego wiersza;
}
5. (to jest wiersz piąty x=5; wykonuj dotąd dopóki x będzie mniejsze lub równe 6; dodaj 1)
{
(ilość gwiazdek y=2; wykonuj dotąd dopóki y>=x będzie większe lub równe 6, odejmij 1)
{
wypisz **
}
przejdź do szóstego wiersza;
}
6. (to jest wiersz szósty x=6; wykonuj dotąd dopóki x będzie mniejsze lub równe 6; dodaj 1)
{
(ilość gwiazdek y=1; wykonuj dotąd dopóki y>=x będzie większe lub równe 6, odejmij 1)
{
wypisz *
}
przejdź do siódmego wiersza;
}
6. (to jest wiersz siódmy x=7; wykonuj dotąd dopóki x będzie mniejsze lub równe 6;)
{
(ilość gwiazdek y=1; wykonuj dotąd dopóki y<=x będzie mniejsze lub równe 6, odejmij 1)
{
wypisz *
}
przejdź do siódmego wiersza;
Pozdrawiam