Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.44 Mб
Скачать

Приклад 4:

Типізовані файли і мітки. При введенні чисел від 1 до 10 виводити значення їх квадратів.

program Tip_File;

uses

crt;

{розділ опису мітки}

label

М; {будь-який правильний ідентифікатор або

числа в діапазоні 0-9999}

const

L_Min=l;

L_Max=10;

type

Int_N=L_Min..L_Max;

var

N:Int_N; {число, що вводиться}

R:real; {для зберігання квадратів чисел}

File_kvadr:file of real; {файл для зберігання квадратів чисел}

procedure N_Kvadr; {створює файл, що містить квадрати 10 чисел

типа real}

begin

rewrite(File_kvadr); {створює новий порожній файл і готує його

до запису}

for N:=L_Min to L_Max do

begin

R:=Sqr(N);

Write(File_kvadr,R);{записує числа у файл в двійковому коді}

end; {for}

close(File_kvadr);

end; {N_Kvadr}

procedure Sluga; {зчитує з екрану числа в діапазоні

L_Min - L_Maхі видає їх квадрати на екран

дисплея}

begin

clrscr;

writeln('Введіть число від ',L_Min,' до ', L_Max);

readln(N);

if (N>= L_Min) and (N<= L_Max)

then

begin

{Поточна позиція файлу пересувається в задану позицію}

seek(File_kvadr,N-1 {позиція числа R (N*N) оскільки відлік починається з нуля});

read(File_kvadr,R);

writeln('Квадрат ',N,' рівний ',R:4:0);

end {then}

else

writeln('Введене число знаходиться поза діапазоном');

end; {Sluga}

begin

assign(File_kvadr,'D:\Mas_Kvadr');

N_Kvadr;

reset(File_kvadr);

M: {мітка}

Sluga;

writeln('Для продовження роботи програми натисніть клавішу ''Enter' ' ');

write ('Для виходу з вічного циклу слід натиснути Ctrl_Break');

writeln('або ввести літеру');

readln; {для затримки результату на екрані дисплея}

goto M;

close(File_kvadr);

end. {Tip_File}

Приклад 5:

Нетипізовані файли. Програма копіює дисковий файл A:\Isx_File з максимально можливою швидкістю в файл B:\Rez_File. При цьому дані передаються порціями по одному кластеру, який складається з двох секторів, що відповідає копіюванню файлової дискети. В програмі індикація фактичного числа зчитаних порцій Rezultat не реалізована, оскільки дані передаються і приймаються по одній порції. Ця змінна використовується лише для ілюстрації можливостей процедури blockread.

program N_T_File;

const

Rozmir=1024;

Isx_File=’A:\Isx_File’; {ім’я вихідного файлу}

Rez_File=’B:\Rez_File’; {ім’я вхідного файлу}

var

Isx, Rez:file;

Bufer:array[1..Rozmir] of byte;

Rezultat:word;

begin

assign(Isx,Isx_File);

reset(Isx,Rozmir); {відкрили файл для зчитування}

assign(Rez,Rez_File);

rewrite(Rez,Rozmir); {відкрили файл для запису}

while not eof(Isx) do

begin

blockread(Isx,Bufer,1,rezultat); {зчитуємо з файлу Isx порцію

інформації в буфер}

blockwrite(Rez,Bufer,1); {записуємо в файл Rez порцію

інформації з буферу}

end; {while}

close(Isx);

close(Rez);

end. {N_T_File}

Індивідуальні завдання

Варіанти.

  1. Скласти програму, яка формує поля запису n (рядок з 6 символів, коротке ціле число, дійсне число) та в циклі послідовно переписує їх на диск. Потім цей же файл відкривається та його вміст зчитується в зворотному напрямі.

  2. Скласти програму, яка виконує в циклі вивід 10-ти порцій даних, які заготовлені в масиві buf (розмір кожної порції – 15 байт).

  3. Скласти програму, яка відкриває текстовий файл для дозапису і формує в ньому список, який містить прізвище абонента та його телефонний номер.

  4. Написати програму, яка витягує з командного рядка ім’я файлу і створює в тому ж каталозі резервну копію файлу з розширенням bak.

  5. Скласти програму перекодування текстового файлу, який підготовлено редактором MS-DOS, в кодову сторінку 1251 для Windows. Слід спробувати зберегти вигляд таблиць, сформованих за допомогою символів псевдографіки.

  6. Скласти програму, яка витягує з поточного каталогу імена файлів з наданим розширенням (наприклад, *.pas) та виводить їх на екран подібно директиві MS-DOS (dir *.pas), додаючи кількість та довжину виявлених файлів.

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

  8. Записати в текстовий файл baza.pas відомості про автомобілі: номер; тип машини; прізвище, ім’я, та адресу власника. Програма в файл rezultat.pas повинна вивести відомості про авто, номера яких співпадають з трьома заданими цифрами в довільному порядку.

  9. Результати сесії групи студентів запишіть в файл baza.pas. Програма в файл rezultat.pas повинна включити вміст вихідного файлу і список студентів за ознаками: «студенти, які отримали оцінку відмінно», «студенти, які отримали оцінку добре», «невстигаючі», з відповідними коментарями.

  10. В файл baza.pas занести відомості про співробітників підприємства: прізвище; ім’я; по-батькові; дата народження; посада; кількість місяців, у які за попередній рік не сплачувалася заробітна платня. Програма у файл rezultat.pas повинна занести список співробітників-пенсіонерів, у яких кількість несплачених місяців роботи за попередній рік не перевищує 4 місяці.

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

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

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

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

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

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

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

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

  19. Написати програму, яка відкриває текстовий файл для зчитування і в циклі виводить на екран код зчитаного символу.

  20. Написати програму, яка підраховує кількість порожніх рядків у текстовому файлі.

  21. Написати програму, яка зчитує інформацію з текстового файлу Text.txt і у відповідності до алфавітного порядку виводить на екран дзвінкі приголосні, які входять до кожного непарного слова та не входять до парних слів.

  22. Виписати з текстового файлу Text.txt всі дзвінкі приголосні букви у алфавітному порядку.

  23. Написати програму, яка визначає кількість слів і чисел у текстовому файлі Example.txt та виводить цю інформацію на екран.

  24. Написати програму, яка виконувала б наступні операції з текстовими файлами: створення файлу, редагування файлу, перегляд файлу, пошук даних у файлі.

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

  26. У файлі Р1 набрати текст. Повідомити скільки разів зустрічаються в тексті кожна латинська буква і кожен знак арифметичної операції. Вивести у файл Р2 всі символи, що зустрічаються в тексті, і всі символи, що зустрічаються в першому і останньому рядку.

  27. Задано файл, що містить довільний текст. З'ясувати, чого в ньому більше: латинських букв або цифр.

  28. Задано файл, що містить текст англійською мовою. Визначити, скільки разів зустрічається в ньому найдовше слово.

  29. Задано два текстових файли f1 і f2. Файл f1 містить довільний текст. Слова в тексті розділені пробілами та розділовими знаками. Файл f2 містить не більше 30 слів, які розділені комами. Ці слова утворюють пари: кожне друге є синонімом першого. Замінити у файлі f1 ті слова, які можна, їх синонімами. Результат помістити в новий файл.

  30. Заповнити файл послідовного доступу f цілими числами, отриманими за допомогою генератора випадкових чисел. Отримати в файлі g ті компоненти файлу f, які є парними.

  31. Записати в файл f послідовного доступу N натуральних чисел. Отримати в іншому файлі послідовного доступу всі компоненти файлу f, крім тих, які кратні K. Вивести отриманий файл на друк.

  32. Задано файл Bibl, що містить відомості про книги. Відомості про кожну з книг – це прізвище автора, назва і рік видання. Знайти назви книг даного автора, що видані починаючи з 1960 р.

  33. Задано файл, що містить різні дати. Кожна дата – це число, місяць і рік. Знайти усі весняні дати.

  34. Записати в файл послідовного доступу N дійсні числа. Знайти різницю першого і останнього компонентів файлу.

  35. Записати в файл прямого доступу N дійсні числа. Знайти найбільше зі значень модулів компонентів із непарними номерами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]