Programowanie · algorytm · język programowania – zbiór słów wyrażających algorytm · program – algorytm przedstawiony za pomocą języka programowania · programowanie – sztuka pisania programów · programista/programistka – artysta/artystka Języki programowania: a) symboliczne (asemblery) (0001010011101…) b) wysokiego poziomu (mniej zależne od sprzętu) · interpretery (np.: batche; DOS – interpreter – interpretuję linijkę po linijce) · kompilatory (program źródłowy jest zamieniany (kompilacja) do postaci wykonywalnej, np.: *. pas *. exe PASCAL – JĘZYK PROGRAMOWANIA Nicolas Wirth – 1971 – twórca Pascala Borland Turbo Pascal 7.0 Delphi – Pascal for Windows Tomasz Sadowski: "Praktyczny kurs Turbo Pascala" Program w Pascalu: · opcjonalnie nagłówek: Program ; · średnik na końcu każdej instrukcji; · na początku Begin – bez średnika · na końcu End. – z kropką! · słowa kluczowe należy pisać w jednym stylu Słowa kluczowe: · And · Array · Begin · Case · Const · Div · Do · Downto · Else · End · File · For · Function · Goto · If · In · Label · Mod · Nil · Not · Of · Or · Packed · Procedure · Program · Record · Repeat · Set · Then · To · Type · Until · Var · While · With Instrukcje: · "_" oznacza spację · napisz – Write_(''); formatowanie wyjścia: - WriteLn (s[n]); – wyświetla n-ty element łańcucha s) - a:=5; Write (a:3); __5 - a:=5,9128367192837 Write (a:3:2); gdzie 3 oznacza dozwoloną długość liczby (3 pozycje), a 2 – ilość miejsc po przecinku na jakiej może zostać zapisana liczba 5,91 - a:='Ala ma kota' Write (a:20:3); gdzie 3 nie ma sensu!, a 20 oznacza liczbę miejsc, na których zostanie zapisane coś _________Ala ma kota · napisz + znak końca akapitu – WriteLn (''); · wczytywanie czegoś – Read (x); · wczytywanie czegoś + przejście do następnej linijki – ReadLn (x); · używa biblioteki – Uses ; · kolor tekstu – TextColor (); · kolor tła – TextBackground (); · migający napis – TextColor ( + Blink); · przejście do jakiegoś punktu na ekranie – GoToXY (x,y); – gdzie x i y to współrzędne (25 wierszy, 80 kolumn) · przejście do etykiety: Label , ; GoTo ;: · czyszczenie ekranu – ClrScr; · stałe – Const =; gdzie za można podstawić np.: liczbę z kodu ASCII (American Standard Console Information…) z zakresu 0-255 (np.: Wyjście=#27;) · zmienne – Var :; gdzie x może być zmienną typu: - Byte – 0-255 (8 bitów – tak/nie) - Word – 0-65535 (16 bitów) - Integer – –32768-+32767 (16 bitów) - Longint – –2147483648-2147483647 (32 bity) - Real – liczby rzeczywiste – 2,9E–39-1,7E38 (6 bajtów) - Extended – 3,4E–4932-1,1E4932 (10 bajtów) - Char – pojedynczy symbol - String – łańcuch (max 255 znaków) - String[] – łańcuch (max znaków) - Boolean – typ logiczny, który przyjmuje dwie wartości: True albo False · instrukcja przypisania :=, gdzie coś musi być zgodne z typem zmiennej · instrukcja warunkowa: If Then [Else ]; - po THEN może wystąpić cały szereg instrukcji, a nie jedna, wtedy trzeba je ograniczyć z jednej strony słowem Begin a z drugiej End; (ze średnikiem) · pętle: - For := [Down]To Do ; – dla zmiennej takiej i takiej wykonaj to i to - Repeat Until ; – jeśli warunek jest spełniony, to pętla się kończy, (np.: Repeat Until KeyPressed;) - While Do ; – dopóki warunek jest prawdziwy, to coś jest wykonywane; jeśli nie, to kończy · komentarz – {} lub (**) · opóźnienie działania programu – Delay (); · zn:=ReadKey – funkcja, która czeka na naciśnięcie klawisza · Window (x1,y1,x2,y2); – robi okienka (tło), gdzie x1 i y1 to współrzędne jednego z rogów okna, a x2 i y2, to współrzędne przeciwległego rogu · Sound (n); gdzie n<20, 20000>[Hz] (?) · Delay (n); opóźnia działanie programu (opóźnienie w milisekundach) · NoSound; – brak dźwięku · Chr(x:Byte):Char – wskazuje jaki znak kodu ASCII odpowiada danej liczbie · Ord(x):LongInt – wskazuje, jaka liczba odpowiada danemu znakowi w kodzie ASCII · Round – zaokrąglenie · Trunc – wyświetla liczby przed przecinkiem · Frac – wyświetla liczby po przecinku · Abs – wartość bezwzględna · Int – cecha liczby · Pi – wyświetla liczbę Pi · Sqr – kwadrat liczby · Sqrt – pierwiastek kwadratowy liczby · Dec(x[;n:Longint]) – dekrementacja, zmniejszenie o 1 lub liczbę podaną po średniku · Inc(x[;n:Longint]) – inkrementacja, powiększenie liczby o 1 lub liczbę podaną po średniku · Halt – wstrzymuje działanie programu · Exit – wychodzi natychmiast z bieżącego bloku · Break – przerwanie pętli For, Repeat lub While · Continue – kontynuowanie pętli For, Repeat lub While · $x – x – liczba w systemie szesnastkowym · KeyPressed:Boolean – funkcja określająca czy został naciśnięty jakiś klawisz; może po niej wystąpić funkcja ReadKey:Char, która odczytuje naciśnięty klawisz · xE[-]n = x * 10[-]n · Val – zamienia łańcuch na liczbę (procedura) · Str – zamienia liczbę na łańcuch (procedura) · Randomize; – procedura · Random (n) – funkcja, gdzie n oznacza koniec zakresu liczb, z których będzie losowana liczba (np.: j:=Random (123) oznacza, że komputer będzie losował liczbę z zakresu od zera (włącznie) do 123) · Type – deklaracja własnego typu zmiennych · Array [1..100] of Integer – tablica elementów z zakresu 1-100; w programie, aby wywołać któryś z elementów tablicy (np.: tablicy (a)), piszemy np.: a[1]:=5; tablice mogą być także dwuwymiarowe, wtedy w deklaracji wpisujemy (przykład) x:Array [1..10,1..10] of Real; · do własnego typu można także wpisać typ wyliczeniowy, np.: DniTygodnia=(pn,wt,sr,czw,pt,so,nd); gdzie kolejność elementów jest ważna i są one „numerowane” od 0 wzwyż; · Succ (a) – (funkcja) zwiększenie o jeden (w tablicy); – ma sens dla zmiennej typu Byte · Pred (a) – (funkcja) zmniejszenie o jeden (w tablicy); – ma sens dla zmiennej typu Byte · Record – deklaracja własnego typu składającego się z kilku elementów, zakończona słowem End; np.: Type Osoba=Record imię:String; wiek:Byte; płeć:Boolean; End; podczas wywoływania jednego z elementów bazy danych, wpisujemy nazwę tej bazy (np.: x), następnie piszemy kropkę i po kropce wpisujemy nazwę elementu, do którego chcemy się odwołać; np.: x.imię:=Jasiu; można także wpisać With x Do imię:=Jasiu; · Case (zmienna) of (wartość 1.): Begin.... End; (wartość 2.): Begin.... End; Else (polecenie) End; jest to procedura wykonująca jakąś inną procedurę(y) w zależności od wybranej wartości; lista wartości jest nieograniczona, ale powinny one być unikalne; · deklaracja procedury: Procedure Yamyam (x:Byte, Var y:Longint) Begin ... End; gdzie x i y są zmiennymi lokalnymi, a y może się zmieniać podczas wykonywania programu; · deklaracja funkcji tak jak deklaracja procedury, tylko z Function; · rekurencja – określanie wartości n przy pomocy (n-1), należy przy tym określić jeden z krańców