-
Data: 2019-01-03 21:51:45
Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
Od: fir <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu czwartek, 3 stycznia 2019 18:20:04 UTC+1 użytkownik g...@g...com
napisał:
>
> Przykład, który lubię dawać na różnych prezentacjach, to program
> liczący sumę kwadratów początkowych siedmiu liczb pierwszych.
>
> Imperatywnie zapisalibyśmy go tak:
>
> 1: licznik := 7
> 2: liczba := 0
> 3: suma := 0
> 4: dopóki (licznik > 0):
> 5: jeżeli jest_pierwsza(liczba):
> 6: suma := suma + liczba^2
> 7: licznik := licznik - 1
> 8: liczba := liczba + 1
>
> i jeszcze musieli dopowiedzieć, że po wykonaniu programu
> wynik znajdziemy w zmiennej "suma".
>
> Natomiast przy podejściu funkcyjnym po prostu "formalizujemy"
> sformułowaine problemu: "suma kwadratów początkowych 7 liczb pierwszych"
> ma swoją strukturę gramatyczną, którą możemy uwypuklić, biorąc jednostki
> znaczeniowe w nawiasy:
>
> (suma (kwadraty (początkowe 7 liczby-pierwsze)))
>
> Teraz wystarczy nam wyjaśnić, co to jest (suma elementów)
> czym są (kwadraty elementów), co to jest (początkowe N elementy)
> i czym są liczby-pierwsze.
>
> To jest kod, który bardzo łatwo się komponuje, i który
> bardzo łatwo się czyta, testuje i analizuje (I nie trzeba wyjaśniać,
> gdzie należy szukać wyniku)
>
> wiadomo, że (o ile definicje pojęć są takie, jakich byśm oczekiwali) wyrażenie
>
> (suma (kwadraty (początkowe 7 liczby-pierwsze)))
>
> jest równoważne wyrażeniu
>
> (suma (kwadraty '(2 3 5 7 11 13)))
>
> które jest równoważne wyrażeniu
>
> (suma '(4 9 25 49 121 169))
>
> i tak dalej.
>
lol ale mozesz podac ten kod w lispie w postaci takiej kompletnosci jak ten przyklad
w pseudkodzie, by to rzeczywiscie porownac?
bo to jest raczej istotnie
w c taki programik nie wyglada zbyt tragicznie
int PoliczSumeParuPoczatkowychLiczbPierwszych(int ilu)
{
int dodano_pierwszych =0;
int suma = 0;
for(int i=0;;i++)
{
if(jest_liczba_pierwsza(i))
{
suma+=i*i;
dodano_pierwszych++;
if(dodano_pierwszych==ilu) return suma;
}
}
}
to ze nie wydziela on etapow na podej pierwsze, podnies do kwadratu zsumuj wynika
raczej z tego ze pisze sie to tak by dzialalo szybko.. jak ktos sie nie upiera by
bylo tak szybko moze podzielic na te fazy
chetnie bym zobaczyl taki kompletny progamik w tym lispie scheme czy co to tam jest
Następne wpisy z tego wątku
- 03.01.19 22:21 g...@g...com
- 04.01.19 01:13 fir
- 04.01.19 02:00 AK
- 04.01.19 09:20 Maciej Sobczak
- 04.01.19 09:40 g...@g...com
- 04.01.19 10:25 AK
- 04.01.19 11:15 g...@g...com
- 04.01.19 12:50 AK
- 04.01.19 13:29 g...@g...com
- 04.01.19 13:34 fir
- 04.01.19 13:47 fir
- 04.01.19 13:52 g...@g...com
- 04.01.19 14:01 fir
- 04.01.19 14:12 g...@g...com
- 04.01.19 14:15 AK
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-14 Ściemniacze na parkingach
- 2025-02-13 kilka pytań o klimę
- 2025-02-13 genialny pomysł
- 2025-02-12 diesel z otwartą komorą
- 2025-02-14 60 mA dużo czy spoko?
- 2025-02-13 Jaka moc wi-fi ?
- 2025-02-12 Drabina rozsuwana
- 2025-02-13 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-13 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2025-02-13 Warszawa => Staż w dziale Sprzedaży B2B <=
- 2025-02-13 Warszawa => MENA New Buissnes Manager <=
- 2025-02-13 Łódź => NodeJS Developer <=
- 2025-02-13 Gdańsk => Solution Architect (Java background) <=
- 2025-02-13 Zielona Góra => Senior Field Sales (system ERP) <=
- 2025-02-13 Warszawa => Specjalista ds. Sprzedaży (transport drogowy) <=