Co to jest petla for jak działa
Co to jest petla for jak działa
Witam próbuje nauczyć się programowania C avr robiłem już ćwiczenia ledowe ale chce iść dalej. Ale nie rozumiem pętli for co to jest na jakiej zasadzie to działa do czego to służy ta pętla for prosiłbym aby ktoś z was wytłumaczył na necie wiem ze jest ale nie rozumiem tego wg 
- Grzegorz...
- User

- Posty: 462
- Rejestracja: piątek 09 paź 2015, 18:57
Re: Co to jest petla for jak działa
Ja Ci podpowiem bardziej oględnie.
W sumie w każdym języku programowania wygląda podobnie.
Poszukaj w książkach/necie jakikolwiek poradnik odnośnie programowania C,C++ i sam skojarzysz o co "biega", a to będzie dużo cenniejsze niż jakiekolwiek wyjaśnienia bezpośrednio na forum.
W sumie w każdym języku programowania wygląda podobnie.
Poszukaj w książkach/necie jakikolwiek poradnik odnośnie programowania C,C++ i sam skojarzysz o co "biega", a to będzie dużo cenniejsze niż jakiekolwiek wyjaśnienia bezpośrednio na forum.
Ostatnio zmieniony czwartek 21 sty 2016, 19:37 przez Grzegorz..., łącznie zmieniany 2 razy.
- Antystatyczny
- Geek

- Posty: 1177
- Rejestracja: czwartek 03 wrz 2015, 22:02
Re: Co to jest petla for jak działa
Cześć, spróbuję Ci to jakoś łopatologicznie wyjaśnić. Generalnie pętle stosuje się po to, by jakaś część kodu wykonała się wiele razy. No bo bez sensu byłoby pisać np. 50 razy tę sama instrukcję, prawda? Dlatego stosuje się pętle i jedną z takich pętli jest for. W typowym scenariuszu pętla wygląda następująco:
Jak widzisz w pętli for są trzy parametry. Pierwszy z nich to zmienna. Musi być gdzieś wcześniej zdefiniowana lub bezpośrednio wewnątrz nawiasów instrukcji for (Zaraz do tego wrócę). Nasza zmienna ma wartość początkową zero, bo tak jej kazałem (zmienna = 0). Następnym parametrem jest warunek, który decyduje o tym, czy dana pętla ma się nadal wykonywać, czy już warunek się spełnił i trzeba już ją opuścić. W naszym przypadku pętla będzie wykonywana DOPÓKI ZMIENNA JEST MNIEJSZA OD 15. Następny parametr to manipulacja wartością naszej zmiennej. Na potrzeby tego przykładu wymyśliłem sobie, że każde przejście tej pętli spowoduje zwiększenie wartości "zmienna" o jeden. Tak więc nasza pętla wykona się piętnaście razy. Przy pierwszym przejściu zmienna = 0, potem wykonywane są instrukcje z wnętrza pętli i zwiększana jest wartość "zmienna". Kolejne przejście... zmienna = 1 i znowu instrukcje z wnętrza pętli...itd. W pewnym momencie pętla się wykona, "zmienna" osiągnie wartość 15 i program znów będzie chciał wykonać pętlę, ale NAJPIERW SPRAWDZI WARUNEK zmienna < 15. No ale już nie jest mniejsza, więc nie wykona kolejnego przejścia i pójdzie dalej...
Aha, miałem napisać o definiowaniu zmiennej wewnątrz instrukcji for. Bardzo często robię tak:
for( uint8_t moja_zmienna = 0; moja_zmienna < 200; moja_zmienna++)
{
//jakiś kod w pętli
}
Jak widzisz powołałem do życia zmienną o nazwie moja_zmienna wprost w instrukcji for... bo właśnie teraz była mi potrzebna
Nie jestem pewien, czy jest to zgodne z dobrymi praktykami programowania, ale jest z punktu widzenia kompilatora jest to jak najbardziej poprawne.
Mam nadzieję, że nie zaciemniłem zbytnio...
Kod: Zaznacz cały
for(zmienna = 0; zmienna < 15; zmienna++)
{
to wszystko, co znajdzie się tutaj, czyli pomiędzy nawiasami klamrowymi, zostanie wykonane wiele razy
}
Jak widzisz w pętli for są trzy parametry. Pierwszy z nich to zmienna. Musi być gdzieś wcześniej zdefiniowana lub bezpośrednio wewnątrz nawiasów instrukcji for (Zaraz do tego wrócę). Nasza zmienna ma wartość początkową zero, bo tak jej kazałem (zmienna = 0). Następnym parametrem jest warunek, który decyduje o tym, czy dana pętla ma się nadal wykonywać, czy już warunek się spełnił i trzeba już ją opuścić. W naszym przypadku pętla będzie wykonywana DOPÓKI ZMIENNA JEST MNIEJSZA OD 15. Następny parametr to manipulacja wartością naszej zmiennej. Na potrzeby tego przykładu wymyśliłem sobie, że każde przejście tej pętli spowoduje zwiększenie wartości "zmienna" o jeden. Tak więc nasza pętla wykona się piętnaście razy. Przy pierwszym przejściu zmienna = 0, potem wykonywane są instrukcje z wnętrza pętli i zwiększana jest wartość "zmienna". Kolejne przejście... zmienna = 1 i znowu instrukcje z wnętrza pętli...itd. W pewnym momencie pętla się wykona, "zmienna" osiągnie wartość 15 i program znów będzie chciał wykonać pętlę, ale NAJPIERW SPRAWDZI WARUNEK zmienna < 15. No ale już nie jest mniejsza, więc nie wykona kolejnego przejścia i pójdzie dalej...
Aha, miałem napisać o definiowaniu zmiennej wewnątrz instrukcji for. Bardzo często robię tak:
for( uint8_t moja_zmienna = 0; moja_zmienna < 200; moja_zmienna++)
{
//jakiś kod w pętli
}
Jak widzisz powołałem do życia zmienną o nazwie moja_zmienna wprost w instrukcji for... bo właśnie teraz była mi potrzebna
Mam nadzieję, że nie zaciemniłem zbytnio...
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.
Re: Co to jest petla for jak działa
tymi [b] i [u] mogłeś mu zaciemnić
- Antystatyczny
- Geek

- Posty: 1177
- Rejestracja: czwartek 03 wrz 2015, 22:02
Re: Co to jest petla for jak działa
Dziękuję, już poprawiłem
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.
- Grzegorz...
- User

- Posty: 462
- Rejestracja: piątek 09 paź 2015, 18:57
Re: Co to jest petla for jak działa
Ja przepraszam tłumaczących te podstawy, ale za chwilę Kolega pytający lub ktoś inny spyta o "while" lub inną pętlę, a tego niestety trzeba się nauczyć z publikacji czy to książkowych czy internetowych lub po prostu w szkole
.
- Antystatyczny
- Geek

- Posty: 1177
- Rejestracja: czwartek 03 wrz 2015, 22:02
Re: Co to jest petla for jak działa
Przecież jest na forum, czyli w internecie, a przed chwilą opublikowaliśmy wyjaśnienie
Kolega ma książki, ale nie bardzo radzi sobie ze zrozumieniem zawartego w nich przekazu. Staramy się opisac prościej (na ile się da)
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.
Re: Co to jest petla for jak działa
Tam u góry w nagłówku forum jest napisane "przyjazne" i tak ma być, przecież nie zmuszamy nikogo do odpowiedzi, a pytań głupich nie ma. Nie można bać się zadawać prostych pytań.
Re: Co to jest petla for jak działa
Załóżmy, że masz petle o takim kształcie
for( i = 1; i <= 10; i++ )
{
Nalej_wody_do_miski;
}
Na początku zostanie wyzerowana zmienna i i ustawiona --> 1
Następnie zostanie spawrdzony warunek czy i jest mniejsze bądź równe 10,
Potem zostanie nalana woda do miski i zwiekszona wartosc i o 1
Nastepnie znow program wroci do gory petli, gdzie sparwdzi warunek i jesli jest selniony to znów zostanie nalana woda do miski i zwiększona wartość i
Na samym końcu kiedy i będzie większe od 10 pętla zakończy swoje działanie
for( i = 1; i <= 10; i++ )
{
Nalej_wody_do_miski;
}
Na początku zostanie wyzerowana zmienna i i ustawiona --> 1
Następnie zostanie spawrdzony warunek czy i jest mniejsze bądź równe 10,
Potem zostanie nalana woda do miski i zwiekszona wartosc i o 1
Nastepnie znow program wroci do gory petli, gdzie sparwdzi warunek i jesli jest selniony to znów zostanie nalana woda do miski i zwiększona wartość i
Na samym końcu kiedy i będzie większe od 10 pętla zakończy swoje działanie
Life is to short to eject USB safely
Wróć do „Programowanie AVR w C”
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 22 gości

