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

Pętle FOR(...)

Ostatnio zmodyfikowano 2011-12-15 00:38
Autor Wiadomość
marianekA
Temat założony przez niniejszego użytkownika
Pętle FOR(...)
» 2011-12-14 19:26:23
Witam
zaczynam przygodę z C++, wcześniej był Amos na Amidze (nawet szło nieźle) potem była przerwa.
Może mam jakieś przyzwyczajenia ale nie mogę poradzić sobie z zagnieżdżonymi pętlami For. Zadanie ma zapełnić ekran elementami obrazka najpierw w pozionie potem w pionie
Tu mój przykład:
----------------------------------
C/C++
int a = 100; // stała, rozmiar elementu
int i = 0;
int j = 0;
for( j; j < 7; j++ )
{
    for( i; i < 9; i++ )
         blit( obrazek1, screen, a * i, a * j, a * i, a * j, obrazek1->w = a *( i + 1 ), obrazek1->h = a *( j + 1 ) );
   
}
-----------------------------------
Wykonuje się tylko druga pętla czy jest klamra czy nie, pętla pierwsza działa tylko jak wyłączę drugą

Co robię żle?

Dla przykładu Amosie było tak"
for J = 0 to 6
 For I = 0 To 8
   tutaj funkcja do wykonania
 Next I
Next J

Bawię się C++ dopiero od kilku dni i potrwa jeszcze aż poznam jego tajniki
po części z Waszą pomocą - nie zdradzę ile mam lat bo z krzeseł spadniecie...
a na emeryturze ma się wiele czasu.
P-45633
pekfos
» 2011-12-14 19:56:43
C/C++
obrazek1->h = a *( j + 1 )
co tu próbujesz osiągnąć?
C/C++
for( a; b; c );

pole oznaczone jako a jest do definiowania iteratora. Jak masz go zdefiniowanego wcześniej zostaw to pole puste.
C/C++
for(; b; c );

C/C++
for( int a = 0; a < 10; ++a ) { //1
    for( int b = 0; b < 10; ++b ) { //2
        sth();
    }
}
w każdym obiegu pętli 1 pętla 2 wykonuje funkcję sth() 10 razy. W sumie jest wykonana 100 razy.

PS: zobacz w swoim poście jak formatować kod (link "edytuj").
P-45634
marianekA
Temat założony przez niniejszego użytkownika
» 2011-12-14 21:06:21
odnośnie tego:
obrazek1->w = a *( i + 1 ), obrazek1->h = a *( j + 1 ) );

jak tam miałem wpisane w=100 i h =100 to zawsze kopiowało pierwszy fragment obrazka zaczynający się od x=0 i y=0
tak wymyśliłem i tak działa poprawnie.
te drobne poprawki do mojego kodu nic nie wniosły, nadal nie działają obie pętle razem
P-45635
pekfos
» 2011-12-14 21:23:53
ostatnie argumenty funkcji blit to rozmiar fragmentu do narysowania więc chyba powinieneś użyć swojej stałej. Poza tym, tym zapisem modyfikujesz wewnętrzną strukturę bitmapy, czego nie należy robić.
P-45637
marianekA
Temat założony przez niniejszego użytkownika
» 2011-12-14 21:49:33
Co robiła stała w tym miejscu to już wspomniałem, choć nie ukrywam że i mnie to dziwi.
Może mam inny błąd w innym miejscu ale na razie go nie odkryłem
 może ktoś jeszcze coś poradzi.
P-45639
marianekA
Temat założony przez niniejszego użytkownika
» 2011-12-15 00:38:03
już rozwiązałem problem
zmienna w drugiej pętli nie zerowała się po zakończeniu cyklu
temat uważam za zamknięty
P-45640
« 1 »
  Strona 1 z 1