Języki programowania wykłady

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;









Wyszukiwarka

Podobne podstrony:
Języki programowania wykłady
Informatyka jezyki programowania Wyklad
Języki programowania wykłady
wyklad5.cpp, JAVA jest językiem programowania obiektowego
Języki programowania zaliczenie wykłady Języki programowania3
Języki programowania zaliczenie wykłady Wykład 5
Języki programowania zaliczenie wykłady Opracowanie1 2
pytania z wykładu sciaga jezyki programowania
Języki programowania zaliczenie wykłady, Opracowanie1, Języki programowania
Języki programowania zaliczenie wykłady Języki programowania4
Algorytmy i struktury danych Wykład 8 Języki programowania
Podstawy Informatyki Wykład X Object Pascal Jezyki programowania, Proste typy danych
Języki programowania zaliczenie wykłady Języki programowania2
Podstawy programowania (wykład III)
Program wykładów 1 sem
Program wykładu Fizyka II

więcej podobnych podstron