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



Teraz jest 7 lut 2025, o 00:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 21 lis 2013, o 19:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 paź 2013
Posty: 143
Lokalizacja: Zamość
Pomógł: 0

Mój problem dotyczy zagadnienia związanego z pętlami zawartymi w temacie.
Piszę program pod Atmegę8 w eclipse. Wygląda on mniej więcej tak:


for(int i=1; i<=10; i++)
{

}

do
{

}while(warunek)

chodzi mi teraz o to, że jak już pętla for zakończy swoją pracę po 10 cyklach to program przeniesie się do drugiej pętli "do while". A jak się już "do while" skończy to program mi znowu zaczyna się od początku i wraca do początku do pętli for a ja bym chciał żeby się już wówczas skończył.
W c++ było coś takiego jak:
return 0;
tutaj też próbowałem tego returna ale niestety program się cały czas zapętla.

Jak to się robi? :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 19:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Procek po wykonaniu programu nie może nic nie robić. Twoim rozwiązaniem może być wpuszczenie go w nieskończoną pętle while(1);

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 19:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

w przypadku uC program ma się cały czas zapętlać :) nie bez powodu używamy while(1) :) co właściwie ten program ma robić ? najlepiej ustawić na końcu programu jakąś flagę i sprawdzić warunkiem
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 19:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

Możesz do tego celu dodać zmienną (flagę) wykonania obu pętli. Przed for sprawdzasz (polecenie if), czy ustawiona - jak nie to wykonaj obie pętle, jak tak to pomiń wykonywanie pętli. Po pierwszym wykonaniu natomiast (za pętlą while) ustawiasz tą zmienną. Bedzie to mniej więcej coś tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 19:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

hehe pomoc na forum jest rzeczywiście błyskawiczna :D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 19:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 paź 2013
Posty: 143
Lokalizacja: Zamość
Pomógł: 0

Panowie dziękuję, za szybką reakcję, już znalazłem byka w skrypcie.
Błędem był mój sposób myślenia.
Jeśli jest pętla "do while(1)" no to będzie się program "obracał w nieskończoność".

Pozdrawiam serdecznie i zmykam temat. Może być on nawet do usunięcia.



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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO