Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

PASCAL jako mały "pomocnik"

Witajcie. Nie jestem programistą, żadnych zawodowcem czy ekspertem, staram się czegoś nauczyć, bo kto wie kiedy mi się to może przydać. Ale o czym będzie wpis?

Mianowicie ostatnio napisał do mnie kolega, ze jego syn dostał dość prostą, lecz żmudną prace domową. Mianowicie w zadaniu dane było kilkanaście ciągów i należało:

  • policzyć sumę elementów ciągu i ich iloczyn
  • posortować ciąg rosnąco i malejąco
  • podać skrajne elementu ciągu
  • obliczyć średnią arytmetyczną elementów ciągu
  • podać ilość elementów ciągu
  • podać największy element ciągu i jego położenie

Jako, że przykładów w zadaniu było sporo spytał mnie czy nie da się tego "uprościć" w arkuszu kalkulacyjnym czy w inny sposób. Pomyślałem o Pascalu. No więc mają założenia postanowiłem coś naskrobać. Oczywiście z pewnością nie jest to ekstra, bezbłędny i pozbawiony wad kod, ale nie był pisany na dłuższa metę. Co ważne działa, pomógł i po krotce powinien wyjaśnić co i jak – może się komuś przyda.

Co trzeba zrobić

Założyłem, że elementy ciągu będą umieszczone w tablicy jednowymiarowej. Jako, że nie są to zaawansowane rzeczy tablica ma maksymalnie 100 pozycji. No więc trzeba to zadeklarować: Nie zapominamy o słowie Program i nazwie programu na początku:

Program zadania; const max=100; type tablica=array[1..max]of longint;

No dobrze. Znając założenia wiem, ze będę potrzebował policzyć:
sumę, iloczyn, ilość liczb, średnią arytmetyczną,posortować ciąg rosnąco i malejąco oraz znaleźć i podać miejsce i wartość elementu maksymalnego.
Żeby się nie pogubić postanowiłem dla każdej z tych czynności napisać procedurę. No to pograj muzyko..

Ekhem.. zapomniałbym, przecież wpierw musimy naszej liczby wprowadzić.

procedure wypisz; begin for b:=1 to ilosc_liczb do write(t[b],', '); writeln; end

Wprowadzenie danych

procedure wprowadz; begin for b:=1 to ilosc_liczb do begin write('a',b,' = '); readln(t[b]); end; end;

Jak widać zmienna sterująca pętla jest zmienna "b". Zmienna "ilosc_liczb" jest zmienną przechowująca ilość liczb w ciągu, wprowadza ją użytkownik.

Wypisanie wprowadzonych liczb

Aby sprawdzić czy dobrze wprowadziliśmy ciąg, warto go wyświetlić dla użytkownika

procedure wypisz; begin for b:=1 to ilosc_liczb do write(t[b],', '); writeln; end;

Ponownie pętla for lecz tym razem wypisująca liczby podane przez uzytkownika, czyli nasz ciąg.

Suma elementów

Jako, że trzeba policzyć sume elementów..

procedure suma; var suma:longint; begin suma:=0; for b:=1 to ilosc_liczb do suma:=suma+t[b]; writeln('Suma elementów ciągu to: ',suma); end;

Na początku zakładamy, że nasza suma równa jest 0 (bo przecież tak jest). Sumę zapiszemy do zmiennej o tej samej nazwie, zmiennej "suma". Analizując fragment tego kodu widać, że jest to odwołanie do samej siebie i dodanie kolejnego elementu ciągu aż do elementu ostatniego "ilosc_liczb".

Średnia arytmetyczna

Skoro mamy już sumę, zajmijmy się średnią. Jest to odrobinę zmodyfikowana procedura sumy

procedure srednia; var suma:longint; srednia:real; begin suma:=0; for b:=1 to ilosc_liczb do suma:=suma+t[b]; srednia:=suma/ilosc_liczb; writeln('Średnia arytmetyczna wprowadzonych liczb to: ',srednia:3); end;

Nie jest to mocno skomplikowane, po prostu podzieliliśmy sumę przez ilość wprwadzonych liczb - odpowiednio zmienne "suma" i "ilosc_liczb".

Iloczyn elementów

procedure iloczyn; var iloczyn:longint; begin iloczyn:=1; for b:=1 to ilosc_liczb do iloczyn:=iloczyn*t[b]; writeln('Iloczyn elementów ciągu to: ',iloczyn); end;

Nasz iloczyn na początku nie może być rowny 0, gdyż wiadomo że cokolwiek pomnożone przez 0 daje 0, więc nasz pierwszy iloczyn jest liczbą równą 1. Nastepnie postępujemy analogicznie jak przy sumie, odwołując się do poprzedniego iloczynu.

Element największy

procedure najwiekszy_element; begin i_max:=1; max_el:=t[i_max]; for b:=1 to ilosc_liczb do if t[b]>max_el then begin i_max:=b; max_el:=t[i_max]; end; writeln('Element największy to: ',max_el,' a jego położenie to: a',i_max); end;

Na początku przyjmujemy, że naszym największym elementem jest element 1 – by mieć do czego sie odwołac. "i_max" oznacza maksymalne położenie (indeks) elementu maksymalnego a "max_el" oznacza wartość tego elementu. Instrukcja if zawarta w pętli for (tak by przejrzeć wszystkie elementy) sprawdza czy jakiś element jest większy od 1, jeżeli tak, podmienia zmienną "i_max" na połozenie nowego największego elementu czyniąc to samo z jego wartością, czyli zmienną "max_el"

Sortowanie

procedure sortowanie; begin zamiana:=true; while zamiana do begin zamiana:=false; for b:=1 to ilosc_liczb-1 do if t[b]>t[b+1] then begin pom:=t[b]; t[b]:=t[b+1]; t[b+1]:=pom; zamiana:=true; end; end; end;

W sortowaniu użylem algorytmu sortowania babelkowego, polegającego na porównywaniu kolejno par liczb. Zmienna "zamiana" sprawdza czy w ciągu została dokonana jakaś zamiana, bo przecież liczby mogły być ustawione w odpowiedniej kolejności – rosnąco. Dlaczego pierwsza zamiana ma wartośc true? Otóz dlatego, by dostać się do pętli while, po dostaniu się do pętli while uznajemy, ze ciąg jest ustawiony odpowiednio. iloscliczb-1, dlaczego mniej jeden? Otóż dlatego, iż par jest o 1 mniej od ilości liczb w ciągu. Mając na przykład ciąg 1, 2, 3, 4 mamy następujące pary: 12, 23, 34, czyli ilosc_liczb-1. Instrukcja warunkowa if sprawdza czy element i jest większy od elementu po nim nastepującym, jeżeli tak – zamienia je miejscami (do tego celu potrzebna jest zmienna "pom"). Jeżeli wystąpiła choć jedna zamiana zmienna zamiana przyjmuje wartość true i proces się powtarza, az ciąg będzie ustawiony w kolejności rosnącej.

No dobrze, a jak zrobić żeby było odwrotnie? Otóz nie musimy pisać oddzielnej procedury dla sortowania ciągu, Po prostu jeżli mamy ciąg w kolejności rosnącej, wypisany odwrotnie da kolejnośc malejącą, skorzystamy z tego pisząc procedurę wypisywania liczb w odwrotnej kolejności

procedure wypisz_odwrotnie; begin for b:=ilosc_liczb downto 1 do write(t[b],', '); writeln; end;

Niech zabłysną gwiazdki

By tekst się nie zlewał po wyświetleniu postanowiłem upakować to w jakby to ująć "boxy" . Tytuły boxów maja wyglądać nastepująco:

******************************************************
TYTUŁ
******************************************************

procedure gwiazdki (znak:char;slowo:string;ile:byte); begin writeln; for b:=1 to ile do write(znak); writeln; writeln(slowo); for b:=1 to ile do write(znak); writeln; writeln; end;

znak:char;slowo:string;ile:byte to parametry formalne procedury. Pierwszy określa jaki znak będzie oddzielał zawartośc (w przykładzie "*"), drugi podaje tytuł boxu, natomiast trzeci długośc zmiennej znak.

Po zakończeniu psania procedur warto przejrzeć listę zmiennych, tutaj nie były jeszcze deklarowane. Zróbmy to:

var ilosc_liczb,b:integer; t:tablica; zamiana:boolean; pom,max_el,i_max:integer;

Co dalej?

Mając procedury zabierzmy się do napisania "ciała" programu. Rozpoczynamy od słowa begin

begin repeat Write('Podaj ilość liczb jaką chcesz wpisać '); readln(ilosc_liczb); until (ilosc_liczb>0);

Repeat sprawdza, czy nie podaliśmy przypadkiem jako ilości liczb w ciągu liczby ujemnej.

Wywołujemy zmienne:

wprowadz; writeln;

Po wprowadzeniu przez użytkownika liczb program wykona resztę pracy za nas:

gwiazdki('*','STATYSTYKA',45);

Pierwszy parater przy wywoływaniu procedur gwiazdki zostaje "podstawiony" za zmienną "znak", drugi za zmienną "slowo", a trzeci za zmienną "ile" w parametrach formalnych procedury "gwiazdki".

writeln('Twój ciąg liczb to: '); wypisz; writeln('Ilosc liczb w ciągu: ',ilosc_liczb); writeln('Elementy skarjne ciągu to: ',t[1],' oraz ',t[ilosc_liczb]); najwiekszy_element; sortowanie; writeln('Liczby jakie podałeś w kolejności rosnącej to: '); wypisz; writeln('Liczby jakie podałeś w kolejności malejącej to: '); wypisz_odwrotnie; gwiazdki('*','OBLICZENIA',45); srednia; suma; iloczyn; writeln; readln; end.

Cały kod programu wygląda tak:

Program zadania; const max=100; type tablica=array[1..max]of longint; var ilosc_liczb,b:integer; t:tablica; zamiana:boolean; pom,max_el,i_max:integer; procedure wprowadz; begin for b:=1 to ilosc_liczb do begin write('a',b,' = '); readln(t[b]); end; end; procedure wypisz; begin for b:=1 to ilosc_liczb do write(t[b],', '); writeln; end; procedure wypisz_odwrotnie; begin for b:=ilosc_liczb downto 1 do write(t[b],', '); writeln; end; procedure gwiazdki (znak:char;slowo:string;ile:byte); begin writeln; for b:=1 to ile do write(znak); writeln; writeln(slowo); for b:=1 to ile do write(znak); writeln; writeln; end; procedure najwiekszy_element; begin i_max:=1; max_el:=t[i_max]; for b:=1 to ilosc_liczb do if t[b]>max_el then begin i_max:=i; max_el:=t[i_max]; end; writeln('Element największy to: ',max_el,' a jego położenie to: a',i_max); end; procedure suma; var suma:longint; begin suma:=0; for b:=1 to ilosc_liczb do suma:=suma+t[b]; writeln('Suma elementów ciągu to: ',suma); end; procedure iloczyn; var iloczyn:longint; begin iloczyn:=1; for b:=1 to ilosc_liczb do iloczyn:=iloczyn*t[b]; writeln('Iloczyn elementów ciągu to: ',iloczyn); end; procedure srednia; var suma:real; srednia:real; begin suma:=0; for b:=1 to ilosc_liczb do suma:=suma+t[b]; srednia:=suma/ilosc_liczb; writeln('Średnia arytmetyczna wprowadzonych liczb to: ',srednia:3); end; procedure sortowanie; begin zamiana:=true; while zamiana do begin zamiana:=false; for b:=1 to ilosc_liczb-1 do if t[b]>t[b+1] then begin pom:=t[b]; t[b]:=t[b+1]; t[b+1]:=pom; zamiana:=true; end; end; end; begin repeat Write('Podaj ilość liczb jaka chcesz wpisać '); readln(ilosc_liczb); until (ilosc_liczb>0); wprowadz; writeln; gwiazdki('*','STATYSTYKA',45); writeln('Twój ciąg liczb to: '); wypisz; writeln('Ilosc liczb w ciągu: ',ilosc_liczb); writeln('Elementy skarjne ciągu to: ',t[1],' oraz ',t[ilosc_liczb]); najwiekszy_element; sortowanie; writeln('Liczby jakie podałeś w kolejności rosnącej to: '); wypisz; writeln('Liczby jakie podałeś w kolejności malejącej to: '); wypisz_odwrotnie; gwiazdki('*','OBLICZENIA',45); srednia; suma; iloczyn; writeln; readln; end.

Nie jest to bardzo skomplikowany program i zapewne nie jeden z czytelników napisałby lepszy itd. jednak nie o tym chciałem napisac. Chciałem pokazac jak w prosty sposób można sobie pomóc.

Oczywiście każdy ma własne zdanie dotyczące danych kwestii nie zamierzam go w żaden sposób podważać, czy obrażać kogokolwiek w jakikolwiek sposób. Przepraszam także za ewentualne błędy. 

windows programowanie

Komentarze

0 nowych
przemo_li   11 #1 13.02.2012 17:30

Kardynalnym błędem tekstu jest użycie PASCALA...

Tak samo jak jesteśmy wdzięczni (niezależnie od przynależności do różnych opcji politycznych) pewnemu polskiemu politykowi za usunięci innych polskich polityków z tejże dziedziny życia publicznego, tak samo powinniśmy starać się usunąć staruszka PASCALA w kąt muzeum. A dla dzieciaków np. Python jest lepszy (choć tak na prawdę można tutaj wstawić wiele języków).

PASCAL JEST STARTY. Nie ma już dla niego dobrych środowisk. Nie przyda się w ewentualnej pracy. Trudno znaleźć do niego pomoc. I nigdy nie był on pomyślany jako narzędzie dla "majsterkowiczów".

PASCAL ogromnie się przysłużył informatyce, ale jego czas po prostu miną.

Aleks7   3 #2 13.02.2012 17:41

@przemo_li
Mam podobne zdanie, ale mimo wszystko muszę "uczyć" się tego przestarzałego języka w szkole.

kuba144   5 #3 13.02.2012 17:49

@przemo_li
Dokładnie! Całe szczęście w moim ogólniaku uczą C++ ;)

Kintoki   6 #4 13.02.2012 17:52

@przemo_li Pzdury piszesz... Patrząc na zadania to są podstawy programowania, nie ma znaczenia jakiego języka do tego użyjesz.
1) Uczeń ma się nauczyć podstaw co to są instrukcje warunkowe, pętle, funkcje i jak je może wykorzystać, język programowania ma tu drugorzędne znaczenie.
2) Znając podstawy pascala(lub innego języka prog.) bardzo łatwo jest nauczyć się innych nie ważne czy to c, c++, python, java..
Poza tym pascal ma dość przejrzystą składnię więc powinno to ułatwić naukę.

Kintoki   6 #5 13.02.2012 17:53

miało być *bzdury :)

przemo_li   11 #6 13.02.2012 17:58

@Kinotoki
Bzdury piszesz...

Skoro uczeń ma poświecić X tygodni na naukę języka i później X-5 tygodni na naukę drugiego. To czemu nie od razu nauka drugiego?

I po co komuś znajomość pętli, funkcji.... Zabawa się zaczyna dopiero wtedy gdy umiejętność się da do czegoś zastosować... A pascal przegrywa w tym względzie z każdym nowoczesnym językiem. Z nauki Pythona dzieciaki spokojnie mogą mieć więcej frajdy niż Pascala ( i python może być im pomocny w przyszłości).

Chcesz rozmawiać to przynajmniej nie powtarzaj bezrozumnie wyświechtanych kalek...


Za to bardzo mi się podoba podejście autora do problemu.

"Jest zadanie do wykonania ale to ja dobieram narzędzia!"

andrzej3393   3 #7 13.02.2012 18:17

@Kintoki
Pomijając to, co napisał przemo_li (prawie całkowicie się z nim zgadzam), to w którym miejscu pascal ma przejrzystą składnię? Perl, uważany za jeden z najbardziej nieczytelnych języków jest imo o wiele bardziej przejrzysty niż pascal.

alucosoftware   7 #8 13.02.2012 18:18

@Kintoki
zgadzam się z Twoim stanowiskiem.

@arlid
gratuluję pomysłowości. Spróbuj wykorzystać funkcje przyjmujące tablicę wprowadzonych elementów i zwracające wynik w postaci określonej w zadaniu np. posortowany ciąg elementów, suma, średnia itd. Tym samym raz napisaną funkcję wykorzystasz w przyszłości bez potrzeby modyfikowania jej "wnętrza". Spróbuj także nie wypisywać wyniku z wnętrza funkcji - funkcja ma liczyć.

Krótkie uzasadnienie:
W powyższym przykładzie w każdej procedurze wykorzystujesz zmienną "t". A co jeśli zmienną na początku programu nazwiesz inaczej? Czy będziesz modyfikował każdą procedurę raz jeszcze?

Powodzenia.

Viperoo   8 #9 13.02.2012 18:27

Ehh a ja ciągle uczę się Pascala w szkole. Moim zdaniem jest to błąd ponieważ Python jest równie prosty a do tego posiada sporo bibliotek i ma szerokie zastosowanie.

Kintoki   6 #10 13.02.2012 18:52

@przemo_li "Skoro uczeń ma poświecić X tygodni na naukę języka i później X-5 tygodni na naukę drugiego. To czemu nie od razu nauka drugiego?"
- po to żeby się rozwijać, żeby poznawać nowe języki(nowe składnie) i ostatecznie wybrać który będzie mu najbardziej odpowiadał.
@przemo_li "I po co komuś znajomość pętli, funkcji.... Zabawa się zaczyna dopiero wtedy gdy umiejętność się da do czegoś zastosować..."
- fajnie... jak wyobrażasz sobie stworzenie czegokolwiek bez poznania podstaw.
@przemo_li "Z nauki Pythona dzieciaki spokojnie mogą mieć więcej frajdy niż Pascala"
- jasne... więcej frajdy z rozwiązywania tych samych zadań co wyżej będą mieli uczniowie jeśli szkoły porzucą pascala - nie wyobrażasz sobie chyba że zadania które mają nauczyć podstaw będą inne tylko dla tego że język programowania się zmieni. Poza tym python jest idealny do szybkiego tworzenia kodu, ułatwia/automatyzuje wiele rzeczy co nie koniecznie musi być dobre do poznawania podstaw programowania.
@przemo_li "Chcesz rozmawiać to przynajmniej nie powtarzaj bezrozumnie wyświechtanych kalek..."
- żadna kalka, moje osobiste zdanie ukształtowane własnym doświadczeniem.

dominikc   5 #11 13.02.2012 19:24

@przemo_li
"Z nauki Pythona dzieciaki spokojnie mogą mieć więcej frajdy niż Pascala"
I przy okazji cały program zmieszczą w kilku linijkach :)
A do nauki programowania chyba dobry byłby PHP.

tfl   8 #12 13.02.2012 19:36

@dominikc

do ironia prawda?

Aleks7   3 #13 13.02.2012 19:36

@Kintoki
Uczyłeś się PASCAL'a w szkole może? Środowisko Turbo Pascal odpalone przez dosboxa z wiecznie wyłączającą się myszką i brakiem jakiegokolwiek kolorowania składni.

Slavius   3 #14 13.02.2012 19:37

Do takich prostych zagadnieniach to ja wolę użyć arkusza kalkulacyjnego, niekoniecznie z MO czy OO.
I szybciej i wygodniej się tworzy, a i wyniki podawane są na bieżąco i w przyjemniejszej formie.

Programowanie pozostawiam do bardziej wymagających zagadnień.

floyd   15 #15 13.02.2012 19:42

@przemo_li -" Kardynalnym błędem tekstu jest użycie PASCALA... "
No to musisz koniecznie interweniować u organizatorów olimpiady informatycznej bo tam w dalszym ciągu aktualny jest Pascal.
Cyt. z regulaminu:
"Do kompilowania rozwiązań używane będą następujące kompilatory:
Pascal - Free Pascal Compiler 2.4.0
C/C++ - GCC 4.4.3"
http://www.oi.edu.pl/l/19oi_ustalenia_techniczne/

revcorey   7 #16 13.02.2012 19:43

@Aleks7
To już wina nauczycieli. FreePascla może się integrować z eclipse, z code::blocks pewnie też czy netbeans.
Moim zdaniem to powinno być C++ zamiast pascala :P Funkcje są, wskaźniki można wprowadzić a później klasy.

dominikc   5 #17 13.02.2012 19:57

@tfl
Chodzi Ci o 1 zdanie czy 2?

  #18 13.02.2012 20:11

@przemo_li
Jak nie używasz, to się nie wypowiadaj, bo bzdury piszesz.

"Składnia języka jest semantycznie zgodna z TP 7.0, tak samo jak z większością wersji Delphi (klasy, RTTI, wyjątki, ansistrings). Free Pascal udostępnia pełny zakres programowania obiektowego. Możliwe jest przeciążanie funkcji i przeciążanie operatorów oraz zagnieżdżanie komentarzy. Free Pascal obsługuje arytmetykę 64-bitową, SSE. Wbudowana jest optymalizacja dla procesorów Pentium, AMD, AMD64. Free Pascal od wersji 2.2 wspiera także klasy generyczne. Wraz z publikacją wersji 2.6.0 rozszerzeniu uległa składnia języka wspierając nowe funkcjonalności, które zostały dodane po Delphi 7 (m.in. zaawansowane rekordy, zagnieżdżone typy oraz klasy generyczne)." - http://pl.wikipedia.org/wiki/Free_Pascal

Bardzo fajnie programuje się obiektowo w FP. Świetne IDE jest - LAZARUS. Free Pascal jest tak samo wartościowym językiem programowania, jak inne. Kwestia gustu, jaki sobie wybierzesz.

djfoxer   18 #19 13.02.2012 20:12

Naukę zawsze zaczyna się od łatwiejszych rzeczy. Składnia Pascala jest bardzo prosta w odbiorze, dodatkowo język oferuje całkiem dużo. Aczkolwiek czasem Pascal zastępowany jest przez ANSI C.

Nie narzekajcie aż tak, bo zaraz wyjdą Ci, którzy zaczną marudzić, że np. na pierwszym roku informatyki jest więcej matematyki, niż programowania. A potem tacy "programiści" kończą studia i nie potrafią obliczyć odległości pomiędzy dwoma punktami na ekranie.

tfl   8 #20 13.02.2012 20:13

@dominikc

o to ze php sie nadaje na nauke programowania

dominikc   5 #21 13.02.2012 20:22

@tfl
IMHO w porównaniu z Pascalem wypada lepiej, jego kod jest czytelniejszy i prostszy, a sam język jest bardziej przydatny. Oczywiście najlepszym wyborem byłby Python

GL1zdA   12 #22 13.02.2012 21:00

Chyba przy dodawaniu wpisu gdzieś wcięcia "wcięło". Co do języka programowania - jeśli ktoś jest hobbystą, to każdy język będzie dla niego dobry, ważne by w nim pisał. Jak ktoś jest zawodowcem, to sam wie, czego się uczyć. Po Pascalu jest zawsze Delphi, jest też niezłe środowisko - Lazarus oparty o FP. W rankingu TIOBE ( http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html ) Delphi i Pascal niewiele ustępują Pythonowi.

tfl   8 #23 13.02.2012 21:01

@dominikc

php mam jedna zasadnicza wade jesli chodzi o nauke programowania - pozwala na dynamiczna zmiane typow danych, co niesie za soba zle nawyki. tutaj nawet pascal jest lepszy :)

poza tym... nauka programowania powina byc nauka programowania (odkrywcze), a nie nauka tworzenia programow. nauke nalezy zaczac od podstaw (naprzyklad - zlozonosc obliczeniowa, zarzadzanie pamiecia, dobre nawyki), gdzie leksyka nie ma takiego znaczenia i pisac mozna w pseudokodzie lub w Eli, dopiero potem wybierac jezyk programowania

dominikc   5 #24 13.02.2012 21:20

@tfl
"php mam jedna zasadnicza wade jesli chodzi o nauke programowania - pozwala na dynamiczna zmiane typow danych, co niesie za soba zle nawyki. tutaj nawet pascal jest lepszy :)"
Tu niestety jest duży problem jeżeli zaczyna się programowanie od PHP. Nawet nie trzeba tutaj deklarować zmiennych.
Głównie chodziło mi tutaj o prostą składnię PHP, dzięki temu język jest "wygodniejszy" od Pascala.

soanvig   10 #25 13.02.2012 21:46

O ile się nie mylę w nauce programowania w szkole nie chodzi o sam język... bo szczerze - kto go później użyje. Chodzi o naukę myślenia programistycznego oraz o zrozumienie trochę bliżej działania komputera...

revcorey   7 #26 13.02.2012 22:00

O działaniu komputera sam język nic specjalnego nie mówi. Chyba że się człowiek wczyta w dokumentację to coś tam może być. Co do myślenia programistycznego, osobiście jestem samoukiem, chociaż na studiach miałem niby C i assemblera ale pominę to milczeniem. Także programowania można się nauczyć samemu i pisać nawet dobre algorytmy.

hausner15   5 #27 13.02.2012 22:37

Czytam komentarze i aż wierzyć mi się nie chce..
Jak można twierdzić że składnia C++ czy Pythona jest czytelniejsza od składni Pascala?

Dla POCZĄTKUJĄCEGO znającego trochę angielski o wiele czytelniejsza jest składnia Pascala - begin/end, for, to/down to itd - wszystko opiera się na słowach kluczowych które jasno określają co się dzieje. W C++ nawiasy klamrowe i fory z parametrami po średniku jeż nie są takie czytelne, a w Pythonie idei wcięć początkujący tak szybko nie zrozumieją...

W tym właśnie drzemie moc pascala jako języka dydaktycznego.

Do praktycznego pisania programów Pascal się nie nadaje: właśnie przez tą składnie która nie do końca jest szybka w pisaniu, oraz przez to że sam język jest już staruszkiem. Natomiast Delphi nie różniący się wiele pod względem składni odziwo trzyma się dobrze.

Języki skryptowe takie jak PHP czy Python już w ogóle nie nadają się do nauki prawdziwego programowania bo wręcz za bardzo ułatwiają pisanie kodu - a nie o to chodzi w nauce.
To że można w nich zrobić więcej - szybciej przyda się w praktyce - ale nie przy nauce.

revcorey   7 #28 13.02.2012 22:45

@hausner15
Jeśli dla człowieka w wieku 15 lat który jest na profilu mat-inf problemem jest zrozumienie działania instrukcji if czy for to ja nie wiem co powiedzieć, ja zaczynałem w wieku 13-14 lat pisać w c++. Osobiście jak dla mnie nawiasy klamrowe nadają czytelności.

hausner15   5 #29 13.02.2012 23:01

@revcorey
15 latek na mat-inf nie powinien mieć problemów z logicznym myśleniem, aczkolwiek praktyka jest inna...

W technikum na profilu informatyka na 30 osób, informatyków z zamiłowania było 3, może 4 razem ze mną...
Ze spokojem połowa miała problem z logicznym myśleniem...

Aktualnie na studiach też różowo nie jest - sporo osób ma problem z programowaniem.

Sam zaczynałem od PHP i przestawienie się najpierw na Pascala, potem na C/C++ nie sprawiło mi problemu - ale ja lubię programować i nie mam problemów z logicznym myśleniem.

Dziś programowania uczą nawet na profilach humanistycznych w liceum, a plan nauczania musi być ułożony zapewne jeden wspólny. Poza tym który 15 latek idący na mat-inf jest pewien że to właśnie chce robić w życiu i w tym się czuje pewnie i lubi to? Najczęściej idą tam dzieciaki które myślą że prócz matmy na informatyce będą grać...

revcorey   7 #30 13.02.2012 23:54

@hausner15
efekty równania poziomu do ćwierć inteligentów odbiły się już czkawką nam. Jeśli dla człowieka w wieku 15 lat problemem jest zrozumienie działania paru instrukcji oznacza to że błąd popełniono wcześniej i wychowano pół-analfabetę. Ludzie mogli wybrać zawodówkę a nie LO czy technikum, chociaż u nas wybiera to 95% osób.

G.Gn7Ex   5 #31 13.02.2012 23:55

Uważam, że najważniejsze to wiedzieć co to są pętle, warunki, zmienne itp. i jakiego rodzaju oraz co jak działa, a to w jaki sposób się to zapisuje to już sprawa nieco inna.

Co do Pascala, to z tego, co zauważyłem, większość jego krytyków ma pojęcie co najwyżej o istnieniu TurboPascal'a 7.0 dla DOS. Niektórzy nawet myślą że w Pascalu to można pisać tylko i wyłącznie aplikacje dla DOSa.
Zatem powinni zapoznać się z możliwościami FreePascala(Ci którzy do tej pory bawią się z TurboPascalem powinni go ściągnąć i przetestować) a potem dopiero krytykować.
W sumie to dziwię się że w szkołach jeszcze na komputerach zainstalowany jest TurboPascal 5.5/7.0 ...

TurboPascal to może rzeczywiście nadaje się tylko do zastosowań dydaktycznych, ale już FreePascal(który możliwościami miażdży starego TP 7.0) pozwala na stworzenie w Pascalu konkretnej aplikacji.
Oto jeden z przykładów:
http://pl.wikipedia.org/wiki/Pixel_(edytor_graficzny)

revcorey   7 #32 14.02.2012 00:01

@G.Gn7Ex
już ktoś wcześniej przytoczył lazarusa opartego o freepascal(nawet wrraper na qt4 jest). Co więcej jest pascal na AVR Mega, ale wiadomo prawie nikt w tym nie pisze.

Maxi_S   4 #33 14.02.2012 00:33

Autorowi należy się (wirtualne) piwo za wpis rzeczowy i na temat (inny niż piractwo i okolice). Formy zbliżone do Pascala są często używane jako opisowy pseudokod, a szczera niechęć co niektórych do tego języka programowania jest raczej zaszłością czysto historyczną niż jakkolwiek praktycznie uzasadniona.

Druga sprawa: tzw. "programista" co się naumiał jednego języka, to d*pa nie programista, chociażby i potrafił zapisać w nim "Sonety Krymskie". Nawet pobieżna znajomość innych języków programowania pomaga w zorganizowaniu sobie warsztatu pracy (doboru języków programowania do specyfiki zadania) czy odnalezienia się w zespole programistów. Oczywiście - podobnie jak przy stole - można się uprzeć by zupę i drugie danie jeść wyłącznie nożem, tylko po co skoro wymyślono oddzielne sztućce do różnych potraw. Dla nadal nie rozumiejących polecam:

http://www.roesler-ac.de/wolfram/hello.htm
http://www.scriptol.com/programming/hello-world.php

NRN   9 #34 14.02.2012 02:08

Omoshiroi... Pascal się nie przyda powiadacie :) Proponuję porozmawiać z prof. dr hab. inż. Andrzejem Marciniakiem z Politechniki Poznańskiej :)

hausner15   5 #35 14.02.2012 02:15

@NRN
Odbiegając od tematu: czy prof. dr hab. inż. Andrzej Marciniak wykłada może też dla informatyków z elektryka czy tylko WI? Ciekaw jestem czy z nim zajęcia jakieś będę miał ;)

  #36 14.02.2012 09:02

"programowanie w php" - chyba kpicie, php to język skryptowy wykonywany jednorazowo przez serwer a nie język programowania, więc ciężko zestawiać jego "tworzenie zmiennych w locie" z deklaracją zmiennej w pamięci, która siedzi w tej pamięci, bo program działa zapętlony

Pascal na początek jest genialny, szczególnie dla osób które uczą się w szkole programowania a nigdy programować nie będą, nie będą też informatykami, więc na start bardzo dobre rozwiązanie, dla tych co zdają informatykę to i tak pewnie będą się uczyć c++/c# czy co tam teraz można zdawać

revcorey   7 #37 14.02.2012 11:34

"Pascal na początek jest genialny, szczególnie dla osób które uczą się w szkole programowania a nigdy programować nie będą, nie będą też informatykami"
To w takim razie powinno się uczyć składni pakietów numerycznych np. gnu octave którego jest identyczna z matlabem czy scilaba(gdzie podstawowy języka są takei same tylko nazwy funkcji inne). Bo na wielu studiach się to wykorzystuje, to w klasach mat-fiz,mat-inf,bio-chem. A jak już chcą w humanistycznych uczyć programowania to pakiet biurowy i basic. W implementacji w openoffice i ms office są pewne pomniejsze różnice ale ogólnie pisze się bardzo podobnie, a to się w przyszłości może przydać.

  #38 14.02.2012 11:44

w Pythonie wygląda to tak:

a = []
for i in range(10): # na przykład, może też być inna liczba
x = input("Podaj liczbe: ")
a.append(x)
# tabela liczb już gotowa, czas na obliczenia
suma = 0
for i in a:
suma += i
iloczyn = 1
for i in a:
iloczyn *= i
print "Suma: ", suma, "Iloczyn: ", iloczyn
print "Srednia: ", suma/len(a)
a.sort() # ciąg rosnący
a.reverse() # ciąg malejący (o ile zastosowany po a.sort())
print a[:1] # pierwszy element zbioru
print a[-1:] # ostatni element zbioru

nie wiem, czy to kwestia przyzwyczajenia, czy co, ale Python wygląda imho trochę czytelniej od Pascala :)

  #39 14.02.2012 12:55

cholera. wcięcia zlikwidowało, a one są w pythonie dość istotne :/

  #40 14.02.2012 15:50

Pascal nie nadaje się dla majsterkowiczów, ale C/C++ są do majsterkowania jeszcze gorsze. Zanim napisze się w tych językach cokolwiek potrzebnego, trzeba naklepać mnóstwo infrastruktury.

Do szybkich i pożytecznych użytkowych programików zdecydowanie bardziej nadają się języki skryptowe - tym bardziej im bardziej zależy nam na przetwarzaniu różnego rodzaju tekstów. Python jest dobry, Tcl (+ Tk) jest świetny (i pozwala łatwo tworzyć aplikacje okienkowe).

Moim zdaniem nauki programowania nie powinno się zaczynać od C. Lepiej zacząć od języka, w którym da się łatwo rozszyfrować deklaracje zmiennych (C i C++ z ich 'const void * const pointer' są tragedią, a to dopiero początek) czytając od lewej do prawej. Coś takiego daje właśnie Pascal. Najpierw nauczyć się programowania strukturalnego (funkcje, pętle, instrukcje warunkowe, itp.), grzebania po tablicach (wskaźniki, adresy), a później programowania obiektowego. Mając te podstawy można zacząć uczyć się dowolnego języka imperatywnego nie zrażając się jego składnią. Ja polecam Adę.

Języki deklaratywne (np. Prolog) czy funkcyjne (Lisp, Haskell) to inna bajka i za nie początkującym nie radzę się zabierać.

  #41 14.02.2012 16:15

Ludzie... Narzekać tylko potraficie... Pascal został stworzony do edukacji i tak należy go traktować. Moim zdaniem Pascal jest bardzo dobry do nauki podstaw, ale to też zależy jakie nauczyciel ma podejście do przedmiotu. W szkole uczę się Pascala i dobrze mi z tym, bo dzięki temu jestem w stanie teraz sam się uczyć C++.

A zamiast słów krytyki to może jakieś gratulacje dla autora? Może akurat komuś to będzie potrzebne.

ps. Czytelność języka zależy w głównej mierze od osoby, która pisze kod...

GBM MODERATOR BLOGA  20 #42 14.02.2012 18:57

Wynikła dyskusja, rodem przypominającą kłótnię typu "Kto ma dłuższego pe...." - Panowie, przecież taki program można napisać we wszelakim języku programowania - można go nawet napisać w Latex'ie.

Nie ma znaczenia w czym - ważne że jest i ułatwia nam pracę ;)

Pozdrawiam,
GBM

EnterBioS   2 #43 14.02.2012 21:14

Sporo musiało być tych ciągów skoro napisanie tylu linii kodu ułatwiło prace :D Przynajmniej ciągi były już w pamięci komputera? Czy jeszcze trzeba było pisać z zeszytu? Jak z zeszytu to mogłeś pójść krok dalej z algorytmami rozpoznawania pisma :)

Linux Master   3 #44 14.02.2012 21:36

weźcie się ogarnijcie z tym pascalem, w szkole go katują nie wiem po co

tego się od 30 lat nie używa !!! nie mogą od razu C++ dać ?

soanvig   10 #45 14.02.2012 23:09

@Linux Master

Po co. Po co - ja się pytam. Ilu ludzi z ogólniaków, którzy uczą się Pascala będzie potem cokolwiek programowało? Nic. Pomijając, że 95% tychże uczniów nic z tego nie umie, bo to olewa - właśnie dlatego. Jak napisałem wcześniej, w szkołach programowanie nie ma nauczyć programowania tylko myślenia.

Scottie33   4 #46 15.02.2012 05:24

Skończcie już ten flame war, bo i tak nic z tego nie wyniknie. Jest Pascal, bo taki jest program Ministerstwa Edukacji (chyba?) i są nauczyciele, którym to pasuje. Jest jak jest. Jak obecne pokolenie dorośnie i w przyszłości być może niektórzy z nich zostaną nauczycielami, to może będą starać się uczyć bądź promować coś innego.
Tu nie jest ważne, żeby nauczyć się tworzyć pętle, czy warunki if .. then .. else, bo przecież w każdym języku jest trochę inaczej, ale przede wszystkim, aby nauczyć się _myśleć_. A to specyficzne myślenie najlepiej zacząć od... matematyki. Dlatego m.in. na studiach przez pierwszy rok niektórzy do komputera zasiadają dopiero w domu. ;-)

BTW, polecam przeczytać, jak zaczynali naprawdę wielcy programiści -> http://helion.pl/ksiazki/sztkod.htm

przemo_li   11 #47 15.02.2012 14:19

Wiedziałem, że będzie flame war :) Sorki arlid, ale temat jest ważny.

@Kintoki
"po to żeby się rozwijać, żeby poznawać nowe języki(nowe składnie) i ostatecznie wybrać który będzie mu najbardziej odpowiadał. "

Kalka, banał, infantylizm.
PS Naprawdę uważasz, że uczeń gimnazjum powinien poznawać kilka języków, w tym jako pierwszego PASCAL, którego nie użyje już nigdy więcej?

"fajnie... jak wyobrażasz sobie stworzenie czegokolwiek bez poznania podstaw. "
Twoje osławione podstawy to 3-4 lekcje. Ale w PASCALU więcej nie zrobisz... Bo i z pustych bibliotek nawet Salomon nie stworzy ciekawego programu.

"nie wyobrażasz sobie chyba że zadania które mają nauczyć podstaw będą inne tylko dla tego że język programowania się zmieni."
Eeeee, ale właśnie taka jest moja propozycja. PyGame jest całkiem przyzwoitą propozycją dla kogoś kto się uczy programować... (zamiast po raz enty tworzyć kalkulator w linii komend :| )

"żadna kalka, moje osobiste zdanie ukształtowane własnym doświadczeniem."
Moje doświadczenia ograniczają się do Informatyka w gimnazjum, który wprowadzał materiał tempem żółwia (a dostęp do internetu "zablokował" przez usunięcie ikonki IE z pulpitów i menu start), "informatyczki"-plastyczki nie potrafiącej przekazać nic prócz obsługi Painta. W liceum było lepiej bo uczył nas wykładowca akademicki. Ale zadania które obrabialiśmy aby nauczyć się programować też nie były ciekawe. W zasadzie Pascal pod dosem....
(a później się ludzie dziwią że na infę tak mało dziewczyn idzie)

Nie proszę Pana. Nie przemyślał Pan sprawy. I dalej myśli liniowo/szablonowo, kurczowo trzymając się tego co jest. MIMO ŻE OBECNY SYSTEM JEST WADLIWY (patrz udział kobiet na kierunku info. na studiach).

@floyd
Olimpiada informatyczna jest olimpiadą algorytmiczną a nie programistyczną.

@Pendulum
Wymagania informatyki WYRAŹNIE wskazują na znajomość PASCALA jako języka!!!! NIE DELPHI W IDE FREEPASCAL.
OOP w Pascalu NIE występuje. Dopiero delphi takie dodaje...

@djfoxer
Python jest łatwiejszy i od Pascala i od C. Więc idąc Twoim tokiem rozumowania, to Python powinnien być uczony. Ale Twoje rozumowanie w ogóle nie uwzględnia przydatności danego języka a ta jest równie ważna. (A skoro Pascla przegrywa i tutaj to...)

@tfl
To mnie rozbawiłeś. Kacze typowanie nie wprowadza złych nawyków. To niechlujne programowania jest problemem. Python + TDD, i taki uczeń spokojnie pisze kod dobrej jakości (o ile jest w stanie ogarnąć domenę problemu).

@soanvig
W takim razie C jest dużo lepsze...
Nie żebym się zgadzał z poglądem, że gimnazjalista potrzebuje się uczyć jak działa komputer na podstawie języka programowania...

@hausner
Może dlatego Python jest lepszy, że gimnazjalista musi mniej umieć aby zacząć w nim pisać. A kod wysokiego poziomu to dużo mniej linijek. No i na boga nie piszcie że celem nauki języka jest poznanie składni pętl... TO JEST 2 - 3 TYGODNIE. Jeśli uczeń tego nie ogrania to tylko dlatego że nauczyciel przekazuje w zły sposób informacje....

No i pozatym jak sam zauważasz ciekawe zajęcia z infy (np. pisanie prostej gry w Python + PyGame) jest dużo skuteczniejszym nauki programowania, niż nudne lekcje typu: "A dziś drogie dzieci nauczymy się pętli FOR".

PS Tak się naprawdę da! Jeśli tylko przestaniemy myśleć, że Gimnazjalista potrzebuje poznać zakres potrzebny Studentowi....

@G.Gn7Ex
FreePascal to nie PASCAL jaki jest wymagany. To NADZBIÓR. Więc jak uczeń pojedzie FP na maturze z infy to może oblać bo pisał OOP, a tego egzaminator nie znał...
PS Python i tak jest lepszym wyborem, bo z tych dwóch to Pascal prędzej się przyda do majsterkowania, nie mówiąc o osobach, które programowanie zainteresuje...

@Morphinek
Naprawdę jestem ciekaw dlaczego PASCAL (TAK TEN PASCAL A NIE DELPHI !!!!!!!) może się przydać nie-informatykowi.
Jak niektórzy zauważyli Pascal chowa więcej detali przez programistą stąd jest łatwiejszy do nauki....

@wężowy_nieprogramista
Wygląda jak wcięć system komentarzy nie ucina :D

@kofeinowy hardkor
Kolejny który chce wcisnąć gimnazjalistom język, którego nigdy później nie użyją ( z wyjątkiem może jakiegoś staruszka profesora na uczelni), tylko dlatego, że gimnazjalista koniecznie musi umieć co to pętla.

PASCAL nawet nie ma dowolnej struktury pliku. Deklarować trzeba z góry....

Python pozwala łatwiej wyrazić myśli... (No i się przyda tym co się bardziej zainteresują infą).

@soanvig
Racja po co zaprezentować uczniom ciekawą lekcję (python + pygame np.), przecież da się im stary chłam, nauczycieli nie trzeba będzie przeszkalać, an oprogramowaniu też się zaoszczędzi. A zdolniachów i tak się zgnoi.

A do nauki myślenia programowanie NIE pasuje :P
Algorytmika lepsza, ale też w przestępnej wersji, nie to co szkoła prezentuje na matmie...

@Scottie33
Nauka logicznego myślenia to nie zadanie na infę i tu się zgadzamy :) Ale patrząc po tym co szkoła wyrabia z nauką czytania, to ratunku nie ma. Ale świadomość w środowisku musi być bo inaczej pascal w wymogach pozostanie przez kolejne 20 lat ...

przemo_li   11 #48 15.02.2012 14:19

Ja chyba napiszę wpis na blogu :)

tfl   8 #49 15.02.2012 15:37

@przemo_li

[ironia]oczywiscie, masz racje. zle nawyki to cos zupelnie innego niz niechlujne programowanie[/ironia]

  #50 15.02.2012 16:11

@przemo_li: Moim zdaniem nauka programowania i nauka *języka programowania* to dwie różne sprawy. Pierwsze kładzie nacisk na abstrakcje i teoretyczne podstawy, drugie to uczenie się używania danego narzędzia. W malarstwie można uczyć się o perspektywie, proporcjach, kompozycji i mieszaniu kolorów nie biorąc do ręki pędzla. Mając podstawy teoretyczne można później uczyć się używać pędzla, rozprowadzania farby na płótnie itp. A to, że człowiek później nie będzie używał pędzla, tylko tabletu graficznego, nie ma najmniejszego znaczenia, bo i tu i tu zastosuje te same teoretyczne podstawy.

Nie wpycham nikomu żadnego języka, podałem tylko przykład. Jak dla mnie przykłady na lekcjach można podawać w lekkostrawnym pseudokodzie, a rozwiązania od uczniów przyjmować w dowolnie wybranym przez nich nieezoterycznym języku (albo niech mają do wyboru listę kilku-kilkunastu). Mając dostępne kompilatory online (ideone.com, codepad.org) nie trzeba nawet specjalnie instalować kupy oprogramowania.

Z tego, co widzę, to właśnie Ty promujesz jeden język i uważasz, że programowania można się nauczyć pisząc gry. Pewnie, może to być miłe i dla uczniów wciągające, ale używając środowiska, które prawie wszystko zrobi za nich, zbyt wiele się nie nauczą.

  #51 15.02.2012 16:18

Jeszcze a'propos kaczego typowania - problem z nim taki, że czasami dopiero w czasie działania programu widać błędy, które mogłyby być wykryte w czasie kompilacji. Na zasadzie kaczego typowania działają szablony z C++ i jest z tym niemało problemów.

przemo_li   11 #52 15.02.2012 23:23

@tfl
1) Kacze typowanie nie rozwija złych nawyków. (A wręcz przeciwnie, zachęca do stosowania bardzo dobrych praktyk jak testy jednostkowe)
2) Niechlujne programowanie to kolejne narzędzie w przyborniku programisty. To zły nawyk gdy zawsze piszemy taki kod... A moje zdanie miało wyrażać coś takiego: kacze typowanie prędzej zachęci do niechlujnego programowania niż do wyrobienia sobie złych nawyków.

PS możesz rozwinąć jakie to złe nawyki uczą języki dynamiczne?

przemo_li   11 #53 15.02.2012 23:25

@kofeinowy hardkor
Teraz jeszcze wykaż, że tak klasa błędów ma istotny wpływ na koszt projektu ( w różnych ujęciach) + udowodnij że nie istnieją tanie i skuteczne rozwiązania tego problemu....

  #54 16.02.2012 09:08

@przemo_li:
Nie od dzisiaj wiadomo, że cena poprawienia defektu rośnie nieliniowo w stosunku do momentu, w którym dany defekt jest wykrywany. Działa to w całym przemyśle, nie tylko w programowaniu. Jeśli znajdę błąd na etapie projektu, to usunięcie go będzie kilka rzędów wielkości tańsze, niż usunięcie go po wdrożeniu produktu. Usunięcie błędu zgłoszonego przez kompilator trwa kilka chwil i kosztuje bardzo niewiele. Z kaczym typowaniem problem jest taki, że dana ścieżka wykonania, która prowadzi do wykrycia błędu, może nie zostać wywołana nawet rok po wdrożeniu. A jak już zostanie i spowoduje katastrofę, to będzie niewesoło.

Pisałeś o testach i TDD. Fajnie - tyle, że nie jesteś w stanie testami pokryć 100% ścieżek wykonania i to w sensownej cenie.

tfl   8 #55 16.02.2012 09:33

@przemo_li

Na chwile wiec odejde od ironii i zapytam zupelnie powaznie - zdajesz sobie sprawe z tego co widze, czym jest duck typing. A czy potrafisz powiedziec, gdzie ja napisalem o tym?

Napisalem o dynamicznym zmianie typu danych, majac na mysli sytuacje gdy robie tak:

$a = 2;
$a .= "asd";

echo $a;

//output 2asd

Bledem jest niedefiniowanie typow zmiennych, bo gdy program zaczyna wspoldzialac z innymi platformami to moze byc ogromne zdziwienie, gdy 2 okazuje sie stringiem, a program oczekuje int.

G.Gn7Ex   5 #56 17.02.2012 12:14

@przemo_li
"FreePascal to nie PASCAL jaki jest wymagany. To NADZBIÓR. Więc jak uczeń pojedzie FP na maturze z infy to może oblać bo pisał OOP, a tego egzaminator nie znał... "
Nie musi korzystać z Nadzbioru, poza tym FreePascal jest już kompatybilny z TP więc nawet nie trzeba korzystać OOP itp. Przykładowe programy pisane dla TurboPascala 5.5/7.0 kompilowały się na FPC i działały.

G.Gn7Ex   5 #57 17.02.2012 12:37

@przemo_li
A Ty naprawdę byłbyś za tym, aby w szkołach zamiast Pascala wprowadzać naukę Pythonał?
I nie, żebym protestował, tak pytam z ciekawości.

Wiesz, w szkole średniej na informatyce nie mieliśmy ani krzty programowania, ale ja tak tylko napisałem prosty program w Pascalu, skompilowałem, uruchomiłem(na ekranie w trybie graficznym pokazał się czerwony okrąg, zielony kwadrat, żółte linie, jakiś tekst itp.) no i dostałem piątkę. ;-] Ot i tak....
Ale do ogółu to nic nie wprowadziło, ja tylko zademonstrowałem...

Już inaczej było w szkole policealnej, gdzie na lekcji programowania strukturalnego uczyliśmy się Pascala(TP 5.5) i pisaliśmy w nim, a na lekcji programowania obiektowego - to samo, tyle że w C++...

arlid   14 #58 20.02.2012 09:05

Przede wszystkim dziękuje za ilość komentarzy. Nie spodziewałem się tylu :) Miła niespodzianka.

@alucosoftware "Spróbuj wykorzystać funkcje przyjmujące tablicę wprowadzonych elementów i zwracające wynik w postaci określonej w zadaniu"
Ciekawe spostrzeżenie, nie pomyślałem nawet o tym podczas pisania, zależało mi wtedy na czasie i sam program był przydatny pewnie przez chwilę.

  #59 20.02.2012 23:00

Pascal uczy myślenia potrzebnego do programowania,po to on jest uczony,zauważ że model języka rozbity jest oddzielnie na deklarację i definicję zmiennych i kod,gdy pisze się program,trzeba myśleć jak maszyna i tego uczy Pascal,C/C++ ma większość rzeczy skrótowo.

maximeroeske   2 #60 17.03.2012 22:35

Prawdziwi programiści nie używają Pascala :)

  #61 28.08.2012 20:44

Pascal jako język programowania jest bardzo dobry.
Używam FreePascal/ Laazrus w środowisku Fedora LXDE
Komputer staruszek Pentium M, 512 MB RAM i Dysk HD 30GB

Szybka kompilacja, 3000 komponentów, natywne programy, programy które piszę mają po 100 000 i więcej linii.

Jeśli włączam turbo w programach to przechodzę do dyrektywy asm

Łatwość tworzenia GUI

Środowisko od zaraz gotowe do pracy

Budowa raportów (wydruki) - proponuję zajrzeć pod adres http://fortes4lazarus.sourceforge.net/