Uvod u programiranje matematika IX predavanje Vesna Velikovi

  • Slides: 18
Download presentation
Uvod u programiranje - matematika – IX predavanje Vesna Veličković vesna@pmf. ni. ac. rs

Uvod u programiranje - matematika – IX predavanje Vesna Veličković vesna@pmf. ni. ac. rs

Tipovi u Pascalu • Definicija tipa type <ime tipa> = <tip> ; Vrste tipova

Tipovi u Pascalu • Definicija tipa type <ime tipa> = <tip> ; Vrste tipova u Pascalu Prosti (nestruktuirani) Složeni (struktuirani) Redni tipovi INTEGER CHAR BOOLEAN intervalni nabrojani pointer REAL array record string file set

Slog = record • Više promenljivih, uobičajeno različitih tipova, povezujemo u jednu celinu, slog.

Slog = record • Više promenljivih, uobičajeno različitih tipova, povezujemo u jednu celinu, slog. • Ta celina ima jedinstveno ime. • Promenljive koje čine slog imaju svoje ime preko koga im se pristupa. One se nazivaju poljima. • Slog se realizuje pomoću record tipa.

Record tip record <ime polja> { , <ime polja> } : <tip> { ;

Record tip record <ime polja> { , <ime polja> } : <tip> { ; <ime polja> { , <ime polja> } : <tip> } end type datum = record dan : 1. . 31; mesec : 1. . 12; godina : integer; end;

Upotreba record tipa var danas, sutra : datum; begin. . . danas. dan :

Upotreba record tipa var danas, sutra : datum; begin. . . danas. dan : = 26; sutra. god: =2013; . . . sutra : = danas; . . . end;

Promenljiva i tip • Tip opisuje kako će neka promenljiva tog tipa izgledati kada

Promenljiva i tip • Tip opisuje kako će neka promenljiva tog tipa izgledati kada se bude napravila. • Definicijom tipa se ne pravi nikakva promenljiva (ne odvaja se memorijski prostor) • Deklaracijom promenljive se odvaja memorijski prostor za nju (primenljiva se pravi), dodeljuje joj se ime i navodi njen tip. Tip odredjuje kako se tumače bitovi te promenljive i šta se sa njom može raditi.

With naredba • Da ne bi stalno ponavljali ime record promenljive, možemo koristiti with

With naredba • Da ne bi stalno ponavljali ime record promenljive, možemo koristiti with naredbu. with danas do dan : = 7; mesec : = 4; godina : = 2013; end;

Učitavanje i štampanje record tipa • Učitavanje i štampanje record tipa se vrši pokomponentno.

Učitavanje i štampanje record tipa • Učitavanje i štampanje record tipa se vrši pokomponentno. procedure ucitaj (var d: datum); begin read (d. dan); read (d. mesec); read (d. godina); end; procedure stampaj (d: datum); begin write (d. dan); write (d. mesec); write (d. godina); end;

program primer; type datum = record dan. . . end; procedure ucitaj (var d:

program primer; type datum = record dan. . . end; procedure ucitaj (var d: datum); . . . procedure ucitaj ( d: datum); . . . var d 1, d 2, d 3 : datum; begin ucitaj (d 1); ucitaj (d 2); . . . stampaj (d 3); end.

Domaći zadatak 15 • Deklarisati tip datum. • Učitati jedan datum i odrediti i

Domaći zadatak 15 • Deklarisati tip datum. • Učitati jedan datum i odrediti i odštampati datum sutrašnjeg dana. • Godina je prestupna ako je deljiva sa 4 ali nije deljiva sa 100, ili je deljiva sa 400.

Primer Trougao • Deklarisati tip trougao. • Učitati jedan trougao. • Izračunati i odštampati

Primer Trougao • Deklarisati tip trougao. • Učitati jedan trougao. • Izračunati i odštampati njegovu površinu i obim.

program tr; type tacka = record x, y : real; end; trougao = record

program tr; type tacka = record x, y : real; end; trougao = record A, B, C : tacka; end; var t : trougao; P, O : real; procedure ucitaj (var t: trougao); begin read (t. A. x, t. A. y); read (t. B. x, t. B. y); read (t. C. x, t. C. y); end;

function rastojanje (M, N: tacka) : real; begin rastojanje : = sqrt (sqr(M. x-N.

function rastojanje (M, N: tacka) : real; begin rastojanje : = sqrt (sqr(M. x-N. x) + sqr(M. Y-N. y)); end; function Obim (t: trougao) : real; var sa, sb, sc : real; begin sa : = rastojanje (t. B, t. C); sb : = rastojanje (t. A, t. C); sc : = rastojanje (t. A, t. B); Obim : = sa + sb + sc; end;

function Povrsina (t: trougao) : real; var sa, sb, sc, s : real; begin

function Povrsina (t: trougao) : real; var sa, sb, sc, s : real; begin sa : = rastojanje (t. B, t. C); sb : = rastojanje (t. A, t. C); sc : = rastojanje (t. A, t. B); s : = (sa + sb + sc) / 2; Povrsina : = sqrt (s*(s-sa)*(s-sb)*(s-sc)); end; begin {program} ucitaj (t); O : = Obim (t); writeln ('O = ', O); P : = Povrsina (t); writeln ('P = ', P); end.

Domaći zadatak 16 • Deklarisati tip tacka. • Učitati jednu tačku u ravni i

Domaći zadatak 16 • Deklarisati tip tacka. • Učitati jednu tačku u ravni i ispitati da li pripada oblasti sa slike.

Primer • Deklarisati tip krug. • Učitati dva kuga i ispitati da li imaju

Primer • Deklarisati tip krug. • Učitati dva kuga i ispitati da li imaju zajedničkih tačaka. program krugovi; type tacka = record x, y : real; end; krug = record O : tacka; r : real; end;

procedure Ucitaj. Krug (var k : krug); begin read (k. O. x, k. O.

procedure Ucitaj. Krug (var k : krug); begin read (k. O. x, k. O. y, k. r); end; function d (A, B : tacka): real; begin d : = sqrt(sqr(A. x-B. x) + sqr(A. y-B. y)) end; function Imaju (k 1, k 2 : krug); begin Imaju : = d(k 1. O, k 2. O) < k 1. r+k 2. r end;

begin {program} Ucitaj. Krug (k 1); Ucitaj. Krug (k 2); if Imaju (k 1,

begin {program} Ucitaj. Krug (k 1); Ucitaj. Krug (k 2); if Imaju (k 1, k 2) then writeln(’Imaju zajednickih tacaka’) else writeln (‘Nemaju zajednickih tacaka’) end.