Algoritmizácia a programovanie Štruktúrované údajové typy prof. Ing. Ján Terpák, CSc. Technická univerzita v Košiciach Fakulta baníctva, ekológie, riadenia a geotechnológíı Ústav riadenia a informatizácie výrobných procesov March 27, 2019
Obsah Rozdelenie štruktúrovaných údajových typov Údajový typ pole Údajový typ záznam Údajový typ množina Údajový typ súbor
Rozdelenie štrukturovaných údajových typov pole, záznam, množina, súbor.
Obsah Rozdelenie štruktúrovaných údajových typov Údajový typ pole Údajový typ záznam Údajový typ množina Údajový typ súbor
Údajový typ pole údajová štruktúra pozostávajúca z pevného počtu zložiek rovnakého typu,
Údajový typ pole údajová štruktúra pozostávajúca z pevného počtu zložiek rovnakého typu, jednotlivé zložky sú rozĺıšiteľné a sprístupnené pomocou indexu,
Údajový typ pole údajová štruktúra pozostávajúca z pevného počtu zložiek rovnakého typu, jednotlivé zložky sú rozĺıšiteľné a sprístupnené pomocou indexu, v prípade poľa rozlišujeme dva údajové typy: údajový typ zložiek po ľa, údajový typ indexu,
Údajový typ pole údajová štruktúra pozostávajúca z pevného počtu zložiek rovnakého typu, jednotlivé zložky sú rozĺıšiteľné a sprístupnené pomocou indexu, v prípade poľa rozlišujeme dva údajové typy: údajový typ zložiek po ľa, údajový typ indexu, index nadobúda hodnoty ordinálneho typu,
Údajový typ pole údajová štruktúra pozostávajúca z pevného počtu zložiek rovnakého typu, jednotlivé zložky sú rozĺıšiteľné a sprístupnené pomocou indexu, v prípade poľa rozlišujeme dva údajové typy: údajový typ zložiek po ľa, údajový typ indexu, index nadobúda hodnoty ordinálneho typu, všeobecná deklarácia premennej: var PREMENNA: array [typ indexu] of typ zložiek;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char; D : array[char] of char;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char; D : array[char] of char; E : array[boolean] of integer;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char; D : array[char] of char; E : array[boolean] of integer; F : array[ A.. Z ] of integer;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char; D : array[char] of char; E : array[boolean] of integer; F : array[ A.. Z ] of integer; prístup k zložkám: A[1] := 5;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char; D : array[char] of char; E : array[boolean] of integer; F : array[ A.. Z ] of integer; prístup k zložkám: A[1] := 5; B[0] := 2.8;!!!
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char; D : array[char] of char; E : array[boolean] of integer; F : array[ A.. Z ] of integer; prístup k zložkám: A[1] := 5; B[0] := 2.8;!!! C[2,2] := T ;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char; D : array[char] of char; E : array[boolean] of integer; F : array[ A.. Z ] of integer; prístup k zložkám: A[1] := 5; B[0] := 2.8;!!! C[2,2] := T ; D[ X ] := G ;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char; D : array[char] of char; E : array[boolean] of integer; F : array[ A.. Z ] of integer; prístup k zložkám: A[1] := 5; B[0] := 2.8;!!! C[2,2] := T ; D[ X ] := G ; E[true] := 1;
Údajový typ pole príklady deklarácie: var A : array[1..10] of integer; B : array[1..100] of real; C : array[1..5,1..10] of char; D : array[char] of char; E : array[boolean] of integer; F : array[ A.. Z ] of integer; prístup k zložkám: A[1] := 5; B[0] := 2.8;!!! C[2,2] := T ; D[ X ] := G ; E[true] := 1; F[ A ] := 10;
Údajový typ pole 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov ukončených znakom X a zistí koľkokrát sa vyskytli znaky I, J, K, L, M, N.
Údajový typ pole 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov ukončených znakom X a zistí koľkokrát sa vyskytli znaky I, J, K, L, M, N. 2. Návrh riešenia: Vstupy: ZNAK - znak
Údajový typ pole 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov ukončených znakom X a zistí koľkokrát sa vyskytli znaky I, J, K, L, M, N. 2. Návrh riešenia: Vstupy: ZNAK - znak Výstupy: POCET - pole celých čísel
Údajový typ pole 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov ukončených znakom X a zistí koľkokrát sa vyskytli znaky I, J, K, L, M, N. 2. Návrh riešenia: Vstupy: ZNAK - znak Výstupy: POCET - pole celých čísel Metóda: porovnaním
Údajový typ pole 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov ukončených znakom X a zistí koľkokrát sa vyskytli znaky I, J, K, L, M, N. 2. Návrh riešenia: Vstupy: ZNAK - znak Výstupy: POCET - pole celých čísel Metóda: porovnaním 3. Zostavenie algoritmu: 4. Testovanie algoritmu: 5. Kódovanie:
Údajový typ pole program VYSKYT PISMEN; uses CRT; var ZNAK : char; {- vstup } POCET: array[ I.. N ] of integer; {- vystup } begin { Popis programu } ClrScr; writeln( Program... ); writeln; { Vynulovanie pocitadla } for ZNAK:= I to N do POCET[ZNAK] := 0; { Nacitanie, porovnanie a zmena pocitadla } repeat write( Zadaj lubovolne pismeno : ); readln(znak); if ZNAK in [ I.. N ] then POCET[ZNAK] := POCET[ZNAK] + 1; until ZNAK = X ; { Tlac stavu pocitadla } for ZNAK:= I to N do writeln( Vyskyt pismena,znak, je,pocet[znak]); readln;
Údajový typ reťazec znakov string - jednorozmerné pole znakov type string = array[0..255] of char; var X : string; nultý byte - aktuálna dĺžka reťazca X := FERO ; potom X[0] = 4
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Concat - funkcia na spájanie reťazcov S := Concat(S1, S2,..., Sn);
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Concat - funkcia na spájanie reťazcov S := Concat(S1, S2,..., Sn); S := Concat( Dnes, je, streda ); S <-- Dnes + je + streda ;
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Concat - funkcia na spájanie reťazcov S := Concat(S1, S2,..., Sn); S := Concat( Dnes, je, streda ); S <-- Dnes + je + streda ; Copy - funkcia, ktorá vracia podreťazec z reťazca S := Copy(S1, I, P);
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Concat - funkcia na spájanie reťazcov S := Concat(S1, S2,..., Sn); S := Concat( Dnes, je, streda ); S <-- Dnes + je + streda ; Copy - funkcia, ktorá vracia podreťazec z reťazca S := Copy(S1, I, P); S := Copy( ABCD,2,2); S <-- BC ;
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Concat - funkcia na spájanie reťazcov S := Concat(S1, S2,..., Sn); S := Concat( Dnes, je, streda ); S <-- Dnes + je + streda ; Copy - funkcia, ktorá vracia podreťazec z reťazca S := Copy(S1, I, P); S := Copy( ABCD,2,2); S <-- BC ; Delete - procedúra, ktorá vymaže podreťazec z reťazca Delete(S, I, P);
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Concat - funkcia na spájanie reťazcov S := Concat(S1, S2,..., Sn); S := Concat( Dnes, je, streda ); S <-- Dnes + je + streda ; Copy - funkcia, ktorá vracia podreťazec z reťazca S := Copy(S1, I, P); S := Copy( ABCD,2,2); S <-- BC ; Delete - procedúra, ktorá vymaže podreťazec z reťazca Delete(S, I, P); S := ABCD ; Delete(S, 2, 2); S <-- AD ;
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Insert - procedúra, ktorá vkladá podreťazec do reťazca Insert(S1, S, I);
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Insert - procedúra, ktorá vkladá podreťazec do reťazca Insert(S1, S, I); S := AD ; Insert( BC, S, 2); S <-- ABCD ;
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Insert - procedúra, ktorá vkladá podreťazec do reťazca Insert(S1, S, I); S := AD ; Insert( BC, S, 2); S <-- ABCD ; Length - funkcia, ktorá vracia dĺžku reťazca S := ABCD ; D := Length(S); D <-- 4;
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Insert - procedúra, ktorá vkladá podreťazec do reťazca Insert(S1, S, I); S := AD ; Insert( BC, S, 2); S <-- ABCD ; Length - funkcia, ktorá vracia dĺžku reťazca S := ABCD ; D := Length(S); D <-- 4; Pos - funkcia, ktorá vyhľadá podreťazec v reťazci P := Pos(S1, S);
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Insert - procedúra, ktorá vkladá podreťazec do reťazca Insert(S1, S, I); S := AD ; Insert( BC, S, 2); S <-- ABCD ; Length - funkcia, ktorá vracia dĺžku reťazca S := ABCD ; D := Length(S); D <-- 4; Pos - funkcia, ktorá vyhľadá podreťazec v reťazci P := Pos(S1, S); P := Pos( BC, ABCD ); P <-- 2;
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Str - procedúra konvertuje numerickú hodnotu na reťazec X := 1.25; Str(X, S); S <-- 1.25 ;
Údajový typ reťazec znakov Procedury a funkcie pre prácu s reťazcami Str - procedúra konvertuje numerickú hodnotu na reťazec X := 1.25; Str(X, S); S <-- 1.25 ; Val - procedúra konvertuje reťazec na numerickú hodnotu S := 1.25 ; Val(S, X, C); X <-- 1.25; C <-- 0;
Obsah Rozdelenie štruktúrovaných údajových typov Údajový typ pole Údajový typ záznam Údajový typ množina Údajový typ súbor
Údajový typ záznam štruktúrovaný údajový typ, ktorý zoskupuje zložky rôzneho typu, jednotlivé zložky sú rozĺıšiteľné a sprístupnené pomocou mena zložky, všeobecna definícia: type Tzaznam = record POLOZKA 1 : Typ1;... POLOZKA N : TypN; end; var ZAZNAM : Tzaznam;
Údajový typ záznam príklady definície a deklarácie: type Komplexne cislo = record Re : real; Im : real end;
Údajový typ záznam príklady definície a deklarácie: type Komplexne cislo = record Re : real; Im : real end; Datum = record Den : 1..31; Mes : 1..12; Rok : integer end;
Údajový typ záznam príklady definície a deklarácie: type Komplexne cislo = record Re : real; Im : real end; Datum = record Den : 1..31; Mes : 1..12; Rok : integer end; Osoba = record Meno : string; Priezvisko : string; Datum narodenia : Datum; Pohlavie : (muz, zena) end;
Údajový typ záznam prístup k zložkám: K.Im := - 1.5; D.Rok := 2017; O.Meno := Ondrej ; použitie príkazu with: with D do begin D.Den := 11; Den := 11; D.Mes := 4; <=> Mes := 4; D.Rok := 2017; Rok := 2017; end;
Údajový typ záznam 1. Definícia problému: Zostavte program pre načítanie kurzovej tabuľky s N riadkami. Riadok tvorí kód, názov a kurz meny. Tabuľku vytlačte. 2. Návrh riešenia: Vstupy: N - celé číslo, počet riadkov TAB - pole riadkov (riadok - záznam: Kod, Nazov, Kurz) Výstupy: TAB - pole riadkov (riadok - záznam: Kod, Nazov, Kurz) Metóda: načítanie a tlač tabuľky 3. Zostavenie algoritmu: 4. Testovanie algoritmu: 5. Kódovanie:
Údajový typ záznam program KURZOVA TABULKA; uses CRT; const Nmax = 25; DK = 3; DN = 20; PZ = 10; PD = 4; type riadok = record KOD : string[dk]; NAZOV: string[dn]; KURZ : real; end; tabulka = array[1..nmax] of riadok; var N : integer; { - vstup } TAB : tabulka; { - vstup/vystup } I : integer; { - pomocna premenna } begin end.
Údajový typ záznam begin { Nacitanie poctu riadkov tabulky } ClrScr; write( Zadaj pocet riadkov tabulky ); readln(n); { Nacitanie tabulky } writeln; for I:=1 to N do begin write( Kod : ); readln(tab[i].kod); write( Nazov : ); readln(tab[i].nazov); write( Kurz : ); readln(tab[i].kurz); end; { Vypisanie tabulky } writeln; writeln( KOD :DK, NAZOV :DN, KURZ :PZ); for I:=1 to N do with TAB[I] do writeln(kod:dk,nazov:dn,kurz:pz:pd); readln; end.
Obsah Rozdelenie štruktúrovaných údajových typov Údajový typ pole Údajový typ záznam Údajový typ množina Údajový typ súbor
Údajový typ množina štruktúrovaný údajový typ pozostávajúci z množiny prvkov ordinálneho typu, počet prvkov množiny je v rozsahu 0 až 255,
Údajový typ množina štruktúrovaný údajový typ pozostávajúci z množiny prvkov ordinálneho typu, počet prvkov množiny je v rozsahu 0 až 255, deklarácia premennej: var PREMENNA : set of typ prvku;
Údajový typ množina štruktúrovaný údajový typ pozostávajúci z množiny prvkov ordinálneho typu, počet prvkov množiny je v rozsahu 0 až 255, deklarácia premennej: var PREMENNA : set of typ prvku; príklady definície a deklarácie: type znaky = set of char; cisla = set of 1..9; var Z : znaky; C : cisla; P : set of char; K : set of a.. z ;
Údajový typ množina sprístupnenie zložiek typu množina: C := [ 1, 2, 3, 4 ]; P := [ ]; P := [ A, Z, *,! ]; K := [ c, e, g ];
Údajový typ množina sprístupnenie zložiek typu množina: C := [ 1, 2, 3, 4 ]; P := [ ]; P := [ A, Z, *,! ]; K := [ c, e, g ]; pre prácu s množinami sú prípustné všetky relačné operácie <, <=, =, <>, >=, >
Údajový typ množina sprístupnenie zložiek typu množina: C := [ 1, 2, 3, 4 ]; P := [ ]; P := [ A, Z, *,! ]; K := [ c, e, g ]; pre prácu s množinami sú prípustné všetky relačné operácie <, <=, =, <>, >=, > prípustné množinové operácie: zjednotenie množín : A B => A + B prienik množín : A B => A B rozdiel množín : A B => A B príslušnosť k množine : A B => A in B
Údajový typ množina hodnota A hodnota B výraz výsledok operácia [1,2,3,4] [1,2,3,4] A = B True = [ a, b, c ] [ c, a ] A = B False =
Údajový typ množina hodnota A hodnota B výraz výsledok operácia [1,2,3,4] [1,2,3,4] A = B True = [ a, b, c ] [ c, a ] A = B False = [1,2,3] [3,1,2,4] A <> B True <> [ c.. t ] [ t.. c ] A <> B False <>
Údajový typ množina hodnota A hodnota B výraz výsledok operácia [1,2,3,4] [1,2,3,4] A = B True = [ a, b, c ] [ c, a ] A = B False = [1,2,3] [3,1,2,4] A <> B True <> [ c.. t ] [ t.. c ] A <> B False <> [1,2,3,4] [2,3,4] A >= B True >= [ a.. z ] [ b.. t ] A >= B True >=
Údajový typ množina hodnota A hodnota B výraz výsledok operácia [1,2,3,4] [1,2,3,4] A = B True = [ a, b, c ] [ c, a ] A = B False = [1,2,3] [3,1,2,4] A <> B True <> [ c.. t ] [ t.. c ] A <> B False <> [1,2,3,4] [2,3,4] A >= B True >= [ a.. z ] [ b.. t ] A >= B True >= [1,2,3] [1,2,3,4] A <= B True <= [ d.. h ] [ z.. a ] A <= B True <=
Údajový typ množina hodnota A hodnota B výraz výsledok operácia [1,2,3,4] [1,2,3,4] A = B True = [ a, b, c ] [ c, a ] A = B False = [1,2,3] [3,1,2,4] A <> B True <> [ c.. t ] [ t.. c ] A <> B False <> [1,2,3,4] [2,3,4] A >= B True >= [ a.. z ] [ b.. t ] A >= B True >= [1,2,3] [1,2,3,4] A <= B True <= [ d.. h ] [ z.. a ] A <= B True <= [1,2,3] [1,4,5] A + B [1,2,3,4,5] [ A.. D ] [ E.. Z ] A + B [ A.. Z ]
Údajový typ množina hodnota A hodnota B výraz výsledok operácia [] [] A + B []
Údajový typ množina hodnota A hodnota B výraz výsledok operácia [] [] A + B [] [1,2,3] [1,4,2,5] A * B [1,2] [ A.. Z ] [ B.. R ] A * B [ B.. R ] [] [1,2] A * B []
Údajový typ množina hodnota A hodnota B výraz výsledok operácia [] [] A + B [] [1,2,3] [1,4,2,5] A * B [1,2] [ A.. Z ] [ B.. R ] A * B [ B.. R ] [] [1,2] A * B [] [1,2,3,4] [3,4,1] A - B [2] [ a.. z ] [ d.. z ] A - B [ a.. c ]
Údajový typ množina hodnota A hodnota B výraz výsledok operácia [] [] A + B [] [1,2,3] [1,4,2,5] A * B [1,2] [ A.. Z ] [ B.. R ] A * B [ B.. R ] [] [1,2] A * B [] [1,2,3,4] [3,4,1] A - B [2] [ a.. z ] [ d.. z ] A - B [ a.. c ] [2] [1,2,3] A in B True [ v ] [ a.. n ] A in B False [x1] [x0,x1,x2,x3] A in B True
Údajový typ množina 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov písmen malej abecedy ukončenú znakom z, nájde najmenší znak a vytlačí zotriedené znaky.
Údajový typ množina 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov písmen malej abecedy ukončenú znakom z, nájde najmenší znak a vytlačí zotriedené znaky. 2. Návrh riešenia: Vstupy: ZNAK - znak
Údajový typ množina 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov písmen malej abecedy ukončenú znakom z, nájde najmenší znak a vytlačí zotriedené znaky. 2. Návrh riešenia: Vstupy: ZNAK - znak Výstupy: MIN - znak MNOZINA - mnozina znakov
Údajový typ množina 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov písmen malej abecedy ukončenú znakom z, nájde najmenší znak a vytlačí zotriedené znaky. 2. Návrh riešenia: Vstupy: ZNAK - znak Výstupy: MIN - znak MNOZINA - mnozina znakov Metóda: načítanie a tlač množiny znakov
Údajový typ množina 1. Definícia problému: Zostavte program, ktorý načíta postupnosť znakov písmen malej abecedy ukončenú znakom z, nájde najmenší znak a vytlačí zotriedené znaky. 2. Návrh riešenia: Vstupy: ZNAK - znak Výstupy: MIN - znak MNOZINA - mnozina znakov Metóda: načítanie a tlač množiny znakov 3. Zostavenie algoritmu: 4. Testovanie algoritmu: 5. Kódovanie:
Údajový typ množina program MNOZINA PRVKOV; uses CRT; type Tmnozina = set of char; var ZNAK : char; { - vstup } MIN : char; { - vystup } MNOZINA : Tmnozina; begin end.
Údajový typ množina begin { Nacitanie prvkov mnoziny: } MNOZINA := []; repeat repeat write( Zadaj pismeno malej abecedy ); readln(znak); if not (ZNAK in [ a.. z ]) then writeln( Nespravne zadane pismeno malej abecedy!, zadat opat ); until ZNAK in [ a.. z ]; MNOZINA := MNOZINA + [ZNAK]; until ZNAK = z ; { Najdenie najmensieho prvku: } ZNAK := a ; while not (ZNAK in MNOZINA) do ZNAK := succ(znak); MIN := ZNAK; writeln; writeln( Najmensie pismeno malej abecedy je :,MIN); { Zotriedenie prvkov mnoziny: } writeln; for ZNAK := a to z do if ZNAK in MNOZINA then write(znak, ); readln; end.
Obsah Rozdelenie štruktúrovaných údajových typov Údajový typ pole Údajový typ záznam Údajový typ množina Údajový typ súbor
Údajový typ súbor súbor - pomenovaná oblasť vonkajšej pamäte, určená pre uchovanie dát, štruktúrovaný údajový typ pozostávajúci z postupnosti zložiek rovnakého typu, pre ktoré sú definované určité operácie, operácie umožňujú spracovanie súboru, t.j. postupné čítanie, resp. zápis zložiek do súboru, v každom okamihu je práve prístupná jedna zložka súboru,
Údajový typ súbor podľa typu zložky rozoznávame tri typy súborov: typový súbor - zložka definovaného typu var subor1 : file of Tkniha;
Údajový typ súbor podľa typu zložky rozoznávame tri typy súborov: typový súbor - zložka definovaného typu var subor1 : textový súbor - zložka je znak var subor2 : file of Tkniha; text;
Údajový typ súbor podľa typu zložky rozoznávame tri typy súborov: typový súbor - zložka definovaného typu var subor1 : textový súbor - zložka je znak var subor2 : netypový súbor - zložka je byte var subor3 : file of Tkniha; text; file;
Údajový typ súbor príklady definície a deklarácie: type Tkniha = record autor : string; nazov : string; rok vydania: integer; pocet stran: integer; end;
Údajový typ súbor príklady definície a deklarácie: type Tkniha = record autor : string; nazov : string; rok vydania: integer; pocet stran: integer; end; var Subor : file of Tkniha;
Údajový typ súbor Postup práce so súborom vytvorenie prepojenia,
Údajový typ súbor Postup práce so súborom vytvorenie prepojenia, otvorenie súboru,
Údajový typ súbor Postup práce so súborom vytvorenie prepojenia, otvorenie súboru, práca so súborom,
Údajový typ súbor Postup práce so súborom vytvorenie prepojenia, otvorenie súboru, práca so súborom, zatvorenie súboru.
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom var SUB : file of Tkniha; SUBOR: string; ZAZNAM: Tkniha;
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom var SUB : file of Tkniha; SUBOR: string; ZAZNAM: Tkniha; assign(sub,subor) vytvorenie prepojenia medzi premennou SUB typu súbor a konkrétnym externým súborom SUBOR
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom var SUB : file of Tkniha; SUBOR: string; ZAZNAM: Tkniha; assign(sub,subor) vytvorenie prepojenia medzi premennou SUB typu súbor a konkrétnym externým súborom SUBOR rewrite(sub) vytvorí nový súbor (existujúci sa zmaže), použitie pre čítanie aj zápis,
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom var SUB : file of Tkniha; SUBOR: string; ZAZNAM: Tkniha; assign(sub,subor) vytvorenie prepojenia medzi premennou SUB typu súbor a konkrétnym externým súborom SUBOR rewrite(sub) vytvorí nový súbor (existujúci sa zmaže), použitie pre čítanie aj zápis, reset(sub) otvorí existujúci súbor pre čítanie aj zápis,
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom var SUB : file of Tkniha; SUBOR: string; ZAZNAM: Tkniha; assign(sub,subor) vytvorenie prepojenia medzi premennou SUB typu súbor a konkrétnym externým súborom SUBOR rewrite(sub) vytvorí nový súbor (existujúci sa zmaže), použitie pre čítanie aj zápis, reset(sub) otvorí existujúci súbor pre čítanie aj zápis, read(sub,zaznam) čítanie položky so súboru SUB do premennej ZAZNAM,
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom write(sub,zaznam) zápis položky do súboru SUB z premennej ZAZNAM, seek(sub,i) presun v súbore SUB na pozíciu I,
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom write(sub,zaznam) zápis položky do súboru SUB z premennej ZAZNAM, seek(sub,i) presun v súbore SUB na pozíciu I, filesize(sub) funkcia, ktorá vracia veľkosť súboru,
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom write(sub,zaznam) zápis položky do súboru SUB z premennej ZAZNAM, seek(sub,i) presun v súbore SUB na pozíciu I, filesize(sub) funkcia, ktorá vracia veľkosť súboru, filepos(sub) funkcia, ktorá vracia pozíciu v súbore,
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom write(sub,zaznam) zápis položky do súboru SUB z premennej ZAZNAM, seek(sub,i) presun v súbore SUB na pozíciu I, filesize(sub) funkcia, ktorá vracia veľkosť súboru, filepos(sub) funkcia, ktorá vracia pozíciu v súbore, eof(sub) funkcia, ktorá vracia hodnotu true, ak je pozícia na konci súboru, ináč false,
Údajový typ súbor Procedúry a funkcie pre prácu s typovým súborom write(sub,zaznam) zápis položky do súboru SUB z premennej ZAZNAM, seek(sub,i) presun v súbore SUB na pozíciu I, filesize(sub) funkcia, ktorá vracia veľkosť súboru, filepos(sub) funkcia, ktorá vracia pozíciu v súbore, eof(sub) funkcia, ktorá vracia hodnotu true, ak je pozícia na konci súboru, ináč false, close(sub) zatvorenie súboru
Údajový typ súbor 1. Definícia problému: Zostavte program pre načítanie kartotéky, ktorej záznam tvoria položky: Meno, Pohlavie, Stav a Výška. Načítaný zaznam uložiť do typového súboru. Nájsť počet ženatých mužov, slobodných žien a slobodných vysokých žien. 2. Návrh riešenia: Vstupy: KARTA - pole záznamov Výstupy: KARTA - pole záznamov PZM - celé číslo, počet ženatých mužov PSZ - celé číslo, počet slobodných žien PVZ - celé číslo, počet slobodných vysokých žien Metóda: načítanie poľa záznamov a jeho uloženie do súboru, zistenie počtu PZM, PSZ, PVZ 3. Zostavenie algoritmu: 4. Testovanie algoritmu: 5. Kódovanie:
Údajový typ súbor program TypovySubor; const Nmax = 50; Vysoka = 170; type Tosoba = record Meno : string; Pohl : (muz,zena); Stav : (slob,zen,rozv,vdov); Vyska: integer; end; Tsubor = file of Tosoba; Tosoby = array[1..nmax] of Tosoba; var KARTA SUBOR ZNAK S : Tosoby; : Tsubor; : char; : string; N, V, C, I : integer; PZM,PSZ,PVZ: integer;
Údajový typ súbor... begin { Nacitanie vstupov : } N := 0; repeat N := N + 1; { Nacitanie Mena : } write ( Meno : ); readln(karta[n].meno); { Nacitanie Pohl : } repeat write( Pohl (m-muz,z-zena): ); readln(znak) until ZNAK in [ m, z ]; case ZNAK of m : KARTA[N].Pohl:=muz; end;... z : KARTA[N].Pohl:=zena;
Údajový typ súbor... { Nacitanie Stav : } repeat write( Stav (s-slob,z-zen,r-rozv,v-vdov): ); readln(znak) until ZNAK in [ s, z, r, v ]; case ZNAK of s : KARTA[N].Stav:=slob; z : KARTA[N].Stav:=zen; r : KARTA[N].Stav:=rozv; v : KARTA[N].Stav:=vdov; end; { Nacitanie Vyska : } repeat write( Vyska: ); readln(s); val(s,v,c); until C = 0; KARTA[N].Vyska:=V;...
Údajový typ súbor... { Nacitanie ukoncenia : } write( Koniec - 1, Pokracuj - 0? ); readln(znak); writeln until (ZNAK = 1 ) or (N = Nmax); { Ulozenie vstupov do typoveho suboru } assign(subor, subor.dat ); rewrite(subor); for I:=1 to N do write(subor,karta[i]); close(subor);...
Údajový typ súbor... { Zistit pocet muzov a zien } PZM:=0; PSZ:=0; PVZ:=0; for I:=1 to N do with KARTA[I] do case Pohl of muz : if stav=zen then PZM := PZM + 1; zena: begin if stav = slob then PSZ := PSZ + 1; if (stav = slob) and (Vyska > Vysoka) then PVZ := PVZ + 1; end; end;...
Údajový typ súbor... { Tlac vysledkov } writeln( Pocet zenatych muzov =,PZM); writeln( Pocet slobodnych zien =,PSZ); writeln( Pocet slobodnych vysokych zien =,PSZ); readln; end.
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom var SUB : text; SUBOR: string;
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom var SUB : text; SUBOR: string; assign(sub,subor) vytvorenie prepojenia medzi premennou SUB typu súbor a konkrétnym externým súborom SUBOR
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom var SUB : text; SUBOR: string; assign(sub,subor) vytvorenie prepojenia medzi premennou SUB typu súbor a konkrétnym externým súborom SUBOR rewrite(sub) vytvorí nový súbor (existujúci sa zmaže), použitie iba pre zápis,
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom var SUB : text; SUBOR: string; assign(sub,subor) vytvorenie prepojenia medzi premennou SUB typu súbor a konkrétnym externým súborom SUBOR rewrite(sub) vytvorí nový súbor (existujúci sa zmaže), použitie iba pre zápis, reset(sub) otvorí existujúci súbor iba pre čítanie,
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom var SUB : text; SUBOR: string; assign(sub,subor) vytvorenie prepojenia medzi premennou SUB typu súbor a konkrétnym externým súborom SUBOR rewrite(sub) vytvorí nový súbor (existujúci sa zmaže), použitie iba pre zápis, reset(sub) otvorí existujúci súbor iba pre čítanie, append(sub) otvorí existujúci súbor a nastaví sa na koniec súboru iba pre zápis,
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom read (SUB,V1, V2,..., Vn), resp. readln(sub,v1, V2,..., Vn) načítanie premenných V1, V2,..., Vn zo súboru SUB,
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom read (SUB,V1, V2,..., Vn), resp. readln(sub,v1, V2,..., Vn) načítanie premenných V1, V2,..., Vn zo súboru SUB, write (SUB,V1, V2,..., Vn), resp. writeln(sub,v1, V2,..., Vn) zápis premenných V1, V2,..., Vn do súboru SUB,
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom read (SUB,V1, V2,..., Vn), resp. readln(sub,v1, V2,..., Vn) načítanie premenných V1, V2,..., Vn zo súboru SUB, write (SUB,V1, V2,..., Vn), resp. writeln(sub,v1, V2,..., Vn) zápis premenných V1, V2,..., Vn do súboru SUB, eoln(sub) funkcia, ktorá vracia hodnotu true, ak je pozícia na konci riadku, ináč false,
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom read (SUB,V1, V2,..., Vn), resp. readln(sub,v1, V2,..., Vn) načítanie premenných V1, V2,..., Vn zo súboru SUB, write (SUB,V1, V2,..., Vn), resp. writeln(sub,v1, V2,..., Vn) zápis premenných V1, V2,..., Vn do súboru SUB, eoln(sub) funkcia, ktorá vracia hodnotu true, ak je pozícia na konci riadku, ináč false, eof(sub) funkcia, ktorá vracia hodnotu true, ak je pozícia na konci súboru, ináč false,
Údajový typ súbor Procedúry a funkcie pre prácu s textovým súborom read (SUB,V1, V2,..., Vn), resp. readln(sub,v1, V2,..., Vn) načítanie premenných V1, V2,..., Vn zo súboru SUB, write (SUB,V1, V2,..., Vn), resp. writeln(sub,v1, V2,..., Vn) zápis premenných V1, V2,..., Vn do súboru SUB, eoln(sub) funkcia, ktorá vracia hodnotu true, ak je pozícia na konci riadku, ináč false, eof(sub) funkcia, ktorá vracia hodnotu true, ak je pozícia na konci súboru, ináč false, close(sub) zatvorenie súboru
Údajový typ súbor 1. Definícia problému: Zostavte program pre výpočet plochy a obvodu obdlžníka, pričom vstupy sú uložené v textovom súbore vstup.txt a výstupy uložte do textového súboru vystup.txt.
Údajový typ súbor 1. Definícia problému: Zostavte program pre výpočet plochy a obvodu obdlžníka, pričom vstupy sú uložené v textovom súbore vstup.txt a výstupy uložte do textového súboru vystup.txt. 2. Návrh riešenia: Vstupy: A - reálne číslo, strana obdlžníka B - reálne číslo, strana obdlžníka
Údajový typ súbor 1. Definícia problému: Zostavte program pre výpočet plochy a obvodu obdlžníka, pričom vstupy sú uložené v textovom súbore vstup.txt a výstupy uložte do textového súboru vystup.txt. 2. Návrh riešenia: Vstupy: A - reálne číslo, strana obdlžníka B - reálne číslo, strana obdlžníka Výstupy: O - reálne číslo, obvod obdlžníka S - reálne číslo, plocha obdlžníka
Údajový typ súbor 1. Definícia problému: Zostavte program pre výpočet plochy a obvodu obdlžníka, pričom vstupy sú uložené v textovom súbore vstup.txt a výstupy uložte do textového súboru vystup.txt. 2. Návrh riešenia: Vstupy: A - reálne číslo, strana obdlžníka B - reálne číslo, strana obdlžníka Výstupy: O - reálne číslo, obvod obdlžníka S - reálne číslo, plocha obdlžníka Metóda: O 2(A + B), resp. S A.B
Údajový typ súbor 1. Definícia problému: Zostavte program pre výpočet plochy a obvodu obdlžníka, pričom vstupy sú uložené v textovom súbore vstup.txt a výstupy uložte do textového súboru vystup.txt. 2. Návrh riešenia: Vstupy: A - reálne číslo, strana obdlžníka B - reálne číslo, strana obdlžníka Výstupy: O - reálne číslo, obvod obdlžníka S - reálne číslo, plocha obdlžníka Metóda: O 2(A + B), resp. S A.B 3. Zostavenie algoritmu: 4. Testovanie algoritmu: 5. Kódovanie:
Údajový typ súbor program TextovySubor; var A, B: real; O, S: real; SUB : text; begin { Nacitanie vstupov z textoveho suboru :} assign(sub, vstup.txt ); reset (SUB); readln(sub,a); readln(sub,b); close (SUB); { Vypocet Plochy a Obvodu :} O := (A + B)*2; S := A*B; { Ulozenie vystupov do textoveho suboru :} assign (SUB, vystup.txt ); rewrite(sub); writeln(sub, OBVOD OBDLZNIKA =,O:10:4); writeln(sub, PLOCHA OBDLZNIKA =,S:10:4); close (SUB); end.
Údajový typ súbor vstup.txt --------------- 2.0 1.5 --------------- vystup.txt --------------- OBVOD OBDLZNIKA = 7.0000 PLOCHA OBDLZNIKA = 3.0000 ---------------
Ďakujem za pozornosť