МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||||||||||
ЧИТАННЯ ТА ЗАПИС ФАЙЛІВ.Над файлами можна виконувати різні дії. Іноді необхідно читати з одного файлу, а записувати в другий. Наприклад: Дані вводяться із файла (f1) та виводяться в файл (f2). Змінна х приймає значення одного символу із файла. Значення деякої змінної y записується в файл (f2).
Program k1; Type f=Text; Var f1, f2:f;; x,y:char; begin reset (f1); rewrite(f2); read(f1,x); . . {дії над змінними х та у} . write(f2,y); close (f2); close(f1); end.
При використанні послідовних файлів не можна одночасно відкривати один і той самий для читання і запису. Якщо є така необхідність, то спочатку відкривається файл, обробляються його дані і закривається. Потім відкривають цей же файл заново, обробляють його та закривають. Задача:Є відомість результатів екзаменів у групі. Будемо вважати її вхідним файлом з ім'ям kol. Скласти програму створення вихідного файлу з ім'ям rez, в який потрібно записати вихідну відомість і обчислити середній бал.
Program ABC; Var f1,f2: text; {файлові змінні} l1,l2:integer; {кількість блоків} n: integer; {лічильник кіль кості студентів} sum:real; sim: char; {симв. змінна} с: integer; {оцінка} sr:real; {середній бал} Begin l2: =1; {один блок для f1} l1:=1; reset(f1, ‘kol’, ‘pas’, l1); rewrite (f2,’rez’, ‘pas’, l2); n:=0; sum:=0; while not eof(fl) do begin while not eoln(fl) do begin read(fl,sim); {чит. симв. із f1} write(f2, sim); {запис симв. в f2} if sim= ‘:’ then begin read(fl,c); {читаєм оцінку iз f1} write(f2,c:3); {запис оцінки в f2} sum: =sum+c; n=n+1; end; end; readln(f1); writeln(f2); end; sr:=sum/n; writeln(f2, 'cep.6= ', sr:5:2); witeln(f2, 'кіл-ть cm. = ', n:2); writeln(f2, 'результат в файлі kol.pas'); close (f2); close (f1); end.
В розділі операторів спочатку задається число блоків l2 для вихідного файлу. Далі визивається стандартна процедура Reset з параметрами f1 - файлова змінна; ‘kol’ - ім'я фізичного вхідного файла; 'pas' — розширення імені kol; l1 - змінна, що отримує значення в результаті виконання процедури Reset. Це значення = числу блоків які займає вхідний файл kol на диску. Потім визивається процедура Rewrite з параметрами: f2 - вихідний файл; 'rez' - ім'я фізичного вихідного файлу; 'pas' - розширення; l2 - змінна, що резервує кількість блоків на диску для вихідного файлу. Вхідний файл являє собою послідовність рядків. Читання, обробка та запис відомості виконується за допомогою складного циклу: зовнішнього, в якому виконується перевірка на кінець файлу даних та внутрішнього, в якому виконується перевірка на кінець поточного рядка файла. Зовнішній цикл буде виконуватись до тих пір, поки не досягне кінця файлу. Внутрішній цикл використовується для обробки символів в рядку. Стандартна функція EOLN визначає кінець поточного рядка. Внутрішній цикл виконується до тих пір, поки не будуть прочитані всі символи рядка. У внутрішньому циклі зчитують поточний символ із вхідного файлу в символьну змінну sim та записують його в вихідний файл. При цьому, якщо поточний символ =:, то наступний символ оцінка зчитується в цілочислену змінну с та сумується. В зовнішньому циклі Readln(f1) означає перехід на наступний рядок вхідного файлу, а Writeln(f2) - перехід на новий рядок в вихідному файлі. Після закінчення обробки всього файлу обчислюється середній бал і одержані результати виводяться в вихідний файл. Приклад:Дано: Туре серія=Filе of real; Описати функцію, яка підраховує суму від'ємних чисел елементів серії S.
program fa 1; function summa:real; type ser=file of real; var s:ser; a: array[1..10] of real; sum: real; i: integer; begin assign(s, 'c: \text.txt'); rewrite (s); writeln('введіть числа'); for i: =1 to 10 do begin read(a[i]); write(s,a[i]); end; close(s); reset(s); sum: =0; while not eof(s) do begin read(s,a[i]); if a[i]<0 then sum: =sum+a[i]; end; summa: =sum; close(s); end; begin write (summa: 3:1); end.
|
||||||||||||||||
|