Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 8 lut 2025, o 00:31


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 8 lut 2013, o 21:57 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Mirkowa kniga doszła więc zaczynają się pytania.
Mam ich na razie kilka odnośnie pętli for. Przeczytałem i zrozumiałem zasadę jej działania (zresztą znam z bascoma) ale ciekawi mnie kilka rzeczy, mianowicie:

1. Jak w tym przypadku sprawdzana jest pętla skoro zawsze inicjalizowana jest wartością 0:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

czy sekcja init z każdym (poza pierwszym) krokiem pętli jest pomijana i sprawdzany jest tylko warunek i wykonywana inkrementacja?


2. Czy mogę napisać taki warunek?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

3. Od czego będzie zależna taka pętla for, a może raczej kiedy się skończy:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Rozumiem że działania w pętli będą dotąd wykonywane póki będzie spełniony warunek a<20 ? Opisane to jest w książce na str 65, ale chcę się upewnić.


4. A co w przypadku takiej pętli? Kiedy zakończy się jej działanie?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jakiej zmiennej będzie odnosił się warunek który ma zostać spełniony? Jak trzeba skonstruować program wewnątrz by zakończyć działanie pętli?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2013, o 22:17 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

1. Dobrze myślisz, a=0 jest tylko raz, ale:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

jest równoważne:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

uważaj z tym średnikiem. Nie stawiaj go za nawiasem, bo to kończy pętle for.
2. Źle. Popraw to, bo nie nie wiadomo o co chodzi.
3, 4. Dobrze rozumiesz. Możesz zrobić tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Ważne są tylko te średniki natomiast co tam jest wpisane to inna sprawa. Spotkać można też taką konstrukcję:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2013, o 22:27 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Z tym:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Z tym to sam nie bardzo wiem jak to napisać?
Chodzi o to czy mogę gdzieś w programie, po spełnieniu jakiegoś warunku wyzerować zmienną a by znowy liczenie zaczęło się od 0 ?

Chyba powinno być tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ad.4 Jeszcze odnośnie tego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Skoro nie jest wpisane wyrażenie warunkowe czyli dajmy na to x==10 czy y<25 itd to co będzie sprawdzał program żeby móc wyjść z pętli?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2013, o 22:42 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Tak możesz sobie przedłużać działanie pętli. Tylko to powinno być tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Składnia pętli for:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W if masz:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak postawisz ten średnik za nawiasami to jakby nie było instrukcji.

Odnośnie 4. Warunek będzie spełniony zawsze. Zamiast while(1) stosuje się często for(;;). Aby opuścić pętle wewnątrz sprawdzasz warunek i korzystasz z instrukcji break;

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2013, o 22:59 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Kod:
if  (powiedzmy jakiś pin == 0)// równość to == i bez średnika

Pomyłka, naleciałości z bascoma.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2013, o 12:51 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

GwynBleidD napisał(a):
matrix napisał(a):
Skoro nie jest wpisane wyrażenie warunkowe czyli dajmy na to x==10 czy y<25 itd to co będzie sprawdzał program żeby móc wyjść z pętli?



Zauważ użycie break; w przykładzie podanym przez krausera ;)

Gdy pytałem o co pytałem to jeszcze nie znałem funkcji break lub nie zwróciłem na nią uwagi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2013, o 13:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sty 2013
Posty: 272
Pomógł: 3

matrix napisał(a):
nie znałem funkcji break lub nie zwróciłem na nią uwagi.

break to żadna funkcja, tak samo jak for, while, switch etc. po prostu konstrukcja języka

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2013, o 18:23 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

arturf209 napisał(a):
matrix napisał(a):
nie znałem funkcji break lub nie zwróciłem na nią uwagi.

break to żadna funkcja, tak samo jak for, while, switch etc. po prostu konstrukcja języka

No nie czepiaj się teraz już tak bardzo słówek. Pomyłka stylistyczna. Chciałem napisać coś innego a napisałem coś innego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO