Pascal - wskazówki jak się uczyć

Pascal - wskazówki jak się uczyć
M2
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:19
0

Mam taki problem. Uczę się od niedawna Pascala. Szczegółowo przerabiam kolejne rzeczy. Ale potem jak przyjdzie co do czego to nie umiem wykorzystać tego co się nauczyłem i nie mogę samodzielnie napisać programu, który wykonywałby to co chcę. Ogólnie nie umiem połączyć tego co wiem. Np. pętli FOR ze zmiennymi i warunkiem IF w połączeniu z tablicami... i to mi najwięcej kłopotów sprawia jak mam coś napisać.

"Trzeba ćwiczyć, ćwiczyć i jeszcze raz ćwiczyć" - wiem i cały czas to robię.
Ma ktoś sposób jak sobie wyrobić taką...umiejętność "widzenia" co i gdzie zapisać aby działał wedle naszego uznania?
Jakąś wskazówkę od bardziej doświadczonych.

Przerobiłem:
-wpisywanie i odczytywanie
-typy
-instrukcę warunkową IF
-instrukcje przypisywania
-instrukcja warunkowa case
-pętla for (inne pętle dopiero poznaję)
-tablice
-Procedury i funkcje (to jeszcze tak sobie)

Głównie z:
http://main.edu.pl/pl/user.phtml?op=show&page=pascal&c=40000

Ale czasem też z:
http://pascal.kurs-programowania.pl/turbo_pascal,podstawy_pascala.html

P.S. Jak wam szła nauka na początku?

edytowany 1x, ostatnio: mj28u
dam1an
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
  • Postów:1589
2

Po prostu ćwiczyć, tu chyba nie ma innej rady. Wymyślaj sobie zadania i je rób.
Co do tego jak ja się uczyłem to nie miałem problemu z ogarnięciem pętli i ifów. Chociaż gdy pierwszy raz zasiadłem do pascala w gimnazjum to tak przez tydzień, dwa było dobrze później gdy doszedłem do tablic nie ogarniałem ich, rzuciłem programowanie i wróciłem dopiero na studiach.

M2
IFy rozumiem i bez problemu ich używam, tylko czasem mam problem w pętlach, ale tak to jest okej. Właśnie zapomniałem dodać o tablicach...tu zaczęły się schody :) Ogólnie są proste...ale wykorzystanie ich...już nie tak do końca (dla mnie) :)
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Tuchów
  • Postów:12166
3

@mj28u - na Twoje pytanie nie ma idealnej odpowiedzi; Po prostu musisz ćwiczyć, wymyślać sobie algorytmy, w których wykorzystasz dany nauczony element;

Z nauką programowania jest podobnie jak z mówieniem; Najpierw człowiek uczy się prostych słówek, jak "mama" czy "tata", a później budować z nich proste zdania, np. "tata, daj na loda"; Tak samo jest z programowaniem w Pascalu - uczysz się słówek kluczowych, później budowania z nich konkretnych struktur, jak np. pętli ze słówek For, To i Do; Następnie używasz pętli do najprostszych rzeczy, później do bardziej skomplikowanych itd.; Przykłady tych prostszych i trudniejszych wariantów albo wymyślasz dla testów sam, albo próbujesz zaimplementować jakiś prosty algorytm, który jest gdzieś opisany, np. sortowanie bąbelkowe; Pętle można ćwiczyć na liczbach, znakach, wskaźnikach itd., więc wachlarz ćwiczeń jest dość szeroki;

Nauka wygląda właśnie w ten sposób - najpierw teoria, czyli nauczenie się konstruowania kodu, a później praktyka - pisanie różnych algorytmów; Jeśli nauczysz się tworzyć np. pętle, to bez względu na to, jaki kod jest Ci potrzebny, pętle będziesz umiał zaimplementować, bo znasz już jej konstrukcję i działanie;


Mnie tam Pascal na początku jakoś zainteresowania nie wzbudzał; To był pierwszy język programowania, jakiego się uczyłem; Było to dopiero w technikum, więc późno, ale uczyć się trzeba było, aby ładną ocenę uzyskać; Programowaniem zainteresowałem się bardziej, jak w drugiej klasie technikum zabraliśmy się za C++ - wtedy bez problemu potrafiłem w nim napisac proste programy, bo znałem już podstawy Pascala z pierwszej klasy; Jedyne co było inne, to składnia kodu i tylko tego trzeba było się nauczyć; Wtedy już bardziej rozumiałem programowanie i pisanie programów dawało więcej radości;

A potem to już poleciało - zostawiłem C++ z powrotem na rzecz Pascala; W nim pisałem sobie różne programy, ucząc się już samemu z materiałów z sieci; Potem przyszedł czas na Delphi (czwatra klasa technikum), którego uczyłem się, aby jego wykorzystać na maturze z informatyki; Delphi nauczyć się było łatwo, dlatego że to rozwinięcie starego Pascala, więc składnia praktycznie taka sama, ale bardziej rozbudowana, no i nowość jaką jest programowanie obiektowe i tworzenie aplikacji okienkowych; I tak w kolejnych latach dłubałem sobie w Delphi, aż w 2011 roku przysiadłem konkretniej przy Delphi, i zacząłem się go konkretniej uczyć; Do dziś uczę się obiektowego Pascala (odszedłem od Delphi, na rzecz Lazarusa z kilku powodów), tworząc różne programy (głównie użytkowe) i tak już w najbliższych latach zostanie; Nie planuję póki co nauki innego języka, bo nie jest mi to do niczego potrzebne - przyszłość wiążę właśnie z Object Pascalem;


Podsumowując - jedyne co można Tobie @mj28u polecić, to solidną naukę podstaw i pisanie milionów nikomu niepotrzebnych programów, do testowania zdobytej wiedzy; Później przyjdzie czas na coraz większe i sensowniejsze programy, ale musi minąć trochę czasu - tak już z programowaniem jest, że nie można się nauczyć programować w danym języku w dwie noce;

No i nie zapomnij o nauce najnowszego Pascala; Pobierz sobie jedno z najnowszych środowisk i ucz się z aktualnych źródeł; Ze środowisk polecam Lazarusa z FPC, w którym możesz pisać zarówno strukturalnie, jak i obiektowo; Do tego Lazarus jest dobrym środowiskiem, posiada dużo przydatnych narzędzi - ogólnie pisząc, środowisko warte uwagi; Tym bardziej, jeśli nie stać Cię na zakup licencji na środowisko od Embarcadero; Z kursów dotyczących podstaw programowania, polecam Kompendium Delphi7 z tego serwisu; Śmiało możesz się z niego uczyć, bo składnia do tej pory w znacznym stopniu się nie zmieniła; A jeśli czegoś nie będziesz wiedział, to w sieci znajdziesz dokumentację, w której praktycznie wszystko jest opisane (przynajmniej najważniejsze rzeczy odnośnie danego zagadnienia);

Poza tym polecam przeglądać to forum i wątki, które dotyczą Pascala i Delphi; Obserwuj, jak dane algorytmy rozwiązują pytacze i jak przekształcają je bardziej doświadczeni - nauczysz się (mam nadzieję) dobrych praktyk, zobaczysz jak pisać dobry kod, jak go optymalizować itd.; Sporo można się nauczyć, czytając wątki na forum i artykuły w odpowiedzim dziale serwisu;


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 1x, ostatnio: flowCRANE
Zobacz pozostały 1 komentarz
flowCRANE
Ucz się powoli, każdą nowo wyuczoną teorię przećwicz wieloma testami - dzięki temu nie dość że będziesz dany element rozumiał, to jeszcze nauczysz się go wykorzystywać w różnych celach; Jednak przyzwyczaj się do tego, że z jakimś małym problemem możesz się długo użerać - to normalne, bo nie wszystkie bugi znajduje się od razu; Wybrałeś bardzo dobry język na początek, więc nie poddawaj się - prędzej czy później wszystko zrozumiesz ;)
M2
http://pascal.kurs-programowania.pl/turbo_pascal,podstawy_pascala.html Przerobienie tego co tu jest to już dużo? Jest jakaś fajna stronka z ćwiczeniami? Bo wymyślając sam za dużo nie poćwiczę. :) Z niektórych stron już robiłem i dobrze mi szło. Ale może jest gdzieś strona gdzie jest dużo i dobre ćwiczenia są. :)
flowCRANE
Nie ucz się Turbo Pascala, tylko Delphi/Object Pascala, dlatego że w starym Pascalu nic sensownego nie napiszesz; Delphi/Object Pascal posiada taką samą składnię (to rozwinięcie starego, strukturalnego Pascala), ale możesz w nim tworzyć prócz programów konsolowych także aplikacje okienkowe, biblioteki DLL, komponenty itd. itd.; Do nauki podstaw Delphi (i nie tylko podstaw) masz nasze http://4programmers.net/Delphi/Kompendium;
M2
Okej, myślałem, że to bez różnicy.(mogłem poczytać). Jeśli chodzi o środowisko to może być Lazarus tak?
flowCRANE
Jeśli nie chcesz pracować na piratach lub nie masz kasy na środowisko Borlanda/Embarcadero, to Lazarus jest najlepszym z darmowych rozwiązań i polecam go zarówno do nauki, jak i pisania większych, sensowniejszych aplikacji;
olesio
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

W Pascalu stosujemy w odnieśieniu do tablicy w pętli zapis, w mniej więcej takim stylu Tablica[ZmiennaIteratoraPetli] := ...; . Gdyż nie wiem czego dokładnie nie rozumiesz. Podaj konkretnie co sobie założyłeś jako własne zadanie i kod, który już masz. To będzie można więcej coś pomóc konkretnie. Ponieważ tak, to niewiele wiemy. Wróżbita Maciej ma forum gdzie indziej ;/


Pozdrawiam.
edytowany 1x, ostatnio: olesio
LU
  • Rejestracja:około 11 lat
  • Ostatnio:2 dni
  • Lokalizacja:Gdańsk
0

Ja też wybrałem Pascala na początek i nie żałuję. Wszystko było jasne i klarowne w nim.
Z tego co pamiętam to miałem z początku problemy ze zrozumieniem pętli repeat-until i while-do
ale trochę posiedziałem,pomyślałem i zrozumiałem. Po opanowaniu Pascala udało mi się pare gierek
napisać np snake czy tetris. A w ogóle moją pierwszą grą żeby zrozumieć działanie pętli były w trybie
tekstowym spadające ascii i trzeba było omijać je :D


M2
Ja wybrałem Pascala, bo mój nauczyciel poradził mi abym na początek się go nauczył bo potem łatwiej w C czy C++ :) Trudno jest napisać snake'a czy tetrisa w Pascalu?
flowCRANE
Tu masz Snake'a w trybie tekstowym mojego autorstwa - http://4programmers.net/Forum/Off-Topic/Oceny_i_recenzje/234190-snakeascii_czyli_kultowy_waz_w_specyficznej_tekstowej_formie - pobierz sobie źródła i sprawdź; Co prawda jeszcze w niego nie pogra, ale budowany jest ze znaków ramek, co wygląda w miarę dobrze; Kiedyś go rozwinę do tego stopnia, że będzie można pograć, ale kiedy dokładnie to nie wiem ;)
spartanPAGE
w brainfucku jest trudno. We wszystkim innym to kluseczkarstwo
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)