Documente Academic
Documente Profesional
Documente Cultură
Răspunsuri corecte:
Fişierul de intrare conţine numărul întreg 82, numărul real 3,14 şi şirul de caractere ACCEPTAT.
Prelucrarea acestui fişier la nivel de caractere constă în citirea consecutivă a fiecăruia dintre caracterele
ce se conţin în el:
şi depunerea lor în variabilele de tip char din program. În continuare, programatorul va trebui să scrie
suplimentar o secvenţă de instrucţiuni care transformă caracterele citite în valorile de care el are nevoie.
Prelucrarea aceluiaşi fişier la nivel de lexeme constă în citirea caracterelor din fişierul de intrare şi
gruparea acestora în trei lexeme:
Ulterior, lexemele astfel obţinute sunt în mod automat transformate în reprezentarea internă şi depuse
în variabilele de tipul respectiv: integer, real şi şir de caractere.
În limbajul PASCAL, un fişier text se defineşte printr-o declaraţie de forma:
var f : text;
Fişierele de tip text pot fi prelucrate cu ajutorul procedurilor cunoscute, aplicabile oricărui tip de fişiere:
assign, reset, rewrite, read, write, close. În completare, limbajul PASCAL include proceduri speciale, destinate
prelucrării elementelor EOL:
writeln(f)– înscrie în fişier elementul EOL (sfârşit de linie);
readln(f)– trece la linia următoare.
Sfârşitul de linie este semnalat de funcţia booleană eoln(f ), care ia valoarea true după citirea ultimului
caracter din linie.
Pentru introducerea și extragerea datelor, de regulă, se utilizează fișierele text predefinite:
- Input – destinat numai pentru citire și este asociat cu fișierul de intrare al sistemului de operare (tastatura);
- Output - destinat numai pentru operații de scriere și este asociat cu fișierul-standard de ieșire al sistemului de
operare (ecranul).
Activitatea elevilor: Elevii notează pe caiete conținutul noii lecții. Urmăresc explicațiile.
4. Explorarea informațiilor prezentate, observarea şi reflecția.
Elevilor li se propune să rezolve următorul exercițiu:
Fie dată o secvență de program PASCAL din Analizați secvența din programul P4 și
care au fost radiate procedurile destinate îndepliniți următoarele sarcini:
prelucrării datelor de tip fișier: • Alegeți din lista de mai jos și înscrieți în textul
Program P4; programului denumirea de tip omisă astfel încât
var a, b, p : integer; acestea să asigure corectitudinea executării
f : _______; instrucțiunilor din program:
begin
- integer
assign (f, ’produs.txt’);
- text
rewrite(___);
a:=5; b:=10; - string
read(f, a, b); • Subliniați în textul programului P4 operația de
p:=a*b; asociere a fișierului f cu fișierul extern.
write(f, p); • Completați spațiile libere cu elementele care
_______(f); lipsesc.
readln;
end.
d) Elevilor li se propune să modifice programul P98 astfel încât să obțină următorul rezultat
(i:= 3, i:=4, i:=5, i:=6)
Explicaţi cum vor fi citite datele din acest fişier şi ce transformări vor avea loc în cazul următoarelor
prelucrări: (a) la nivel de caractere; (b) la nivel de lexeme.
Fișierul de intrare conține șirul de caractere Date, numărul real 9.8, numărul întreg 12, numărul real 23.67
și șirul de caractere STOP.
Citim consecutiv fiecare caracter
D a t e 9 . 8 1 2 2 3 . 6 7 S TO P
Grupăm datele în 5 lexeme:
Date 9. 12 23.67 STOP
8
Explicaţi cum vor fi citite datele din acest fişier şi ce transformări vor avea loc în cazul următoarelor
prelucrări: (a) la nivel de caractere; (b) la nivel de lexeme.
4. CREEAZĂ! Daţi exemple de fişiere de intrare ce conţin datele iniţiale ale unei probleme din fizică şi
ale alteia din biologie şi descrieţi procesul de citire a datelor din ele la nivel de caractere şi la nivel de
lexeme.
5. ANALIZEAZĂ! Care este diferenţa dintre prelucrarea unui fişier text la nivel de caractere şi
prelucrarea aceluiaşi fişier la nivel de lexeme? Daţi exemple de algoritmi ce necesită implementarea prin
prelucrări la nivel de caractere şi prelucrări la nivel de lexeme.
6. ÎNVAŢĂ SĂ ÎNVEŢI! Pornind de la cele două modalităţi de citire a fişierelor de intrare la nivel de
caractere şi la nivel de lexeme, explicaţi modalităţile respective în cazul fişierelor text de ieşire. Daţi
exemple.
7. EXPLICĂ! Explicaţi semnificaţia elementelor EOL şi EOF. Cum sunt prelucrate aceste elemente?
8. EXPLICĂ! Explicaţi cum se efectuează scrierea şi citirea datelor în cazul fişierelor text. Care
proceduri/funcţii sunt utilizate în acest scop?
9. OBSERVĂ! Lansaţi în execuţie următorul program:
Program P98; { Asocierea fişierului FN cu consola }
type FisierNumere = file of integer;
var FN : FisierNumere;
i : integer;
begin
assign(FN, ’CON’);
rewrite(FN);
i:=1; write(FN, i);
i:=2; write(FN, i);
i:=3; write(FN, i);
close(FN);
readln;
end.
Explicați rezultatete afișate pe ecran.
Propun elevilor să modifice propgramul P98 pentru valorile lui i: 3, 4, 5, 6 (trebuie să mai adauge un i și
un writeln).
10. ANALIZEAZĂ! Se consideră fişierul logic f. Care din următoarele instrucţiuni destinate depistării
sfârşitului de fişier sunt corecte?
11. APLICĂ! Elaboraţi un program care afişează pe ecran conţinutul oricărui fişier text.
Program Ex11_pag91;
var f : text;
c : string;
begin
assign(f, ’fisier1.txt’);
reset(f);
while not eof(f) do
begin
readln(f, c);
writeln(c);
end:
close(f);
readln;
end.
12. REZOLVĂ! Elaboraţi un program care afişează pe ecran numărul de vocale dintr-un fişier text.
Program Ex12_pag91;
var f : text;
i, c: integer;
s : string;
begin
assign(f, ’VOCALE.TXT’);
reset(f);
c:=0;
for i:=1 to length(s) do
if (c=’a’)or (c=’e’) or (c=’i’) or (c=’o’) or (c=’u’);
write(f, c);
close(f);
readln;
end.
13. PROGRAMEAZĂ! Datele de intrare ale unui program sunt înmagazinate într-un fişier text. Fiecare
linie a fişierului conţine două numere întregi şi trei numere reale separate prin spaţii. Elaboraţi un
program care afişează suma numerelor întregi şi suma numerelor reale din fiecare linie pe ecran.
14. PROGRAMEAZĂ! Datele de intrare ale unui program sunt înmagazinate într-un fişier text. Fiecare
linie a fişierului conţine trei numere reale separate prin spaţiu şi unul din cuvintele ADMIS, RESPINS.
Elaboraţi un program care:
a) afişează conţinutul fişierului în studiu pe ecran;
b) creează o copie de rezervă a fişierului;
c) creează un fişier text liniile căruia conţin media celor trei numere reale din liniile respective ale
fişierului de intrare;
d) afişează pe ecran liniile fişierului de intrare, precedate de numerele de ordine 1, 2, 3 ş.a.m.d.
(Acesp program: a) creează fișierul media.in, liniile căruia conțin 3 numere reale, b) creează fișierul
media.out, liniile căruia vor conține cele 3 nr reale din linia corespunzătoare a fișierului creat în punctual
a, media lor aritmetică și unul dintre cuvintele ADMIS, RESPINS. Cuvântul ADMIS va fi înscris în linia
în care media aritmetică a numerelor nu-I mai mică decât 5 și RESPINS în caz contrar).
Program Ex14_pag91;
var f1, f2 : text;
a, b, c, med : real;
begin
assign(f1, ’Media.in’);
rewrite(f1);
assign(f2, ’Media.out’);
rewrite(f2);
while not eof do begin
readln(a, b, c); {se citesc notele de la tastatura}
writeln(f1, a:5:2, b:5:2, c:5:2); {se inscriu notele in fisier}
end;
close(f1)
reset(f1);
while not eof(f1) do
begin
readln(f1, a, b, c); {se citesc notele din f1}
med:=(a+b+c)/3 {se calculeaza media aritmetica}
write(f2, a:5:2, b:5:2, c:5:2) {se inscribe in f2}
if med>=5 then writeln(f2, ’ADMIS’) else
writeln(f2, ’RESPINS’);
end;
close(f1);
close(f2);
readln;
end.
15. PROGRAMEAZĂ! Fiecare linie a unui fişier text conţine următoarele date, separate prin spaţii:
– numărul de ordine (număr întreg);
– numele (un şir de caractere ce nu conţine spaţii);
– prenumele (un şir de caractere ce nu conţine spaţii);
– nota la disciplina 1 (număr real);
– nota la disciplina 2 (număr real);
– nota la disciplina 3 (număr real).
Elaboraţi un program care:
a) creează o copie de rezervă a fişierului în studiu;
b) afişează conţinutul fişierului pe ecran;
c) creează un fişier text liniile căruia conţin următoarele date separate prin spaţii:
– numărul de ordine (număr întreg);
– numele (un şir de caractere ce nu conţine spaţii);
– prenumele (un şir de caractere ce nu conţine spaţii);
– nota medie (număr real);
Fişierul creat în punctul c trebuie afişat pe ecran.