Veronika Dropčová
veronika.dropcova(at)gmail.com

   nika.blog.matfyz.sk

07 – textové súbory (úvod)

Od tohto okamihu sa začíname venovať práci so súbormi, pomerne silným nástrojom, ktorý budeme veľmi často využívať pri mnohých úlohách.

 

Na hodine sa budeme jednotlivým príkazom venovať podrobnejšie, tu uverejňujem súhrn:

 

var nazov_premennej: TextFile; je deklarácia súborovej premennej

 

AssignFile(súb_premenná, meno_súboru); je príkaz, ktorý slúži na zapamätanie toho, že súborová premenná bude pracovať s uvedeným súborom

 

Rewrite(súb_premenná); slúži na otvorenie súboru (resp. na jeho vytvorenie, ak ešte neexistoval) a jeho sprístupnenie na zápis

 

Reset(súb_premenná); urobí otvorenie súboru na čítanie (súbor musí na disku už existovať, musí byť zostavený korektne)

 

WriteLn(súb_premenná, hodnota); slúži na zapisovanie hodnôt do súboru, za zapísanou hodnotou pridá prechod na nový riadok

 

Write(súb_premenná, hodnota); slúži na zapisovanie hodnôt do súboru, za zapísanou hodnotou nepridáva nový riadok

 

Read(súb_premenná, premenná); premenná je dátová premenná, do ktorej zapíšeme prečítané hodnoty

 

Readln(súb_premenná); nastaví kurzor na začiatok ďalšieho riadka (preskočí zvyšok momentálne čítaného riadka)

 

SeekEof(súb_premenná) – fcia, ktorej výsledok je True (ak zistí, že je na konci súboru, resp. v súbore už nasledujú iba prázdne riadky) alebo False (ak neplatí predchádzajúce tvrdenie)

 

SeekEoln(súb_premenná) – fcia, ktorá testuje, či v danom súbore v riadku, ktorý momentálne číta, je ešte niečo uvedené

 

Eof(súb_premenná) – fci, ktorá vráti True, ak sme v súbore už na jeho úplnom konci (a nenasledujú už ani žiadne prázdne riadky)

 

CloseFile(premenná); sa používa na zatvorenie súboru – nevyhnutné!!!

 

——————————————

1. Napíšte program, ktorý do súboru zapíše 8 čísel (druhé mocniny čísel 1 – 8). 

Program tieto čísla zároveň vypíše aj do Mema.

2. Napíšte program, ktorý do súboru zapíše 20 riadkov, v ktorých budú tri čísla: 

číslo (od 1 po 20), jeho druhá mocnina a jeho tretia mocnina. Vypíšte obsah súboru aj do Mema.

3. Napíšte program, ktorý do súboru zapíše 100 čísel (od 1 po 100), 

pričom v každom riadku bude práve 10 čísel.

4. Vytvorte textový súbor trojuholnik.txt, ktorý bude obsahovať 20 riadkov:

v prvom bude číslo 1, v druhom dve čísla 1 a 2, v treťom tri čísla 1, 2 a 3, atď. až v poslednom v 20 riadku budú čísla od 1 do 20.

5. Napíšte program, ktorý vytvorí 10-riadkový súbor, pričom v každom riadku bude 50 čísel, a to bude jednotiek (1) alebo núl (0). Súbor vytvorte tak, aby v ňom bolo presne 100 jednotiek na náhodných pozíciách.

6. Napíšte program, ktorý do textového súboru zapíše prvých 15 členov Fibonacciho postupnosti.

Kto nevie, čo je Fibonacciho postupnosť, vygoogli si to. 😉

 

Domáca úloha, deadline 12.11.2016 o 23:59

7. Napíšte program, ktorý vygeneruje textový súbor teploty.txt.

Súbor bude obsahovať 7 riadkov pre 7 sledovaných dní. V každom riadku bude náhodný počet nameraných hodnôt (počet od 1 do 5). Teploty budú reálne čísla, ktoré vygenerujete náhodne od 10 do 25 na jedno desatinné miesto.

Súbor bude vyzerať napríklad takto:

10.0 13.7 14.5

25.0 20.6 11.3 12.4 14.6

18.9

19.2 20.3 22.4 21.5

11.6 12.7

13.0

27.0 10.6 17.3 14.4 14.6

BONUS za 2 body, deadline 12:11.2016 o 23:59

8. Napíšte program, ktorý si do dvojrozmerného poľa načíta „mapu“ bludiska s guličkou. Cieľom bude dostať guličku s pomocou šípok zo štartu do cieľa.

Nech je táto mapa uložená v stringu, ktorý vyzerá takto:

mapa:=’wwbwwwwwww’+’wweweeweew’+’weewewweww’+’wweeeeeeew’+’wwwwwwewww’+’weweeeewew’+’wewwewwwew’+’weewewewew’+

‘wweeeeeeew’+’wwwwwwwwew’;

pričom znamená stenu (čierny štvorček), e znamená voľné miesto (biely štvorček) a b znamená loptičku (červená elipsa). Loptička sa po načítaní nachádza na štartovnej pozicii, cieľová pozícia je v pravom dolnom rohu.

Po načítaní sa vykreslí bludisko.

Ďalej použite procedúru onKeyDown (formulárová procedúra), v ktorej jeden z parametrov je parameter „key“. Ten nadobúda rôzne hodnoty podľa toho, aká klávesa bola zatlačená. Na jeho správne použitie ale musíte programu povedať, aby vytiahol knižnicu s príkazmi, ktoré pracujú s týmito klávesami, a to urobíte tak, že úplne v úvode do časti uses dopíšete lcltype. Teda bude to vyzerať takto:

uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, lcltype;

Potom sa budete pýtať:

if key=vk_up … (vk_down, vk_right, vk_left)

A podľa toho posúvať guličku a prekresľovať bludisko.

Keď sa gulička dostane do cieľa, vypíšete krátku informáciu o tom, že sme vyhrali. 🙂

 

3 komentáre so far.

  1. SNARESNARESNARE píše:

    Aky prikaz sluzi nato aby mi to precitalo vsetko do konca ridku pls pls ?

  2. admin píše:

    Readln(t, s);

    kde t je suborova premenna a s je premenna, do ktorej zapisujes to, co citas.

  3. SNARESNARESNARE píše:

    Dakujem 🙂

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *