-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.213.192.88.238
!not-for-mail
From: Piotr Gałka <p...@c...pl>
Newsgroups: pl.misc.elektronika
Subject: Re: programowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli
programatora pralki
Date: Tue, 31 Oct 2017 11:09:23 +0100
Organization: news.chmurka.net
Message-ID: <ot9i4h$odg$1$PiotrGalka@news.chmurka.net>
References: <osllnb$psp$1@dont-email.me> <osllnb$psp$1@dont-email.me>
<a...@n...v.pl>
<59f73750$0$654$65785112@news.neostrada.pl>
NNTP-Posting-Host: 213.192.88.238
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 31 Oct 2017 10:09:21 +0000 (UTC)
Injection-Info: news.chmurka.net; posting-account="PiotrGalka";
posting-host="213.192.88.238"; logging-data="25008";
mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.4.0
Content-Language: pl
In-Reply-To: <59f73750$0$654$65785112@news.neostrada.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:725452
[ ukryj 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
- Sterownik kotła CO praca PWM
- Jakie baterie A23 i LR44?
- OLED SSD1306 - degradacja?
- Który symulator AVR jest ,,prawilny"?
- Disk on Module, czym to odczytać?
- Pasta ochronna? Lutownicza?
- zagadka pneumatyczna
- Klip testowy, jak sie to używa
- Jak sie smazy elektronike z odleglosci kilkuset metrów?
- William Shockley, co-inventor of the transistor
- Gazowy kocioł CO regulacja cyklingu i regulacja pogodowa
- Zamek elektroniczny
- szablon do pasty DIY
- Głośnik potrzebny
- Silikonowy przewód ekranowany
Najnowsze wątki
- 2025-11-23 konpederacki debil o fotelikach
- 2025-11-22 Sterownik kotła CO praca PWM
- 2025-11-22 Fwd: Fwd: jesienne paragony grozy
- 2025-11-22 Fwd: jesienne paragony grozy
- 2025-11-22 Fwd: Stopa z gwintem
- 2025-11-22 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-11-22 Warszawa => Solution Architect (Workday) - Legal Systems <=
- 2025-11-22 Warszawa => Senior Cloud Engineer - AWS <=
- 2025-11-22 Wrocław => Programista React ze znajomością C++ <=
- 2025-11-22 Stopa z gwintem
- 2025-11-22 Białystok => Dynamics 365 Commerce/POS Developer <=
- 2025-11-22 Elektryki to jednak smrody
- 2025-11-22 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-11-22 Warszawa => Starszy Programista C <=
- 2025-11-22 Żerniki => Dyspozytor Międzynarodowy <=




Ile kosztują tanie mieszkania w polskich metropoliach?