Download presentation
Presentation is loading. Please wait.
1
Binarne datoteke u Pascalu
2
Ponavljanje – tekstualna datoteka
niz znakova organiziranih u redove datoteku možemo otvoriti bilo kojim programom za rad s tekstom čitamo redom od početka do kraja datoteke procedure read, readln, write, writeln pomiču pokazivač na sljedeći znak ili početak sljedećega reda
3
Ponavljanje – tekstualna datoteka
4
Binarna datoteka datoteka u koju spremamo niz istovrsnih podataka
podaci u datoteci imaju isti oblik kao podaci u memoriji nije čitljiva u tekst editoru
5
Organizacija datoteke
Početak datoteke Pokazivač Kraj datoteke Prva komponenta Druga komponenta … Zadnja komponenta 0. mjesto 1. mjesto 2. mjesto
6
Deklaracija varijable
Var f : file of tip podataka koje spremamo; x : tip podataka koje spremamo; Primjer: var f:file of integer; x:integer; Početak datoteke Kraj datoteke 7 8 9 17 … 67
7
Procedure i funkcije Procedure: assign(f,put); rewrite(f); reset(f);
close(f); read(f,x); write(f,x); seek(f,n); - postavlja pokazivač na mjesto s oznakom n
8
Procedure i funkcije Funkcije: eof(f)
filesize(f) – vraća broj komponenata filepos(f) – vraća trenutačnu vrijednost pokazivača (oznaku mjesta na kojem se nalazi)
9
Zadatak Igrač u svakom pokušaju sprema postignute bodove u (binarnu) datoteku. Na kraju tjedna program ispisuje sve postignute bodove i broj pokušaja. Najveće postignute bodove i u kojem pokušaju su ostvareni.
10
A) Ispis svih spremljenih bodova
var f:file of integer; x:integer; begin assign(f,'d:\bodovi'); reset(f); while not(eof(f)) do begin read(f,x); write(x,' '); end; close(f); readln; end. ili
11
A) Ispis svih spremljenih bodova
var f:file of integer; x,i:integer; begin assign(f,'d:\bodovi'); reset(f); for i:=1 to filesize(f) do begin read(f,x); write(x,' '); end; close(f); readln; end.
12
Izlazni ekran
13
U skladu s tekstom zadatka
var f:file of integer; x,i:integer; begin assign(f,'d:\bodovi'); reset(f); for i:=1 to filesize(f) do begin read(f,x); writeln(i,’. pokusaj: ’,x); end; close(f); readln; end.
15
B) Najveći bodovi
16
B) Najveći bodovi assign(f,'d:\bodovi'); reset(f); rbr_max:=0;
read(f,max); for i:=1 to filesize(f)-1 do begin read(f,x); if x>max then begin max:=x; rbr_max:=filepos(f); end; writeln('Broj pokusaja: ',rbr_max); write('Ostvareni bodovi: ',max); close(f);
17
Zadaci Nacrtana je datoteka:
Na kojem mjestu se nalazi pokazivač nakon izvođenja instrukcije seek(f, 5);? Na kojem mjestu se nalazi pokazivač nakon izvođenja instrukcije seek(f, filesize(f));? seek(f, filesize(f)-3);? seek(f, filesize(f) div 2);? seek(f, 1);? 2 7 8 9 11 45 23 21 54 63 74 98 72 31 EOF 7 45 21 98 EOF
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.