background image

Języki programowania

 

Wykład 1 

1.  Język programowania – sztuczny język składający się ze skończonego zbioru reguł zwanych 

składnią. Służy do przygotowywania poleceń dla komputera 

2.  Programowanie – umiejętność pisania programów i umiejętność rozwiązywania problemów 
3.  Program komputerowy – zbiór ułożonych w odpowiedniej kolejności rozkazów, z których 

każdy reprezentuje elementarną operację. 

4.  Większość programów powstaje w formie kodu źródłowego utworzonego za pomocą edytora 

plików tekstowych. Kod źródłowy jest następnie interpretowany lub kompilowany na język 
maszynowy faktycznie wykonywane przez komputer. 

5.  Definiując dowolny język programowania należy podać: 

a.  Zbiór dopuszczalnych znaków 
b.  Reguły tworzenia poprawnych zdań 
c.  Reguły interpretujące znaczenie poszczególnych słów 

6.  Przykłady języków programowania: 

a.  Język maszynowy, asembler, Fortran, C, C++, C#, Pascal, Java, PHP 

7.  Poziom języka: 

a.  Języki wysokiego poziomu (BASIC, C, Pascal, C#) 
b.  Języki niskiego poziomu (asembler, język maszynowy) 

8.  Języki niskiego poziomu: 

a.  Najbardziej efektywne 
b.  Trzeba znać architekturę systemu komputerowego oraz działanie mikroprocesora 
c.  Bardzo czasochłonne 

9.  Język maszynowy: 

a.  Ciąg zer i jedynek 
b.  Można heksadecymalnie upraszczać (76 z 0111 0110) 

10. Asembler: 

a.  Każdy procesor ma swój własny język asembler 
b.  Jeden rozkaz w asemblerze odpowiada jeden rozkaz w języku maszynowym 
c.  Mnemonik – rozkaz w asemblerze (zastąpienie binarnego) 
d.  Tłumacz (translator) to też asembler 
e.  Trudne 
f.  Pełne wykorzystanie możliwości komputera  
g.  Wykonywane bardzo szybko i zajmują mało miejsca w pamięci 

11. Języki wysokiego poziomu: 

a.  Przypominają język naturalny (słowa i składnia) 
b.  Każdemu poleceniu w j. wysokiego poziomu odpowiada ciąg poleceń w j. maszynowym 
c.  Tłumaczenie dokonuje się podczas procesu kompilacji 
d.  Kompilacja – tłumaczenie na j. maszynowy za pomocą programu tłumaczącego 

(kompilatora) 

e.  Zajmują więcej miejsca i wykonuje się wolniej 

 

background image

12. Przykładowy rozkaz w asemblerze: 

 
EB03     JHP SHORT NEXT 
EB – z heksadecymalnego kod operacji 
03 – przesunięcie o 3 kroki 
JHP – mnemonik 
SHORT NEXT – argument 

13. Rodzaje języków programowania: 

a.  Proceduralne (C, Pascal, Fortran) – zapisuje się procedury, które wykonuje komputer  
b.  Deklaratywne (COBOL, PROLOG, LISP, SQL) – wyszukuje danych w oparciu o pytania 
c.  Obiektowe – tworzysz interfejs bardzo łatwo, gotowe obiekty 

14. Procedura – moduł programu wykonujący określone zadanie (program mogący działać 

samodzielnie) 

15. Podstawy Turbo-Pascala 

 

TP i BP umożliwia: 

- edycję programów 
- kompilację programów 
- uruchamianie programów 
- śledzenie programów 

 

Zbiór znaków: 

- rozróżnia A…Z, a…z 

 

- kreska _ 

 

- cyfry 

 

- znaki specjalne np. spacja 

 

- {komentarz} 

 

- @ adresy obiektów 

 

- $ stałe 

 

- # numer znaku w tabeli ASCII 

 

- znaki sterujące z kodu ASCII od 0 do 31 

 

- := przypisanie 

 

- <>   <=   >=   operatory relacji 

 

- słowa kluczowe 

 

- dyrektywy np. index 

 

Identyfikatory – ciąg liter i cyfr zaczynający się od litery (do 63 znaków). Służą do oznaczania 
w programach stałych, zmiennych itd.  

 

Liczby (całkowite, rzeczywiste) 

o  $A – 16-stkowo 
o  #127 – znak ASCII 127 

background image

o  # $ 75 – znak ASCII 16-stkowo 

 

Łańcuchy – ciąg znaków 

 

Literały logiczne (true, false – wartości logiczne) 

 

Komentarze i separatory   {….} // spacja, ENTER 

16. Struktura programu; 

PROGRAM Nazwa_Programu; {Nagłówek programu} 
USES {Deklaracja modułów} 
 
{Początek części opisowej} 
LABEL    - etykiety, definiowanie ich 
CONST  - definiowanie stałych 
TYPE   - definiowane typy (zbiór wartości, które mogą przyjmować zmienna danego typu) 
VAR   - definiujemy zmienne 
PROCEDURE   - definiowanie procedur 
FUNCTION   - definiowanie funkcji 
{Koniec części opisowej} 
 
BEGIN 
{Część wykonawcza programu} 
END.                                                                          {Musi być kropka} 
 
 
 

Wykład 2 

1.  Console Application      Struktura 

 
PROGRAM Nazwa 
{$APPTYPE CONSOLE} 
USES {deklaracja modułów} 
SysUtils 
LABEL {…… część opisowa} 
BEGIN 
{treść programu} 
END. 
 

2.  Deklaracja modułów 

USES – umożliwia zdefiniowanie dowolnej liczby modułów np. crt, dos, graph 
Moduły służą do grupowania funkcji i procedur w biblioteki oraz umożliwiają niezależne 
pisanie poszczególnych 

3.  Deklaracje etykiet: 

LABEL – deklarujemy zaraz po deklaracji modułów. Powodują one skok do określonej 
części programu 
(GOTO) np. 
LABEL skok_1,2; 
BEGIN 
GOTO skok_1; 
…… 
END. 

4.  Definicja stałych: 

background image

Stałe (CONST) – po label, przypisanie stałej wartości. NIE może być zmienna w programie. 
Gdy złożona to definiujemy. 

a.  CONST MaxWysokość=100; 
b.  CONST MaxWysokość:integer=1000; 
c.  CONST MaxWysokość:real-50; 

x:byte=12 

5.  Deklaracje typu (TYPE) 

Typ – zbiór wartości jakie może przyjmować zmienna (standardowe – predefiniowane, 
niestandardowe – wprowadzane rędznie do złożonych) 
BYTE = {0,1,2,…..,255} 
TYPE Dzien=(pon,wt,sr,czw,pt,sob,nie); 
x=real; 
Numer=Integer 
Wacek=array [1..10] of real 
Array  tablica 

6.  Deklaracje zmiennych VAR 

Deklarujemy zmienne, które muszą być zdefiniowane 
W C++ rozróżniamy duże litery 
 
VAR  
   Wynik,y,z: Byte; 
   I:integer; 

7.  Definicje procedur i funkcji 

PROCEDURE a FUNCTION – różnica składni 
Jednoznaczna nazwa 
Ustalony sposób wymiany informacji 
Służą do tego (wyizolowane) i można je wielokrotnie używać i można uczynić program 
bardziej przejrzystym 
FUNCTION – ma zwrócić wartość (zazwyczaj 1) 
PROCEDURE – zwracana wartość ma złożoną strukturę 
 
Definicja procedury: 
PROCEDURE Nazwa (lista parametrów);  ale można pominąć 
{Część opisowa} 
BEGIN 
{ciągi instrukcji} 
END. 
 
Deklaracja funkcji: 
FUNCTION Nazwa (lista parametrów); 
{część opisowa} 
BEGIN 
{ciąg instrukcji} 
Nazwa:=a; //lub Result:=a; 
END. 

8.  Typy danych i ich opis 

Każda zmienna w programie ma swoją nazwę (identyfikator) i przyjmuje wartość z 
określonego zbioru: Typu 

a.  Typy proste 

 

Porządkowe – każdy element ma swój następnik 

background image

o  Wyliczeniowy 
o  Całkowity 
o  Logiczny 
o  Znakowy 
o  Okrojony 

 

Typy rzeczywiste – między 2 dowolne liczby można wstawić kolejną 

b.  Łańcuchowe – reprezentacja zbiorów znaków (łańcuchów) 
c.  Strukturalne – łączy w całość typy proste 

 

Tablicowe – jednakowe typy 

 

Rekordowe – różne typy 

 

Zbiorowe – obliczenia wyniki 

 

Plikowe - jego elementy przyjmują ograniczone wartości. Zmienna 
przyjmuje wartość 1 lub (..?) 

d.  Wskaźnikowe – przypisanie adresu, dwojaka informacja o elemencie (jaki 

typ)+(adres elementu) 

e.  Proceduralne – posługiwanie się procedurami jak zmiennymi 
f.  Obiektowy – mamy powiązane ze sobą struktury danych i funkcje, które na nich 

operują (różnica „f” i „a”-„e”) 

9.  Typy proste 

Bardziej złożone struktury (tablice, rekordy) 
Skończony, uporządkowany zbiór wartości 
Wykonujemy operacje porównywania 
a.  Porządkowe – następnik i poprzednik 
b.  Rzeczywiste 

 

Typ wyliczeniowy – max 256 elementów 

TYPE identyfikator=(lista); 

Elementy uporządkowane (ponumerowane 0,1…….n-1)    n – liczba elementów 

 

Typy całkowite – predefiniowane 

ShortInt od -128 do 127 

Byte  od 0 do 255 

Integer  od-32768 do 32767 

Word  od 0 do 65535 

LongInt   duuuużo 

 

Type 

XX=integer 

VAR 

i,j:XX; 

k:Integer 

 

Typy logiczne (Boolean, ByteBool, WordBool, LongBool 

background image

True = 1 

False = 0 

 

Typ znakowy  char – znaki ASCII, ramki, okienka 

 

Typ okrojony  
TYPE nazwa = stała 1 … stała 2; 
Np. 
TYPE 
Litery = „A”.. „Z” 
Zakres = 0 .. 100 

 

Typ rzeczywisty 
Real 
Single – 4 bajty 
Double – 8 bajtów 
Extended – 12 bajtów 
Comp   od -2

63

+1 do 2

63

-1 

10. Typy łańcuchowe 

Reprezentowane ciągiem znaków 
TYPE nazwa = string [rozmiar];   np. 20 

11. Typy strukturalne  

Opis obiektów złożonych 
Podajemy typy składowe i metodę strukturyzacji + określony sposób dostępu 
a.  Tablicowy – elementy są identyczne pod względem typu 

(łańcuchowe, proste, strukturalne) 
Dostęp do elementów poprzez podanie indeksu 
Indeks typu porządkowego 
Określony zakres 
TYPE nazwa = array [typy_indeksowe] of typ_składowy; 
Np. 
TYPE 
V=array [1..5] of integer; 
Macierze = array [1..20, 1..30] of real; 
VV=array [1..10] of V       typ uprzednio zdefiniowany typeception  (5 wersów i 10 
kolumn)  

b.  Typ rekordowy 

Elementy = pola 
Różne elementy 
Poszczególne pola mogą być elementami złożonymi 
Typ i identyfikator 
TYPE nazwa = record 
{lista deklaracji pól składowych} 
End. 
Np. 
TYPE Data = record 
Rok:Integer; 
Miesiąc: 1..12;         (typ okrojony) 
Dzień: 1..31; 
End. 

c.  Typ zbiorowy  

1 el. <= 256 
Zbiór potęgowy danego typu porządkowego 

background image

Zbiór potęgowy – zbiór wszystkich podzbiorów + zbiór pusty 
TYPE nazwa = set of typ_porządkowy 
Np. 
TYPE Klasy = set of (1a,1b,1c,1d,1e) 

d.  Typ plikowy 

Ściśle powiązane z plikami 
Liczba elementów uzależniona od przebiegu wykonywania i skojarzenia pliku z 
fizycznymi zbiorami danych 
Tablica – metoda dostępu do elementu – Indeksy 
Plik – metoda dostępu do elementu – funkcje np. seek 
TYPE nazwa = file of opis_typu  (np. byte, integer) 
Np. 
Text – plik tekstowy predefiniowany 
Przykład typów plikowych 
TYPE 
Dane = file of Integer; 
Zbiór = file; 
Wynik = Text;  //lub TextFile (Delphi) 
F = file of record 
Rok: integer 
Miesiąc: 1..12; 
Dzień: 1..31; 
End. 

12. Typ wskaźnikowy – istnieje przez cały czas wykorzystywania części programu 

Są to tzw. ZMIENNE STATYCZNE 
ZMIENNE DYNAMICZNE – dzięki wskaźnikom 
a.   

TYPE a=real; 
 TYPE WWW=6666;  
           6666=record 
Tekst: string [50]; 
Liczba: Integer; 
End. 

b.  VAR aaa:WWW; 

Definiuje na wzór wskazań, które są typu.  
 
 

Wykład 3 

1.  Procedury i funkcje mogą być traktowane jako: 

a.  Część programu wykonywana na skutek wywołania  
b.  Elementy, które mają być przypisywane do zmiennych i przekazywane do innych funkcji 

lub procedur jako (ponenety???) 
TYPE nazwa = procedure (lista_parametrów); 
TYPE nazwa = function (lista_parametrów); 
Przykład: 
TYPE 
   YY=procedure (x,y:Byte,var z) 
   FF=function (x,y:Byte):Boolean 

2.  Typ obiektowy 

Obiekt – złożona struktura o ustalonej liczbie elementów składowych 

background image

 
Każdy element – pole (dana) i metodę (procedura lub funkcja) 
Elementem opisującym operację wykonywaną na danych obiektach 
POLE – (specyfikacja): typ i identyfikator 
Opis metody składa się z: nagłówka procedury (funkcji). Konstruktora lub destruktora. 
OBJECT ….. END 
TYPE nazwa_typu object (opcjonalny element)  dziedzictwo 
Listy 
End. 

3.  Dziedzictwo – identyfikator innego, zdefiniowanego wcześniej typu obiektowego. Jeśli 

element ten wystąpi, to definiowany typ dziedziczy wszystkie elementy podane w definicji 
typu obiektowego. 
TYPE identyfikator_typu=object (dziedzictwo) 
Lista_deklaracji_pól 
Lista_deklaracji_metod 
Sekcje_list 
End. 
Przykład: 
TYPE punkt=object 
x,y:integer 
 end; 
TYPE piksel=object(punkt)      zawiera punkt 
End. 

4.  Zmienne 

VAR 
a.  Zdefiniowane na zewnątrz procedur (funkcji) = GLOBALNE 
b.  Zdefiniowane wewnątrz procedur (funkcji) = LOKALNE 

TYPE 
P=real     typ wskaźnikowy 
Punkt=record   typ rekordowy 
X:real 
Y:real 
End; 
W=array[1..10;1..20] of real 
VAR 
X,Y,Z:real; 
A,B:W 
aa:string[10] 
Q:P;             przypisanie do P 
ss:Punkt;      przypisanie do Punkt  

5.  Wyrażenia 

 

Argumenty 

 

Operatory: (wg priorytetu) 

a.  +, -(zmiany znaku), @ (adres zmiennej), NOT 
b.  *, /, DIV (dzielenie całkowite), MOD (reszta z dzielenia), AND, SHL, SHR(przesunięcie o n 

bitów left, right) 

c.  + (suma), - (różnica), OR, XOR 
d.  =, <>, <, >, <=, IN (zawiera się – logiczny) 

6.  Instrukcje – czynności wykonywane na danych 

a.  Proste – bez instrukcji – składowych 

 

Przypisania, skoku, puste, inline, wywołania procedury 

background image

 

Przypisania     A:=1 

 

Skoku   GOTO 
PROGRAM AAA 
LABEL e1; 
BEGIN 
GOTO e1; 
e1:x:=a+2 
END. 

 

Pusta    ; 

 

Wywołania procedury 
Nazwa_procedury (lista_parametrów); 
Np. 
Oblicz; 

 

b.  Strukturalne 

o  Złożone  

BEGIN 
….. } n instrukcji 
END. 

o  Warunkowe 

If …… then 
Case …. Of 

o  Iteracyjne 

For ….. do 
While …. Do 
Repeat  …. Until 

o  Wiążące 
o  Asemblerowe 

7.  Instrukcja wyboru 

CASE  znak OF 
   „+”:BEGIN x:=x+1; z:=z-1; END; 
   „-„ :BEGIN x:=x-1;  z:=z+1; END; 
Gdy znak ≠ + 1 znak ≠ -  end 
Lub else 
Może być też przedział np. 710 
 
FOR  TO 
FOR  DOWNTO 
Np. 
FOR i=1 TO i=10 DO   Begin …. End; 
FOR i=10 DOWNTO i=11 DO ….; 
Przykład: 
Oblicz iloczyn A

4x4

, B

4x4

, C=AxB 

C

ik

=∑

 

  

   

  

 

   

 

(Tu mnożenie macierzowe wiersz pierwszego razy kolumna drugiego daje pierwszy wyraz 
wyniku) 
For i:=1 to 4 do 
   For k:=1 to 4 do 
      For j:=1 to 4 do 
         C[i,k]=C[i,k]+a[i,j]*b[j,k] 

8.  Instrukcja wiążąca: 

background image

WITH lista_zmiennych DO instrukcja 
Np. 
Liczba zespolona: Record 
Re,im:REAL; 
END; 
WITH liczba_zespolona DO 
BEGIN 
Liczba_zespolona.re:=5 
Liczba_zespolona.im:=2 
END; 
Ułatwienie operowania na złożonych strukturach danych np. rekord 
 
Dla asemblera 
ASM 
Instrukcje_asemblera 
END                           Funkcje i procedury 
 
 

Wykład 4 

1.  Lista parametrów formalnych określa sposób w jaki lista ma być zastąpiona listą parametrów 

aktualnych przy wywołaniu funkcji lub procedury 
a.  Przez wartość (można na niech określać) 

Procedure obl     parametry formalne 
//Wywoła 
Obl (a, y+k, sqrt(w), j+5);     parametry aktualne 

b.  Przez stałe (określonego typu) 

Function Silnia (const n:byte) longint 
Var i:byte; 
Begin  
Silnia:=1; 
For i:=1 to n do Silnia=Silnia*i; 
End; 

c.  Przez zmienne (z nich uzyskuje się informacje) 

Var: a:longint;  (deklaracja globalna) 
Procedure obl_silnie (n:byte; var s:longint) 
Var i:longint (deklaracja lokalna) 
Begin 
S:=1 
If n<=12 then for i=1 to n do S:=S*1 else S:=-1 
End; 

2.  Dane (wprowadzanie) Pamięć operacyjna(przetwarzanie) Procesor(Wyprowadzanie) 

Port wyjściowy elementu 
Do obsługi fizycznych danych = pliki 

3.  Pliki: 

a.  Zdefiniowane 
b.  Niezdefiniowane 
c.  Tekstowe 

 
 
 

background image

Np. 
TYPE  
R=File of real; 
Z=File of record 
   Re,im:Real 
End. 
 
TYPE 
ZZ=File; 
File of text 
 
Dostęp do pliku – zmienna plikowa 
TYPE 
R=File of real 
Z=File of record 
   Re,im:Real 
END; 
 
Var 
F:tekst 
Zbiór:R; {Zbiór: File of real} 
AA: File of integer; 
Zbiorek: Z; 
ZZ: file;  
Zmienna plikowa skojarzona z fizycznym zbiorem danych 
F:tekst;   Assign np.  Assign(F,’Dane’) 

4.  Tworzenie, otwieranie I zamykanie pliku 

a.  Tworzenie 

Rewrite (F) – fizyczne utworzenie na dysku 
Rewrite (FFF, rozmiar) 

b.  Otwieranie 

Reset (F)   lub Append (T)  tylko tekstowe 

c.  Zamykanie 

Close (T) – zamykanie 

d.  Write, read – wpis/odczyt – zdefiniowane 
e.  BlockWrite, BlockRead (T, bufer, licznik, rezultat) – niezdefiniowane 

5.  Pliki tekstowe 

Eof    End of file 
Eoln   End of line 
a.  Zdef: 

Eof; FileSize (w bajtach) 
File Pos(pozycja w pliku) 
Seek (ustawienie położenie zbioru na elemencie określonym przez pozycja = longint) 

b.  Erase (F) – usuwanie 

Podstawa programowej modyfikacji 

c.  Grupowanie procedur i funkcji bibliotek 
d.  Dzielenie dużych programów na powiązane logicznie części 
e.  Unit „nazwa” 

Interface def+dek } cz. Opisowa 
Implementation   } cz. Implementacyjna 
End  }cz. Inicjująca 

background image

 

Wykład 5 

1.  Object Pascal 

a.  Hermetyczność 
b.  Dziedziczność 
c.  Polimorfizm 

2.  Hermetyczność – zamknięcie w jednej całości dwóch kategorii; struktur danych i funkcji, 

procedur (kodów) dotyczących działań na strukturach danych 
Deklaracje „private” i „public”  ukryte 
Struktury danych = własność 
Kody programów = metody 
Obiekt może korzystać z metod i własności innego obiektu, ale metody 1 obiektu 

3.  Dziedziczność obiektowa umożliwia przyspieszenie definiowania potomstw istniejących 

obiektów 
a.  Potomek dziedziczy własności i metody, więc musimy tylko określić różnice w stosunku 

do poprzednika 

b.  Oprogramowanie własności i metod (?) 
c.  Zmiana w całej klasie 

o  W obiekcie nadrzędnym z którego reszta dziedziczy 

4.  Polimorfizm umożliwia tworzenie w obiektach potomnych metod o takich samych nazwach, 

jak w obiektach nadrzędnych, ale wykonywujących różne czynności: 
a.  Środowisko zintegrowane 

o  Edytor 
o  Debuggera 
o  Projektor formularzy 

Cały kod w modułach 

5.  Klasy – deklaracja klasy odbywa się przez deklarację naszego typu danych 

Unit 
Interface 
TYPE moja_klasa=class 
Procedury 
End; 
Zaimplementować 
Procedure moja_klasa.p1 
Begin 
End; 
Showmessage(‘tekst’) 
 
Wyszukiwanie   CTRL+SPACJA 
 
Potomek=class(protoplasta) 
Kod: 
Procedure TForm1.ButtonClick(Sender:ToObject) 
X:=MK1.Create;        przyporządkowanie pamięci operacyjnej 
Y:=MK2.Create; 
Wywołanie //x.p1 
 
 
 
 

background image

6.  Wybór kolorowych paneli 

Var c:integer 
Begin 
If Form1.ColorDialog1.Execute then 
  Begin 
C:= Form1.ColorDialog1 Color; 
Case Form1.RadioGroup1.ItemIndex of 
0: Form1.Panel1.Color:=c;  
1: Form1.Panel2.Color:=c;  
2: Form1.Panel3.Color:=c;  
End; 
End; 
End; 
End. 
 

Wykład 6 

1.  FloatToStr(x,ffFixed,9,2)     9 l. liczb + przecinek         2 druga po przecinku 

Wykresy   Chart  
TChart – formularz  edycja opcji 
Zerowanie serii: 
a.  Form1.series1.clear; 
b.  Form1.series2.clear; 

Form1.Visible:=False 

Form2.Visible:=True                    Boole’a 

2.  Menu nawigacja 

For i:=1 to 1000 
Begin 
Form1.Series1.AddXY(i, sin(i*pr/180);                      XY odcięte X I rzędne Y 
Form1.Series2.AddXY(i, cos(i*pr/180); 
End;