Лабораторна Робота № 17

Тема: Turbo Pascal. Алгоритми і програми для організації файлів.

Мета: Формування умінь створення програм для організації файлів та опрацювання даних, що містяться у файлах, алгоритмічною мовою високого рівня Turbo Pascal.

 

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

Файл – це сукупність даних, які розташовані на зовнішньому носії. Дані у файлі називаються елементами. Файловий тип даних описують у розділі описів типів:

type <ім’я типу> = file of <базовий тип>;

або безпосередньо у розділі оголошення змінних:

var <список змінних>: file of <базовий тип>;

Є такі різновиди файлів: файл послідовного доступу і файл прямого доступу.

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

Для роботи з файлами є такі команди:

assign (<ім’я файлу>,<зовнішнє ім’я>) – налагоджує зв'язок між іменем файлу і файлом на зовнішньому носії;

reset (<ім’я файлу>) – відкриває файл для читання з нього даних;

read (<ім’я файлу>,<ім’я змінної>) – читає (вводить) дане з файлу в оперативну пам'ять;

close (<ім’я файлу>) – закриває файл;

rewrite (<ім’я файлу>) – відкриває файл для записування в нього даних;

write (<ім’я файлу>,<ім’я змінної>) – записує (виводить) дане у файл;

eof (<ім’я файлу>) – стандартна функція, яка визначає кінець файлу.

Тут <ім’я файлу> - ім’я файлової змінної, задане у розділі оголошення змінних, <зовнішнє ім’я> - ім’я файлу даних на зовнішньому носії, взяте у лапки.

 

Хід роботи

2.1 Постановка задачі

 

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

 

2.2 Графічний алгоритм показаний на рис. 17.1

 

 

 


так

 

 

ні

 

ні

 

 

так

 

Рисунок 17.1 – Графічний алгоритм

 

2.3 Програма мовою Pascal та результати обчислень

 

Program FF{Файли};

Type

info=record

pr,m,k,no:string;

end;

Var

rr:info;

i,n:integer;

f1:file of info;

Begin

assign(f1,'a');

rewrite(f1);

write('Введіть кількість автолюбителів: ');

readln(n);

for i:=1 to n do

begin

write('Прізвище '); readln(rr.pr);

write('Марка '); readln(rr.m);

write('Колір '); readln(rr.k);

write('Номер '); readln(rr.no);

writeln(rr.pr,' ',rr.m,' ',rr.k,' ',rr.no);

write(f1,rr);

end;

close(f1);

reset(f1);

writeln('Білі жигулі з номером, який починається на 45:');

writeln(' ');

while not eof(f1) do

begin

read(f1,rr);

if(rr.m='жигулі ')and(rr.k='білий ')and(copy(rr.no,1,2)='45') then writeln(rr.pr,' ',rr.m,' ',rr.k,' ',rr.no);

end;

close(f1);

end.

 

Результат виконання програми:

Введіть кількість автолюбителів: 10

Іванів жигулі білий 45-96

Петрів волга чорний 85-97

Романів жигулі білий 45-66

Антонів форд синій 55-72

Лесів опель сірий 45-22

Гармаш жигулі білий 33-88

Шишко волга білий 66-12

Дудак ауді червоний 55-96

Гуцуляк жигулі білий 45-00

Носко волга сірий 78-95

 

Білі жигулі з номером, який починається на 45:

 

Іванів жигулі білий 45-96

Романів жигулі білий 45-66

Гуцуляк жигулі білий 45-00

 

3 Контрольні запитання

 

  1. Які відмінності між файлом даних послідовного і безпосереднього доступу?
  2. Якими операторами відкривається і закривається файл?
  3. Як визначити кількість записів у файлі безпосереднього доступу?
  4. Для чого використовують функцію EOF?
  5. Як формуються файли мовою Turbo Pascal?

 

Варіанти завдань наведені нище:

 

17.1. Сформувати файл А, що містить інформацію про кінострічки:

- назва фільму;

- рік випуску;

- кіностудія;

- режисер.

З файлу А вибрати і переписати у файл В інформацію про кінострічки, зняті кіностудією ім. Довженка у 1985 - 92 рр.

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

Факультет Кількість студентів
   

17.3. Сформувати файл А, який містить бібліографічну інформацію:

- автор книги; - назва видавництва;

- назва книги; -обсяг книги (кількість сторінок);

- рік видання.

Переписати у файл В інформацію про книги, видані у видавництві “Дніпро” після 1990 року.

17.4. Сформувати файл А, що містить інформацію про зарплату співробітників:

- прізвище, ім’я та по-батькові;

- посада;

- посадовий оклад;

- рік народження.

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

17.5. Сформувати файл, що складається з відомостей про студентів вашої групи: день, місяць, рік народження, місце проживання, стать (Ч або Ж). Використовуючи сформований файл, вивести на друк прізвища студентів чоловічої статі, які проживають в Івано-Франківській області і яким на даний момент виповнилось 19 років.

17.6. Сформувати файл “К”, що містить інформацію про кубики: розмір кожного кубика (довжина ребра в см), колір (червоний, жовтий, зелений або синій), матеріал (дерево, метал, картон).

Переписати у файл “КІ” дані:

- кількість кубиків кожного з кольорів і їх сумарний об’єм;

- кількість дерев’яних кубіків з ребром 3 см.

17.7. Сформувати файл прямого доступу “ZAPAS”. Компоненти файлу є відомості про запчастини, їх назва, кількість, вартість, термін зберігання (місяці). Сформувати файл, де помістити відомості про ті запчастини, термін зберігання яких більше року, а також вивести на друк кількість запчастин, вартість яких понад 1000 гр., і їх загальну вартість.

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

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

П.І.П-б. Математика Хімія Механіка Історія
         

17.10. Сформувати файл “А” із прізвищ і дат народження ваших друзів. Використовуючи сформований файл, надрукувати прізвища тих, хто народився в літні місяці, вік яких перевищує 20 років.

17.11. Сформувати файл “С”, в якому записаний текст, слова в тексті розділені крапкою з комою. Знайти кількість слів в тексті. Вивести на друк слова тексту; якщо слово містить букву “у”, то вказати, на яких позиціях позиціях вона знаходиться в слові, при відсутності букви “у” в слові вивести це слово і повідомлення “Букви у в слові немає”.

17.12. Сформувати файл, який містить інформацію про 10 автолюбителів: прізвище, марка автомобіля, колір, номер. Використовуючи ці дані, надати інформацію про автолюбителів, які мають “Жигулі” білого кольору і їх номер починається з 45.

17.13. Сформувати файл “В”, що містить інформацію про книги по програмуванню в бібліотеці: прізвище автора, назва видавництва, рік видання, алгоритмічна мова. Записати у файл “ВІ” список книг, виданих видавництвом “Просвіта” після 1990 року, а також кількість книг по мові GW BASIC. Ці дані також вивести на друк.

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

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

17.16. Сформувати файл, що містить інформацію про номери телефонів такого зразка: прізвище власника, його ініціали, номер телефону, адреса. Надрукувати прізвища та ініціали тих, які проживають по вул. Шевченка і їхній номер телефону містить цифру “3”.

17.17. Сформувати файл “С”, який містить інформацію про телефонні розмови (місто, з яким велась розмова, номер телефону, вартість розмови, час розмови). Сформувати файл абонементів, з якими велась розмова протягом 10 хвилин і більше і витрати на одну розмову складають більше 30 гр. Знайти вартість всіх переговорів.

17.18. Сформувати файл “ЕХ”, що містить відомості про експорт товарів такого зразка: найменування, країна, обсяг поставок і вартість поставок. Переписати у файл “EXP” назви країн, експорт до яких перевищує 10 найменувань, і загальну вартість таких поставок.

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

17.20. Створити текстовий файл, який містить лінійну програму мовою GW Basic. Перевірити програму на невідповідність числа відкритих і закритих дужок, вважаючи, що кожний оператор програми займає не більше одного рядка створеного файла. Коди ASCII закриваючої дужки 041, відкриваючої 040.

17.21. В шаховому турнірі беруть участь 10 шахістів. Сформувати файл прізвищ учасників і файл результатів (у вигляді матриці): перемога - 1, нічия - 0.5, поразка - 0. Використовуючи сформовані файли, надрукувати прізвища учасників і кількість набраних ними очків в порядку зайнятих місць.

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

17.23. Сформувати файл “NAFTA”, де записати назву родовища, рік відкриття, собівартість тонни нафти, кількість видобутої нафти. Кількість родовищ N. Записати у файл “В1” назву тих родовищ, де собівартість тонни нафти менша С, і це родовище знаходиться в експлуатації більше Т років. Окремо вивести на друк назву родовища, з якого видобуто найбільше нафти.

17.24. Сформувати файл “NAFTA”, де записати назву родовища, рік відкриття, собівартість тонни нафти, кількість видобутої нафти. Кількість родовищ N. Записати у файл “NF1” назву тих родовищ, де собівартість тонни нафти більша В. Окремо вивести на друк назви родовищ, які експлуатуються більше 30 років.

17.25. Текст T$ необхідно записати у файл “ТІ”. Слова в тексті розділені одним прпуском. Знайти кількість слів у реченні. Вивести на друк слова, які містять букву “Щ” і номер позиції цієї букви в заданому слові.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: