- Что нужно знать
- Как это бывает на экзамене
- Разбор примера
- Типичные ошибки
- Проверь себя
- Ещё 4 раздела — в подписке
Что нужно знать
Operațiile cu un fișier text
| Ce faci | Pascal | C++ |
|---|---|---|
| declari | var f: text; | ifstream fin; ofstream fout; |
| legi numele | assign(f, 'tur.in'); | ifstream fin("tur.in"); |
| deschizi pentru citire | reset(f); | deschiderea se face la declarare |
| deschizi pentru scriere | rewrite(f); | ofstream fout("tur.out"); |
| citești | read(f, x); sau readln(f, x); | fin >> x; |
| scrii | write(f, x); sau writeln(f, x); | fout << x; |
| închizi | close(f); | fin.close(); fout.close(); |
reset deschide un fișier care există deja, pentru citire. rewrite creează fișierul de ieșire, iar dacă el există, îi șterge conținutul. Închiderea cu close este obligatorie la scriere: fără ea, ultimele date pot rămâne nescrise.
Cum arată datele în teste
Fișierul de intrare are, aproape întotdeauna, aceeași formă: pe prima linie un număr întreg , apoi linii sau valori. De aici și ordinea din program:
- 1)deschizi fișierul de intrare
- 2)citești de pe prima linie
- 3)repeți de ori citirea unei linii sau a unei perechi de valori
- 4)calculezi
- 5)scrii rezultatul în fișierul de ieșire, în formatul cerut
- 6)închizi ambele fișiere
readln trece la linia următoare după citire, deci se folosește când fiecare valoare este pe rândul ei; read lasă cursorul pe același rând și se folosește când pe o linie sunt mai multe valori.
Formatul ieșirii
Citește cerința până la capăt: „două numere separate prin spațiu” sau „câte o linie pentru fiecare elev” sunt condiții punctate separat. În Pascal spațiul se scrie explicit, writeln(f, k, ' ', c), iar trecerea la rând nou se face cu writeln, nu cu write.
Unde sunt punctele
La itemul de 16 puncte al profilului real, punctele stau astfel: 1 pentru declarații, 1 pentru antetul funcției cerute, 1 pentru operațiile cu fișierul, 1 pentru citirea lui , 1 pentru instrucțiunea repetitivă, 1 pentru citirea datelor, 1 pentru apelul funcției, iar restul pentru pașii algoritmului și pentru scrierea corectă în fișier, unde până și spațiul dintre valori are punctul lui. De aceea un program neterminat, dar cu fișiere deschise corect și cu antetul funcției scris, adună puncte reale.
Tabloul
Când rezultatul cere toate datele deodată, le păstrezi într-un tablou: var c : array[1..50] of integer; în Pascal, int c[51]; în C++. Dimensiunea se ia din limita superioară dată în enunț, de exemplu .
Structura completă, în Pascal
assign(fin, 'date.in'); reset(fin);
assign(fout, 'date.out'); rewrite(fout);
readln(fin, n);
for i := 1 to n do readln(fin, a[i]);
writeln(fout, rezultat);
close(fin); close(fout);Остальное в уроке — в подписке
Настоящие задания ANCE по этой теме, разбор примера шаг за шагом, типичные ошибки и 7 вопросов для самопроверки — в подписке. «Что нужно знать» остаётся бесплатным.
Диагностика на настоящих заданиях ANCE остаётся бесплатной: 20 минут — где теряешь баллы, ещё 10–15 минут — ориентировочная оценка по каждому экзамену. Нужен только аккаунт, без карты.
Целый месяц — 299 лей: ≈ 10 лей за вечер занятий. Без автопродления.
BAC · реальный профиль · тренировочный тест № 1 · 2026Nota10
Fișiere text · 16 б.
Un grup de turiști, cărora li s-au atribuit indici de la 1 la , au fost cazați la un hotel cu patru nivele. Nivelele sunt numerotate de la 1 la 4. Fiecare turist a primit o cartelă – cheia de la camera de hotel, care conține un număr de trei cifre. Prima cifră însemnând numărul nivelului, iar numărul format din ultimele două cifre – numărul camerei. În drum spre camere unii turiști s-au deplasat la nivelul greșit.