02 Składnia i typy

background image

Wstęp

do programowania

Wykład 2

Składnia języka, typy, struktura programu

background image

Język programowania pascal

Cechy języka Pascal

Pascal jest językiem wysokiego poziomu; oznacza to, że użytkownik piszący

program w języku pascal nie musi znać szczegółów wewnętrznej budowy
komputera.

Pascal ma wbudowane precyzyjne mechanizmy kontroli struktur i reguł
gramatycznych; dzięki temu łatwa jest identyfikacja i poprawienie błędów.

Pascal jest językiem

algorytmicznym

, pomyślanym tak aby łatwo było w

nim zapisywać algorytmy opracowane przez użytkownika.

Pascal jest językiem

strukturalnym

;

oznacza to że poszczególne

fragmenty algorytmu można zapisać w postaci wyraźnie wyodrębnionych
struktur językowych.

Pascal jest językiem

modularnym

. Cecha ta pozwala składać program z

oddzielnych 'cegiełek' - modułów które w razie potrzeby można wymieniać
bez naruszenia pozostałej części programu.

Pascal jest językiem

publikacyjnym

co oznacza możliwość opublikowania

oryginalnego, interesującego algorytmu w notacji języka Pascal

background image

STANDARDOWE SYMBOLE JĘZYKA PASCAL

J

ęzyki programowania służą do przedstawienia

algorytmów w takiej postaci, w której mogą być one
wykonane przez komputery.

Jedną z wygodnych form komunikacji człowiek - maszyna

jest zapis tekstowy.

Program jest więc tekstem. Ze względu na ograniczenia

praktyczne, tekst ten jest ci

ągiem znaków, tzn nie ma

indeksowania stosowanego w np.. matematyce. -
obowi

ązuje jeden poziom znaków.

Program pascalowy buduje

się z elementarnych jednostek

tekstowych j

ęzyka nazywanych symbolami.

Symbol

może być pojedynczym znakiem bądź ciągiem

znaków alfabetu języka.

background image

Standardowe symbole

Alfabet :

– małe i duże litery alfabetu łacińskiego
- cyfry od 0 - 9
- odst

ęp (spacja)

- jednoznakowe symbole specjalne :

+ - * / = < >
[ ] ( ) { } spacja

. ,

‘ : ; ^ @ $ % & # _

- dwuznakowe symbole specjalne :

<> <=

>=

:=

..

background image
background image

Standardowe symbole

– słowa kluczowe

AND

DOWNTO

IF

OR

THEN

ARRAY

ELSE

IN

PACKED

TO

BEGIN

END

LABEL

TYPE

CASE

FILE

MOD PROGRAM

UNTIL

CONST

FOR

NIL

RECORD

VAR

DIV

FUNCTION

NOT

REPEAT

WHILE

DO

TYPE

OF

SET

WITH

Słowa kluczowe maja specjalne znaczenie

Są nazwami typów wbudowanych, nazwami operatorów,

elementami instrukcji, itp

background image

Identyfikatory

-Nazwy dozwolone

Nazwy

(identyfikatory, ang.

identifiers

) mogą

odnosić się do podprogramów, zmiennych,

stałych, funkcji, tablic, klas ...

nazwą może być dowolnie długi ciąg liter (

nie

używamy polskich!

), cyfr i znaków podkreślenia.

Nazwa musi zaczynać się od litery

poprawne nazwy:

liczba_1, stala21, a, B_2_2, c

niepoprawne nazwy:

2tablica, ścieżka, dzień, cx2-1, 1@,

Pascal, Delphi nie rozróżniają małych i dużych

liter

background image

Identyfikatory

Podobnie jak s

łowa kluczowe identyfikatory są symbolami

j

ęzyka Pascal/Delphi złożonymi z ciągu znaków.

Pewne identyfikatory maj

ą ustalone nazwy. Czyli są to

identyfikatory

standardowe.

U

żytkownik

m

oże

przedefiniowa

ć znaczenie tych identyfikatorów w sekcji

deklaracji programu i u

żywać ich w zdefiniowanym

znaczeniu. Jednak, oznacza to utrat

ę wbudowanych w

j

ęzyku ułatwień.

Natomiast

u

żytkownik

mo

że

stosować

w

łasne

identyfikatory dla nadawania nazw programom i wszelkim
obiektom niestandardowym w programach. Ka

żdy taki

identyfikator musi by

ć ciągiem liter i cyfr przy czym

pierwszy znak musi by

ć literą.

background image

Separatory

W programie pascalowym separatory

służą do rozdzielenia

poszczególnych obiektów programu. Separatorami są:

;

średnik

, przecinek

jedna lub wi

ęcej spacji,

‘enter’

przej

ście do nowego wiersza,

{ } //

komentarz .

Obowi

ązuje przy tym zasada, że dowolne dwa słowa kluczowe,

identyfikatory lub liczby bez znaku musz

ą być rozdzielone co

najmniej jednym separatorem.

Komentarz ma posta

ć ciągu znaków zamkniętego w nawiasy

klamrowe, np. {

nowa funkcja

}

//

licznik

pętli

Wewn

ątrz pary nawiasów można umieścić dowolny ciąg znaków za

wyj

ątkiem nawiasu klamrowego.

Umieszczenie komentarzy w tych miejscach programu w

których

mog

ą być pomocne w zrozumieniu jego konstrukcji należy do

dobrej praktyki programistycznej.

background image

Typy

Zasad

ą jest, że każda stała, zmienna, wyrażenie lub funkcja jest

pewnego typu.

Ogólnie typ określa :

a)

zbiór wartości do którego należy stała, bądź jakie może

przyjmowa

ć zmienna czy wyrażenie, lub jakie mogą być generowane

przez funkcj

ę;

b)

zbiór operacji, które można wykonywać na zmiennych, stałych,...

•W język pascal oferuje użytkownikowi pięć różnych typów :

- standardowe typy proste

- standardowy typ strukturalny (-

łańcuch)

- niestandardowe, tj definiowane przez u

żytkownika, np. okrojony

- niestandardowe typy strukturalne

(również definiowane przez

u

żytkownika) : tablicowy, zbiorowy, rekordowy i plikowy;

- niestandardowy typ wska

źnikowy.

background image

Typy

Standardowym lub wbudowanym, nazywamy taki typ,

którego

identyfikator,

zbiór wartości oraz dopuszczalne operacje zostały

okre

ślone standardowo w języku.

Typy

proste s

ą podstawowymi jednostkami typu w języku

Pascal/Delphi. Na ich podstawie mo

żna utworzyć inne, bardziej

rozbudowane struktury danych - typy strukturalne.

Typy strukturalne wprowadzono w zwi

ązku z dążeniem do możliwie

szerokiego zakresu zastosowa

ń języka.

Typ zmiennej okre

śla jednoznacznie zbiór

z

którego zmienna

przybiera warto

ści.

background image

Typy

TYP

strukturalny

łańcuchowy

prosty

wskaźnikowy proceduralny

porządkowy

rzeczywisty

wyliczeniowy okrojony

całkowity

logiczny

znakowy

Byte

ShortInt

Word

Integer

LongInt

background image

porządkowy:

całkowity

Typy

Typ

Zakres

B

Integer

–2 147 483 648 ..
2 147 483 647

4B

Cardinal

0 .. 4 294 967 295

4B

Shortint

–128 .. 127

1B

Smallint

–32 768 .. 32 767

2B

Longint

jak integer

4B

Int64

–2^63 .. 2^63–1

8B

Byte

0 .. 255 (tj. 0..$FF)

1B

Word

0 .. 65 535
(0..$FFFF)

2B

Longword

jak cardinal

4B

Przykład :
var a,c : SmallInt ;

b : Byte;

background image

prosty:

rzeczywisty

Typy

Typ

Zakres

il. cyfr

B

Real48

2.9e

–39 .. 1.7e38

11

–12

6B

Single

1.5e

–45 .. 3.4e38

7

–8

4B

Real
=Double

5.0e

–324 .. 1.7e308

15

–16

8B

Extended

3.6e

–4951 .. 1.1e4932

19

–20

10
B

Comp

jak int64 (nie
zalecane)

19

–20

8B

Currency


922337203685477.5808
..
922337203685477.5807

19

–20

8B

Przykład :
var x : Double ;

y,z : Single;

background image

porządkowy:

logiczny

znakowy

Typy

Boolean

(false, true)

1B

(ByteBool 1B, WordBool 2B, LongBool 4B)

Zmienna typu logicznego mo

że przyjmować dwie

warto

ści : true (prawda) lub false (fałsz) Obie

stałe logiczne są predefiniowane.

Char
=AnsiChar

#0..#255

1B

(WideChar 2B),

‘A’ ≡ #65, ^G ≡ #7,

Chr(65) ≡ ’A’, Ord(‘A’) ≡ 65

Zmienna typu znakowego jest jednym znakiem ze
zbioru wszystkich znaków ASCII

Przykład :
var decyzja : boolean;

Przykład :
var jeden_znak : char;

background image

porządkowy:

wyliczeniowy

Typy

·

wyliczeniowe

(identf1, identyf2, ident3f, ...

np. (pon, wt, sr, czw, pt, sob, ndz)

Przykład :
var dzien =(pon, wt, sr, cz, pt, so, ndz)

liczby =(1,7,13);

Greckie=(alfa, beta, gamma, delta)

background image

porządkowy:

okrojon

Typy

const1 .. const2

1 .. 100,

-15 .. MaxN-1,
‘A’ .. ’F’

Ord, Pred, Succ, High, Low, SizeOf, Inc, Dec
np.

Ord(false)

≡ 0,

Succ(2)

≡ 3,

Low(Shortint)

≡ -128,

High(Byte)

≡ 255;

SizeOf(int64)

≡ 8,

inc(i)

≡ i=i+1,

inc(k,3)
Dec(i)=i-1
Pred(5)=4

Przykład :
var zakres : 10..100;

Litery1 :

‘c’..’k’

cyfry: 0..9;

background image

łańcuchowy

Typy

string[n], np. string[40]

– 1..40 znaków

var s :string

s :=

’’; {brak spacji pomiędzy apostrofami};

s :=

’ ’ {1 spacja pomiędzy apostrofami};

s :=

‘Witaj';

s[1]

≡ ‘W’, s[4] ≡ ‘a’, s[1] := ‘w’; {s ≡ ‘witaj’}

Length, SetLength, np. Length(s)

≡ 5

s[0]=5

– długość łańcucha jest umieszczona w zerowej komórce

Typ

il.

znakow

B

ShortString
= string gdy {$H-}

0 .. 255

2B ..
256B

string = AnsiString

0 ..
~2^31

4B ..
2GB

WideString

0 ..
~2^30

4B ..
2GB

background image

łańcuchowy

Typy

Deklaracja typu string:

type nazwa_typu=string

type nazwa_typu=string [ stała ]

var s1,s2,s3,s4 :string

s1 :=

’Liczba’;

s2 :=

’Pierwsza’ ;

s1<s2; // łańcuchy można porównywać ‘A’<‘a’

s3:=s1+s2; //LiczbaPierwsza
s4:=s2+’ ‘+s1; //Pierwsza Liczba
s2<s4 ?
s1[0]<s2[0] ?

5

N

A

P

I

S

0

1

2

3

4

5

6

7

background image

łańcuchowy

Typy

- do poszczególnych elementów łańcucha można się odnosić tak

jak do elementów tablicy - poprzez indeks:

s[1], s[2], s[10]

trzeba pamiętać, że te elementy są już typu char a nie string

- string jest jedynym typem tablicowym, na którym dopuszczalne są

operacje agregujące np. '+'; oraz wartości tego typu mogą być
parametrami procedur write i read

Różnice pomiędzy łańcuchami i tablicami o elementach znakowych:
- tablica znakowa może mieć dowolną długość,
- liczba znaków wpisanych do tablicy nie jest nigdzie zapamiętywana,
- elementy tablicy nie są w żaden sposób powiązane ze sobą

i dlatego można się do nich odwoływać pojedynczo lub w całości
jako tablicy (nie można odwoływać się do podzbiorów)

- łańcuch może być traktowany jako jednowymiarowa tablica znaków

natomiast tablica może mieć wiele wymiarów.

background image

Tablicowy

(strukturalny)

Typy

Do przechowywania jednorodnego w sensie typu ciągu (zestawu)
wielkości służy typ tablicowy,

Type

Identyfikator_typy

array

[TypIndeksu] of

TypElementu

Gdzie:
Typindeksu

jest dowolnym typem porządkowym za wyjątkiem Longint,

TypElementu

jest dowolnym typem

type IntList = array[1..100] of Integer; {tablice jednowymiarowe}
CharCode = array['A'..'Z'] of Byte;

var A :IntList;

C :CharCode;

//użycie A[10] := 14;

C[

‘Z’] := 255

background image

Tablicowy

Typy

type Matrix = array[0..10, -5..5 ] of Real; {tablice 2 -wymiarowe}

Matrix = array[0..10] of array[-5..5] of Real;

//inny sposób

Type Tab= array[1..100 ] of Single; // tablica 1 -wymiarowa}

wynik= array[1..50 ] of Tab;

// tablice 2 -wymiarowa}

var M :Matrix;

W :Wynik;

//użycie M[1,0] := -1.043;

// Matrix[1,1]:=5 -

błąd- nazw.typu

W[2,35] := 21.25

W[2][35] := 21.25

Aby móc efektywnie korzystać z tych zmiennych należy poznać sposób
odwoływania się do poszczególnych elementów tablicy. W opisie tego
mechanizmu posłużymy się pojęciem selektora, który służy do wyboru
odpowiedniego elementu składowego zmiennej złożonej. W typie
tablicowym, podobnie jak napisowym, selektorem są nawiasy
kwadratowe, w których podajemy indeks(y) elementu, do którego
odwołujemy się.

background image

Tablicowy z wartościami początkowymi

Typy

type Tabz = array[0..5] of char;

Dane = array[1..4] of SmallInt;

var znaki :Tabz=('a','z','A','X','3','|') ;

wyniki : Dane=(1,2,100,5);

writeln(znaki[2]);

writeln(wyniki[3]);

background image

Rekordowy

Typy

record

pole1:typ1
pole2:typ2
...
poleN :typN

end;

Type
Tdane=

record

Imie : string[20];
Plec : char;
Wiek : byte
Praca : array[1..10] of string

End;

var D :TDane;

begin

D.imie

:=’Teodor’;

D.plec:=

‘M’;

D.wiek:=23;
D.praca[1]=

’Zakłady energetyczny’;

background image

Tablicowy

Typy

Tablice dynamiczne:

Identyfikator array of TypElementu

var A : array of integer;
begin ...

SetLength(A , 10);

{High(A)

≡ 9}

A[0]:=15; A[9]:=-24;
A:=nil;

background image

M

nogościowe

Typy

set of typ

type

CharSet = set of Char;
Digits = set of 0..9;
Day = (Sun, Mon, Tue, Wed, Thu, Fri);
Days = set of Day;

-typ porządkowy zwany jest typem bazowym zbioru,
-typ bazowy nie może mieć więcej niż 256 możliwych wartości - dlatego typem
bazowym nie może być np.: integer, word...
-wartości porządkowe granic zbioru muszą się mieścić w granicach od 0 do 255
- złym typem jest zatem set of [-5..5],
-wartości typu zbiorowego wypisuje się przy pomocy konstruktora zbiorów [ ],
-kolejność wypisywania elementów wewnątrz nawiasów kwadratowych jest
dowolna,
-element umieszczony na liście wielokrotnie interpretowany jest jak jeden
element.

type znaki = set of char;

var

a,b,c:znaki;

z:char;

begin

....
a:=['0'..'9', 'a'..'z', 'A'..'Z'];
b:=[];

z:=#27;
c:=[z];
.....

end.

background image

Zakresy typów

Zakresy poszczególnych typów mogą

być albo ściśle określone, albo zależeć

od implementacji (czyli od kompilatora)

ZAWSZE istnieje w każdym typie wartość

największa i najmniejsza

background image

Stałe

Definicje stałych

W programie mo

żna zdefiniować pewne obiekty (tzw. stałe),

których wartość w czasie działania programu się nie zmienia
Przypisanie

stałej wartości identyfikatorowi następuje za

pomocą instrukcji :

const

nazwa =

stała

;

const

e = 2.71;

const

kierunek

= ‘telekomunikacja'

(sta

ła nie musi być liczbą; może być np. łańcuchem znaków)

Typowy b

łąd definicji: const mc:=110

(zamiast = u

żyto znaku z

instrukcji przyp. :=)

background image

Zmienne

Na deklaracj

ę zmiennej składają się trzy elementy:

var

nazwa zmiennej

:

typ

.

var

słowo kluczowe ozanczjącą zmienną

nazwa zmiennej

(określona przez identyfikator),

Typ

zmiennej (określa zbiór wartości jaki może przyjmować

zmienna),
Wartość zmiennej (typ określa dopuszczalne wartości),
Położenie (alokacja) zmiennej w pamięci operacyjnej (tym

zajmuje się najczęściej kompilator).

Ważną rolą zmiennej jest to, że może ona opisywać pewien stan

maszyny cyfrowej (np. zawartość jednej lub kilku komórek

pamięci operacyjnej).

123

wartość

(byte)

typ

zmienna

delta

identyfikator

background image

Zmienne

Zmienne – zmienne przechowują pewne informacje

o stanie maszyny cyfrowej:

Zmienne s

ą wielkościami zmieniającymi swoją wartość w trakcie

wykonywania programu.
Ka

żda zmienna wykorzystana w programie jest całkowicie

okre

ślona przez swoją nazwę, którą nadaje się jej zgodnie z

przyj

ętymi regułami.

D

ługość identyfikatora zmiennej jest dowolna, z tym że tylko

pierwsze 63 znaki s

ą znaczące. Nazwa zmiennej powinna

sugerować rolę tej zmiennej w programie

Wszystkie zmienne

używane w programie muszą być wcześniej

zadeklarowane.
W momencie deklaracji zmiennej nie przypisywane s

ą im żadne

warto

ści liczbowe. Deklaracje sygnalizują tylko komputerowi

konieczno

ść zarezerwowania dla nich odpowiedniej jednostki

pami

ęci

background image

Deklaracje zmiennych

W programie musimy określić, jakiego typu będą

używane zmienne w programie oraz spowodować,

żeby została zarezerwowana pamięć na ich

przechowanie

deklaracje zmiennych poprzedzamy słowem kluczowym

var

var

nazwa_zmiennej 1

: typ;

nazwa_zmiennej 2

: typ;

var

clkowita:byte;
rzecz :Double;
znak: char;

napis: string;
A: array[1..3]of 0..1;

background image

Deklaracje zmiennych

Podczas deklaracji zmiennym można nadać wartości

początkowe

var

clkowita : byte=1;
rzecz :Double=1.55;
znak: char=

’a’;

napis: string=

’trwają obliczenia’;

A: array[1..3]of 0..1=(0,1,0);

background image

Operatory

W języku pascal zdefiniowane są pewne operatory,

których można używać do konstruowania wyrażeń

(arytmetycznych, logicznych...)

operatory arytmetyczne:

+ - * /

możemy przy konstruowaniu wyrażeń

arytmetycznych używać nawiasów

a * b / c * d

Np..

1+5 / 2

1+(a-3) / (4+x)

d

c

b

a

d

c

b

a

background image

pewne specyficzne operatory arytmetyczne

zdefiniowane są dla liczb całkowitych, jak:

div – dzielenie całkowite bez reszty,

mod – reszta z dzielenia całkowitego;

Np. 7 div 3 (równa się 2)

7 mod 2 (równa się 1)

Typ zwracanego wyniku zależy

zazwyczaj od typu argumentów operacji

background image

Operatory relacyjne (porównania)

mniejszy nie większy większy nie mniejszy jest elementem

<

<=

>

>= in

(np. a>2;

B <= a-5;

var znak: char;
zank in [’a’..’z’] )

„różne” i „równe”

<> =

np..

a

=b

B=2
x<>10

background image

operatory logiczne

koniunkcji , alternatywy, negacji, różnicy symetrycznej

and

or not xor

a > 2 and a < 9 ...

//źle

(a > 2) and (a < 9) ... //dobrze

(a=2) or (d<c)

not a in [’1..5’]

if (zn in [‘0’..’9’, ‘A’,’C’..’H’]) then ....

background image

Operacja przypisania

Do przypisania zmiennej wartości innej zmiennej lub

wyrażenia służy operator przypisania

:=

liczba:=10;
Nowe_pi:=3.2;
s:=’Komentarz’
A[1,1]:=22;

background image

Priorytet operatorów

WARTOŚCIOWANIE WYRAŻEŃ

- wyrażenia obliczane są od strony

lewej do prawej zachowując priorytety operatorów w kolejności:

operatory multiplikatywne a następnie addytywne; zmiana tych

priorytetów może nastąpić w wyniku użycia nawiasów.

ZGODNOŚĆ TYPÓW

-

wartość wyrażenia występującego w instrukcji

przypisania powinna być takiego samego typu jak zmienna, do której

następuje przypisanie

operator

priorytet

kategoria

+,

, @, not, ()

1
(najwyższy)

jednoargumentowe

*, /, div, mod, and

2

multiplikatywne

+,

–, or, xor

3

addytywne

=, <>, <, >, <=, >=, in

4

relacyjne

background image

Konwersja typów

Konwersja typu

- zachodzi podczas operacji na zmiennych różnego typu

var

c: Integer;

x, d: double

x:=c+d zachodzi konwersja niejawna zmiennej c (typy całkowitego ) na

zmienną typu rzeczywistego

Var zn : byte

lok : boolean

// konwrsje jawne

if not lok and boolean(zn) then zn:=char(102);
zank := char(65);

c := byte(’z’) + 5;

background image

Składnia języka

Każdy język ma swoją

składnię:

słowa kluczowe

instrukcje

itd ....

background image

Struktura programu

Program w języku Pascal ma pewną

ustaloną strukturę:

program

nazwa_programu

;

część deklaracyjna

begin

część wykonywalna

end

.

background image

Struktura programu

nagłówek
programu

end

.

begin

ciąg instrukcji

Część
deklaracyjna

Blok
programu

program

wyklad02;

const max=10;

var liczba:byte;

begin

writeln(‘początek');

liczba:=5+max;

writeln('liczba=‘, liczba);

writeln (’Koniec’);

Readln;

end.

background image

Instrukcje programu kończą się zazwyczaj

średnikami

wyjątkowo instrukcję zakończone są innymi

znakami: np. kropką - ostatnia linia programu

Zazwyczaj układ tekstu w linii czy też

rozłożenia go na kilka linii nie ma znaczenia

Część deklaracyjna

zawiera deklaracje

typów, stałych, zmiennych, opis funkcji

Część wykonywalna

– instrukcje do

wykonania

background image

program Wyrazy;
{$APPTYPE CONSOLE}
//indentyfikator
n1
_1n
wst_do_progr
WstDoProgr
wstDoProgr
begin1

//litera│
-123
5.6e10
'Jakiś apis'

//słowo kluczowe

begin
if
repeat
begin

readln;

end.

background image

program Zdanie1; //nagłówek

//cz. deklaracyjna

{$APPTYPE CONSOLE}
uses SysUtils;

//deklar. sta│ych

const
// indent = wartość

MaxN = 100;
MaxN1 = MaxN+1;

//deklar. typˇw

Type

//ident = typ;

int = Integer;
TIndeksTabl = Integer;

//deklaracja zmiennych

var
// ident : typ;

I :Integer;

// ciąg dalszy programu
var

IndeksTabl, N :

TIndeksTabl;

x :Integer = 1;//ale nie w

podprogr.

//deklaracja podprogramów
//dek. Funkcji

//cz. wykonawcza

begin

I := 1;
I := I + 1;
N := MaxN;

//....

I := MaxN;
{ komentarz}

end.

background image

program TypyProsteNieporz;
{$APPTYPE CONSOLE} {$O-,Q+,R+}
uses SysUtils;

var

s :string;
ok :Boolean;

begin

s := 'Pierwszy wiersz'#13#10'Drugi'^G;
writeln(s);
s := 'Apostrof '' pojedynczy';
writeln(s);
writeln(s[2]);
writeln(s[length(s)]);
readln;

end.

background image

program TypyProsteNieporz;

{$APPTYPE CONSOLE} {$O-,Q+,R+}

uses SysUtils;

var

s :string;

ok :Boolean;

i: real;

z:char;

Begin

//cz. Wykonawcza

writeln(ord(z));

s := 'Pierwszy wiersz'#13#10'Drugi'^G;

writeln(s);

s := 'Apostrof '+' pojedynczy';

writeln(s);

writeln(s[2]);

writeln(s[length(s)]);

writeln(length(s));

writeln(ok);

ok:=boolean(1);

writeln(ok);

readln; end.

background image

program Operatory2;

{$APPTYPE CONSOLE} {$O-,Q+,R+}

uses

SysUtils;

var

zn :char;
int :Integer;

type

T = array[1..4] of byte;

begin

zn := 'Z';
writeln(char(byte(zn)-byte('A')+byte('a')));

int:=-3;
writeln(T(int)[1]);
writeln(T(int)[2]);
writeln(T(int)[3]);
writeln(T(int)[4]);
writeln(int64(15));
readln;

end.

background image

program TypyProstePorz;

{$APPTYPE CONSOLE}
uses SysUtils;
var

ok :Boolean;

x :1..4;

dzień : (pon, wt, śr);

begin

writeln(SizeOf(int64));
writeln(low(int64));
writeln($11);

ok := FALSE;
x := 4;
ok := x > 1;
writeln(ok);

dzień := wt;
writeln(ord(dzień));
inc(dzień);

writeln(ord(dzień));

// Ciąg dalszy

dec(x);

// Ciąg dalszy

dec(x);

writeln(x);

writeln(high(x));

writeln(low(x));

readln;

end.

background image

// program obliczajacy trzecia potege liczby

program

prog01

;

{$APPTYPE CONSOLE}
uses SysUtils;

var

a

,

p2

,

p3

: integer;

begin

writeln

('program oblicza trzecia potege podanej

liczby');

write

('podaj a:');

readln

(

a

);

p2

:=

a

*

a

;

p3

:=

p2

*

a

;

write('wynik wynosi ',

p3

);

Readln;

end.

background image

Instrukcje sterujące

W programie używamy instrukcji sterujących,

umożliwiających warunkowe lub iteracyjne

wykonywanie pewnych fragmentów kodu

Instrukcje

proste:

strukturalne:

przypisania złożona
procedury warunkowa

iteracyjna

pusta wiążąca

background image

Instrukcja wywołania procedury

Nazwa procedury

przykłady

Writeln; //wypisuje pusty wiersz (pustą linię)

Write; //wypisuje pusty znak

Write(’a’); //wypisuje znak a

Write(a); //wypisuje wartość zmiennej a

Writeln(x,2,y);

//wypisuje wartość zmiennej x,liczbę 2,

// war. zmiennej y i przechodzi do następnej lini

Read; //czyta pusty znak z klawiatury

Readln;

//czyta znak „Enter” - przechodzi na następnej linii

Read(a);

//czyta z klawiatury wartość zmiennej a

Readln(a);

//czyta z klawiatury wartość zmiennej a i przechodzi

// do następnej linii

background image

Instrukcja przypisania

:= (operator przypisania)

identyfikator zmiennej

:=

wyrażenie

przykłady

Liczba := 3;

Napis:= ’dowolny tekst!’;

znak:=’h’ ;

Wiek:= 20;

B[i] :=2.3;

background image

Blok instrukcji

begin

Ciąg Instrukcji

end;

Begin

przykłady

Begin

x := 3;

y:=x+b;

z:=x+y+z ;

writeln(z);

end;

Instrukcja_1

Instrukcja_2

Instrukcja_N

end;

background image

program Typy_zbiorowy;
{$APPTYPE CONSOLE}
uses SysUtils;

type cyfry = set of 0..9;

var

x,y,z:cyfry;

i:integer;

begin

x:=[1,9,100,9,9]; { wartość 9 wystąpi w zbiorze
tylko raz, a 100 zostanie zignorowane }

i:=9;

y:=[i+2,3]; {wartość 11 zostaniezignorowana}

z:=[2,4,6,8];

end.


Wyszukiwarka

Podobne podstrony:
NOO 02 Rodzaje i typy organizacji
02 SKŁADNIKI PRZYRODY
TEORIA W-F, teoria, Skład chemiczny powietrza atmosferycznego: a)składniki stałe: azot(78%),tlen(21%
02-03-2009 zestawienie skladnikow
02 03 2009 zestawienie skladnikowid 3886
APP 02 Typy Danych Podstawy 2010
Typy motywacji, 02.ROZWÓJ OSOBISTY +.....), 01.Psychologia ; Rozwój osob.;NLP..itp, Psychologia w Pi
pubu 02, Filologia polska, Gramatyka opisowa języka polskiego, składnia
02. Słowniczek składników kosmetycznych, Studium kosmetyczne, Chemia kosmetyczna
02. MySQL - popularne typy danych, Typ
Typy danych w komórkach, do uczenia, materialy do nauczania, rok2010-2011, semII, 27.02.2011, techno
Fizjologia) 02 12 Proporcje i składniki ciała Aspekty fizjologiczne
skladniki surowcow kosmetycznych 02 12 2009
wykład I 23 02 2014 r Fleksja i składnia

więcej podobnych podstron