Тема: Файли та записі

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

- організація вихідного файлу;

- корегування вихідного файлу;

- обробка вихідного файлу;

- вивід на друк файлу.

Всі режими роботи програми повинні бути оформлені у вигляді процедур та функцій.

1. Із заданого файлу f, кожна запис якого містить відо-мості про студента(прізвище, ім'я, група, дата нарожден-ня, розмір стипендії) зформувати файл f1, із записами про студентів, які отримують стипендію та файл f2 с записами про студентів, які не одержують стипендію. Підрахувати число записів в кажному файлі. Всі файли вивести на друк.

2. Дано файл f з записами про готову продукцiю на складi швейного пiдприємства: назва продукцiї, кiлькiсть, цiна, розмiр, дата прибуття (день, мiсяць, рiк). Вивести в файл f1 дані про певний вид продукції із асортименту, що є на складі. Всi файли вивести на друк.

3. Дано файл f із записами про iграшки: назва, цiна та вiковi границi дiтей, для яких приготовленi iграшки. Вивести в файл f1 назву iграшок, цiна яких не перевищує 4 гривні та якi пiдходять дiтям до 5-ти рокiв. Всі файли вивести на друк.

4. Із заданого файлу f, кожна запис якого містить слі-дуючі відомості про особу(прізвище, ім'я та по батько-ві,дата нарождення (число, місяць та рік), адреса(місто, вулиця, дім та квартира) вибрати та занести в файл f1 всі записі про осіб, які проживають в Москві та народи-лись до 1977 року. Всі файли вивести на друк.

5. Із заданого файлу f, кожна запис якого містить інфор-мацію з бланку потреби на книгу (довідка про книгу - автор, назва, данні про читача: номер читацького квит-ка, прізвище, група) вибрати файл f1 всі записі з інфор-мацією про читачів зі своєї групи, а в файл f2 записі з інформацією про книги заданого автора. Всі файли вивести на друк.

6. Із заданого файлу f, кожна запис якого містить інфор-мацію про найбільші гірські вершини світу (назва, частина світу, країна та висота вершини) зформувати файл f1 із записами про вершини, які вище ніж 3000 метрів та знахо-дяться у Європі. Всі файли вивести на друк.

7. Файл із записами, які містить анкетні данні: прізви-ще, стать, дата народження (число, місяць, рік) розбити по ознакі належності до різної статі на два файли. Всі файли вивести на друк.

8. Дано файл f з записами про обладнання, яке розмiщене в цехах пiдприємств: назва, країна-виготовлювач, дата початку експлуатацiї, кiлькiсть капремонтiв, номер цеху, в якому воно встановлене, вартiсть, габарити. Створити файл q, в якому вивести дані про обладнання, що поступило із даної країни. Всi файли вивести на друк.

9. Файл f із записами, які містять анкетні данні викла-дачів: прізвище,ім'я, по батькові,кафедра, посада, пред-мет. Вивести на друк довідку про кількість доцентів, старших викладачів та асистентів, які працюють на кафе-драх вищої математики та фізики.

10. Дано файл f, кожна запис якого складається з вiдомос-тей про учнів школи: прізвище, iм'я, клас, оцiнки, які отриманi за рiк по рiзним предметам. Записати у файл f1 дані про учнiв, які не мають оцiнок нижче чотири. Файли f та f1 вивести на друк.

11. Дано файл f з записами про готову продукцiю на складi пiдприємства:назва продукцiї, кiлькiсть, цiна, отримувач, дата вiдгрузки. Зформувати файл q, в якому вказати дані про продукцію, яка коштує дорогше заданої цiни. Всi файли вивести на друк.

12. Дано файл f, який складається з інформації про авто-мобiль: марка, номер, прiзвище господаря. Переписати із файлу f у файл f1 дані для заданої марки автомобіля.

13. Дано файл f з записами про обладнання, яке розмiщене в цехах пiдприємств: назва, країна-виготовлювач, дата початку експлуатацiї, кiлькiсть капремонтiв, номер цеху, в якому воно встановлене, вартiсть, габарити. Створити файл q, в якому вивести вiдомостi про обладнання, яке є

в даному цеху. Всi файли вивести на друк.

14. Дано файл f, який складається з iнформації про книги: прізвище автора, назва, рiк випуску. Вивести у файл f1 дані про книги даного автора, якi виданi до 1960 р.

15. Дано файл, який складається з вiдомостей про речови-ни: назва, питома вага, провiднiсть (провiдник, напівпро-вiдник, iзолятор). Вибрати данi про провiдники та записа-ти їх в файл q. Всi файли вивести на друк.

16. Дано файл f, який складається з вiдомостей про екс-портнi товари: назва товару, країна, яка отримує, об'єм партiї поставки в штуках. Вивести в файл f1 дані про товар, який експортується в задану країну.

17. Дано файл f з записами про готову продукцiю на складi швейного пiдприємства: назва продукцiї, кiлькiсть, по-ставщик, цiна, розмiр, дата прибуття(день, мiсяць, рiк). Вивести в файл f1 всі відомості про куртки розмiрами 46-48. Файли f та f1 вивести на друк.

18. Із заданого файлу f, кожна запис якого містить відо-мості про студента(прізвище, ім'я, група, дата нарождення та місце народження) створити файл f1, із записями про студентів, які родились до 1977 року та файл f2 із за-писами про інших студентів. Підрахувати число записів в кажному файлі. Всі файли вивести на друк.

19. Дано файл f із записами про працюючих на пiдприєм-ствi: прiзвище, стать, посада, рiк народження, оклад, кiлькiсть дiтей. Створити файл q із записами про чо-ловiкiв в вiцi вiд 30 до 35 рокiв,які займають посаду iнженера та якi мають не менше 2-х дiтей. Всi файли вивести на друк.

20. Дано файл f із записами про сировину, яка поступає на склад підприємства: назва сировини, колiр, поставщик, метраж, цiна за метр, дата прибуття. Зформувати файл f1 всіх поставникiв трикотажу чорного кольору. Вивести на друк всі файли.

21. Файл f із записами, які містить анкетні данні: пріз-вище, ім'я, стать, номер телефону. Вибрати в файл f1 всі записи з прізвищами, які починаються на букви "А","Я". Всі файли вивести на друк.

22. Дано файл f, кожна запис якого складається з вiдомо-стей про учнів школи: прізвище, iм'я, клас, оцiнки по десяти предметам, які отриманi за рiк. Зiбрати в файл q вiдомостi про учнiв школи, якi мають оцiни нижче 3 та середній бал яких не більше за 3. Всi файли вивести на друк.

23. Дано файл f з записами про готову продукцiю на складi швейного пiдприємства: назва продукцiї, кiлькiсть, цiна, розмiр, дата прибуття(день, мiсяць, рiк). Зформувати файл q, в якому в якому вказати дані про продукцію, що посту-пила до заданої дати. Всi файли вивести на друк.

24. Дано файл f із записами про сировину, яка поступає на склад підприємства: назва сировини, колiр, поставщик, ме-траж, цiна за метр, дата прибуття. Зформувати файл q, в якому вивести дані про матеріал, який поставив заданий поставщик сировини. Всi файли вивести на друк.

25. Із заданого файлу f, кожна запис якого містить відо-мості про студента(прізвище, ім'я, група, дата нарожден-ня, розмір стипендії, місце проживання) створити файл f1 із записами про студентів, які проживають в місті Києві та файл f2 із записами про інших студентів. Підрахувати число записів в кажному файлі. Всі файли вывести на друк.

26. Дано файл f, який складається з вiдомостей про екс-портнi товари: назва товару, країна, яка отримує, об'єм партiї поставки в штуках. Вивести в файл f1 дані про країни, в які експортуюється даний товар.

27. Дано файл f, який складається з iнформації про авто-мобіль: марка, номер, прiзвище господаря, колiр (бiлий, червоний, синiй,чорний). Зiбрать в файл q вiдомостi про автомобiлi рiзних марок, але чорного кольору. Всi файли вивести на друк.

28. Дано файл f з записами про обладнання, яке розмiщене в цехах пiдприємств: назва, країна-виготовлювач, дата початку експлуатацiї, кiлькiсть капремонтiв, номер цеху, в якому воно встановлене, вартiсть, габарити. Створити файл q, в який включити данні про обладнання, що дорогше заданої суми. Вывести всі файли на друк.

29. Дано файл f із записами про працюючих на пiдприєм-ствi: прiзвище, стать, посада, рiк народження, оклад, кiлькiсть дiтей. Створити файл q із записами про жінок в вiцi вiд 25 до 35 рокiв та якi мають не більше 2-х дiтей. Всi файли вивести на друк.

30. Із заданого файлу f, кожна запис якого містить відо-мості про студентів(прізвище, ім'я, група, дата нарожден-ня та місце народження) зформувати файл f1, в якому дати дані про студентів чоловічої статі 1980 р. народження. Всі файли вивести на друк.

31. Дано файл f з записами про готову продукцiю на складi пiдприємства:назва продукцiї, кiлькiсть, вага, сорт,цiна, отримувач, дата вiдгрузки. Зформувати файл q, в якому вказати дані про продукцію, яка коштує дорогше заданої цiни та першого сорту. Всi файли вивести на друк.

32. Дано файл f, який складається з інформації про авто-мобiль: марка, номер,колір,номер двигуна, номер кузова, прiзвище господаря. Переписати із файлу f у файл f1 дані для заданої марки автомобіля чорного кольору.

33. Дано файл f з записами про обладнання, яке розмiщене в цехах пiдприємств: назва, країна-виготовлювач, дата початку експлуатацiї, кiлькiсть капремонтiв, номер цеху, в якому воно встановлене, вартiсть, габарити. Створити файл q, в якому вивести вiдомостi про обладнання, яке є в даному цеху та виготовлене в США. Всi файли вивести на друк.

34. Дано файл f, який складається з iнформації про книги: прізвище автора, назва, рiк випуску, інвентарний номер. Вивести у файл f1 дані про книги даного автора, якi виданi в період від 1960 до 1996 р.р.

35. Дано файл, який складається з вiдомостей про речови-ни: назва, питома вага, провiднiсть (провiдник, напівпро-вiдник, iзолятор). Вибрати данi про провiдники, питома вага яких менше за задану величину R та записати їх в файл q. Всi файли вивести на друк.

36. Дано файл f, який складається з вiдомостей про екс-портнi товари: назва товару, країна, яка отримує, об'єм партiї поставки в штуках, ціна одиниці товару. Вивести в файл f1 дані про товар, який експортується в задану країну на більш за задану величину G.

37. Дано файл f з записами про готову продукцiю на складi швейного пiдприємства: назва продукцiї, кiлькiсть, по-ставщик, цiна, розмiр, дата прибуття(день, мiсяць, рiк). Вивести в файл f1 всі відомості про куртки розмiрами 46-48, які поступили від дати Y до дати H. Файли f та f1 вивести на друк.

38. Із заданого файлу f, кожна запис якого містить відо-мості про студента(прізвище, ім'я, група, дата нарождення та місце народження, стать) створити файл f1, із записями про хлопців, які родились до 1977 року та файл f2 із записами про інших студентів. Підрахувати число записів в кажному файлі. Всі файли вивести на друк.

39. Дано файл f із записами про працюючих на пiдприєм-ствi: прiзвище, стать, посада, рiк народження, оклад, кiлькiсть дiтей. Створити файл q із записами про жінок у вiцi вiд 22 до 30 рокiв, які займають посаду iнженера та якi мають не менше 3-х дiтей. Всi файли вивести на друк.

40. Дано файл f із записами про сировину, яка поступає на склад підприємства: назва сировини, колiр, поставщик, метраж, цiна за метр, дата прибуття. Зформувати файл f1 всіх поставникiв сатину чорного кольору з ціною не вище заданої величини D. Вивести на друк всі файли.

41. Файл f із записами, які містить анкетні данні: пріз-вище, ім'я, дата та місце народження, стать, номер теле-фону. Вибрати в файл f1 всі записи з прізвищами, які починаються на букви "А","Я", які родилися в 1981 році. Всі файли вивести на друк.

42. Дано файл f, кожна запис якого складається з вiдомо-стей про учнів школи: прізвище, iм'я, клас, оцiнки по десяти предметам, які отриманi за рiк. Зiбрати в файл q вiдомостi про учнiв 10-11 класів, якi мають оцiни нижче 3 та середній бал яких не більше за 3,5. Всi файли вивести на друк.

43. Дано файл f з записами про готову продукцiю на складi швейного пiдприємства: назва продукцiї, кiлькiсть, цiна, розмiр, дата прибуття(день, мiсяць, рiк). Зформувати файл q, в якому в якому вказати дані про продукцію, що посту-пила в період від дати K до заданої дати G. Всi файли вивести на друк.

44. Дано файл f із записами про сировину, яка поступає на склад підприємства: назва сировини, колiр, поставщик, ме-траж, цiна за метр, дата прибуття. Зформувати файл q, в якому вивести дані про матеріал, який поставив заданий поставщик сировини в період від дати K до заданої дати G. Всi файли вивести на друк.

45. Із заданого файлу f, кожна запис якого містить відо-мості про студента(прізвище, ім'я, група, дата та місце нарождення, розмір стипендії, місце проживання) створити файл f1 із записами про студентів, які родились та про-живають в місті Києві та файл f2 із записами про інших студентів. Підрахувати число записів в кажному файлі. Всі файли вывести на друк.

46. Дано файл f, який складається з вiдомостей про екс-портнi товари: назва товару, країна, яка отримує, об'єм партiї поставки в штуках, дата відправки. Вивести в файл f1 дані про країни, в які експортуюється даний товар в період від дати K до заданої дати G.

47. Дано файл f, який складається з iнформації про авто-мобіль: марка, номер, прiзвище господаря, номер кузова та двигуна, колiр (бiлий, червоний, синiй,чорний), рік випуску. Зiбрать в файл q вiдомостi про автомобiлi рiзних марок, але чорного кольору та випущені в період від дати K до заданої дати G. Всi файли вивести на друк.

48. Дано файл f з записами про обладнання, яке розмiщене в цехах пiдприємств: назва, країна-виготовлювач, дата початку експлуатацiї, кiлькiсть капремонтiв, номер цеху, в якому воно встановлене, вартiсть, габарити. Створити файл q, в який включити данні про обладнання, що дорогше заданої суми та встановлено в цеху S. Вывести всі файли на друк.

49. Дано файл f із записами про працюючих на пiдприєм-ствi: прiзвище, стать, посада, рiк та місце народження, оклад, кiлькiсть дiтей. Створити файл q із записами про жінок в вiцi вiд 25 до 35 рокiв та якi мають не більше 2-х дiтей та які родились не в Києві. Всi файли вивести на друк.

50. Із заданого файлу f, кожна запис якого містить відо-мості про студентів(прізвище, ім'я, група, дата нарожден-ня та місце народження, стать) зформувати файл f1, в якому дати дані про студентів чоловічої статі, які родились до 1980 р. в Києві. Всі файли вивести на друк.

51. Із заданого файлу f, кожна запис якого містить відо-мості про студента(прізвище, ім'я, група, дата та місце нарождення, розмір стипендії) зформувати файл f1, із записами про студентів-киян, які отримують стипендію та файл f2 с записами про студентів, які не одержують стипендію. Підрахувати число записів в кажному файлі. Всі файли вивести на друк.

52. Дано файл f з записами про готову продукцiю на складi швейного пiдприємства: назва продукцiї, кiлькiсть, цiна, розмiр, дата прибуття (день, мiсяць, рiк). Вивести в файл f1 дані про певний вид продукції із асортименту, що поступила на складі до дати P. Всi файли вивести на друк.

53. Дано файл f із записами про iграшки: назва, цiна та вiковi границi дiтей, для яких приготовленi iграшки, кра-їна-виготовлювач. Вивести в файл f1 назву iграшок, цiна яких не перевищує 4 гривні та якi пiдходять дiтям до 5-ти рокiв та виготовлена в Росії. Всі файли вивести на друк.

54. Із заданого файла f, кожна запис якого містить слі-дуючі відомості про особу(прізвище, ім'я та по батькові, дата нарождення (число, місяць та рік), адреса(місто, вулиця, дім та квартира) вибрати та занести в файл f1 всі записі про осіб, які проживають в Києві та народи-лись від 1977 до 1981 р.р. Всі файли вивести на друк.

55. Із заданого файлу f, кожна запис якого містить інформацію з бланку потреби на книгу (довідка про книгу - автор, назва, дата випуску, данні про читача: номер читацького квит-ка, прізвище, група) вибрати файл f1 всі записі з інфор-мацією про читачів зі своєї групи, а в файл f2 записі з інформацією про книги заданого автора, які випущені в період від дати R до дати T. Всі файли вивести на друк.

56. Із заданого файлу f, кожна запис якого містить інфор-мацію про найбільші гірські вершини світу (назва, частина світу, країна та висота вершини) зформувати файл f1 із записами про вершини, які вище ніж 5000 метрів та знахо-дяться в Азії(Непал). Всі файли вивести на друк.

57. Файл із записами, які містить анкетні данні: прізви-ще, стать, дата народження (число, місяць, рік). Зформувати два файли про осіб 1981 року народженя по ознакі належності до різної статі. Всі файли вивести на друк.

58. Дано файл f з записами про обладнання, яке розмiщене в цехах пiдприємств: назва, країна-виготовлювач, дата початку експлуатацiї, кiлькiсть капремонтiв, номер цеху, в якому воно встановлене, вартiсть, габарити. Створити файл q, в якому вивести дані про обладнання, що поступило із даної країни в період від дати D до дати V. Всi файли вивести на друк.

59. Файл f із записами, які містять анкетні данні викла-дачів: прізвище,ім'я, по батькові, рік народження, кафед-ра, посада, предмет. Вивести на друк довідку про кіль-кість доцентів, старших викладачів та асистентів, які родились до 1939 року та працюють на кафедрах вищої математики та фізики.

60. Дано файл f, кожна запис якого складається з вiдомос-тей про учнів школи: прізвище, iм'я, клас, оцiнки, які отриманi за рiк по рiзним предметам. Записати у файл f1 дані про учнiв, які не мають оцiнок нижче чотири та се-редній бал більше 4,5. Файли f та f1 вивести на друк.

Приклад виконання завдання 3.

Дано файл f, кожна запис якого складається з вiдомостей про учнів школи: прізвище, iм'я, клас, оцiнки, які отри-манi за рiк по рiзним предметам. Зiбрати в файл q вiдо-мостi про найкращих учнiв школи середній бал яких не нижче за 4,5. Всi файли вивести на друк.

Program Lab3_3;

Uses crt;

Const b:array[1..6]of string[12]=

('математика','фізика','хімія',

'фізкультура','біологія','укр.мова');

Type school=record

surname:string[10];

name:string[10];

class:string[10];

a:array [1..6] of integer;

end;

Var

f:text;

x:byte;

i,rej,y:integer;

schfile,schfile1:file of school;

recsch:school;

str,str1:string[12];

Procedure input;

Var i:integer;

Begin

clrscr;

writeln('Вкажіть ім’я файла, в який будуть записані');

write('дані про учнів ');

readln(str);

assign(schfile,str);

rewrite(schfile);

with recsch do

while true do

begin

write('Введіть прізвище учня ');

readln(surname);

if SurName='zzz' then break;

write(' Введіть ім’я учня ');

readln(name);

write('Введіть клас‚ в якому вчиться учень ');

readln(class);

for i:=1 to 6 do

begin

repeat

write('Введіть оцінку по предмету ',b[i],' ');

readln(a[i]);

if (a[i]>0)and(a[i]<6) then break;

writeln('Ви помилились! Повторіть ввід. ');

until false;

end;

write(schfile,recsch);

end;

close(schfile);

clrscr;

end;

Procedure Obr;

Var i:integer;

s:real;

Begin

writeln('Введіть ім’я файла, який будете обробляти ');

readln(str);

assign(schfile,str);

reset(schfile);

writeln(' Введіть ім’я файла, в який будете записувати');

write('дані про кращих учнів школи ');

readln(str1);

assign(schfile1,str1);

rewrite(schfile1);

s:=0;

with recsch do

while not eof (schfile) do

begin

read(schfile,recsch);

for i:=1to 6 do s:=s+a[i];

s:=s/6;

if s>=4.5 then write(schfile1,recsch);

end;

close(schfile);

close(schfile1);

End;

Procedure OutPut;

Begin

clrscr;

writeln(' Введіть ім’я файла, який будете ');

write(' виводити на друк ');

readln(str);

assign(schfile,str);

reset(schfile);

clrscr;

writeln(f,'------------------------------------------');

writeln(f,' Прізьвище: Ім’я: Клас:матем:фіз:хім:фізк:біол:укр');

writeln(f,'------------------------------------------');

with recsch do

while not eof (schfile) do

begin

read(schfile,recsch);

write(f,surname:8,name:8,class:7,a[1]:7,a[2]:4,a[3]:4,

a[4]:5,a[5]:5,a[6]:4);

writeln;

end;

close(schfile);

readln;

clrscr;

End;

Procedure Rassh;

Begin

clrscr;

write(' Введіть ім’я файла, який будете розширювати ');

readln(str);

assign(schfile,str);

reset(schfile);

seek(schfile,filesize(schfile));

with recsch do

while true do

begin

write('Введіть прізвище учня ');

readln(surname);

if SurName='zzz' then break;

write(' Введіть ім’я учня ');

readln(name);

write('Введіть клас‚ в якому вчиться учень ');

readln(class);

for i:=1 to 6 do

begin

repeat

write('Введіть оцінку по предмету ',b[i],' ');

readln(a[i]);

if (a[i]>0)and(a[i]<6) then break;

writeln('Ви помилились! Повторіть ввід. ');

until false;

end

End;

Procedure Corect;

Var newFname:string[10];

newName:string[10];

newclass:string[10];

newa:array [1..6] of integer;

tr:char;

t,k,m,i,j:integer;

Begin

clrscr;

write(' Введіть ім’я файла, який будете корегувати ');

readln(str);

Assign(SchFile,str);

Reset(SchFile);

with RecSch do

begin

write('Скільки записів будете корегувати? ');

readln(k);

for j:=1 to k do

begin

write('Вкажить порядковий номер корегованої записі ');

readln(m);

write('Будете корегувати всю запис? Y/N ');

readln(tr);

if (tr='Y') or (tr='y') then

begin

write('Введіть прізвище учня ');

readln(surname);

write(' Введіть ім’я учня ');

readln(name);

write('Введіть клас‚ в якому вчиться учень ');

readln(class);

for i:=1 to 6 do

begin

repeat

write('Введіть оцінку по предмету ',b[i],' ');

readln(a[i]);

if (a[i]>0)and(a[i]<6) then break;

writeln('Ви помилились! Повторіть ввід. ');

until false;

end;

end

else

begin

Seek(SchFile,m-1);

read(SchFile,RecSch);

repeat

clrscr;

writeln ('Вкажіть, яку компоненту будете корегувати');

writeln ('1.Прізьвище ');

writeln ('2.Ім’я ');

writeln ('3.Клас ');

writeln ('4.Оцінки ');

readln(t);


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



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