1 / 64

Knižnice Pascalu

Knižnice Pascalu. Štandardné knižnice DOS. System - obsahuje všetky štandardné procedúry a funkcie. CRT - knižnica pre prácu s obrazovkou. DOS - knižnica pre komunikáciu s operačným systémom. Graph - jednotka pre grafické aplikácie. Overlay - podpora vytvárania prekrývaných modulov.

morgan
Download Presentation

Knižnice Pascalu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Knižnice Pascalu

  2. Štandardné knižnice DOS • System - obsahuje všetky štandardné procedúry a funkcie. • CRT - knižnica pre prácu s obrazovkou. • DOS - knižnica pre komunikáciu s operačným systémom. • Graph - jednotka pre grafické aplikácie. • Overlay - podpora vytvárania prekrývaných modulov. • Printer - jednotka pre práci s tlačiarňou. Pascal 2006

  3. Borland Pascal for Windows • wincrt – unit CRT pre windows • windos – unit DOS pre windows • winprn– unit Printer pre windows • winprocs – procedúry a funkcie prostredia • wintypes – typy, konštanty a objekty prostredia • winapi – rozhranie pre windows • strings spracovanie reťazcov Pascal 2006

  4. Knižnica SYSTEM • Aritmetické operácie a matematika • Operácie a pamäťou a smerníkmi • Operácia nad súbormi a adresármi • Operácie nad reťazcami a množinami • Riadiace procedúry a funkcie Pascal 2006

  5. SYSTEM- matematika • znižovanie alebo zvyšovaniehodnoty premennej - dec, inc • matematické operácie - Abs, Exp, Ln, Pi, Sqr, Sqrt • goniometrickéfunkcie - ArcTan, Cos, Sin • funkcie zaokrúhľovania a zmeny typu - Frac, Int, Round, Trunc, Odd Pascal 2006

  6. Dec (X[,n : longint]); Znižuje hodnotu premennej X, ktorá musí byť ordinárneho typu a n je výraz typu integer, ktorý definuje hodnotu znižovania. X sa znižuje o 1 alebo o n, pokiaľ sa n definuje. Tzn., Dec(X) zodpovedá výrazu X:=X-1 a Dec(X,n) zodpovedá výrazu X := X - n. Procedúra Dec generuje, na rozdiel od výrazu, optimalizovaný kód. Pascal 2006

  7. Inc (var X [, n : longint]); Zvyšuje hodnotu premennej X ordinárneho typu, n je výraz typu integer. X sa zvyšuje o 1 alebo o n, ak je n uvedené. Funkciu Inc(X) je možné vyjadriť výrazom X := X + 1; Funkciu Inc(X,n) je možné ako: X := X + n; pričom funkcia generuje optimalizovaný kód a preto je vhodné ju používať v cykloch miesto výrazov X:=X+1 alebo X:=X+n. Pascal 2006

  8. var IVar: Integer; LVar: Longint; Begin ivar:=10; Inc(IVar); Inc(LVar, 5); end. { ivar := ivar+1; lvar := lvar+5; } var IntVar: Integer; LongVar: Longint; begin Intvar := 10; LongVar := 10; Dec(IntVar); Dec(LongVar, 5); end. {intvar:=intvar-1; longVar:=longVar-5;} dec / int ukážka Pascal 2006

  9. Abs (x : integer|real) : integer|real; Funkcia vracia absolútnu hodnotu argumentu. Výsledok vykonania funkcie je rovnakého typu ako parameter. X môže byť výraz typu integer alebo real. var r: Real; i: Integer; begin r := Abs(-2.3); { 2.3 } i := Abs(-157); { 157 } end. Pascal 2006

  10. Exp (X : real) : real; Vracia hodnotu exponenciálnej funkcie argumentu - X je výraz typu real. Výsledok je hodnota základu prirodzeného logaritmu povýšená na X-tú. begin Writeln('e = ',Exp(1.0)); end. Pascal 2006

  11. Ln (X : real) : real; Vracia prirodzený logaritmus argumentu. X je výraz typu real. Výsledok je prirodzený logaritmus parametru X a je typu real. var e : real; begin e := Exp(1.0); Writeln('ln(e) = ',ln(e)); end. Pascal 2006

  12. Pi : real; Vráti hodnotu Pi(3.1415926535897932385). Výsledok funkcie je typu real. Presnosť výsledku závisí na tom, či prekladač využíva matematický koprocesor alebo nie. begin Writeln(' HodnotaPi = ',Pi); end. Pascal 2006

  13. Sqr (X :..) : integer|word|byte|real Vracia druhú mocninu argumentu. Parameter X je ľubovolného číselného typu. Výsledok vykonania funkcie je rovnakého typu ako parameter. Matematicky je možné funkciu vyjadriť výrazom X*X. Pascal 2006

  14. Sqrt (X : real) : real; Vracia druhú odmocninu argumentu. X je výraz typu real. Výsledkom funkcie je druhá odmocnina X. begin Writeln('5 na druhú je ', Sqr(5)); Writeln('Odmocnina z 2 je ',Sqrt(2.0)); end. Pascal 2006

  15. Cos (X : real) : real; Vracia kosínus argumentu funkcie X je výraz typu real. Výsledok funkcie je kosínus parametra X a je typu real. Predpokladá sa, že parameter definuje uhol v radiánoch. var R: Real; begin R := Cos(Pi); end. Pascal 2006

  16. Sin (X : real) : real; Vracia sínus argumentu. X je výraz typu real. Výsledok funkcie je sínus X a je typu real. Predpokladá sa, že X reprezentuje uhol v radiánoch. var R: Real; begin R := Sin(Pi); Writeln ('Sínus Pi je ', R); Readln; end. Pascal 2006

  17. Round (X : real); Zaokrúhli hodnotu typu real na hodnotu typu integer. X je výraz typu real. begin Writeln( 1.4, ' zaokrúhli ako ', Round(1.4)); 1 Writeln( 1.5, ' zaokrúhli ako ', Round(1.5)); 2 Writeln(-1.4, ' zaokrúhli ako ', Round(-1.4)); -1 Writeln(-1.5, ' zaokrúhli ako ', Round(-1.5)); -2 end. Pascal 2006

  18. Trunc (X : real) : longint; Skráti hodnotu typu real na hodnotu typu integer. X je výraz typu real. begin Writeln( 1.4, ' upraví na ', Trunc(1.4)); 1 Writeln( 1.5, ' upraví na ', Trunc(1.5)); 1 Writeln(-1.4, ' upraví na ', Trunc(-1.4)); -1 Writeln(-1.5, ' upraví na ', Trunc(-1.5)); -1 end. Pascal 2006

  19. Odd (X : longint) : longint; Testuje, či je argument párne číslo. X je výraz typu longint. Výsledok funkcie je true, keď je X párne číslo a false, keď je X nepárne číslo. begin ifOdd(5) then Writeln('5 je nepárne') else Writeln('Iné sú nepárne '); end. Pascal 2006

  20. SYSTEM – matematika • práca s ordinárnym typom, stanovenie poradia prvku - Hi, Lo, Swap, Ord, Pred, Succ, Low, High, • práca s náhodnými číslami - Randomize a Random, Pascal 2006

  21. Hi (X) : byte ; Lo (X) : byte; Vráti rádovo najvyšší nižší byte argumentu - X je výraz typu integer alebo word. var B: Byte; begin B := Hi($1234); { $12 } B := Lo($1234); { $34 } end. Pascal 2006

  22. Swap (X : integer|word) : integer|word; Vymieňa rádovo najvyšší a rádovo najnižší byte argumentu. Výsledok je rovnakého typu ako parameter, X je výraz typu integer alebo word. var X: Word; begin X := Swap($1234); { $3412 } end. Pascal 2006

  23. Ord : longint; Vracia ordinárne číslo hodnoty ordinárneho typu. X je výraz ordinárneho typu. Výsledok funkcie je typu longint a jeho hodnota je ordinalitou parametru X. type Colors = (cervena,modra,zelena); begin Writeln('modrá je na pozícii ',Ord(modra)); {1} Writeln('Hodnota ASCII kódu pre "c" je ',Ord('c'), 'dekadicky'); end. Pascal 2006

  24. Pred (X) : anytype; Succ (X) : anytype; Vracia predchodcu/následníka argumentu. Výsledok funkcie je rovnakého typu ako parameter X. X je výraz ordinárneho typu. type Color = (RED,BLUE,GREEN); begin Writeln('Predchodca 5 je ',Pred(5)); Writeln('Následník 10 je ',Succ(10)); ifSucc (RED) = BLUE then Writeln('V type Color je RED pred BLUE.'); end. Pascal 2006

  25. High (X); Low (X); • High vráti vyššiu hodnotu v rozsahu argumentu. X, alebo index typeof X. X môže byť identifikátor typu alebo premenná. Výsledok je závislý od typu X • Low najnižšiu hranicu v rozsahu daného typu. Výsledný typ je X, alebo index typu of X kde X buď identifikátor typu alebo premenná. Pascal 2006

  26. High (X); Low (X); Pascal 2006

  27. Random [(range : real|word)] : real|word; Vracia náhodné číslo. Výsledok je rovnakého typu ako typ parametru. Pokiaľ sa nedefinuje range, je výsledok náhodné číslo typu real, ktoré patrí do intervalu 0<=X<1. Pokiaľ sa uvedie range<= 0, funkcie vracia hodnotu 0. Generátor náhodných čísel sa musí pred použitím inicializovať vyvolaním procedúry Randomize. uses Crt; begin Randomize; repeat Writeln (Random(1000)); until KeyPressed; end. Pascal 2006

  28. Knižnica SYSTEM - pamäť a smerník • stavové informácie o objekte, adresa, prevod adresy - Addr, assigned, Ofs, Ptr, Seg, TypeOf, • funkcie pre prácu s registrami - Sprt, Sseg, Cseg, Dseg, • funkcie pre správu pamäti, pridelenie a uvoľnenie - Dispose, FreeMem, GetMem, New, Mark, Release, • zisťovanie veľkosti pamäti - MaxAvail, MemAvail Pascal 2006

  29. Knižnica SYSTEM - súbory • otvorenie a uzavretie súboru – Assign, Append, Reset, Rewrite, Close, Truncate, • čítanie a zápis do súboru – Read, Write, ReadLn, WriteLn, BlockRead, BlockWrite • operácienad súborom - Eof, EoLn, FilePos, FileSize, • testovanie stavu - Seek, SeekEof, SeekEol Pascal 2006

  30. Assign (F; meno : string); Priraďuje meno externého súboru premennej typu súbor F, pričom sa môže jednať o ľubovoľný typ súboru. Meno diskového súboru môže byť maximálne 8 znakov dlhé, po ňom môže nasledovať bodka a rozšírení o dĺžke tri znaky. Maximálne je možné definovať 79 znakov. var F: Text; begin Assign(F, ''); {štandardný výstup} Rewrite(F); Writeln(F, ' štandardný výstup ...'); Close(F); end. Pascal 2006

  31. Append (var F : text); Otvára existujúci súbor pre vkladanie dát. F je premenná typu textový súbor, ktorá sa musí vopred priradiť k externému diskovému súboru procedúrou Assign. var F: Text; begin Assign(F, 'TEST.TXT'); Append(F); {pridá záznam na koniec} end; Pascal 2006

  32. Reset (var F : file; recsize : word); Otvorí existujúci súbor. F je premenná súboru ľubovoľného typu, ktorý sa musí najskôr pridružiť k externému diskovému súboru pomocou procedúry Assign. Recsize je voliteľný výraz typu slovo, ktorý sa môže definovať len vtedy, ak sa jedná o súbor bez udaného typu. Recsize definuje dĺžku záznamu, ktorá sa používa pri prenose dát zo súboru. Pascal 2006

  33. Rewrite (var F : file; recsize : word); Vytvorí a otvorí nový súbor na disku. F je premenná súboru ľubovoľného typu, ktorá sa musí pridružiť k externému súboru pomocou procedúry Assign. Recsize je voliteľný parameter typu slovo a definuje veľkosť jedného záznamu pri súbore bez udania typu. var F: Text; begin Assign(F, 'NEWFILE.$$$'); Rewrite(F); Writeln(F, 'Súbor sa len vytvoril ... '); Close(F); end. Pascal 2006

  34. Close ( f ); Uzatvára otvorený diskový súbor. F je premenná súboru, ktorý bol predtým otvorený procedúrami Reset, Rewrite alebo Append. Výsledok uzavretia sa môže testovať pomocou funkcie IOResult. var F: file; begin Assign(F, '\AUTOEXEC.BAT'); {otvor súbor} Reset(F, 1); Writeln('Veľkosť = ', FileSize(F)); Close(F); {uzavri súbor} end. Pascal 2006

  35. IOResult : word; Vracia celočíselnú hodnotu, ktorá udáva stav poslednej vstupnej/výstupnej operácie var F: fileof Byte; begin { Názov súboru s príkazového riadku} Assign(F, ParamStr(1)); {$I-} Reset(F); {$I+} if IOResult = 0 then Write('Veľkosť : ', FileSize(F)) else Write('Súbor sa nenašiel'); end. Pascal 2006

  36. BlockRead (var F : file; var buf; count : word[; result : word]); Prečíta jeden alebo viac záznamov z externého súboru do premenné. Používa sa pre čítanie zo súboru bez udaného typu F je premenná typu súbor - file, buf je ľubovolná premenná, count je výraz typu word a result je nepovinná premenná typu slovo. Procedúra prečíta count alebo menej záznamov zo súboru F do pamäti a uloží ich od prvého byte premenné buf. Skutočný počet prečítaných záznamov (menej alebo rovno než count) sa vracia vo voliteľnom parametre result. Pascal 2006

  37. program CopyFile; var FromF, ToF: file; NumR, NumW: Word; Buf: array[1..2048] of Char; begin Assign(FromF, ParamStr(1)); { Otvorí vstupný súbor } Reset(FromF, 1); { veľkosť = 1 } Assign(ToF, ParamStr(2)); { Otvorí výstupný súbor } Rewrite(ToF, 1); { veľkosť = 1 } Writeln('Kopírujem ', FileSize(FromF), ' bytov...'); repeat BlockRead(FromF, Buf, SizeOf(Buf), NumR); BlockWrite(ToF, Buf, NumR, NumW); until (NumR = 0) or (NumW <> NumR); Close(FromF); Close(ToF); end. Pascal 2006

  38. Eof (F) : boolean; Vracia stav konce súboru - F je premenná súboru ľubovoľného typu. Funkcia vracia logickú hodnotu true, keď je smerník v súbore za poslednou položkou súboru alebo keď súbor neobsahuje žiadne položky. Vo všetkých ostatých prípadoch vracia funkcie hodnotu false. Pascal 2006

  39. Príklad funkcie eof() var F: Text; Ch: Char; begin Assign(F, ParamStr(1)); Reset(F); whilenot Eof(F)dobegin Read(F, Ch); Write(Ch); { Výpis súboru } end; end. Pascal 2006

  40. Knižnica SYSTEM - adresáre • ostatné operácie nad súborom – Flush, SetTextBuf, Erase, Rename • práca s adresármi - ChDir, GetDir,MkDir, RmDir Pascal 2006

  41. ChDir (St : string); Mení aktuálny adresár na disku. St je výraz typu reťazec. Súčasný adresár sa zmení na adresár definovaný parametrom St procedúry. begin {$I-} ChDir(ParamStr(1)); {$I+} if IOResult <> 0 then write('adresár sa nenašiel ...'); end. Pascal 2006

  42. GetDir (D : byte; var S : string); Vracia aktuálny adresár definovanej diskové jednotky. D je výraz typu byte, S je premenná typu reťazec. Meno aktuálneho adresára definované výrazom D sa vracia v premennej S. Disketová jednotka A: sa označuje ako 0, B ako 1, C ako 2 atd. var s : String; begin GetDir(0,s); { na aktuálnom disku } Writeln('Aktuálny adresár je ',s); end. Pascal 2006

  43. Knižnica SYSTEM - reťazce • funkcie pre spracovanie reťazcov - Concat, Copy, Length, Pos,Delete, Insert, Str, Val, SizoeOf , Move, UpCase, FillChar • množinové operácie – Exclude aInclude • spracovanie parametru z príkazového riadku - ParamCount a ParamStr, Pascal 2006

  44. Copy (S : string; index : integer; count : integer) : string; Vracia podreťazec reťazca. S je výraz typu reťazec. Index a count sú výrazy typu integer. Funkcia copy vracia count znakov začínajúcich znakom v S, ktorého poradie je dané výrazom index. var S: String; begin S := 'ABCDEF'; S := Copy(S, 2, 3); { 'BCD' } end. Pascal 2006

  45. Lenght (S : string) : integer; Vracia skutočnúdĺžku reťazca - S je výraz typu reťazec. Výsledkom funkcie je číslo typu integer, ktoré vyjadruje počet znakov reťazca S. var S: String; begin Readln (S); Writeln('"', S, '"'); Writeln('dĺžka je ', Length(S)); end. Pascal 2006

  46. Pos (substr, S : string) : byte; Vyhľadá podreťazec v reťazci. Substr a S sú výrazy typu reťazec. Pos hľadá výraz substr vo vnútri reťazca S a vracia celočíselnú hodnotu, ktorá je indexom prvého znaku substr vo vnútri S. Pokiaľ sa substr v S nenájde, vráti funkcia Pos nulu. var S: String; begin S := ' 123.5'; { konverzia medzier na nulu } while Pos(' ', S) > 0 do S[Pos(' ', S)] := '0'; end. Pascal 2006

  47. Delete (var S : string; index : integer;count : integer); Delete odstráni count znakov z reťazca S, pričom odstránenie začína na pozícii, ktorou udáva výraz index. Keď je index väčší než dĺžka reťazca, neodstránia sa žiadne znaky. Keď count špecifikuje viac znakov, než zvyšok reťazca, odstránia sa znaky do konca reťazca. var s: string; begin s := 'Honest Abe Lincoln'; Delete(s,8,4); Writeln(s); { 'Honest Lincoln' } end. Pascal 2006

  48. Insert (Source : string; var S : string; Index : integer); Procedúra insert vkladá reťazec source do reťazca S na pozíciu definovanú výrazom index. Keď je výsledný reťazec dlhší než 255 znakov, nadbytočné znaky sa z reťazca vypustia. var S: String; begin S := 'Honest Lincoln'; Insert('Abe ', S, 8); { 'Honest Abe Lincoln' } end. Pascal 2006

  49. Str (X [ : width [ : decimals]]; var S : string); Prevedie číselnú hodnotu na jej reťazcové zobrazenie. • X je výraz typu integer alebo real. • width a decimals sú výrazy typu integer. • S je premenná typu reťazec. Pri X je možné použiť formátovanie, napr.: • Real x:12:2 – celkový počet a desatinné • Integer x:2 – len celkový počet Pascal 2006

  50. Ukážka str Program prevod; function IntToStr(I: Longint): String; var S: string[11]; begin Str(I, S); IntToStr := S; end; begin Writeln(IntToStr(-5322)); end. Pascal 2006

More Related