Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Програмування.doc
Скачиваний:
7
Добавлен:
19.11.2019
Размер:
742.91 Кб
Скачать

2.5. Текстові файли

2.5.1. Теоретичні відомості

EOLN(F) - функція приймає значення TRUE, якщо покажчик запису вказує на кінець рядка.

SEEKEOLN(F) - аналогічно EOLN.

SEEKEOF(F) - аналогічно EOF.

APPEND(F) - додавання записів в файл. Виконується відкриття файлу F і встановлення покажчика на EOF.

READLN(F) - читання текстового файлу.

WRITELN(F) - запис в текстовий файл.

2.5.2. Приклад програми

Умова задачі: Створити текстовий файл, кожний рядок якого містить різні слова. Впорядкувати слова в рядку за алфавітом, переписати в новий текстовий файл, записати останнім рядком файлу кількість слів у файлі.

uses crt;

var

f1,f2:text;

i,k,n,l,j,kol:integer;

b,d,s,prom:string;

sim:char;

c:array [1..20] of string;

procedure vvod_f1;

begin

assign(f1,'lab.dat');

rewrite(f1);

repeat

writeln('input string of words:');

readln(s);

writeln(f1,s);

writeln('continue ?[Y/N]');

sim:=readkey;

until (sim='N') or (sim='n');

close(f1);

end;

procedure print_f(var f:text);

begin

reset(f);

while not eof(f) do

begin

readln(f,s); writeln(s);

end;

close(f);

end;

procedure sort;

begin for i:=1 to l-1 do

for j:=i+1 to l do

if c[i]>c[j] then begin prom:=c[j];

c[j]:=c[i];

c[i]:=prom;

end;

end;

procedure sort_f2;

begin

assign(f2,'new.dat');

assign(f1,'lab.dat');

rewrite(f2);

reset(f1);

kol:=0;

while not eof(f1) do

begin

readln(f1,s);

s:=s+' ';

k:=length(s);

d:=''; L:=0;

for i:= 1 to k do begin

b:= copy (s,i,1);

if b<>' ' then d:=d+b;

if (B= ' ') and (d<>'') then begin l:=l+1; c[l]:=d; d:=''; end;end;

sort;

s:='';

for i:= 1 to l do s:=s+c[i]+' ';

writeln(f2,s);

kol:=kol+l;

end;

writeln(f2,'number of words Is ',kol);

close(f2);

close(f1);

end;

begin

clrscr;

vvod_f1;

writeln('=======================');

print_f(f1);

writeln('=======================');

sort_f2;

writeln('new flte of text after sorting:');

print_f(f2);

end.

2.5.3. Варіанти завдань Лабораторної роботи

  1. Створити текстовий файл, кожний рядок якого містить різні слова. Знайти найдовші слова в кожному рядку файлу, переписати їх в новий текстовий файл, записати останнім рядком файлу кількість слів в файлі.

  2. Створити текстовий файл, рядок якого містить цифри і символи. В кожному рядку виділити найбільшу послідовність цифр. Довжини цих послідовностей записати першими символами рядків цифрового файлу.

  3. Створити текстовий файл, ввід з клавіатури. Визначити в кожному парному рядку слово найбільшої довжини і записати це слово в кожному непарному рядку.

  4. Створити текстовий файл при вводі з клавіатури таких даних: фірма, марка автомобіля, ціна. Визначити максимальну ціну автомобіля, що виготовляється кожною фірмою і дописати це значення в кінець рядка.

  5. Ввести з клавіатури рядки і записати їх в файл. В кожному непарному рядку визначити послідовність цифрових символів і записати довжину цієї послідовності останнім елементом рядка. Перетворити цю послідовність в числа, вивести на екран.

  6. Ввести з клавіатури декілька рядків тексту. Визначити в кожному рядку кількість слів і довжину найбільшого слова, дописати значення кількості слів на початок кожного рядка, довжину максимального слова в кінець рядка.

  7. Ввести рядки з клавіатури. Створити файл, визначити кількість рядків файла, в кожному рядку знайти найдовше слово та дописати його в кінець рядка.

  8. Створити текстовий файл, вводячи рядки з клавіатури. Вміст файлу: фірма, товар, ціна в доларах. Перерахувати ціни в $ в відповідності з курсом в гривні та дописати в кожний рядок отримані значення.

  9. Створити файл цілих чисел при вводі чисел з клавіатури. Створити новий файл, який би містив цілі числа з першого файлу в двійковому вигляді.

  10. Заданий текстовий файл F, рядок букв S. Отримати всі рядки файлу F , що містять в собі рядок S.

  11. Ввести текст з декількох рядків з клавіатури. В кожному рядку тексту знайти слово, що розташоване в центрі рядка. Слова розділяються пробілами. Знайдені слова записати в новий файл.

  12. Створити текстовий файл, який би містив: марку автомобіля, вартість, кілометраж. Упорядкувати рядки за алфавітом марки автомобіля, в кожний рядок файлу додати середній кілометраж по aciv маркам в файлі. Останній рядок нового файлу має містити кількість фірм, які випускають всі перераховані в файлі автомобілі.

  13. Створити текстовий файл, вводячи рядки з клавіатури. Визначити в кожному рядку слова, які починаються на 'а' і закінчуються на 'я'. Вивести знайдені слова в новий текстовий файл. Як роздільники між словами застосовувати пробіли.

  14. Створити текстовий файл, рядки якого містять назву продукту та його ціну. Підрахувати загальну кількість рядків і записати це значення в кінці файлу. Переписати цей файл в новий файл, додавши в кожний рядок між назвою і ціною кількість кожного продукту.

  15. Заданий текстовий файл виду: конкурс, спеціальність, вуз. Відсортувати дані за умовою зменшення конкурсу. Записати цю інформацію в другий файл.

  16. Створити текст, вводячи дані з клавіатури. в кожному рядку тексту знайти слово максимальної довжини і записати знайдені слова та їх довжини в новий текстовий файл.

  17. Заданий текстовий файл F. Переписати компоненти файлу F до файлу Н, вставляючи на початку та в середині рядків символ пропуску. Порядок компонентів зберігається.

  18. Ввести рядки. Записати їх в файл. В текстовому файлі знайти найдовший рядок файлу, якщо їх декілька, то виділити будь-який. Дописати довжину в файл.

  19. Заданий текстовий файл F, рядок букв S. Отримати всі рядки файлу F, що містять рядок S.

  20. Заданий текстовий файл F. Переписати компоненти файлу F до файлу Н. При цьому вставити на початку рядка порядковий номер, в кінці рядка - довжину рядка. Порядок компонентів зберігається.

  21. Заданий текстовий файл. Переписати файл, замінюючи кожний рядок символів символом '-', якщо рядок в заданому файлі закінчується на літеру, відмінну від символу пропуску, коми та крапки.

  22. Заданий текстовий файл, що містить програму мовою ПАСКАЛЬ. Перевірити текст на рівну кількість відкритих і закритих дужок, вважаючи, що кожний оператор в програмі займає не більше одного рядка файлу F.

  23. Заданий текстовий файл, що містить програму мовою ПАСКАЛЬ. Перевірити текст на рівну кількість операторних дужок begin end, вважаючи, що кожний оператор в програмі займає не більше одного рядка в файлі F.

  24. Заданий текстовий файл F. Переписати до файлу G всі компоненти файлу F, замінивши в них символ О на 1 і навпаки.

  25. Отримати копію із заданого текстового файлу F, переписавши його в файл І. В новому файлі на початок кожного рядка записати літеру, що є першою в останньому слові рядка.

  26. В заданому символьному файлі, де не менше, ніж два компоненти, визначити, чи являються цифрами перші два символи файлу. Якщо так, то встановити, чи Е число, записане цими цифрами.

  27. Створити текстовий файл, що містить відомості про марку автомобіля і власника. Дописати до файлу відомості про ціну. Відсортувати файл за умовою зростання ціни.