Algoritmus a problém - UKF

Algoritmus a problém - UKF

Prednka 6 sbory kontanty Sbory daje uloen v poli (listboxe) je niekedy iaduce uloi kvli zrchleniu ladenia kvli uchovaniu dleitch hodnt vezmime najprv pole Ulote do sboru moje data sla, ktor mte uloen v poli.

na to, aby sme daje mohli uklada, potrebujeme v prvom rade uri typ sboru, do ktorho budeme zapisova v pascale sa typ sboru asto odvja od typu dajov, ktor do ukladme mono ho definova ako typ alebo ho posta len deklarova type TSubor=file of integer; var subor:file of integer; Kd pre poet 10 var pole:array[1..10] of integer; subor:file of integer; i:integer; begin for i:=1 to 10 do pole[i]:=random(1000); // pripravi premennu subor tak, aby ukazovala na udaje // v subore mojedata assignfile(subor,'mojedata'); // vytvori (ak existuje vymaze) subor a pripravi ho na zapis // pokial nie je zadana cesta vytvori ho v aktualnom adresari rewrite(subor); for i:=1 to 10 do // vypise (zapise) udaje na miesto, kam ukazuje premenna subor

// u nas ukazuje na subor mojedata, takze sa zapisuje tam write(subor,pole[i]); // ukonci subor, potvrdi zapis a zatvori subor closefile(subor); end; Natanie dajov zo sboru predstavuje opan prstup k dajom hypoteticky tu vak existuje mal zdrhe: me sa sta, e programtor bude chcie otvori daje zo sboru inho programtora, ktorho poet prvkov nie je toton s tm jeho zsah do programu je pomerne jednoduch, no vyaduje prepsanie hodnoty na viacerch

miestach urit rieenie poskytuje pouitie premennej pocet, ktorou by sme kd pri zpise i pri tan mohli nahradi neriei sa tm vak deklarcia (defincia) poa, ktor neme ako ohranienia pouva hodnoty premennch (nie s v dobe vyhradzovania pamte pre pole znme) problm sa riei pouvanm kontnt (kov slovo const) Kontanty s poas behu programu nemenn zmenou hodnoty sa menia na vetkch miestach naraz mu by deklarovan v prslunej procedre, obvykle sa vak umiestuj pre klauzulu Type na zaiatku sboru Kd s vyuitm kontanty procedure TForm1.Button2Click(Sender: TObject);

const pocet=10; var pole:array[1..pocet] of integer; subor:file of integer; i:integer; begin // opat pripravi premennu tak, aby ukazovala na udaje // v subore mojedata assignfile(subor,'mojedata'); // otvori subor na citanie reset(subor); for i:=1 to pocet do // precita zo suboru udaj a posunie citajuci // ukazovatel o poziciu dalej read(subor,pole[i]); // zatvori subor closefile(subor); end; Praktickejie rieenie nie

vdy je potrebn vyuva vetky vyhraden poloky poa niekedy ich pre istotu vyhradme viac ako spotrebujeme a nemusme ich ani zaleka uloi vetky (napr. neukladme nulov poloky a pod.) pokia by sme zo sboru natavali viac hodnt ako je v om uloench - skolabuje ukazovate na sbor ns v kadom momente doke informova o tom, i sme u pretali vetky daje sta sa len vhodne opta Kd procedure TForm1.Button3Click(Sender: TObject); var pole:array[1..pocet] of integer; subor:file of integer; i:integer; begin assignfile(subor,'mojedata'); // otvori subor na citanie reset(subor);

i:=0; // index pola, do ktoreho sa nacitava // kym nie je koniec (End Of File) suboru while not EOF(subor) do begin inc(i); // index sa posunie // mozno ho pouzit aj na zistenie poctu ulozenych zaznamov read(subor,pole[i]); // udaj sa precita do pola end; ShowMessage(Nacital si +IntToStr(i)+ poloziek.) closefile(subor); end; daje v sbore of integer pokia sa pozrieme do sboru obsahujceho uloen pole sel, uvidme len aksi nezmyslen znaky, ktor pre ns ni nevyjadruj avak systm ich z nejakho dvodu nata ako sla, ktor sme zadvali ak

daje zobrazme hexadecimlne, vidme, e sbor obsahuje 10 tvorbajtc, t.j. pre kad zapsan slo prve 4 bajty, ktormi je reprezentovan typ integer. Pokia by sme daje chceli zrekontruova, prostrednctvom prevodu zo 16- kovej do desiatkovej sstavy by sme nemali ma problm... daje v sbore of integer II. vhodou takhoto zpisu je rchle a jednoduch ukladanie numerickch hodnt aj ich natavanie priamo do celoselnho poa nevhodou je nemonos (saenie) zsahu do dajov v sbore o o krajie by bolo, keby sme daje videli a mohli prepsa aj manulne v nejakom tom textovom sbore ... o to pomalie bude samozrejme ukladanie i natavanie, pretoe budeme potrebova daje konvertova z selnch na textov...

Textov sbor ako najprijatenejie rieenie na ukladanie textovch informci sa jav file of string pokia vak takto typ sboru definujeme (deklarujeme), kompiltor ns alej nepust typ nie je pouiten ako typ sboru problmom je variabiln (nie pevn) dka (a tm aj kapacita pouitej pamte) pre premenn typu string prvm rieenm je uri presn poet znakov, ktor sa maj pre jednu poloku v sbore vyhradi, napr.: file of string[50] tm sa zabezpe

ukladanie 50 znakovch hodnt bez ohadu na to, i bud naplnen alebo nie Textov sbor II. tento spsob vak prli plytv miestom alternatvou je poui sbor typu text zpis: var subor:text teda nie file of text potreba deklarova subor v asti public alebo private (neposta ho poui v deklaranej asti procedry) prpadne definova najprv vlastn typ v sekcii type

(potom ho mono poui i v deklarcii procedry) tento typ nepodporuje mnoh funkcie typovch sborov, no pre nae alie potreby je optimlny Prklad Ulote daje z poa do textovho sboru data.txt tak, aby boli zrozumiten aj po otvoren v textovom editore. procedure TForm1.Button1Click(Sender: TObject); const pocet=20; var i:integer; pole:array[1..pocet] of integer; begin for i:=1 to pocet do pole[i]:=-50+random(101); // generuje nahodne hodnoty -50-50

// subor je deklarovany v casti private ako text assignfile(subor,'data.txt'); rewrite(subor); for i:=1 to pocet do write(subor,IntToStr(pole[i])); closefile(subor); end; Prklad II. vsledok je sce na prv pohad zrozumiten no na pohad druh nm prli naden asi nebudeme niekedy je toti problematick posdi kde jedno slo kon a druh zana vkladajme nov slo vdy do novho riadku: assignfile(subor,'data.txt'); rewrite(subor); for i:=1 to pocet do writeln(subor,IntToStr(pole[i]));

closefile(subor); ln zabezpe po zpise automatick odriadkovanie Prklad III. Uloen daje natajte do poa. var pocet:integer; pole:array[1..20] of integer; riadok:string; begin pocet:=0; assignfile(subor,'data.txt'); reset(subor); while not EOF(subor) do begin // do premennej riadok precita text z aktualneho riadku

readln(subor,riadok); inc(pocet); // zvysi pocet // riadok skonvertuje na cislo a vlozi do pola // priamo vlozit nie je mozne, pretoze treba robit konverziu // a parametrom readln musi byt premenna nie konverzna funkcia pole[pocet]:=StrToInt(riadok); end; closefile(subor); end; Ukladanie a tanie listboxu pln analgia, uvdzame len kd zpis: assignfile(subor,'data.txt'); rewrite(subor); for i:=0 to Listbox1.Items.Count-1 do

writeln(subor,Listbox1.Items.Strings[i]); closefile(subor); tanie: Listbox1.Items.Clear; assignfile(subor,'data.txt'); reset(subor); while not EOF(subor) do begin readln(subor,riadok); Listbox1.Items.Add(riadok); end; closefile(subor); Urenie nzvu sboru za behu ukladanie doposia do pevne stanovenho sboru prax: vber sboru v dialgu rieenie: pouitie systmovch dialgov

SaveDialog OpenDialog Dialgy Uloi relatvne zloitejia opercia, ktor vak riei pouvanie dialgov (v systme preddefinovan formulr umoujci nastavenie zkladnch parametrov systmu) pre ukladanie: SaveDialog vsledkom je zskanie zadanho nzvu sboru Parametre SaveDialogu DeaultExt koncovka, ktor sa auto- maticky prid sboru

pri uloen v prpade nepouitia: run zadvanie koncovky sbor bez koncovky => ochudobnenie o ikonu a automatick otvorenie po dvojkliku Parametre II. Filter uruje zoznam typov sborov v dialgovom okne prv stpec obsahuje text, ktor bude v okne zobrazen, druh masku sborov, ktor sa bud zobrazova Title text zobrazovan v hlavike ukladacieho dialgu Pouitie dialgu v aplikcii

Dialogs (Save, Open...) nevizulne komponenty, t.j. po spusten aplikcie ich nevidie, no mono ich v kde pouva nepeme kd do udalosti zobrazenej po dvojkliku ast chyba v nich verzich!!! potrebn volanie, ktor zobraz okno, umon zadanie nzvu a po zatvoren ho vrti Uloenie procedure TForm1.Button1Click(Sender: TObject); var nazov:string; i:integer; begin // ak sa savedialog ukonci potvrdenim (kliknutim na ulozit), prebehne // vetva podmienky ak sa zrusi, nic sa neudeje // execute - funkcia, ktora vrati hodnotu true pre potvrdenie a false pre zrusenie

if savedialog1.execute then begin // do premennej precitame nazov suboru zadany v SaveDialogu // uloen je kompletn cesta k sboru nazov:=SaveDialog1.FileName; // nasleduje u znme ukladanie assignfile(subor,nazov); rewrite(subor); for i:=0 to Listbox1.Items.Count-1 do writeln(subor,Listbox1.Items.Strings[i]); closefile(subor); end; end; Otvorenie analgia s uloenm

pouije sa OpenDialog mono nastavi Title a Filter ako prednastaven sa berie typ sboru zadan vo filtri ako prv begin if opendialog1.execute then begin nazov:=OpenDialog1.FileName; Listbox1.Items.Clear; assignfile(subor,nazov); reset(subor); while not EOF(subor) do begin readln(subor,riadok); Listbox1.Items.Add(riadok); end; closefile(subor); end; end;

Existencia sboru niekedy me by uiton zisti, i sa dan sbor u v zadanej lokalite nenachdza: if FileExists(nazov) then napr. kvli tomu, aby sa mohol vymaza: DeleteFile(nazov); Reprezentcia dajovch typov aby sme vedeli, koko miesta na disku zaber integer:

Typ Rozsah vekos Integer -2147483648..2147483647 znamienkov 32-bitov (4 bajty) Cardinal 0..4294967295 bez znamienka 32-bitov Typ Rozsah vekos Shortint -128..127 signed 8-bit Smallint -32768..32767 signed 16-bit Longint -2147483648..2147483647 signed 32-bit Int64 -2^63..2^63-1 signed 64-bit Byte 0..255 unsigned 8-bit Word 0..65535 unsigned 16-bit

Longword 0..4294967295 unsigned 32-bit Integer pozostva zo 4 bajtov, z ktorch 1 bit je vyhraden pre znamienko do jednho bytu mono zakdova 256 rznych hodnt do dvoch bajtov 256*256 samotn slo sa vypota ako bajt1*256+bajt2 do troch bajtov 256*256*256 slo sa sa vypota ako bajt1*256^2+bajt2*256+bajt3 zo trvtho bajtu pouijeme len 7 bitov (8. je znamienkov) 128*256*256*256 Reprezentcia typov II. char: je reprezentovan jednm bajtom 256 hodnt transformcia selnch hodnt

na znaky sa realizuje prostrednctvom ASCII tabuky, kde kadej numerickej hodnote zodpoved jeden znak boolean postauje 1 bit, no obvykle sa v prostred Win32 vyuva cel byt. real pozostva z dvoch ast: mantisa slice urujce presnos sla exponent nsobok desiatky napr. 1,4587E20 predstavuje slo 1,4587 * 10^20 mantisa: 1,4587 exponent: 20 m presnejiu hodnotu poadujeme, tm viac bitov m ma mantisa m vie (menie) slo poadujeme, tm viac bitov m by vyhradench pre exponent

Reprezentcia typov III. Typ Real Real48 Single Double Extended Comp

Currency Rozsah 5.0 x 10^-324 .. 1.7 x 10^308 2.9 x 10^-39 .. 1.7 x 10^38 1.5 x 10^-45 .. 3.4 x 10^38 5.0 x 10^-324 .. 1.7 x 10^308 3.6 x 10^-4951 .. 1.1 x 10^4932 -2^63+1 .. 2^63 -1 -922337203685477.5808 .. 922337203685477.5807 mantisa 15-16 vekos 8 bytov 11-12 7-8

6 4 15-16 19-20 19-20 8 10 8 19-20 8 comp je vlastne integer, no nie je ordinlny, preto sa uvdza medzi relnymi typmi Jednoduch lohy na sbory

Hodnoty zadan v sbore typu integer natajte do listboxu a njdite medzi nimi maximum. Natajte do listboxu riadky z textovho sboru a do sboru vysledok.txt ulote najdlhie a najkratie slovo. Pre zadan text uloen v sbore vypte do listboxu vetky rzne riadky, ktor sa v om vyskytuj. Pre zadan text uloen v sbore vypte do listboxu vetky rzne slov, ktor sa v om vyskytuj (slov s oddelen medzerami). K rznym slovm pridajte i poetnos v samostatnom listboxe prostrednctvom poa v tom istom listboxe vypte slovo, ktor sa vyskytuje najviac rz

Recently Viewed Presentations

  • Weather Tools - Henry County School District

    Weather Tools - Henry County School District

    Because there are many different types of weather data, there are many instruments used to monitor that data. The Most Common Weather Tools Are: Thermometer Wind Vane Anemometer Barometer Rain Gauge Thermometer A thermometer is a weather tool used to...
  • DATA WAREHOUSING AND DATA MINING - IIT Bombay

    DATA WAREHOUSING AND DATA MINING - IIT Bombay

    Recipe for a Successful Warehouse For a Successful Warehouse From day one establish that warehousing is a joint user/builder project Establish that maintaining data quality will be an ONGOING joint user/builder responsibility Train the users one step at a time...
  • ECEN 615_Lect1

    ECEN 615_Lect1

    Generators with high fixed costs and low operating costs (e.g., wind, solar, nuclear) benefit from running many hours. Usually they should submit offers close to their marginal costs. Wind (and some others) receive a production tax credit for their first...
  • A Closer Look at Logos - University of Arizona

    A Closer Look at Logos - University of Arizona

    ENGL102 Ordover Fall 2008 A Closer Look at Logos Syllogism, Enthymeme, and Logical Fallacies What is a syllogism? a specific method of logical deduction (moving from the general to the particular) every syllogism contains at least three parts: a major...
  • Nottinghamshire STP - Shropshire Together

    Nottinghamshire STP - Shropshire Together

    The case for change. Greater Nottingham Transformation Partnership. This will only get worse over time… Since 2014, we have confirmed the need to change our current model of health and care services which is reactive, fragmented and acute bed based.
  • Unit Testing 101 - Winthrop University

    Unit Testing 101 - Winthrop University

    Unit Testing White Box Testing testing a module of code based on the source code Black Box Testing testing a module based on its description and/or the requirements specification Also called "functional" and "behavioral" testing Proof of Correctness mathematically-based analysis...
  • Prokaryotic Cell Structure & Function PowerPoint Lecture

    Prokaryotic Cell Structure & Function PowerPoint Lecture

    Ribosome translating protein,Xvazquez; Ribosome Structure, Vossman . From the . Virtual Microbiology Classroom. on . ... Prokaryotic Cell Structure & Function PowerPoint Lecture Keywords: prokaryotic cell lecture, prokaryote powerpoint lecture, free science lecture powerpoints,prokaryotic cell ...
  • Portfolio Committee on Labour 20 October 2005 Presented

    Portfolio Committee on Labour 20 October 2005 Presented

    Portfolio Committee on Labour 20 October 2005 Presented by: Mr. Joel Dikgole (CEO - W&RSETA) OVERVIEW OF PRESENTATION W&R SETA PROFILE W&R SECTOR PROFILE NSDS 2001-2005 ACHIEVEMENTS OTHER ACHIEVEMENTS AFS & AUDIT RESULTS STRATEGIC PROJECTS KEY CHALLENGES 2005-2006 W&RSETA PROFILE...