+ All Categories
Home > Documents > informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de...

informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de...

Date post: 07-Jan-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
94
”Metodica predării temei: Tipul de date fişier”
Transcript
Page 1: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

”Metodica predării temei: Tipul de date fişier”

Page 2: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Cuprins

Introducere.................................................................................................................3

Capitolul I. Tipul de date fişier. Aspecte teoretice...............................................5

§1. Clasificarea fişierelor.......................................................................................5

§2. Proceduri şi funcţii specifice fişierelor............................................................7

§3. Fişiere text........................................................................................................9

§4. Fişiere cu tip...................................................................................................11

§5. Fişiere fără tip...............................................................................................12

Capitolul II. Metodica predării temei “Tipul de date fişier (file)”...................13

§1. Curriculum pentru învăţămîntul liceal la tema “Tipul de date fişier (file)”. .13

§2.Expunerea temei “Tipul de date fişier (file) în manualul INFORMATICA.

LIMBAJUL PASCAL. MANUAL PENTRU CLASELE IX-XI, autori: Anatol

Gremalschi, Iurie Mocanu, Ion Spinei”...............................................................15

§3. Sugestii şi recomandări metodologice la tema “Tipul de date fişier”............18

§4. Exerciţii şi probleme la tema “Tipul de date fişier”......................................25

§5. Sugestii privind evaluarea..............................................................................56

Concluzii.................................................................................................................66

Bibliografie.............................................................................................................68

2

Page 3: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Introducere

"Dibăcia învăţătorului nu este decât de a trezi curiozitatea minţilor tinere, ca să le potolească apoi această curiozitate, pe care numai fiinţele umane fericite o au vie şi sănătoasă.. Cunoştinţele vîrîte cu de-a sila în minte o astupă şi o înăbuşă. Ca să mistui ştiinţa trebuie s-o fi înghiţit cu poftă.."

Anatole France

O temă destul de dificilă din cursul liceal de informatică este tema „Tipuri

structurate de date. Tipul fişier (file)”.

Despre necesitatea cunoaşterii şi aplicabilitatea tipului de date fişier ne

conving culegerile de probleme la informatică.

Practica arată că elevul trebuie să revină periodic la rezolvarea diferitor

probleme cu aplicarea tipului de date fişier. Acest fapt contribuie la dezvoltarea

gîndirii analitice, a intuiţiei şi a creativităţii, calităţii necesare pentru studierea

ulterioară a informaticii atît la treapta liceală, cît şi în învăţămîntul universitar.

Unii elevi învaţă mai eficient rezolvînd probleme rezolvate. Nu este vorba de

memorarea rezolvării (deşi şi acest lucru este util la o anumită etapă de învăţare, nu

oricine poate rezolva orice, dar oricine poate învăţa o rezolvare), ci de reluarea

rezolvării pe altă cale. În acest scop profesorul poate propune elevilor rezolvarea

unor exemple mai dificile, urmate ulterior de discuţii asupra metodelor de

rezolvare.

Să nu uităm de sfatul lui G.Polya: „Dacă vreţi să învăţaţi să rezolvaţi

probleme, trebuie... să rezolvaţi probleme”.

Teza are drept scop studierea detaliată a temei şi formularea unor metode şi

strategii didactice pebtru predarea – învăţarea – evaluarea temei „Tipul de date

fişier”.

Lucrarea constă din două capitole:

3

Page 4: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Capitolul I constă din 9 paragrafe, unde sunt expuse noţiunile teoretice

generale despre tipul de date fişier şi anume: clasificarea fişierelor, fişiere cu tip,

fişire fără tip, fişiere text, proceduri şi funcţii definite asupra tipului de date fişier.

Capitolul II constă din 5 paragrafe. Acest capitol conţine informaţii

referitoare la: curriculum liceal la tema „Tipul de date fişier (file)”, unde sunt

prezente numărul de ore (opţional) şi aranjarea lor pentru predare-învăţare; tratarea

temei „Tipul de date fişier (file)” în manualul Informatica. Limbajul de

programare Pascal. Manual pentru clasele IX-XI de Anatol Gremalschi, Iurie

Mocanu şi Ion Spinei; necesitatea utilizării problematizării la lecţiile de

informatică. La fel se conţine un şir de probleme de dificultate diferită ce pot fi

propuse elevilor pentru antrenament şi consolidarea cunoştinţelor la tema „Tipul de

date fişier (file)”. Ultimul paragraf al acestui capitol, şi anume „Sugestii privind

evaluarea” aduce cititorului un set de teste de evaluare formativă şi sumativă ce au

ca scop determinarea nivelului de cunoştinţe a elevilor, a abilităţilor lor,

determinarea erorilor şi posibilitatea lichidării lor.

Prezenta lucrarea are drept scop familiarizarea cititorului cu noţiuni de

predare – învăţare – evaluare a temei tipul fişier în liceu. Această lucrare poate fi

utilă studenţilor şi profesorilor.

4

Page 5: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Capitolul I. Tipul de date fişier. Aspecte teoretice.

§1. Clasificarea fişierelor

Fişierul este o colecţie organizată de informaţii (date, rezultate, programe

sursă, programe direct executabile etc.), dispuse pe unul sau mai multe suporturi

externe.

Componentele unui fişier se numesc înregistrări (articole) şi pot avea

dimensiune fixă sau variabilă. Numărul de componente dintr-un fişier este variabil,

fiind limitat doar de capacitatea de memorare a suportului utilizat. Sfîrşitul unui

fişier este uneori marcat printr-o componentă specială (end of file - caracterul ^Z).

Fişierul, în contextul limbajului Pascal, este o structură de date omogenă,

formată din componente de acelaşi tip, exceptînd tipul fişier.

Înregistrarea este constituită dintr-o mulţime de valori ale unor caracteristici

asociate unui obiect, proces etc., din domeniul aplicaţiei.

Componentele înregistrării asociate diverselor caracteristici sunt denumite

cîmpuri de date.

Limbajul Pascall permite utilizarea fişierelor cu înregistrări de lungime fixă

(stabilită la momentul prelucrării) şi variabilă (două înregistrări alăturate sunt

separate prin marcaje speciale, de exemplu prin caracterele CR/LF - sfîrşit de

linie).

Din punct de vedere fizic (al suportului extern), fişierul este o succesiune de

octeţi.

Accesul la componentele unui fişier are la bază următorul mecanism: fiecare

fişier are un indicator (pointer) al componentei curente, cea accesibilă în acel

moment. Pentru fiecare acces la fişier (adică, pentru fiecare operaţie de citire sau

scriere), indicatorul avansează de la componenta curentă la următoarea

componentă, care devine astfel componenta curentă.

5

Page 6: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Modul de acces la componente poate fi: secvenţial (accesul la componenta n

din fişier trebuie precedat de inspectarea componentelor 0, 1, 2, , n-1) şi direct

sau aleator (poziţionarea se face direct pe componenta respectivă).

Cînd se lucrează cu un fişier, acestuia i se asociază o variabilă tampon avînd

tipul de bază al componentelor fişierului. Variabila tampon realizează interfaţa

între fişier şi program.

Variabilelor fişier (utilizate în programe, atunci cînd lucram cu fişiere) li se

asociază, de obicei, fişiere fizice, aflate pe suport extern şi gestionate de către

sistemul de operare. În conţinuare, vom nota cu f variabila fişier utilizată la un

moment dat.

Din punct de vedere al limbajului Pascal şi al conţinutului lor, fişierele se

împart în două mari categorii:

fişiere text, în care toate datele sunt sub formă de caractere ASCII (un

caracter/octet). Practic, fişierele text conţin caractere organizate în linii de

lungime variabilă, liniile consecutive fiind separate printr-un marcaj de

sfîrşit de linie (end of line) reprezentat prin perechea de caractere de control

Carriage Return şi Line Feed - CR/LF.

fişiere binare, în care toate datele sunt memorate în formă identică cu cea

din memoria principală. Practic, fişierele binare sunt fişiere cu componente

de tipuri definite de programator.

Fişierele binare se împart, la rîndul lor, în două clase:

fişiere cu tip (în care înregistrările au structura şi lungimea fixe, precizate la

momentul fiecărei prelucrări);

fişiere fără tip (în care înregistrările sunt blocuri binare de lungime fixă,

precizată ca parametru în procedura de deschidere a fişierului; nu se face

nici o ipoteză referitoare la structura blocurilor; un bloc este o succesiune de

octeţi).

Diagrama de sintaxa

6

Page 7: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Lucrul cu fişierele în Pascal necesită deschiderea acestora, utilizarea unor

proceduri şi funcţii specifice privind citirea/scrierea informaţiilor şi apoi

închiderea lor.

În cadrul unui program Pascal, orice fişier prelucrat este identificat printr-o

variabilă fişier. Tipul unei variabile fişier trebuie declarat în concordanţă cu tipul

şi modul de tratare a fişierului extern la care se fac referiri prin intermediul său.

Identificatorul variabilei de tip fişier reprezintă numele logic al acestuia şi este

intern programului. Această variabilă de tip fişier trebuie asociată unui fişier extern

prin intermediul procedurii assign.

Dupa stabilirea legăturii între numele intern al fişierului şi cel extern, trebuie

realizată operaţia de deschidere a fişierului, utilizînd una din procedurile reset,

rewrite sau append, în funcţie de tipul fişierului şi de tipul operaţiilor ce se vor

efectua.

În acest moment putem avea acces la date (la înregistrări, linii, blocuri,

cîmpuri) prin intermediul procedurilor de citire (read, readln, blockread), scriere

(write, writeln, blockwrite), căutare (seek) etc. Operaţia de citire transferă datele

din fişierul extern în memoria principală, iar operaţia de scriere transferă datele din

memoria principală în fişierul extern. Ambele operaţii se realizează prin

intermediul unei variabile tampon (buffer).

La sfîrşit, după terminarea operaţiilor de prelucrare a datelor, fişierul trebuie

închis prin intermediul procedurii close.

§2. Proceduri şi funcţii specifice fişierelor

7

Page 8: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Prezentăm principalele proceduri şi funcţii, urmînd ca în conţinuare să

descriem procedurile şi funcţiile caracteristice fiecărui tip de fişier în parte.

Assign(f,nume-extern) - stabileşte legătura între numele intern şi cel extern al fişierului; asignează un fişier logic la un fişier fizic;

Reset(f) - deschide un fişier existent; dacă fişierul nu există, se generează eroare de I/O (funcţia

IOresult are valoare diferită de zero); dacă fişierul este deja deschis indicatorul este deplasat la

începutul fişierului;

Rewrite(f) - creează un nou fişier; dacă fişierul există pe suport, acesta va fi şters şi se

creează noul fişier în locul său (suprascriere); dacă fişierul este deschis, procedura îl şterge şi îl

recreează;

Eof(f) - funcţie booleană care testează sfîrşitul de fişier;

Read(f, lista-variabile) - procedura de citire dintr-un fişier (text sau cu tip);

Write(f, lista-variabile) - procedura de scriere într-un fişier (text sau cu tip);

Close(f) - închide un fişier;

Erase(f) - şterge un fişier;

Rename(f, nume-nou) - redenumeşte un fişier.

8

Page 9: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

§3. Fişiere text

Fişierul text este o succesiune de caractere ASCII încheiată cu caracterul

^Z, care are rol de marcator de sfîrşit de fişier. Deci, componentele elementare ale

fişierelor text sunt caracterele, grupate în linii. Lungimea liniilor nu este fixă,

pentru separarea lor utilizîndu-se un marcaj de sfîrşit de linie (caracterele CR/LF).

Fişierele text pot fi create prin intermediul editoarelor şi sunt direct afişabile. Din

categoria fişierelor text fac parte toate fişierele care conţin programe sursă, scrise

în diferite limbaje de programare (Pascal, C etc.), multe din fişierele document etc.

De asemenea, fişierele standard INPUT (asociat mediului de intrare - tastatura) şi

OUTPUT (asociat mediului de ieşire - monitorul) sunt fişiere text. Operaţiile de

acces la aceste două fişiere sunt cazuri particulare de operaţii de acces la fişiere

text.

Caracteristici ale fişierelor text:

lungimea componentelor (liniilor) este variabilă;

accesul (permis) este numai secvenţial.

În limbajul Pascal, tipul text este predefinit şi deci variabilele de acest tip vor fi

definite printr-o declaraţie de forma:

VAR f: text;

Întrucît liniile sunt de lungimi diferite şi nu poate fi calculată poziţia unei

componente, operaţiile permise sunt: citirea secvenţiala şi scrierea la sfîrşitul

fişierului text.

Proceduri şi funcţii specifice fişierelor text

Readln(f, lista_variabile) - după citirea tuturor parametrilor, indicatorul avansează dincolo de marcajul sfîrşit de linie;

Writeln(f, lista_variabile) - după scrierea parametrilor, adaugă un marcaj sfîrşit de linie;

Eoln(f) - funcţie care verifică existenţa sfîrşitului de linie într-un fişier text;

SeekEoln(f) - funcţie de tip boolean, care ignoră caracterele cu rol de spaţiu şi verifică sfîrşitul de linie într-un fişier text;

SeekEof(f) - funcţie de tip boolean, care ignoră caracterele cu rol de

9

Page 10: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

spaţiu şi verifică sfîrşitul de fişier text, avansînd şi peste marcajele de sfîrşit de linie;

Append(f) - deschide un fişier text pentru extindere (adăugare de noi linii).

Remarcă. Operaţiile de citire/scriere se pot realiza la nivel de şir de caractere cu o posibilă conversie între forma de reprezentare externă (şir de caractere) şi cea de reprezentare internă (şir de cifre binare). Acest lucru apare în cazul în care se citesc sau se scriu valori numerice.

10

Page 11: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

§4. Fişiere cu tip

Un fişier cu tip este o succesiune de înregistrări de acelaşi tip.

Înregistrările dintr-un fişier cu tip pot fi de tip simplu sau structurat. (array,

string, set, record).

Inregistrarile au lungime fixă şi li se asociază numere relative, începînd de la zero.

Caracteristici ale fişierelor cu tip:

lungimea componentelor este fixă;

accesul permis este secvenţial şi relativ (aleator, direct).

Specificarea unui tip de fişier are forma următoare:

TYPE fişier=File OF tip;

unde tip este tipul de bază al componentelor fişierului (tip nu poate fi un tip fişier

sau un tip structurat avînd componente fişiere). În cele ce urmeaza este prezentat

un exemplu pentru structura unui fişier de personal:TYPE persoana=RECORD cod:1..2000; nume:STRING[20]; salariu:30000..500000; vechime:1..40 END; fişier_de_personal=FILE OF persoana;

Proceduri şi funcţii specifice fişierelor cu tip

Seek (f, pozitie) - plasează indicatorul pe înregistrarea cu numărul poziţie;

FilePos (f) - întoarce numărul relativ al înregistrării curente;

FileSize (f) - întoarce numărul de înregistrări din fişier;

Truncate (f) - trunchiază un fişier la poziţia curentă a indicatorului.

 

11

Page 12: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

§5. Fişiere fără tip

Din punct de vedere logic, fişierele fără tip sunt constituite din blocuri de

lungime fixă, asupra cărora nu se face nici o ipoteză legată de structură.

Dimensiunea blocului trebuie specificată de către programator pentru fiecare

transfer în parte. Transferul datelor între memoria principală şi suportul extern se

face fără conversie. Blocurile au asociate numere relative, începînd de la zero.

Caracteristici ale fişierelor fără tip:

lungimea blocurilor este fixă;

accesul permis este secvenţial şi relativ (aleator, direct).

În cazul fişierelor fără tip, declararea variabilelor fişier se face în felul următor:

VAR f:file;Observaţie. La declararea variabilelor fişier fără tip nu se face nici o precizare în legatură cu

tipul componentelor fişierului.

Proceduri şi funcţii specifice fişierelor fără tip

Reset(f,dimensiune)Rewrite(f,dimensiune)

- deschide un fişier existent;- deschide un fişier nou.

BlockRead(f,buffer,nr,rezultat)BlockWrite(f,buffer,nr,rezultat)

- citeste un bloc dintr-un fişier fără tip;- scrie un bloc într-un fişier fără tip;

Seek(f,pozitie) - plasează indicatorul pe blocul cu numărul "poziţie";

FilePos(f) - întoarce numărul relativ al blocului curent;

FileSize(f) - întoarce numărul de blocuri din fişier.

Notă. Parametrul dimensiune (dimensiunea blocului în număr de octeţi) este opţional; în lipsa lui se consideră dimensiunea blocului ca fiind 128.Notă.

Buffer - este o variabilă a cărei adresă reprezintă începutul zonei de memorie în care se depun datele citite/scrise;

nr - reprezintă numărul maxim de blocuri ce vor fi citite/scrise; rezultat - este o variabilă de tip integer, în care sistemul depune, după încheierea operaţiei

de citire/scriere, numărul de blocuri efectiv transferate. Parametrul rezultat este opţional; în lipsa lui nu se poate verifica un transfer I/O corect (se generează o eroare la execuţie în cazul unui transfer incomplet, eronat).

12

Page 13: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Capitolul II. Metodica predării temei “Tipul de date fişier (file)”

§1. Curriculum pentru învăţămîntul liceal la tema “Tipul de date fişier (file)”

Obiectul de studiu al informaticii ca ştiinţă interdisciplinară este prelucrarea

automată a informaţiei cu ajutorul calculatoarelor electronice. Ca disciplină

şcolară, informatica a fost inclusă în planurile de studii de circa 15 ani în urmă. Pe

parcursul acestor ani a permis formularea principiilor generale în baza cărora a fost

elaborat curriculum la informatică:

-studierea informaticii are ca scop principal formarea şi dezvoltarea gîndirii

algoritmice a elevului;

-gîndirea algoritmică poate fi dezvoltată prin îmbinarea proceselor de predare-

învăţare a conoştinţelor teoretice;

-dezvoltarea gîndirii algoritmice va începe de la vîrste mici;

-adaptarea cunoştinţelor predate la nivelul de vîrstă al elevilor se va realiza în

baza legăturilor interdisciplinare prin implementarea adecvată a metodelor

instruirii asistate de calculator;

-echilibrarea încărcăturii informaţionale şi continuitatea la nivelul claselor şi

ciclurilor se va asigura prin eşalonarea materialului teoretic în funcţie de

particularităţile de vîrstă ale elevului, în concordanţă cu performanţele programelor

educative, programelor aplicative şi programelor de sistem ale calculatorului;

-diferenţierea şi individualizarea predării-învăţării;

-stabilirea unui nivel obligatoriu de pregătire în domeniul informaticii şi formarea

capacităţilor de avansare în însuşirea temelor necunoscute, în aplicarea

tehnologiilor informaţionale moderne.

Componentele de bază ale tehnologiei didactice pentru predare-învăţarea

informaticii sunt:

1. Predarea de cunoştinţe şi foramarea de capacităţi specifice informaticii.

Aceste cunoştinţe sunt incluse în tabelele respective din programele la

informatică.

13

Page 14: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

2. Antrenarea sistematică vizînd în mod distinct următoarele domenii:

- înţelegerea conceptelor;

- conoaşterea metodelor de formalizare a problemelor şi de elaborare a

algoritmilor respectivi;

- cunoaşterea metodelor de elaborare a programelor;

- aplicarea programelor elaborate şi a produselor program pentru prelucrarea

informaţiei;

3. Utilizarea metodelor active pentru însuşirea individuală a noilor tehnologii

informaţionale prin intermediul instruirii asistate de calculator.

Curriculum liceal propune pentru audierea temei tipul de date fişier un număr

opţional de ore. Analizînd curriculum liceal observăm că el propune următoarele

obiective-cadru şi obiective de referinţă la tema dată:

CLASA A X-AObiective-cadru, obiective de

referinţăConţinuturi Activităţi de învăţare

Partea I. Limbajul de programare PASCAL2. Crearea si prelucrarea fişierelor:— să cunoască structura datelor de tip fişier şi semnificaţia simbolului sfîrşit de fişier;— să explice modul de scriere şi citire a datelor din fişier;— să clasifice fişierele după tipul operaţiilor permise şi modul de acces;— să indice ordinea în care trebuie apelate procedurile destinate prelucrării datelor de tip fişier;

FISIEREGeneralităţi despre fişiere

Exerciţii de:— desenare a diagramelor sintactice ale declaraţiilor de tipuri de date fişier;— desenare a structurii datelor de tip fişier;— explicare a modului de asociere a fişierelor PASCAL cu fişierele externe;— clasificare a fişierelor după tipul operaţiilor permise şi modul de acces.

— să poată crea şi prelucra datele din fişierele secvenţiale;

* Fişiere secvenţiale Exerciţii de:— explicare a modului de creare a fişierelor secvenţiale;— creare a fişierelor secvenţiale şi prelucrarea datelor din ele.

— să poată crea şi prelucra datele din fişierele cu acces direct;— să creeze fişiere text si să prelucreze datele respective.

** Fişiere cu acces direct. Fişiere text

— Exerciţii de creare a fişierelor cu acces direct şi prelucrare a datelor respective.— Exerciţii de creare şi prelucrare a datelor din fişierele text.

14

Page 15: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Conţinuturile care nu sînt marcate reprezintă nivelul minim si sînt obligatorii pentru ambele profiluri, cele marcate cu * sînt obligatorii numai pentru profilul real, cele notate cu ** sînt opţionale.

§2.Expunerea temei “Tipul de date fişier (file) în manualul INFORMATICA.

LIMBAJUL PASCAL. MANUAL PENTRU CLASELE IX-XI, autori: Anatol

Gremalschi, Iurie Mocanu, Ion Spinei”

Există un singur manual recomandat de ME al Republicii Moldova pentru

elevii claselor IX-XI şi anume “Informatica. Limbajul Pascal. Manual pentru

clasele IX-XI”. Această temă este prezentă în manualul respectiv în capitolul 4

“Tipuri de date structurate” punctele:

4.6. Generalităţi despre fişiere

4.7. Fişiere secvenşiale

4.8. Fişiere cu acces direct

4.9. Fişiere text

Noţiunea de tip de date fişier se studiază pentru prima dată în clasa a X-a.

În primul punct “Generalităţi despre fişiere” se dă năţiunea de fişier, tip de

bază, fişier vid, se indică cum se defineşte un tip de date fişier

<Tip fi;ier>::=[packed] file of <Tip>

după care urmează un şir de exemple. La fel, tot în acest paragraf se introduc

operaţiile care pot fi efectuate asupra fişierelor, modul de acces la componentele

fişierelor.

Predarea următoarei teme “Fişiere secvenşiale” ar fi bine de început cu un

exemplu:

Fie că trebuie de creat o bază de date cu următoarele cîmpuri: nume, prenume,

nota1, nota2, nota3. Se cere de calculat nota medie a elevilor acestei clase.

Este evident, că pentru crearea acestei baze de date vom utiliza tipul record şi

anumeType Elev=record

15

Page 16: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Nume:string[15]; Prenume:string[15]; nota1,nota2,nota3:byte; notaMedie:real; end;var a:array[1..30] of elev; i:byte;

Pentru compeltarea şi gestionarea acestei baze de date este necesar de a

introduce datele de la tastatură, lucru destul de anevoios, ţinînd cont şi de faptul, că

probabilitatea de a greşi la introducerea datelor este destul de mare cît şi volumul

de informaţie la fel este destul de mare. Aceste neajunsuri pot fi înlăturate dacă

vom stoca datele într-un fişier secvenţial, le vom prelucra, apoi datele prelucrate le

vom stoca într-un fişier nou (sau în acelaşi fişier). Evident volumul de memorie

utilizat pentru prelucrarea datelor, în acest caz, este considerabil mai mic. Atunci

declaraţiile vor arăta astfel:Type Elev=record Nume:string[15]; Prenume:string[15]; nota1,nota2,nota3:byte; notaMedie:real; end; FisierElevi=file of elev;var FE:FisierElevi: E:Elev;

Programul Pascal complet care va permite crearea acestei baze de date cu

introducerea datelor de la tastatură şi stocarea lor într-un fişier are forma:

Program problema;{Crearea unui fişier cu componente de tipul elev}Type Elev=record Nume:string[15]; Prenume:string[15]; nota1,nota2,nota3:byte; notaMedie:real; end; FisierElevi=file of elev;var FE:FisierElevi: E:Elev; nume_fis:string; I,n:integer;Begin

16

Page 17: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Write(’Introduceti numele fisierului care va fi creat:’); Readln(nume_fis); Assign(FE,nume_fis); {asociaza FE cu numele din nume_fis} Rewrite(FE); {deschide FE pentru scriere} Write(’Introduceti numarul de elevi: ’); Readln(n); For i:=1 to n do Begin Writeln(’Introduceti datele elevului: ’,i); {citeste cimpurile variabilei E de la tastatura} write(’Numele: ’); readln(E.Nume); write(’Prenumele: ’); readln(E.Prenume); write(’Nota1: ’); readln(E.Nota1); write(’Nota2: ’); readln(E.Nota2); write(’Nota3: ’); readln(E.Nota3); writeFE,E); {scrie E in FE} end; close(FE); {inchide FE} readln;end.

Paragraful “Fişiere cu acces direct” se referă în întregime numai la implementarea

Turbo Pascal a fişierelor de tip file of T.

E cunoscut faptul că datele fişierelor Pascal se păstrează pe suporturi

externe de informaţie. În cazul fişierelor definite prin declaraţia file of T

componentele de tip T sînt reprezentate pe suporturi respective în formă internă, şi

anume, prin scvenţe de cifre binare. Acest mod de reprezentare a datelor este

convenabil în cazul memoriilor externe. În cazul echipamentelor de intrare-ieşire

(tastatura, ecranul, imprimanta etc.) datele respective trebuie reprezentate în formă

externă, şi anume, perin secvenţe de caractere.

Pentru a facilita interacţiunea între om şi sistemul de calcul, în Pascal

informaţia destinată utilizatorului se reprezintă în formă de fişiere text. Aceste

noţiuni sunt introduse în tema “Fişirere text”. În acest paragraf se introduce

noţiunea de sfîtşit de linie – eol (End Of Line). Deoarece lungimea liniilor este

variabilă, accesul la componentele fişierelor este secvenţială. La fel ca şi în

17

Page 18: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

celelalte paragrafe sunt aduse un şir de exemple pentru a simplifica înţelegerea

materiei noi de către elevi.

Pentru înţelegerea noţiunii de tip de date fişier şi pentru formarea

deprinderilor de aplicare a acesteia în practică, se pot propune probleme de

numărare a liniilor untr-un fişier cu o anumită proprietate, de selectare a anumitor

componente din fişier, de modificare a componentelor fişierului. Aceste probleme

pot fi grupate conform algoritmilor de rezolvare:

de creare;

de citire;

de scrire;

de modificare.

La prima etapă de studiere a algoritmilor menţionaţi se propun probleme tipice

pentru fiecare grup. La următoarea etapă, după ce elevii se familiarizează cu aceşti

algoritmi şi îi aplică cu succes, se propun diferite probleme, pentru care elevii aleg,

din algoritmii deja cunoscuţi, algoritmul potrivit. În final se trece la rezolvarea

problemelor complicate, netipice, creative.

Consider reuşită tratarea acestei teme în manual. De asemenea, sunt descrise

foarte bine toate noţiunile. Sunt aduse un şir de exemple, fapt ce contribuie la

înţelegerea mai rapidă a temei respective.

Însă, cu părere de rău, numărul de ore necesar la predarea acestei temei este

foarte mic, fapt ce nu permite profesorului de a se aprofunda în diferite rezolvări de

probleme complicate.

§3. Sugestii şi recomandări metodologice la tema “Tipul de date fişier”

Pentru predarea-evaluarea acestei teme propun următoarele lecţii în această ordine:

Obiective cadru. Obiective de referinţă. Evaluările făcute vor arăta dacă elevul este capabil: Conţinuturi

Sugestii pentru antrenamente mentale (activităţi ce duc la învăţarea, întărirea, dezvoltarea capacităţilor prevăzute ca obiective de

18

Page 19: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

atins)

Să cunoască structura datelor de tip fişier şi semnificaţia simbolului sfârşit de fişier;

Să explice modul de scriere şi citire a datelor din fişier;

Să clasifice fişierele după tipul operaţiilor permise şi modul de acces;

Să indice ordinea în care trebuie apelate procedurile destinate prelucrării datelor de tip fişier.

Generalităţi despre fişiere.

Exerciţii de:

- determinare a operaţiilor de dechidere şi închidere a fişierelor;

- clasificare a fişierelor în funcţie de operaţiile permise şi modul de acces;

- definire a diferitor tipuri de fişiere în funcţie de problema pusă.

Să poată crea şi prelucra datele din fişierele secvenţiale;

Să poată citi şi scrie date din/în fişiere secvenţiale;

Să poată crea programe cu utilizarea fişierelor secvenţiale;

Să poată citi un program.

Fişiere secvenţiale. Exerciţii de:

- creare a fişierelor secvenţiale;

- de citire a fişierelor secvenţiale;

- de prelucrare a datelor dinr-un fişier secvenţial;

- formulare a problemei rezolvate după un anumit program.

Să poată crea şi prelucra datele din fişierele cu acces direct;

Să poată citi şi scrie date din/în fişiere cu acces direct;

Să poată crea programe cu utilizarea fişierelor cu acces direct;

Să poată citi un program;

Să poată deosebi fişierele secvenţiale de cele cu acces direct;

Să poată utiliza funcţiile standard FileSize(f), Seek(f,i), FilePos(f,i).

Fişiere cu acces direct.

Exerciţii de:

- creare a fişierelor cu acces direct;

- de citire a fişierelor cu acces direct;

- de prelucrare a datelor dinr-un fişier cu acces direct;

- formulare a problemei rezolvate după un anumit program.

Să poată crea fişieretext;

Să poată citi şi scrie date din/în fişiere cu acces direct;

Să poată crea programe cu utilizarea fişierelor text;

Să poată citi un program;

Să poată declara fişiere text;

Fişiere text. Exerciţii de:

- creare a fişierelor text;

- de citire/scriere a datelor dintr-un(într-un) fişier text;

- de prelucrare a datelor dinr-un fişier text;

19

Page 20: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Să poată prelucra datele din fişiere text.

- formulare a problemei rezolvate după un anumit program.

Să cunoască structura datelor de tip fişier şi semnificaţia simbolului sfârşit de fişier, sfîrşit de linie;

Să clasifice fişierele după tipul operaţiilor permise şi modul de acces;

Să indice ordinea în care trebuie apelate procedurile destinate prelucrării datelor de tip fişier.

Să poată crea şi prelucra datele din fişierele;

Să poată citi şi scrie date din/în fişiere;

Să poată citi un program.

Lecţie de evaluare. Analiza.

Exerciţii de:

- determinare a operaţiilor de dechidere şi închidere a fişierelor;

- clasificare a fişierelor în funcţie de operaţiile permise şi modul de acces;

- definire a diferitor tipuri de fişiere în funcţie de problema pusă;

- creare a programelor cu utilizarea tipului de date fişier;

- formulare a problemei rezolvate după un anumit program.

Sugestii metodologice

Componentele de bază ale tehnologiei didactice pentru predarea-învăţarea

informaticii sînt:

1. Predarea de cunoştinţe şi formarea de capacităţi specifice informaticii. Aceste

cunoştinţe sînt incluse în tabelele respective din programele la informatică.

2. Antrenarea sistematică vizînd în mod distinct următoarele domenii:

— înţelegerea conceptelor;

— cunoaşterea metodelor de formalizare a problemelor şi de elaborare a

algoritmilor respectivi;

— cunoaşterea metodelor de elaborare a programelor;

— aplicarea programelor elaborate şi a produselor program pentru prelucrarea in-

formaţiei.

3. Utilizarea metodelor active pentru însuşirea individuală a noilor tehnologii

informaţionale prin intermediul instruirii asistate de calculator.

Problematizarea la lecţiile de informatică

20

Page 21: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Motivaţia instruirii problematizate la informatică:

1. Perevederile Curriculumului la informatică.

2. Abordarea modernă a învăţămîntului.

3. Antrenarea elevilor în:

a) reorganizarea şi transformarea materialului dat;

b) activităţile de învăţare problematizată;

c) pregătirea pentru învăţarea ulterioară, transformîndu-se treptat

în “gînditori creativi”;

4. Prin reuşita personală elevii:

a) simt satisfacţia învăţării şi încrederea în propriile forţe;

b) îşi impulsionează eforturile spre căutări, explorări;

c) activează individual sau în echipă;

d) documentează activităţile experimentale, investigaţiile

ştiinţifice;

5. Resursele educaţionale şi dotarea didactică adecvată procesului de

predare – învăţare – evaluare.

6. La nivel de profesor:

a) profesionalismul;

b) stilul de muncă;

c) vede elevul nu numai pînă la finele gimnaziului, liceului etc.,

dar un adevărat Om contemporan – gînditor – creator –

realizator.

Instruirea problematizată la informatică

La baza organizării instruirii problematizate se află principiul de căutare în

activitatea de asimilare a cunoştinţelor de către elevi, adică principiul

„descoperirii” de către ei a legilor, regulilor, ipotezelor, metodelor ştiinţifice şi

felul de aplicare a lor în practică.

21

Page 22: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Tot odată instruirea problematizată nu poate fi concepută ca un „lanţ de

descoperiri” ştiinţifice sinestătătoare a elevilor. Ea impune o armonie optimă a

activităţii de reproducţie pasivă şi însuşirea activă de către elevi a unor sisteme

necesare de informaţie.

Instruirea problematizată nu exclude lămurirea profesorului şi rezolvarea de

către elevi a problemelor de antrenament pentru formarea unor deprinderi şi

însuşirea anumitor algoritmi. Noile cerinţe faţă de didactică au adus la dezvoltarea

unor astfel de metode de instruire, cînd profesorul numai dirigează lucrul de

sinestătător al elevilor în procesul de însuşire şi analiză a materiei de studiu, adică

şi-au găsit aplicare metodele de instruire problematizată.

Deosebirea principală dintre metodele contemporane de instruire

problemetizată şi metodele tradiţionale constă în principiile de organizare a

procesului educaţional.

Instruirea problematizată – organizarea deosebită a activităţilor elevilor în

procesul de acumulare a cunoştinţelor noi pe parcursul căruia ei sunt participanţi

activi la căutarea căilor, metodelor de rezolvare a problemei create de către

profesor. Pentru aplicarea cu succes a metodelor de instruire problematizată sunt

necesare următoarele condiţii:

1. căutarea şi găsirea situaţiilor de problemă;

2. dezvoltarea planică şi consecutivă la elevi a deprinderilor şi priceperilor de a

găsi şi de a formula problema şi sinestătător de a o rezolva;

3. o sistemă specială de pregătire a profesorului de lecţii orientată la selectarea

din materia de studiu a situaţiilor de problemă.

Pentru o astfel de pregătire profesorul trebuie să analizeze materia de studiu din

diferite puncte de vedere:

a) ştiinţific (deosebirea noţiunilor de bază şi interacţiunea lor);

b) psihologic (a prevedea reacţia clasei şi a unor elevi

induvudual în momentul enunţului problemei);

22

Page 23: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

c) logic (consecutivitatea adresării de către elevii a întrebărilor,

problemelor, însărcinărilor, chibzuirea lor ca o sistemă

armonioasă);

d) didactic (alegerea metodelor necesare de formare a situaţiilor

de problemă).

Acţiunile elevilor în timpul creării de către profesor a situaţiei de problemă

trebuie să aibă loc după următoarele consecutivităţi:

1. analiza situaţiei propuse de profesor;

2. formularea problemei sau analiza formulării efectuate de profesor;

3. rezolvarea problemei: înaintarea presupunerilor, argumentarea ipotezei

propuse, demonstrarea ei (dacă e posibil teoretic şi experimental),

controlul veridicităţii, rezolvării.

Devine clar, că locul central în instruirea problematizată îl joacă situaţia de

problemă. Situaţia de problemă nu este altceva decît o sarcină ce conţine o

contradicţie dintre volumul necesar de cunoştinţe pentru rezolvarea problemei

înaintate şi volumul de informaţii la moment.

Pentru rezolvarea problemei, adică găsirea necunscutelor trebuie sau să

introducem o legitate nouă sau o formulare nouă, sau să găsim un algoritm de

rezolvare, sau să modificăm algoritmul deja cunoscut. La instruirea problematizată

se aplică şi problemele obişnuite, atunci cînd trebuie să consolidăm careva legi sau

reguli.

Nivelurile problematizării sunt:

1. Profesorul formulează şi rezolvă problema sau demonstrează cum a fost

rezolvată această problemă în ştiinţă.

2. Profesorul creează situaţia de problemă şi atrage elevii în căutarea soluţiei.

3. Profesorul formulează problema, iar soluţia elevii o caută de sinestătător.

4. Profesorul le propune elevilor să formuleze problema şi să caute soluţia ei.

La baza situaţiilor – problemă la orele de informatică se află contradicţia dintre

cunoscut şi necunoscut:

1. contradicţiile dintre experienţa de viaţă a elevilor şi cunoştinţele ştiinţifice;

23

Page 24: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

2. contradicţiile dintre cunoştinţele anterioare ale elevilor şi cele noi;

3. contradicţiile realităţii obiective.

Situaţiile-problemă mai pot fi clasificate în felul următor (după R. Malofeev):

a) situaţia surprizei apare la contactul elevilor cu fenomene, fapte, concluzii care

provoacă uimire, care par paradoxale;

b) situaţia conflictului este relevantă la studierea noţiunii din informatică;

c) situaţia presupunerii constă în admiterea existenţei altei legităţi sau altei

noţiuni;

d) situaţia discordanţei apare în cazul în care experienţa de toate zilele a elevilor

intră în contradicţie cu datele ştiinţifice;

e) situaţia nedeterminării apare în cazul în care problema formulată n-are destule

date pentru o soluţie univocă;

f) situaţia dezminţirii apare în cazul în care elevii demonstreză netemeinicia unei

idei sau a unui proiect.

Problematizarea este o metodă didactică cu resurse pedagogice deosebite, care

urmăreşte realizarea obiectivelor propuse la nivelul activităţii de predare – învăţare

– evaluare prin lansarea şi rezolvarea unor situaţii – problemă.

24

Page 25: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

§4. Exerciţii şi probleme la tema “Tipul de date fişier”

În acest paragraf propunem cîteva probleme la tema “Tipul de date fişier” cu

soluţii în Pascal.

Probleme Pascal cu utilizarea fişierelor text

Problema 1. Să se scrie un program Pascal pentru crearea unui fişier text.

Introduceţi textul structurat pe linii. Pentru terminare tastaţi Ctrl+Z. Se vor afişa

rezultatele execuţiei.PROGRAM Ex1_fişiere_text; {program pentru crearea unui fişier text} VAR f:text; s:STRING; BEGIN Assign(f,'Fis.txt'); Rewrite(f); writeln('Introduceti textul structurat pe linii'); writeln('Pentru terminare tastati ^Z'); WHILE NOT eof DO BEGIN readln(s); writeln(f,s) END; Close(f) END {Ex1_fişiere_text}.

Rezultatul execuţiei programului:

Introduceti textul structurat pe linii Pentru terminare tastati ^Z Fişierul text conţine o succesiune de caractere ASCII incheiata cu caracterul ^Z, care are rol de marcator sfarsit de fişier. ^Z

Problema 2. Să se scrie un program Pascal care listează conţinutul fişierului text

creat anterior. Se vor afişa rezultatele execuţiei.PROGRAM Ex2_fişiere_text; {program pentru listarea unui fişier text; listarea se face pe ecran} VAR f:text; s:STRING; BEGIN Assign(f,'Fis.txt');

25

Page 26: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Reset(f); writeln('Conţinutul fişierului text Fis.txt:'); writeln; WHILE NOT eof(f) DO BEGIN readln(f,s); writeln(s) END; Close(f); readln END {Ex2_fişiere_text}.

Rezultatul execuiei programului:Conţinutul fişierului text Fis.txt:   Fişierul text conţine o succesiune de caractere ASCII incheiata cu caracterul ^Z, care are rol de marcator sfarsit de fişier.

Problema 3. Să se scrie un program Pascal care listează conţinutul unui fişier text

- varianta care ia în consideratie şi cazul în care fişierul nu a fost creat anterior. PROGRAM Ex3_fişiere_text; {program pentru listarea unui fişier text varianta care ia in consideratie şi cazul in care fişierul nu a fost creat} VAR f:text; s:STRING; BEGIN Assign(f, 'Fis.txt'); {$I-} Reset(f); {$I+} IF IOResult=0 THEN BEGIN writeln('Conţinutul fişierului text Fis.txt:'); writeln; WHILE NOT eof(f) DO BEGIN readln(f,s); writeln(s) END; Close(f) END ELSE writeln('Fişierul nu exista'); readln END {Ex_3_fişiere_text}.

Problema 4. Să se scrie un program Pascal pentru crearea unui fişier text şi afişarea numărului de linii din fişier. PROGRAM Ex_4_fişiere_text; {program care afiseaza numărul de linii dintr-un fişier text}

26

Page 27: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

VAR f:text; nr:integer; BEGIN Assign(f,'Fis.txt'); Reset(f); nr:=0; WHILE NOT eof(f) DO BEGIN readln(f); nr:=nr+1 END; Close(f); writeln('Fişierul Fis.txt are ',nr,' linii'); readln END {Ex_4_fişiere_text}.

Rezultatul execuţiei programului:

Fişierul Fis.txt are 3 linii

Problema 5. Să se scrie un program Pascal care afişează numărul de linii dintr-un

fişier text, care conţin numai caracterele blanc şi TAB (linii denumite linii "albe").

PROGRAM Ex5_fişiere_text; VAR f:text; nume:STRING; n:word; BEGIN write('Introduceti numele fişierului text: '); readln(nume); Assign(f,nume); {$I-} Reset(f); {$I+} IF IOResult<>0 THEN writeln('Fişierul ',nume,' nu exista !') ELSE BEGIN n:=0; WHILE NOT eof(f) DO EGIN IF seekeoln(f) THEN n:=n+1; readln(f) END; Close(f); writeln('Fişierul ',nume,' are ',n,' linii "albe".') END; readln END {Ex5_fişiere_text}.

27

Page 28: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Problema 6. Să se scrie un program Pascal care sa afişeze numărul de cuvinte

dintr-un fişier text. Separarea între două cuvinte se face prin unul sau mai multe

blancuri sau prin separatori de linie.PROGRAM Numara_cuvinte; VAR f:text; c:char; ncuv:integer; incuv:boolean; nume:string; BEGIN write('Introduceti numele fişierului text: '); readln(nume); Assign(f,nume); {$I-} Reset(f); {$I+} IF IOResult<>0 THEN BEGIN writeln('Fişierul ',nume,' nu exista !'); halt END; ncuv:=0; incuv:=false; WHILE NOT eof(f) DO BEGIN IF eoln(f) THEN BEGIN readln(f);incuv:=false END ELSE BEGIN read(f,c); IF c=' ' THEN incuv:=false ELSE IF NOT incuv THEN BEGIN incuv:=true;ncuv:=ncuv+1 END END END; Close(f); writeln('Fişierul ',nume,' conţine un numar de ',ncuv,' cuvinte.'); readln END {Numara_cuvinte}.

Problema 7. Să se scrie un program Pascal care să realizeze concatenarea a două

fişiere text. Se vor afişa rezultatele execuţiei.

28

Page 29: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

PROGRAM Concatenare_fişiere_text; {program de concatenare a doua fişiere text} VAR f1,f2:text; nume1,nume2,x:STRING;   PROCEDURE Citeste_fis_text(nume:STRING); VAR f:text; BEGIN assign(f,nume); rewrite(f); writeln ('Introduceti textul fişierului structurat pe linii:'); writeln ('La sfirsitul unei linii tastati ENTER'); writeln('(pentru sfirsit editare text, tastati caracterul ^Z):'); writeln; WHILE NOT eof DO BEGIN readln(x); writeln(f,x) END; close(f) END;{Citeste_fis_text}   PROCEDURE Afiseaza_fis_text(nume:STRING); VAR f:text; BEGIN assign(f,nume); reset(f); WHILE NOT eof(f) DO BEGIN readln (f,x); writeln(x) END; close(f) END; {Afiseaza_fis_text}   {program principal } BEGIN writeln('Concatenarea a doua fişiere '); write(' Nume fişier 1: '); readln(nume1); Citeste_fis_text(nume1); write('Nume fişier 2: '); readln(nume2); Citeste_fis_text(nume2); assign(f1,nume1); assign(f2,nume2); append(f1); reset(f2);

29

Page 30: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

WHILE NOT eof(f2) DO BEGIN readln(f2,x); writeln(f1,x) END; close(f1); close(f2); writeln('Fişierul concatenat'); writeln; Afiseaza_fis_text(nume1); readln END.{Concatenare_fişiere_text}

Rezultatul execuţiei programului:

Concatenarea a doua fişiere Nume fişier l: fişier1.txt Introduceti textul fişierului structurat pe linii: La sfirsitul unei linii tastati ENTER (pentru sfirsit editare text, tastati caracterul ^Z): Forma generala a unui program Pascal:   PROGRAM . . . .; USES . . . .; LABEL . . . .; CONST . . . .; TYPE . . . .; VAR . . . .; PROCEDURE . . . .; FUNCŢION . . . .; ^Z   Nume fişier 2: fişier2.txt Introduceti textul fişierului structurat pe linii: La sfirsitul unei linii tastati ENTER (pentru sfirsit editare text, tastati caracterul ^Z):   BEGIN{program principal} instructiune; . . . .; END. ^Z

  Fişierul concatenat   Forma generala a unui program Pascal: PROGRAM . . . .; USES . . . .; LABEL . . . .; CONST . . . .; TYPE . . . .; VAR . . . . ; PROCEDURE . . . . ; FUNCŢION . . . . ; BEGIN{program principal} instructiune; . . . .; END.

30

Page 31: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Probleme Pascal cu utilizarea fişierelor cu tip

Problema 1. Să se scrie un program Pascal pentru crearea unui fişier "stocuri de

materiale" cu cel mult 100 de articole. PROGRAM Ex1_fişiere_cu_tip; {- program pentru crearea unui fişier stocuri de materiale .- presupunem ca putem avea maxim 100 de materiale} TYPE material=RECORD cod:integer; nume:STRING; cantit:real; nr:integer END; fişier_stoc=FILE OF material; VAR f:fişier_stoc; {variabila fişier} x:material; {variabila tampon} i:1..100; BEGIN WITH x DO BEGIN cod:=0; nume:=''; cantit:=0.0 END; Assign(f,'stoc.dat'); Rewrite(f); FOR i:=1 TO 100 DO BEGIN WITH x DO nr:=i; write(f,x) END; close(f) END {Ex1_fişiere_cu_tip}.

Problema 2. Să se scrie un program Pascal care sa realizeze actualizarea fişierului

de stocuri de materiale creat anterior.PROGRAM Ex2_fişiere_cu_tip; {program de actualizare a fişierului stocuri de materiale} TYPE material=RECORD cod:integer; nume:STRING; cantit:real; nr:integer END; fişier_stoc=file of material;

31

Page 32: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

VAR f:fişier_stoc; x:material; i:integer; BEGIN Assign(f,'Stoc.dat'); Reset(f); write('Introduceti numărul componentei (0 pentru oprire) i= '); readln(i); WHILE i in [1..100] DO BEGIN seek(f,i-1); read(f,x); writeln('Cod= ',x.cod,' Nume= ',x.nume,' cantitate= ',x.cantit); write('Cod= ');readln(x.cod); write('Nume= ');readln(x.nume); write('Cantitatea= ');readln(x.cantit); seek(f,i-1); write(f,x); write('Introduceti numărul componentei i= '); readln(i) END; close(f) END {Ex2_fişiere_cu_tip}.

Rezultatul execuţiei programului:

Introduceti numărul componentei (0 pentru oprire) i= 1 Cod= 0 Nume= cantitate= 0.0000000000E+00 Cod= 11 Nume= tabla Cantitatea= 1000 Introduceti numărul componentei i=5 Cod= 0 Nume= cantitate= 0.0000000000E+00 Cod= 17 Nume= lemn Cantitatea= 7000 Introduceti numărul componentei i=0

Problema 3. Să se scrie un program Pascal pentru afisarea fişierului stocuri de

materiale.PROGRAM Ex3_fişiere_cu_tip; {program de afisare a fişierului stocuri de materiale} USES Crt; TYPE material=RECORD cod:integer; nume:STRING; cantit:real; nr:integer END;

32

Page 33: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

fişier_stoc=file of material; VAR f:fişier_stoc; x:material; BEGIN Assign(f,'Stoc.dat'); Reset(f); WHILE NOT eof(f) DO BEGIN read(f,x); WITH x DO writeln('Cod= ',cod,'; Nume= ',nume,' ;Cantitate=',cantit:5:3) END; Close(f) END.{Ex3_fişiere_cu_tip}

Rezultatul execuţiei programului:

Cod= 11; Nume= tabla;Cantitate=1000.000 Cod= 0; Nume=;Cantitate= 0.000 Cod= 0; Nume=;Cantitate= 0.000 Cod= 0; Nume=;Cantitate= 0.000 Cod= 17; Nume=lemn;Cantitate=7000.000

Problema 4. Să se scrie un program Pascal care sa realizeze concatenarea a două

fişiere care conţin componente de acelaşi tip. Fişierele conţin informaţii referitoare

la cărţile dintr-o bibliotecă. Structura unei înregistrări cuprinde următoarele

cîmpuri: titlu, autor, an_apariţie, editura. Să se afiseze fişierul concatenat, în ordine

alfabetică după autor.PROGRAM Concatenare_fişiere_tip; {program de concatenare a doua fişiere cu tip} TYPE carte=RECORD titlu:STRING[30]; autor:STRING[20]; an_aparitie:word; editura:STRING[20] END; biblioteca=FILE OF carte; VAR f,g:biblioteca;numef,numeg:STRING;   PROCEDURE Deschide_fişier(VAR f1:biblioteca; nume1:STRING); BEGIN Assign(f1,nume1); {$I-} Reset(f1); {$I+}

33

Page 34: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

IF IOResult<>0 THEN Rewrite(f1) ELSE Seek(f1,Filesize(f1)) END;{Deschide_fişier}   PROCEDURE Scrie_in_fişier(VAR f1:biblioteca); VAR x:carte;i,n:integer; BEGIN write('Cate inregistrari introduceti ? '); readln(n); FOR i:=1 TO n DO BEGIN WITH x DO BEGIN write('Titlul cartii: '); readln(titlu); write('Autor: '); readln(autor); write('Anul aparitiei: '); readln(an_aparitie); write('Editura: '); readln(editura) END; write(f1,x) END END; {Scrie_in_fişier}   PROCEDURE Afisare_fişier(VAR f1:biblioteca; nume1:STRING); VAR x:carte; BEGIN Assign(f1,nume1); {$I-} Reset(f1); {$I+} IF IOResult<>0 THEN write('Fişierul ',nume1,' nu exista !') ELSE BEGIN WHILE NOT eof(f1) DO BEGIN read(f1,x); writeln(x.autor,' ',x.titlu,' ',x.an_aparitie,' ',x.editura) END; Close(f1) END END; {Afisare_fişier}   PROCEDURE Concat_fişiere(VAR f1,f2:biblioteca; nume1,nume2:STRING); VAR x:carte; BEGIN

34

Page 35: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Assign(f1,nume1); {$I-} Reset(f1); {$I+} IF IOResult<>0 THEN BEGIN writeln('Fişierul ',nume1,' nu exista !'); halt END; Assign(f2,nume2); {$I-} Reset(f2); {$I+} IF IOResult<>0 THEN BEGIN writeln('Fişierul ',nume2,' nu exista !'); halt END; Seek(f1,Filesize(f1)); WHILE NOT eof(f2) DO BEGIN read(f2,x); write(f1,x) END; Close(f1); Close(f2) END; {Concat_fişiere}   PROCEDURE Ordonare(VAR f1:biblioteca; nume1:STRING); VAR x,y:carte; i,j,n:word; BEGIN Assign(f1,nume1); {$I-} Reset(f1); {$I+} IF IOResult<>0 THEN BEGIN writeln('Fişierul ',nume1,' nu exista !'); halt END; n:=Filesize(f1); FOR i:=0 TO n-2 DO FOR j:=i+1 TO n-1 DO BEGIN Seek(f1,i); read(f1,x); Seek(f1,j); read(f1,y); IF x.autor>y.autor THEN BEGIN Seek(f1,i);write(f1,y);

35

Page 36: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Seek(f1,j);write(f1,x) END END; Close(f1) END; {Ordonare}   BEGIN {programul principal} write('Introduceti numele primului fişier: '); readln(numef); writeln('Introduceti inregistrari in fişierul ',numef); Deschide_fişier(f,numef); Scrie_in_fişier(f); Close(f); writeln; write('Introduceti numele celui de-al doilea fişier: '); readln(numeg); writeln('Introduceti inregistrari in fişierul ',numeg); Deschide_fişier(g,numeg); Scrie_in_fişier(g); Close(g); writeln; Concat_fişiere(f,g,numef,numeg); Ordonare(f,numef); writeln; writeln('Fişierul concatenat ',numef,' ordonat alfabetic dupa autor:'); writeln; Afisare_fişier(f,numef); readln END {Concatenare_fişiere_tip}.

Rezultatul execuţiei programului:

Introduceti numele primului fişier: BIBLIO1.DAT Introduceti inregistrari in fişierul BIBLIO1.DAT Cate inregistrari introduceti ? 2 Titlul cartii: Inteligenta Artificiala Autor: Winston Patrick Anul aparitiei: 1981 Editura: Tehnica Titlul cartii: Inteligenta Artificiala Autor: Georgescu Ioan Anul aparitiei: 1985 Editura: Academiei   Introduceti numele celui de-al doilea fişier: BIBLIO2.DAT Introduceti inregistrari in fişierul BIBLIO2.DAT Cate inregistrari introduceti ? 1 Titlul cartii: Artificial Intelligence Autor: Nilsson Nils Anul aparitiei: 1980 Editura: Tioga   Fişierul concatenat BIBLIO1.DAT ordonat alfabetic dupa autor:   Georgescu Ioan Inteligenta Artificiala 1985 Academiei

36

Page 37: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Nilsson Nils Artificial Intelligence 1980 Tioga Winston Patrick Inteligenta Artificiala 1981 Tehnica

Problema 5. Să se scrie un program Pascal pentru crearea şi afişarea unui fişier de

personal cu structura următoare:

Cîmpuri comune: cod, nume, prenume, studii;

Cîmpuri diferite în funcţie de valoarea cîmpului studii:

o FARA - ;

o LICEU - media de absolvire a liceului;

o SUP - instit, fac, media, titlu stiinţific (nimic, dr.).

Notă. Structura unei înregistrări din fişierul personal va fi implementată printr-o înregistrare cu variante (record cu variante).

PROGRAM Ex_fişier_tip; TYPE forma_invat=(FARA, LICEU, SUP); persoana=RECORD cod:word; nume, prenume:STRING; studii:forma_invat; CASE forma_invat OF FARA:(); LICEU:(medie:real); SUP:(instit, fac:STRING; media:real; titlu:(nimic, dr)) END; personal=FILE OF persoana; VAR f:personal; nume:STRING; i,n,opt:word; opt1:char; x:persoana; PROCEDURE Deschide_fişier(VAR f1:personal; numef:STRING); {deschide fişierul numef in vederea introducerii / adaugarii de noi inregistrari} BEGIN Assign(f1,numef); {$I-} Reset(f1); {$I+} IF IOResult<>0 THEN Rewrite(f1) ELSE Seek(f1,Filesize(f1)) END; {Deschide_fişier}   PROCEDURE Introd_date(VAR f1:personal); VAR x:persoana; BEGIN write('Cate inregistrari introduceti ? ');

37

Page 38: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

readln(n); FOR i:=1 TO n DO BEGIN write('Cod persoana: ');readln(x.cod); write('Nume: ');readln(x.nume); write('Prenume: '); readln(x.prenume); write('Forma de invatamant - 0 FARA, 1 LICEU, 2 SUP: '); readln(opt); CASE opt OF 0: x.studii:=FARA; 1:BEGIN x.studii:=LICEU; write('Media de absolvire: '); readln(x.medie) END; 2:BEGIN x.studii:=SUP; write('Institutul ( Universitatea ): '); readln(x.instit); write('Facultatea: '); readln(x.fac); write('Media de absolvire a facultatii: '); readln(x.media); write('Doctorat (D/N) ?'); readln(opt1); IF UpCase(opt1)='D' THEN x.titlu:=dr ELSE x.titlu:=nimic END END; write(f1,x) END END; {Introd_date}   PROCEDURE Deschide_fis(VAR f1:personal; numef:STRING); {deschide fişierul numef in vederea citirii} BEGIN Assign(f1,nume); {$I-} Reset(f1); {$I+} IF IOResult<>0 THEN BEGIN writeln('Fişierul ',numef,' nu exista !'); halt END END; {Deschide_fis}   PROCEDURE Afisare_fişier(VAR f1:personal); VAR x:persoana; BEGIN

38

Page 39: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

WHILE NOT eof(f1) DO BEGIN read(f1,x); write(x.cod,' ',x.nume,' ',x.prenume,' '); CASE x.studii OF FARA: writeln; LICEU:writeln(x.medie:0:2); SUP: BEGIN write(x.media:0:2,' ',x.instit,' ',x.fac,' '); IF x.titlu<>nimic THEN writeln('dr') END END END END; {Afisare_fişier}   BEGIN write('Introduceti numele fişierului:');readln(nume); Deschide_fişier(f,nume); Introd_date(f); Close(f); Deschide_fis(f,nume); writeln; writeln('Afiseaza conţinutul fişierului ',nume); writeln; Afisare_fişier(f); Close(f); readln END {Ex_fişier_tip}.  

Rezultatul execuţiei programului:

Introduceti numele fişierului: PERS.DAT Cate inregistrari introduceti ? 3 Cod persoana: 1 Nume: Ionescu Prenume: Ion Forma de invatamant - 0 FARA, 1 LICEU, 2 SUP: 2 Institutul (Universitatea): UPB Facultatea: Aeronave Media de absolvire a facultatii: 9.80 Doctorat (D/N) ? d Cod persoana: 2 Nume: Popescu Prenume: Andrei Forma de invatamant - 0 FARA, 1 LICEU, 2 SUP: 1 Media de absolvire: 9.50 Cod persoana: 3 Nume: Irimescu Prenume: Alin Forma de invatamant - 0 FARA, 1 LICEU, 2 SUP:0   Afiseaza conţinutul fişierului PERS.DAT 1 Ionescu Ion 9.80 UPB Aeronave dr 2 Popescu Andrei 9.50 3 Irimescu Alin

39

Page 40: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Probleme Pascal cu utilizarea fişierelor fără tip

Problema 1. Să se scrie un program Pascal care sa realizeze copierea unui fişier

sursă într-un fişier destinaţie.PROGRAM Ex1_fişier_fara_tip; {program care permite copierea unui fişier sursa intr-un fişier destinatie -varianta 1-} VAR nume_s, nume_d:string; buf: array[1..2000] of char; rezultat:integer; fs,fd:file; BEGIN write('Nume fişier sursa: ');readln(nume_s); write('Nume fişier destinatie: '); readln(nume_d); Assign(fs,nume_s); Reset(fs,1); Assign(fd,nume_d); Rewrite(fd,1); BlockRead(fs,buf,sizeof(buf),rezultat); WHILE rezultat>0 DO BEGIN BlockWrite(fd,buf,rezultat); BlockRead(fs,buf,sizeof(buf),rezultat) END; Close(fs); Close(fd) END {Ex1_fişier_fara_tip}.

Rezultatul execuţiei programului:

Nume fişier sursa: fişier1.txt Nume fişier destinatie: fişierd.txt

PROGRAM Ex2_fişier_fara_tip; {program care permite copierea unui fişier sursa intr-un fişier destinatie - varianta 2 - fişierul sursa este sters dupa copiere} VAR fs,fd:file; buf:array [1..2000] of char; nume_s,nume_d:STRING; r,w:word; BEGIN write('Nume fişier destinatie: '); readln(nume_d); write('Nume fişier sursa: '); readln(nume_s); Assign(fs,nume_d); Rewrite(fd,1);

40

Page 41: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Assign(fs,nume_s); Reset(fs,1); REPEAT BlockRead(fs,buf,sizeof(buf),r); BlockWrite(fd,buf,r,w) UNTIL (r=0) or (w<>r); close(fs); close(fd); erase(fs); readln END {Ex2_fişier_fara_tip}.

Rezultatul execuţiei programului:

Nume fişier desinatie: fişierd.txt Nume fişier sursa: fişier1.txt

Problema 2. Să se scrie un program Pascal care să permită concatenarea a n

fişiere. Se vor utiliza procedurile BlockRead şi BlockWrite.PROGRAM Concatenare_fişiere; VAR fs, fd:FILE; {fs - fişier sursa fd - fişier destinatie} nume1, nume2:STRING; buf:ARRAY[1..200]OF char; r,w,i,n:word; BEGIN REPEAT write('Cate fişiere doriti sa concatenati (n>0)?'); readln(n); UNTIL n>=1; write('Introduceti numele fişierului destinatie: '); readln(nume1); Assign(fd,nume1); Rewrite(fd,1); i:=1; WHILE i<=n do BEGIN write('Introduceti numele fişierului sursa: '); readln(nume2); Assign(fs,nume2); Reset(fs,1); { copiaza conţinutul fişierului sursa in fişierul destinatie } REPEAT BlockRead(fs,buf,sizeof(buf),r); BlockWrite(fd,buf,r,w); UNTIL (r=0)OR(w<>r); IF w<>r THEN BEGIN writeln('A aparut o eroare la scriere!'); halt END;

41

Page 42: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Close(fs); Erase(fs); {sterge fiserul sursa} i:=i+1 END; Close(fd); readln END {Concatenare_fişiere}.

Rezultatul execuţiei programului:

Cate fişiere doriti sa concatenati (n>0)? 2 Introduceti numele fişierului destinatie: DATE.DAT Introduceti numele fişierului sursa: DATE1.DAT Introduceti numele fişierului sursa: DATE2.DAT

Probleme Pascal de un grad mai înalt de dificultate

Prezentăm în continuare alte aplicaţii cu fişiere Pascal cu un grad de

dificultate mai înalt:

Problema 1. Să se scrie un program Pascal care să realizeze sortarea a n elemente

cu structura dată, dupa un cîmp cheie.Program sortare_prin_insertie; {programul realizeaza sortarea a n elemente, cu structura definita de tipul de element - sortarea se face dupa campul cheie.Cele n elemente sunt introduse mai intai in fişierul Date.dat, apoi sunt preluate in tabloul x, urmeaza sortarea lor prin insertie şi depunerea elementelor sortate in fişierul Datesort.dat.} TYPE element=RECORD cheie:integer; info:char END; VAR x:ARRAY[1..100] OF element; f,fs:FILE OF element; n:1..100; stg:integer; t:element; PROCEDURE Introd_date(n:integer); {procedura preia cele n elemente in fişierul Date.dat} VAR i:integer; BEGIN Assign(f,'Date.dat'); Rewrite(f); writeln('Introduceti cele n elemente: '); FOR i:=1 TO n DO BEGIN

42

Page 43: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

WITH t DO BEGIN write('Cheie:');readln(cheie); write('Informatie:');readln(info) END; write(f,t) END; Close(f) END; {Introd_date}   PROCEDURE Citire_elem; {preia elementele din fişier in variabila tablou x} BEGIN Assign(f,'Date.dat'); Reset(f); n:=0; WHILE NOT eof(f) and (n<100) DO BEGIN n:=n+1; read(f,t); x[n]:=t END; Close(f) END; {Citire_elem}   PROCEDURE Scrie_elem; {scrie elementele sortate dupa campul cheie in fişierul Datesort.dat} VAR i:integer; BEGIN Assign(fs,'Datesort.dat'); Rewrite(fs); writeln(’Cele ’,n,’ elemente sortate dupa campul cheie sunt:’); FOR i:=1 TO n DO BEGIN t:=x[i]; write(fs,t); writeln(t.cheie,' ',t.info) END; Close(fs) END; {Scrie_elem}   PROCEDURE Insertie(dr:integer); VAR i:integer; BEGIN t:=x[dr];i:=dr-1; WHILE (i>=stg+1) and (x[i].cheie>t.cheie) DO BEGIN x[i+1]:=x[i]; i:=i-1 END; IF x[stg].cheie>t.cheie THEN

43

Page 44: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

BEGIN i:=stg-1; x[stg+1]:=x[stg] END; x[i+1]:=t END; {Insertie}   PROCEDURE Sort_ins_rec(stg,dr:integer); {sortare prin insertie - varianta recursiva} BEGIN IF dr-stg>=1 THEN BEGIN Sort_ins_rec(stg,dr-1); Insertie(dr) END END; {Sort_ins_rec}   BEGIN write('Introduceti numărul de elemente: '); readln(n); Introd_date(n); Citire_elem; stg:=1; Sort_ins_rec(n); Scrie_elem; readln END {sortare_prin_insertie}.

Rezultatul execuţiei programului:

  Introduceti numărul de elemente: 5 Introduceti cele n elemente: Cheie:15 Informatie:w Cheie:3 Informatie:q Cheie:21 Informatie:y Cheie:17 Informatie:d Cheie:10 Informatie:r Cele 5 elemente sortate dupa cimpul cheie sunt: 3 q 10 r 15 w 17 d 21 y

Problema 2. Să se scrie un program Pascal care să realizeze gestionarea unui

fişier "carte de telefon".

PROGRAM Carte_de_telefon;

44

Page 45: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

{programul permite: - gestionarea unui fişier "Carte de telefon" realizand următoarele operaţii: creare fişier, cautare abonat, stergere abonat, afisare abonati, ordonare alfabetica a abonatilor, adaugare, modificare - interclasarea a doua fişiere ordonate alfabetic dupa campul nume} TYPE string20=STRING[20]; string30=STRING[30]; abonat=Record nume:string20; adresa:string30; nr_tel:STRING[10] END; fişier=FILE OF abonat; VAR f:fişier; x:abonat;   PROCEDURE Creare(VAR f:fişier; nf:STRING); {procedura creeaza fişierul cu numele nf şi permite introducerea abonatilor} BEGIN Assign(f,nf); Rewrite(f); writeln('Introduceti date; pentru terminare tastati ^Z'); WHILE NOT eof DO BEGIN WITH x DO BEGIN write('Nume: '); readln(nume); write('Adresa: '); readln(adresa); write('Telefonul: '); readln(nr_tel) END; write(f,x) END; close(f) END; {Creare}   PROCEDURE gasit(n:string20;a:string30; VAR g:boolean; VAR poz:integer); {procedura cauta in fişier abonatul cu numele n şi adresa a - in cazul in care abonatul este gasit, g ia valoarea true, iar poz intoarce numărul inregistrarii} BEGIN seek(f,0); g:=false; WHILE NOT eof(f) DO BEGIN

45

Page 46: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

read(f,x); IF (x.nume=n) and (x.adresa=a) THEN BEGIN poz:=filepos(f)-1; g:=true END END END; {gasit}   PROCEDURE Cautare(VAR f:fişier; nf:STRING; nume_a:STRING; adresa_a:string30); {procedura de cautare a abonatului cu numele nume_a şi adresa adresa_a-in cazul in care abonatul se afla in fişier este afisat numărul sau de telefon} VAR p:integer; g:boolean; BEGIN Assign(f,nf); {$I-} reset(f); {$I+}; IF IOResult<>0 THEN BEGIN writeln('Fişierul nu exista!!!'); halt END ELSE BEGIN gasit(nume_a,adresa_a,g,p); IF NOT g THEN writeln('Abonatul nu se afla in cartea de telefon!') ELSE BEGIN seek(f,p); read(f,x); writeln('Numărul de telefon este ',x.nr_tel) END; Close(f) END; readln END; {cautare}   PROCEDURE Afisare(VAR f:fişier; nf:STRING); {procedura de afisare a tuturor inregistrarilor din fişier} BEGIN Assign(f,nf); {$I-} Reset(f); {$I+}; IF IOResult<>0 THEN BEGIN writeln('Fişierul nu exista!!!'); halt

46

Page 47: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

END ELSE BEGIN writeln(' Listarea inregistrarilor din fişier '); WHILE NOT eof(f) DO BEGIN read(f,x); writeln(filepos(f),' ',x.nume,' ',x.adresa,' ',x.nr_tel) END; Close(f) END; readln END; {afisare}   PROCEDURE Stergere(VAR f:fişier; nf:STRING; k:integer); {procedura sterge inregistrarea k din fişier - k=1,n} VAR n,i:integer; BEGIN Assign(f,nf); {$I-}; Reset(f); {$I+}; IF IOResult<>0 THEN BEGIN writeln('Fişierul nu exista !!!'); halt END ELSE BEGIN n:=Filesize(f); IF k>n THEN writeln('Inregistrarea nu exista in fişier') ELSE BEGIN seek(f,k-1) FOR i:=k TO n-1 DO BEGIN seek(f,i); read(f,x); seek(f,i-1); write(f,x) END; truncate(f) END; Close(f) END; readln END; {Stergere}   PROCEDURE Ordonare (VAR f:fişier; nf:STRING); {procedura ordoneaza fişierul alfabetic, dupa nume abonat}

47

Page 48: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

VAR x,y:abonat; n,i,j:integer; BEGIN Assign(f,nf); {$I-}; Reset(f); {$I+}; IF IOResult<>0 THEN BEGIN writeln('Fişierul nu exista !!!'); halt END ELSE BEGIN n:=Filesize(f); FOR i:=0 TO n-2 DO FOR j:=i+1 TO n-1 DO BEGIN seek(f,i); read(f,x); seek(f,j); read(f,y); IF x.nume>y.nume THEN BEGIN seek(f,i);write(f,y); seek(f,j);write(f,x) END END; Close(f) END; readln END; {Ordonare}   PROCEDURE Adaugare (VAR f:fişier; nf:STRING); {procedura permite adaugarea de noi abonati in fişier} BEGIN Assign(f,nf); {$I-}; Reset(f); {$I+}; IF IOResult<>0 THEN BEGIN writeln('Fişierul nu exista!!!'); halt END ELSE BEGIN {pozitionarea la sfirsitul fişierului} seek(f, filesize(f)); writeln('Introduceti date - pentru terminare tastati ^Z'); REPEAT WITH x DO

48

Page 49: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

BEGIN write ('Nume: '); readln(nume); write('Adresa: '); readln(adresa); write('Tel: '); readln(nr_tel) END; write(f,x) UNTIL eof; close(f) END; END; {Adaugare}   PROCEDURE Modif (VAR f:fişier; nf:STRING; nume_a:string20;adresa_a:string30); {procedura permite modificarea numărului de telefon pentru abonatul cu numele nume_a şi adresa adresa_a} VAR g:boolean; k:integer; BEGIN Assign(f,nf); Reset(f); gasit(nume_a,adresa_a,g,k); IF NOT g THEN writeln('Abonatul nu exista!!!') ELSE BEGIN seek(f,k); read(f,x); writeln('Nume: ',x.nume,'Adresa: ', x.adresa ,'Tel: ',x.nr_tel); write(’Introduceti noul numar de telefon: ’); readln(x.nr_tel); seek(f,k); write(f,x) END; Close(f) END; {Modif}   PROCEDURE Interclasare (VAR f1,f2,f:fişier; nume1,nume2,nume:STRING); {..- procedura interclaseaza doua fişiere f1 şi f2 - cheia de interclasare este campul nume - f este fişierul rezultat in urma interclasarii fişierelor f1 şi f2 - cele doua fişiere f1 şi f2 trebuie sa fie ordonate dupa campul nume} VAR k1,k2:string20; x1,x2:abonat; BEGIN Assign(f1,nume1); Reset(f1); Assign(f2,nume2);Reset(f2); Assign(f,nume); Rewrite(f);

49

Page 50: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

read(f1,x1); k1:=x1.nume; read(f2,x2); k2:=x2.nume; WHILE (k1<>'Ww') or (k2<>'Ww') DO {Sirul 'Ww' este "o valoare mare" care sesizeaza sfarsitul unui fişier. - k1='Ww' şi k2='Ww' este conditia de iesire din iteratie; ea este adevarata cand cele doua fişiere au fost parcurse integral} IF k1<k2 THEN BEGIN write(f,x1); IF eof(f1) THEN k1:='Ww' ELSE BEGIN read(f1,x1); k1:=x1.nume END END ELSE BEGIN read(f1,x1); IF eof(f2) THEN k2:='Ww' ELSE BEGIN read(f2,x2); k2:=x2.nume END END; Close(f1); close(f2); Close(f) END; {Interclasare}   PROCEDURE meniu(nume_fişier:STRING); {meniu pentru gestiunea fişierului cu numele nume_fişier} VAR opt:char; aa:string30;na:string20; poz:integer; BEGIN WHILE (1=1) DO BEGIN clrscr; gotoxy(10,10); writeln('1 - Creare'); gotoxy(10,11); writeln('2 - Cautare'); gotoxy(10,12); writeln('3 - Afisare'); gotoxy(10,13); writeln('4 - Stergere'); gotoxy(10,14); writeln('5 - Ordonare') gotoxy(10,15);

50

Page 51: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

writeln('6 - Adaugare'); gotoxy(10,16); writeln('7 - Modificare'); gotoxy(10,18); writeln('0 - Sfarsit'); gotoxy(10,24); write('Optiunea dvs.?'); readln(opt); CASE opt of '1': BEGIN clrscr; creare(f,nume_fişier) END; '2': BEGIN clrscr; write('Nume abonat: ');readln(na); write('Adresa: ');readln(a); cautare(f,nume_fişier,na,aa) END; '3': BEGIN clrscr; afisare(f,nume_fişier) END; '4': BEGIN clrscr; write('Introduceti pozitia pe care doriti sa o stergeti (k>=1): '); readln(poz); stergere(f,nume_fişier,poz) END; '5':ordonare(f,nume_fişier); '6': BEGIN clrscr; adaugare(f,nume_fişier) END; '7': BEGIN clrscr; write('Nume abonat:'); readln(na); write('Adresa: ');readln(aa); modif(f,nume_fişier,na,aa) END; '0' : exit ELSE writeln('Optiune inexistenta!!') END END END; {meniu}  

51

Page 52: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

PROCEDURE MeniuP; VAR op,rasp:char; nume_fişier:STRING; f1,f2,f:fişier; BEGIN WHILE (1=1) DO BEGIN clrscr; gotoxy(5,5); writeln(' MENIU PRINCIPAL'); gotoxy(1,7); writeln('1 - Gestiune fişier abonati'); gotoxy(1,8); writeln ('2 - Interclasare fişiere'); gotoxy(1,10); writeln('0 - Sfarsit'); write('Optiunea dvs.?');readln(op); CASE op of '1': BEGIN clrscr; write('Nume fişier abonati:'); readln(nume_fişier); meniu(nume_fişier) END; '2': BEGIN clrscr; write('Nume fişier 1:');readln(nume_1); write('Nume fişier 2:');readln(nume_2); write('Nume fişier interclasare: '); readln(nume_i); write ('Fişierele au fost sortate? (D/N) ');readln(rasp); IF upcase(rasp)='D' THEN Interclasare(f1,f2,f,nume_1,nume_2, nume_i) ELSE writeln('Sortati mai intai fişierele!!!') END; '0': halt ELSE writeln('Optiune inexistenta!!!') END END; END; {MeniuP}   {program principal} BEGIN Clrscr; MeniuP END {Carte_de_telefon}.  

52

Page 53: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Rezultatul execuţiei programului:

MENIU PRINCIPAL 1 - Gestiune fişier abonati 2 - Interclasare fişiere 0 - sfarsit Optiunea dvs.?1 Nume fişier abonati: abonati.dat 1 - Creare 2 - Cautare 3 - Afisare 4 - Stergere 5 - Ordonare 6 - Adaugare 7 - Modificare 0 - Sfarsit Optiunea dvs? 1 Introduceti date; pentru terminare tastati ^Z Nume: Ionescu Ioana Adresa: Independentei 37 Telefonul 172313 Nume: Aldea Mircea Adresa: Republicii 21 Telefonul 151327 Nume: Irimescu Andrei Adresa: Maramures 7 Telefonul 160251 1 - Creare 2 - Cautare 3 - Afisare 4 - Stergere 5 - Ordonare 6 - Adaugare 7 - Modificare 0 - Sfarsit Optiunea dumneavoastra ? 6 ADAUGARE Introduceti date - pentru terminare tastati ^Z Nume: Antonescu Cornel Adresa: Republicii 200 Tel: 177312 1 - Creare 2 - Cautare 3 - Afisare 4 - Stergere 5 - Ordonare 6 - Adaugare 7 - Modificare 0 - Sfarsit Optiunea dumneavoastra ? 5 1 - Creare 2 - Cautare 3 - Afisare 4 - Stergere 5 - Ordonare 6 - Adaugare 7 - Modificare 0 - Sfarsit Optiunea dumneavoastra ? 2 Nume abonat: Popescu Sorin Adresa: Republicii 101 Abonatul nu se afla in cartea de telefon! 1 - Creare

53

Page 54: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

2 - Cautare 3 - Afisare 4 - Stergere 5 - Ordonare 6 - Adaugare 7 - Modificare 0 - Sfarsit Optiunea dumneavoastra ? 2 Nume abonat: Ionescu Ioana Adresa: Independentei 37 Numărul de telefon este 172313 1 - Creare 2 - Cautare 3 - Afisare 4 - Stergere 5 - Ordonare 6 - Adaugare 7 - Modificare 0 - Sfarsit Optiunea dumneavoastra ? 7 Nume abonat: Irimescu Andrei Adresa: Maramures 7 Nume: Irimescu Andrei Adresa: Maramures 7 Tel: 160251 Introduceti noul numar de telefon: 171002 1 - Creare 2 - Cautare 3 - Afisare 4 - Stergere 5 - Ordonare 6 - Adaugare 7 - Modificare 0 - Sfarsit Optiunea dumneavoastra ? 4 Introduceti pozitia pe care doriti sa o stergeti (k>=1): 3 1 - Creare 2 - Cautare 3 - Afisare 4 - Stergere 5 - Ordonare 6 - Adaugare 7 - Modificare 0 - Sfarsit Optiunea dumneavoastra ? 3   Listarea inregistrarilor din fişier 1 Aldea Mircea Republicii 21 151327 2 Antonescu Cornel Republicii 200 1772313 3 Irimescu Andrei Maramures 7 171002 1 - Creare 2 - Cautare 3 - Afisare 4 - Stergere 5 - Ordonare 6 - Adaugare 7 - Modificare 0 - Sfarsit Optiunea dumneavoastra ? 0 MENIU PRINCIPAL 1 - Gestiune fişier abonati 2 - Interclasare fişiere 0 - Sfarsit Optiunea dumneavoastra? 2 Nume fişier 1: abonat1.dat

54

Page 55: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Nume fişier 2: abonat2.dat Nume fişier interclasare: abonat.dat Fişierele au fost sortate? (d/n) d MENIU PRINCIPAL 1 - Gestiune fişier abonati 2 - Intercalare fişiere 0 - Sfirsit Optiunea dumneavoastra? 0  

55

Page 56: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

§5. Sugestii privind evaluarea

Se recomadă aplicarea celor trei tipuri de evaluare: iniţială, curentă şi

sumativă.

Evaluarea iniţială se va efectua la începutul fiecărei programe de predare-

învăţare şi are drept scop stabilirea nivelului de pregătire al elevului la momentul

dat. Rezultatele evaluării vor fi folosite pentru selectarea sarcinilor individuale

gradate ca dificultate.

Evaluarea curentă se va realiza pe parcursul procesului didactic, pe secvenţe

mici. Obiectivele de referinţă din programele de studiu vizează următoarele

categorii de abilităţi:

- cunoaşterea conceptelor teoretice;

- cunoaşterea algoritmilor de prelucrare a informaţiei;

- elaborarea programelor pentru rezolvarea problemelor tipice;

- elaborarea programelor pentru rezolvarea problemelor ce implică un anumit

grad de creativitate;

- prelucrarea informaţiei la calculator cu ajutorul programelor elaborate de

elevi sau a programelor standard.

Evaluarea sumativă se va realiza la sfîrşitul fiecărui capitol, trimestru şi an

şcolar. Ca elemente componente ale instrumentelor de evaluare se recomandă

utilizarea itemilor de tip rezolvare de problemă la calculator.

Dintre cele trei componente ale spiralei educaţiei: predarea-învăţarea-

evaluarea, ultima este adesea neglijată în procesul de planificare şi desfăşurare a

instruirii. Faptul că profesorii stăpînesc, fiecare, o anumită disciplină îi face,

probabil, să creadă că evaluarea vine de la sine, ne mai acordînd importanţa

cuvenită acestei componente. Nu trebuie uitat nici faptul că aşa cum este proiectată

evaluarea tot aşa se produc predarea şi învăţarea. De pildă, dacă vom pune accentul

doar pe verificarea volumului de cunoştinţe, atunci elevii vor învăţa definiţii,

reguli, legi sau concepte la nivelul memoriei şi mai puţin la nivelul reflecţiei.

56

Page 57: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Din nefericire, în şcoală predomină evaluarea de etapă (sumativă)

neglijîndu-se aproape total evaluarea continuă (formativă). Cei ce evaluează fac

apel aproape exclusiv la experienţa lor şi, în consecinţă, ţin prea puţin seama de

obiectivele educaţionale, de metodele şi tehnicile de evaluare sau de calităţile

instrumentelor de evaluare. Comportamentul elevului este atît de complex, încît nu

poate fi ilustrat printr-o evaluate întîmplătoare ce se exprimă adesea printr-o notă.

Dimpotrivă, o evaluare formativă îi arată elevului dacă progresul său este

satisfăcător, la ce nivel a ajuns, ce nu a înţeles şi ce trebuie să facă în continuare. în

acelaşi timp profesorul este informat despre activitatea sa de instruire pe care o

poate adapta permanent în funcţie de obiectivele educaţionale.

Fiecare profesor va trebui să facă un efort personal de adaptare la

metodologia descrisă în continuare şi să-şi elaboreze itemi pentru conţinuturile şi

obiectivele expuse în curriculum-ul liceal la informatică în vederea unei evaluări

formative pe care o va realiza în clasă.

Propunem în continuare cîteva modele de teste de evaluare formativă şi sumativă.

57

Page 58: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Teste de evaluare formativă

V-I1. Următoarea declaraţie:

type fisier=file of TipComp;

undeTipComp - tipul componentelor; este:

a) declararea unui fişier cu tipb) declararea fişier fărăc) declaraţie de tip greşită

2. Ce va realiza următoarea secvenţă de program: WHILE NOT eof(f) DO BEGIN readln(f,s); writeln(s) END;

Încercuiţi varianta corectă :a) afişează la ecran conţinutul unui fişier;b) citirea de la tastatură a componentelor fişierului;c) afişarea şi citirea de la tastatură a componentelor unui fişier;

3. Rezolvaţi problema:Se dă un vector cu n (1<=n<=100) componente numere întregi. Să se calculeze suma componentelor lui. Datele se citesc dintr-un fişier, iar rezultatul se va scrie în acelaţi fişier.

58

Page 59: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

V-II

1. În declararea următorului tip

type fisier=file of TipComp;

TipComp (tipul componentelor) poate fi:a) de tip structuratb) de tip întregc) de orice tip, înafară de tipul fişierd) de orice tip

2. Ce va realza următoarea secvenţă de program:TYPE material=RECORD cod:integer; nume:STRING; cantit:real; nr:integer END; fişier_stoc=file of material; VAR f:fişier_stoc; x:material; BEGIN Assign(f,'Stoc.dat'); Reset(f); WHILE NOT eof(f) DO BEGIN read(f,x); WITH x DO writeln('Cod= ',cod,'; Nume= ',nume,' ;Cantitate=',cantit:5:3) END; Încercuiţi varianta corectă:

a) afişează la ecran conţinutul unui fişier text;b) citirea de la tastatură a componentelor unui fişier cu tip;c) afişarea şi citirea de la tastatură a componentelor unui fişier;d) afişează la ecran conţinutul unui fişier cu tip;

3. Rezolvaţi problema :Se dă un vector n (1<=n<=100) componente numere întregi. Să se calculeze produsul componentelor lui. Datele se citesc dintr-un fişier, iar rezultatul se va scrie în acelaţi fişier.

59

Page 60: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Teste de evaluare sumativă

V-I

1. În Pascal fişierele tipizate se declară:a)var f:fileb)var f:file of [tipul componentelor]c)var f:file of filed)var f:text

2. În Pascal fişierele text se declară:

a)var f:fileb)var f:file of [tipul componentelor]c)var f:file of filed)var f:text

3. Care va fi conţinutul fişierului ‘f1.dat’ în rezultatul execuţiei următorului program?program v22p4;var f:file of integer;i,j,t:integer;beginassign(f, ‘f1.dat’);rewrite(f);for i:=1 to 10 do begin t:=1;for j:=1 to 10 do t:=i*j; write(f,t);end; close(f);end.

a) 12345678910246810121416182036912151821242730b) 102030405060708090100c) 12345678910d) 302010

4. Ce va realiza programul:program File2 ;uses crt ;var f :text; s:string;BEGIN ClrScr; write (‘Numărul de rinduri: ’); readln (n); assign (f, ‘c:\proba.txt’); rewrite (f); for i:=1 to n do begin readln (s);

60

Page 61: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

writeln (f,s); end; close(f); readkey;end.

a) Va citi de la tastatură n rânduri de caractere şi le va scrie în fişier, n-dat b) Va citi de la tastatură n rânduri de caractere şi le va scrie în fişier, n-datc) Şterge n caractere din fişier, n-datd) Va citi din fişier n rânduri de caractere şi le va afişa la ecran, n-dat

5. Să se formuleze problema care se rezolvă cu ajutorul algoritmului:program text1;type fisier=file of char;var f1, f2 :fisier; x:char; l,i :integer;procedure init(var f1,f2:fisier);beginassign (f1,’one.txt’);reset (f1);assign (f2,’onel.txt’);rewrite (f2);end;procedure invers(var f1,f2:fisier);begininit (f1,f2);l:=filesize(f1);for i:=l-1 downto 0 do beginseek (f1,i);read (f1,x);write (f2,x);end;writeln;close (f1);close(f2);end;BEGINinvers (f1,f2);END.

a) Se dă un fişier ce conţine un şir de caractere. Să se creeze un alt fişier în

care caracterele vor fi şterse în ordine inversată.

b) Se dă un fişier ce conţine un şir de caractere. Să se creeze un alt fişier în

care ordinea caracterelor este inversată.

c) Se dă un fişier ce conţine un şir de caractere. Să se dubleze conţinutul

acestui fişier cu caractere scrise în ordinea inversă

61

Page 62: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

V-II

1. În Pascal fişierele netipizate se declară: a)var f:fileb)var f:file of [tipul componentelor]c)var f:file of filed)var f:text

2. Care din declaraţiile de mai jos este incorectă:a)var f:fileb)var f:file of [tipul componentelor]c)var f:file of filed)var f:text

3. Care va fi conţinutul fişierului ‘f1.dat’ în rezultatul execuţiei următorului program?program v23p400;var f:file of integer;i,j,t:integer;beginassign(f, ‘f1.dat’);rewrite(f);for i:=1 to 4 do begin t:=i*i;for j:=1 to 3 do write(f,t);end; close(f);end.

a) 1212121212121212b) 111444999161616c) 123123123123123d) 1144991616

4. Ce va realiza programul:program File2 ;uses crt ;var f :text; s:string;BEGIN ClrScr; write (‘Numărul de rinduri: ’); readln (n); assign (f, ‘c:\proba.txt’); rewrite (f); for i:=1 to n do begin readln (s); writeln (f,s); end; close(f);

62

Page 63: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

readkey;end.

e) Va citi de la tastatură n rânduri de caractere şi le va scrie în fişier, n-dat f) Va citi de la tastatură n rânduri de caractere şi le va scrie în fişier, n-datg) Şterge n caractere din fişier, n-dath) Va citi din fişier n rânduri de caractere şi le va afişa la ecran, n-dat

5. Să se formuleze problema care se rezolvă cu ajutorul algoritmului:program text2;type fisier=file of char;var f1, f2 :fisier; s:char; BEGINassign (f1,’fis1.txt’);reset (f1);assign (f2,’fis2.txt’);reset (f2);assign (t,’temp.txt’);rewrite (t);while not eof(f1) do beginread (f1,s);write (t,s);end;close (f1);close (t);rewrite (f1);while not eof(f2) do beginread (f2,s);write (f1,s);end;close (f1);close (f2);reset (t);rewrite (f2);while not eof(t) do beginread (t,s);write (f2,s);end;close (t);close (f2); END.

a) Să se creeze două fişiere cu conţinut identic.

b) Se dau două fişiere ce conţin caractere diferite. Să se adauge în fişierul 1

conţinutul fişierului 2, în fişierul 2 conţinutul fişierului 1.

c) Se dau două fişiere ce conţin diferite caractere. Să se interschimbe

conţinutul acestor fişiere.

63

Page 64: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Sarcini adăugătoare

Pentru fixarea cunoştintelor dobîndite pîna în prezent este bine să răspundeţi la

următoarele întrebări şi să rezolvaţi aceste probleme.

1. De ce nu putem avea acces direct la componentele unui fişier text?

2. Se pot utiliza procedurile BlockRead şi respectiv BlockWrite pentru

operaţii de citire/scriere dintr-un/într-un fişier text ?

3. Analizaţi tipurile tablou şi fişier. Evidenţiaţi asemănările şi deosebirile.

4. Verificaţi corectitudinea următoarelor declaraţii:

a) TYPE fişier=FILE OF integer; VAR f:fişier;

  b) TYPE fis_nr=FILE OF integer; VAR f:FILE OF fis_nr; 5. Variabilele de tip fişier sunt variabile statice sau dinamice? Argumentaţi

răspunsul. Scrieţi o procedură care să permită inserarea unei înregistrări într-un

fişier cu tip, ordonat după un cîmp. Structura înregistrării fişierului este la

alegere.

6. Să se scrie un program Pascal care concatenează un număr de p fişiere,

într-un alt fişier. Se vor scrie trei variante ale programului: pentru fişiere text, cu

tip şi fără tip.

7. Să se scrie un program Pascal care compară linie cu linie, conţinutul a

două fişiere text şi afişează numărul de ordine al liniilor în care apar diferenţe.

8. Se dau două şiruri de caractere s1 şi s2, şi un fişier text f. Să se scrie un

program Pascal care copiază fişierul f într-un fişier g înlocuind toate apariţiile

şirului s1 cu şirul s2.

9. Să se scrie un program Pascal care să gestioneze un fişier de personal.

Programul trebuie să realizeze următoarele operaţii: creare; adăugare; modificare; ştergere; listare.

64

Page 65: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Indicaţie. Se va folosi drept referinţă structura fişierului personal prezentat în

secţiunea Fişiere cu tip; la dorinţă, puteţi completa structura de înregistrare cu

noi cîmpuri.

Să se scrie un program Pascal care citeşte un fişier text ce reprezintă sursa unui

program Pascal corect din punct de vedere sintactic şi afişează numele funcţiilor şi

procedurilor utilizate în program, în ordine alfabetică.

65

Page 66: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Concluzii

Ca urmare a transformărilor din societatea noastră, rolul şcolii constă în

dezvoltarea liberă, armonioasă a elevului şi formarea personalităţii creative, care se

poate adapta la condiţiile de continuă schimbare ale vieţii. Una din principalele

probleme ale pedagogiei şi didacticii este ridicarea interesului elevului faţă de

învăţătură.

Principala formă organizaţională a procesului de învăţământ la informatică în

şcoală este lecţia. În cadrul lecţiei se realizează funcţiile esenţiale ale

învăţământului:

- didactice,

- educative,

- dezvoltative.

Curriculumul la informatică propune un conţinut care contribuie la

realizarea obiectivelor curriculare, care consemnează aşteptările societăţii, vizând

atât parcursul şcolar al elevilor în ansamblu sau, cât şi performanţele cele mai

generale care ar trebui atinse de el la finele şcolarizării. Obiectivele sunt "modele"

care reies din structura personalităţii şi din cea a experienţei, sociale în sens larg,

vizând sintetic cunoştinţele ("a şti"), capacităţile (" a şti să faci") şi atitudinile ("a

ştii să fii") pe care elevii ar trebui să le interiorizeze în cadrul întregului parcurs

şcolar. Ele sunt clasificate pe categorii:

- de cunoaştere

- de capacităţi

- de atitudini

Din experienţă se ştie, că calitatea şi nivelul ştiinţifico-metodic al activităţilor

şcolare depinde şi de interesele individuale ale profesorului, de calificaţia lui

informatică şi pedagogică. De aceea e greu să se dea indicaţii metodice concrete, care

ar satisface orice profesor.

66

Page 67: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Între teorie şi practică există interacţiune, condiţionare reciprocă. Desigur, din

punct de vedere istoric practica are prioritate. Teoria şi practica sunt şi laturile

esenţiale ale investigaţiilor (cercetărilor) în vederea înnoirilor şi perfecţionărilor

cunoştinţelor.

Principiul legăturii teoriei de practică evidenţiază: practica — este un izvor al

teoriei şi criteriul de verificare al acestuia, ea vitalizând teoria, iar sub raport

didactic, ea transformă cunoştinţele în convingeri ştiinţifice; teoria (izvorînd din

practică, din investigaţii şi deducţii ştiinţifice şi verificată de practică) vine în

sprijinul practicii, al aplicării cunoştinţelor (formării priceperilor şi deprinderilor),

oferindu-i conştientizarea şi eficienţa acţiunii, prin fundamentele ştiinţifice, prin

mijloacele şi metodele de aplicare a cunoştinţelor.

Necesitatea aplicării acestui principiu porneşte de la premisa specificată de

Seneca în secolul I e.n.: „Nu pentru şcoală ci pentru viaţă învăţăm”, premisă

completată de pedagogul american John Dewey: „Şcoala nu trebuie sa pregătească

pentru viaţă, ci să fie viaţa, însăşi.”

67

Page 68: informaticasalcuta.files.wordpress.com · Web viewCuprins. Introducere 3. Capitolul I. Tipul de date fişier. Aspecte teoretice. 5 §1. Clasificarea fişierelor 5 §2. Proceduri şi

Bibliografie

1. Anatol Gremalschi, Iurie Mocanu, Ion Spinei, „Informatica, Limbajul

Pascal”, manual pentru clasele IX-XI, Editura Ştiinţa 1999.

2. Andrei Braicov, „Turbo Pascal, Culegere de probleme”, Editura Prut

Internaţional, 2005.

3. Daniela Saru, „Algoritmi şi Limbaje de Programare”, manual pentru cl. 9,

Editura „Didactica şi Pedagogica”, R.A. Bucureşti, 1998.

4. Cornelia Ivasc, Mona Pruna, „Tehnici de Programare, Aplicaţii”, Editura

„Petrion” Bucureşti 1999.

5. V. Cristea, P. Dumitru, C. Giumale s.a., Dicţionar de informatică, Editura

Ştiinţifică şi Enciclopedică, Bucureşti, 1981.

6. T.Sorin, Tehnici de programare, Teora, Bucureşti, 1996.

7. K. Şandor, Turbo PASCAL 6.0. Ghid de utilizare, Editura Microlnformatica,

Cluj-Napoca, 1993.

8. O.Chirchin, Metodica predării informaticii, Chişinău, Tipogr.UPS „Ion

Creangă”, 2004.

9. T.Sorin, Tehnici de programare, Bucureşti, Editura Teora, 1996.

10.V.Cristea, P.Dumitru, C.Giumale ş.a., Dicţionar de informatică, Bucureşti,

Editura Ştiinţifică şi Enciclopedică, 1981.

11.W.Okosi, Învăţămîntul problematizat în şcoala contemporană, Bucureşti,

Editura Didactică şi Pedagogică, 1978.

12.I.Jinga, Manual de pedagogie, Bucureşti, Editura All

13.Educaţional, 1998.

14.I.Nicola, Tratat de pedagogie şcolară, Bucureşti, Editura Didactică şi

Pedagogică, 1996.

15.C.Narly, Pedagogie generală, Bucureşti, Editura Didactică şi Pedagogică,

1996.

68


Recommended