Języki programowania
Wykład 1
a. Zbiór dopuszczalnych znaków
b. Reguły tworzenia poprawnych zdań
c. Reguły interpretujące znaczenie poszczególnych słów
a. Język maszynowy, asembler, Fortran, C, C++, C#, Pascal, Java, PHP
a. Języki wysokiego poziomu (BASIC, C, Pascal, C#)
b. Języki niskiego poziomu (asembler, język maszynowy)
a. Najbardziej efektywne
b. Trzeba znać architekturę systemu komputerowego oraz działanie mikroprocesora
c. Bardzo czasochłonne
a. Ciąg zer i jedynek
b. Można heksadecymalnie upraszczać (76 z 0111 0110)
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
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
EB03 JHP SHORT NEXT
EB – z heksadecymalnego kod operacji
03 – przesunięcie o 3 kroki
JHP – mnemonik
SHORT NEXT – argument
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
· 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
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
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}
{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;
GOTO skok_1;
……
4. Definicja stałych:
Stałe (CONST) – po label, przypisanie stałej wartości. NIE może być zmienna w programie. Gdy złożona to definiujemy.
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}
{ciągi instrukcji}
Deklaracja funkcji:
FUNCTION Nazwa (lista parametrów);
{część opisowa}
{ciąg instrukcji}
Nazwa:=a; //lub Result:=a;
8. Typy danych i ich opis
Każda zmienna w programie ma swoją nazwę (identyfikator) i przyjmuje wartość z określonego zbioru: Typu
· Porządkowe – każdy element ma swój następnik
o Wyliczeniowy
o Całkowity
o Logiczny
o Znakowy
o Okrojony
· Typy rzeczywiste – między 2 dowolne liczby można wstawić kolejną
· Tablicowe – jednakowe typy
· Rekordowe – różne typy
· Zbiorowe – obliczenia wyniki
· Plikowe - jego elementy przyjmują ograniczone wartości. Zmienna przyjmuje wartość 1 lub (..?)
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
i,j:XX;
k:Integer
· Typy logiczne (Boolean, ByteBool, WordBool, LongBool
True = 1
False = 0
· Typ znakowy char – znaki ASCII, ramki, okienka
· Typ okrojony
TYPE nazwa = stała 1 … stała 2;
Np.
TYPE
...
chesschempion