-
Data: 2017-10-31 11:09:23
Temat: Re: programowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli programatora pralki
Od: Piotr Gałka <p...@c...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2017-10-30 o 15:29, ToMasz pisze:
>
> Jak dlamnie w c++ mogę napisać program, w krórym zawsze, bez wyjątku,
> komputer musi "przerobić" wszystko od a do z, nawet jeśli połowa lub
> więcej nie będzie wykorzystywana. w części niewykorzystywanej będzie if
> cośtam - nierób nic.
> W zasadzie o to pytałem. czy to jest dobry sposób pisania programu w C+?
> (dialekt arduino) Na pierwszy rzut oka to marnortrastwo pracy procesora,
> bo jak właśnie tłumaczę, jeśli w basicu napiszę program ma tylko płukać,
> będzie startował od 10 do 100, gdzie jest program główny i skakał do
> 900-999 gdzie jest płukanie. to samo w c++ będzie U MNIE wymagało
> przejścia - pranie? nie nie pierz, ale sprawdz jak się pierze. płukanie?
> Nie nie płukaj, ale już wiesz jak to należało zrbić? przeczytałeś
> procesorku? no to się śpiesz, bo tam gdzieś na koncu jest płukanie.
>
> O istotę mi chodzi o sens
>
Naszło mnie aby to przeczytać jeszcze raz i jeszcze raz itd...
Czytając:
"pranie? nie nie pierz, ale sprawdz jak się pierze. płukanie?
Nie nie płukaj, ale już wiesz jak to należało zrbić? przeczytałeś
procesorku?"
mam wrażenie, że Ty uważasz, że jak jest
if(warunek)
{
zrób jedno coś;
zrób inne coś;
zrób coś na zakończenie;
}
i warunek jest false to procesor będzie studiował znak po znaku to co
jest napisane w {} szukając } zamykającego blok wykonywany warunkowo.
Otóż nic z tych rzeczy - on od razu skoczy za }
Zapominasz, że kod źródłowy został dawno przeanalizowany przez
kompilator i w programie, który widzi procesor jest po prostu skok w
odpowiednie miejsce gdy warunek jest false.
W programie, który widzi procesor, jest cała masa goto. Różnica jest
taka, że o to aby te skoki były w dobre miejsca dba kompilator a nie
programista.
Jeszcze słówko o pomijaniu kawałków programu w przypadku błędów - bo mam
wrażenie, że to też miejsce gdzie chciałbyś mieć goto.
W prostym przypadku, gdy mamy wykonać serię czynności, ale jak któraś
się nie uda to mamy pominąć pozostałe i na końcu wiedzieć, że był błąd
to zakładając, że mamy serię funkcji z których każda zwraca true jak się
jej udało i false jak się nie udało to można to zapisać np. tak:
bool ok=fun1();
if(ok)ok=fun2();
if(ok)ok=fun3();
if(ok)ok=fun4();
lub krócej:
bool ok = fun1() && fun2() && fun3() && fun4();
gdyż operator && (logiczne and) nie sprawdza wartości tego czego nie
musi - jak np. fun2() da false to on już wie, że wynik całego wyrażenia
będzie false i nie ustala wartości fun3() i fun4() czyli ich nie wykonuje.
I w obu przypadkach jak fun2() zwróci false to procesor nie będzie
czytał dalszego kawałka programu tylko ma w programie skok na koniec tej
sekwencji.
P.G.
Następne wpisy z tego wątku
- 31.10.17 18:01 slawek
- 31.10.17 18:15 slawek
- 31.10.17 18:40 slawek
- 31.10.17 20:32 Piotr Gałka
- 31.10.17 22:34 ToMasz
- 01.11.17 03:37 Jacek Radzikowski
- 01.11.17 08:00 slawek
- 01.11.17 08:03 slawek
- 01.11.17 09:04 jacek
- 01.11.17 17:21 Jacek Radzikowski
- 01.11.17 21:06 slawek
- 01.11.17 21:07 slawek
- 01.11.17 21:09 slawek
- 01.11.17 21:46 Jacek Radzikowski
- 01.11.17 23:29 slawek
Najnowsze wątki z tej grupy
- Położyłem dwa telefony obok siebie
- Przekaźnik na szynę DIN (?)
- Taśma LED
- Jak odróżnić myjki wibrujące od ultradźwiękowych.
- Ledy na wyłączniku czasowym błyskają
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- RCD wybija
- Re: Kompensacja mocy biernej przy 230VAC
- Łożysko ślizgowe - jaki olej
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- Współczesny falomierz
- Zasilacz 7V na szynę DIN
- Waga z legalizacją
Najnowsze wątki
- 2025-04-09 Czy blokowanie sali obrad Sejmu przez PO-opozycje pod rządami PiS już się przedawniło? [mecenas Giertych dołki kopie?]
- 2025-04-09 Koniec produkcji Leapmotor T03
- 2025-04-09 Pruszków => Specjalista ds. public relations <=
- 2025-04-09 Rzeszów => International Freight Forwarder <=
- 2025-04-09 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-04-09 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-04-09 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-04-09 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-04-09 Warszawa => Senior Product Manager <=
- 2025-04-09 Warszawa => Starszy Konsultant SAP FICO <=
- 2025-04-09 Warszawa => NMS System Administrator <=
- 2025-04-07 C++. Podróż Po Języku - komentarz
- 2025-04-08 Warszawa => Presales - Inżynier Wsparcia Technicznego IT <=
- 2025-04-08 Pomnik Polaków w Berlinie - OK! - ale co z ustawą o mniejszości polskiej?
- 2025-04-08 Uniwersytet Jagielloński zawiesza protestujących studentów