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

6.4 Работа с файлами записей

Чаще всего записи используются как элементы файлов, составляющих компьютерные информационные системы. Рассмотрим пример программы, работающих с файлами записей.

Пример

Сформировать файл FM. DAT, содержащий экзаменационную ведомость одной студенческой группы. Записи файла состоят из следующих элементов: фамилия, имя, отчество; номер зачетной книжки; оценка.

Program Examen;

Type Stud= Record

Fio: String [30];

Nz: String [6];

Mark: 2..5

End;

Var Fstud: File Of Stud;

S: Stud;

N, I: Byte;

Begin

Assign (Fstud,’FM. DAT’); Rewrite (Fstud);

Write (‘Количество студентов в группе?’);

Readln (N);

For I:=1 To N Do

Begin

Write (I: 1,’-й, Фамилия И. О.’); Readln (S. FIO);

Write (‘номер зачетки:’); Readln (S.Nz);

Write (‘ оценка:’); Readln (S. Mark);

Write (Fstud, S)

End;

Writeln (‘формирование файла закончено!’);

Close (Fstud);

end.

6.5 Задачи

1 Составить программу, которая использует массив записей

следующей структуры

- Фамилия

- Имя

- Балл по 1 предмету

- Балл по 2 предмету

- Балл по 3 предмету

- Средний балл,

выводит данные в виде таблицы и определяет студентов, имеющих самые лучшие результаты по 2-му предмету;

2. Распечатать список учеников, фамилии которых начинаются на букву В, с указанием даты их рождения.

3. Составить программу назначения стипендии студентам по

результатам сессии, используя следующие правила:

1) если все оценки 5, назначается повышенная стипендия;

2) если все оценки 4 и 5, назначается обычная стипендия;

3) если есть оценка 3, то стипендия не назначается.

В результате работы программы должен быть напечатан список группы с оценками и средним баллом каждого студента

4. Из данного списка спортсменов распечатать сведения о тех из них, кто занимается плаванием. Указать возраст, сколько лет они занимаются спортом.

5 В таблице хранятся следующие данные об учениках: фамилия, имя, отчество, рост, масса. Вычислить, каковсредний рост учеников, рост самого высокого и самого низкого учеников.

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

7. На аптечном складе хранятся лекарства. Сведения о лекарствах содержатся в специальной ведомости: наименование лекарственного препарата, количество, цена, срок хранения (в месяцах). Выяснить сколько стоит самый дорогой и самый дешевый препарат; сколько препаратов хранится на складе

8. Распечатать фамилии рабочих бригады, начинающиеся с букв А и С, с указанием их месячной зарплаты.

9. Распечатать фамилии тех учеников класса, которые являются троечниками по итогам года. Также указать, насколько их средний балл отличается от среднего балла хорошиста с самым низким средним баллом среди хорошистов.

10. Из ассортимента конфет, выпускаемых пермской кондитерской фабрикой, выбрать те, стоимость которых от 30 до 55 руб.за 1 кг. Указать срок их годности и номера магазинов, в которых они имеются в продаже.

11. Распечатать анкетные данные учеников, участвовавших в олимпиаде по информатике и заработавших менее 30 баллов, а также список победителей олимпиады

12. Распечатать список учеников музыкальной школы, которые учатся играть на скрипке. Указать также, сколько лет они занимаются музыкой и принимали ли участие в каких- либо конкурсах.

13. Распечатать список автомобилей, участвовавших в гонках (указать марку, время прохождения трассы, фамилию гонщика). Кто пришел к финишу первым и последним?

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

1 5. Из данного списка спортсменов распечатать сведения о тех из них, кто занимается борьбой и указать сколько.

16. Распечатать фамилии тех учеников, которые не получили ни одной тройки за последнюю четверть. В каких классах учатся эти ученики? Каков их средний балл?

17. В таблице хранятся следующие данные об учениках: фамилия, имя, отчество, рост, масса. Сколько учеников могут заниматься в баскетбольной секции, если рост баскетболиста должен быть больше 170 см?

18. Распечатать список тех учителей школы, которые преподают математику и информатику, указать стаж их работы и недельную нагрузку.

19. Даны результаты переписи населения, которые хранятся в памяти ЭВМ. Напечатать фамилии, имена и подсчитать общее число жителей женского пола, родившихся после 1990 г.

20. Распечатать фамилии детей данного детского сада, которые родились в определенном месяце; указать их возраст и группу.

21. Распечатать список учеников, фамилии которых начинаются на букву Х. Кто из этого списка имеют один и тот же цвет глаз и волос?

22. Распечатать анкетные данные учеников, участвовавших в олимпиаде по информатике и заработавших не менее 30 баллов.

23. Распечатать список учеников музыкальной школы, которые учатся играть на скрипке. Указать также, кто из них играет на каком либо другом инструменте и владеет английским языком.

24. Распечатать фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года.

Также указать, насколько их средний балл отличается от среднего балла класса.

25. Составить программу назначения стипендии студентам по результатам сессии, используя следующие правила:1) если все оценки 5, назначается повышенная стипендия; 2) если все оценки 4 и 5, назначается обычная стипендия; 3) если есть оценка 3, то стипендия не назначается. В результате работы программы должны быть напечатаны два списка фамилий (назначенных на повышенную и обычную стипендию)

26. По данным сведениям об учениках класса определить среднюю массу мальчиков и средний рост девочек. Кто из учеников класса самый высокий?

27. При поступлении в университет лица, получившие оценку неудовлетворительно на первом экзамене, ко второму экзамену не допускаются. Считая фамилии абитуриентов и их оценки после первого экзамена исходными данными, составить список абитуриентов, поступивших в университет, по итогам двух экзаменов, при условии что набор составил К человек.

28. Даны результаты переписи населения, которые хранятся в памяти ЭВМ. Напечатать фамилии, имена и подсчитать общее число жителей, родившихся после 1990 г.

29. На аптечном складе хранятся лекарства. Сведения о лекарствах содержатся в специальной ведомости: наименование лекарственного препарата, количество, цена, срок хранения (в месяцах). Выяснить наименование препарата, которого больше всего на складе и препарата с самым маленьким сроком хранения.

30. Выяснить к празднованию нового года у кого из персонала фирмы есть несовершеннолетние дети к получению подарка и вывести их имена.

31. При поступлении в университет лица, получившие оценку неудовлетворительно на первом экзамене, ко второму экзамену не допускаются. Считая фамилии абитуриентов и их оценки после первого экзамена исходными данными, составить список абитуриентов, допущенных ко второму экзамену.

32. Среди работников данного предприятия найти тех троих, чья заработная плата за месяц самая высокая по предприятию, а также распечатать список тех, кто проработал на предприятии менее 3 лет, с указанием их фамилии, зарплаты, стажа работы и должности.

33.для каждого из двадцати пяти учеников класса известны фамилия и оценки по пяти дисциплинам. Требуется вычислить среднюю оценку каждого из учеников и выбрать человека, имеющего максимальный средний балл.

34.Определить дату завтрашнего дня.

35.Написать программу, определяющую дату предыдущего дня.

36. Написать программу, определяющую дату, которая наступит через m дней.

37. Написать программу, определяющую дату, которая была за m дней до сегодня.

38. Написать программу, определяющую число суток, прошедших от даты t1 до t2.

39. Написать программу, определяющую день недели, выпадающий на дату t1 , если известно, что первый день нашей эры был понедельник.

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

41. Дан массив, содержащий информацию об учениках некоторой школы, выяснить, на сколько человек в восьмых классах больше, чем в девятых.

42. Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан массив, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляет собой запись с двумя полями: одно поле целого типа (количество вещей) и одно- действительное (вес в килограммах). Найти багаж, средний вес одной вещи в котором отличается не более чем на 0.3 кг от общего среднего веса одной вещи.

43. . Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан массив, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляет собой запись с двумя полями: одно поле целого типа (количество вещей) и одно- действительное (вес в килограммах). Найти число пассажиров, имеющих более чем двух вещей и число пассажиров, количество вещей которых превосходит среднее число вещей.

44. Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан массив, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляет собой запись с двумя полями: одно поле целого типа (количество вещей) и одно- действительное (вес в килограммах). Выяснить, имеется ли пассажир, багаж которого состоит из одной вещи весом менее 30 кг.

45. Дан текстовый файл, в котором хранятся данные об учениках класса: фамилия, имя, отчество, адрес (улица, дом, квартира) и домашний телефон (если есть). Вывести на экран фамилию, имя и адрес тех учеников, до кого нельзя дозвониться.

46. Дан массив данных о работающих в фирме: фамилия, имя, отчество, адрес (улица, дом, квартира) и дата поступления на работу (месяц, год). Во второй массив записать данные только тех из них, кто на сегодняшний день проработал не менее 5 лет.

47. Опишите запись с именем типа Karta, содержащую следующие поля:

  • номер измерения (тип integer)

  • значение (тип real).

Переменную, определяющую запись, назовите Z.

48. Опишите запись с именем типа Doc, содержащую следующие поля

  • номер строки документа (тип integer);

  • текст строки (тип string).

Переменную, определяющую запись, назовите S.

49. . Распечатать фамилии детей данной школы, которые родились в определенном году и указать их возраст и класс.

50. Опишите запись с именем типа Tovar, содержащую информацию о хранящемся на складе товаре:

  • код товара (тип integer);

  • наименование товара (тип string);

  • цену (тип real).

Переменную, определяющую запись, назовите Tov.

51. Из ассортимента макарон, выпускаемых фабрикой, выбрать те, стоимость которых от 20 до 30 рублей за кг. Указать срок их годности и номера магазинов, в которых они имеются в продаже.

52.Опишите запись с именем типа Graf, содержащую данные, необходимые для построения графика из 40 точек:

  • название графика (тип string).

  • 40 значений (тип integer).

Переменную, определяющую запись, назовите Х.

53.Опишите запись с именем типа Baza, содержащую информацию для школьной базы данных:

  • личный номер ученика (тип integer);

  • ФИО (тип string);

  • Год рождения (тип integer);

  • Адрес (тип string).

Переменную, определяющую запись, назовите Inf.

54. Опишите запись с именем типа Systema, содержащую информацию о планетах солнечной системы:

  • Номер планеты по удалению от Солнца (тип integer).

  • Название планеты (тип string).

  • Объем (тип real).

  • Диаметр (тип real).

  • Удаленность от Земли (тип real).

Переменную, определяющую запись, назовите Planeta.

55. Опишите запись с именем типа Sport, содержащую информацию о лучших спортивных достижениях школы по легкой атлетике:

  • Название вида (тип string).

  • Фамилия рекордсмена (тип string).

  • Дата установления рекорда (запись Dat,состоящая из полей Day, Month, Year);

  • Сообщение о результате (тип real).

Переменную, определяющую запись, назовите Rec.

56. Опишите запись с именем типа Geometr, содержащую информацию об оценках учеников вашего класса по геометрии:

  • ФИО (тип string);

  • Оценка за 9 месяцев max по 20 оценок в месяц.

Переменную, определяющую запись, назовите Dig.

57. Опишите запись с именем типа Rasp, содержащую информацию о движении электропоездов из вашего города:

  • Направление (тип string);

  • Время отправления электропоездов (тип real).

Переменную, определяющую запись, назовите R.

58. Из ассортимента конфет, выпускаемых Пермской кондитерской фабрикой, выбрать те, стоимость которых от 30 до 55 рублей за кг. Указать срок их годности и номера магазинов , в которых они имеются в продаже.

59.Опишите запись с именем типа Post, содержащую информацию в почтовой базе данных о подписчиках на газеты и журналы:

  • ФИО (тип string);

  • Адрес (тип string);

  • 10 строк с названиями газет и журналов.

Переменную, определяющую запись, назовите G.

60. Опишите запись с именем типа Boln, содержащую информацию в больничной базе данных о стационарных больных:

  • ФИО (тип string);

  • Возраст (тип integer);

  • Адрес (тип string);

  • Дату поступления (тип string);

  • Диагноз (тип string);

  • ФИО лечащего врача (тип string);

Переменную, определяющую запись, назовите В.

61.Опишите запись с именем типа Tovar, содержащую информацию о хранящемся на складе товаре:

  • код товара (тип integer);

  • наименование товара (тип string);

  • цену (тип real).

Переменную, определяющую запись, назовите Tov. Без помощи with присвойте записи начальное значение ( 10, "туфли женские ", 45200.00) полям одной из записей.

62. Опишите запись с именем типа Data, содержащую информацию о средней температуре в хранилище за 30 дней:

  • номер месяца (тип integer);

  • температура (тип real).

Переменную, определяющую запись, назовите Zamer. Без помощи with присвойте записи начальное значение: месяц '' июль '' и температура для первого дня 9,5.

63. Опишите запись с именем типа Graf, содержащую данные, необходимые для построения графика из 40 точек:

  • название графика (тип string).

  • 40 значений (тип integer).

Переменную, определяющую запись, назовите Х. С помощью with присвойте полям записи следующие значения: название графика "Y:=f(T)", значения первых трех точек : 5, 7, 9.

64. Опишите запись с именем типа Post, содержащую информацию в почтовой базе данных о подписчиках на газеты и журналы:

  • ФИО (тип string);

  • Адрес (тип string);

  • 10 строк с названиями газет и журналов.

Переменную, определяющую запись, назовите G. С помощью with присвойте следующие значения полям : "Петров И. В.", "г. Москва , ул. Горького, 5", "Московский комсомолец", "спорт".

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

66. Составьте программу, которая описывает таблицу химических элементов, отображая следующую информацию : название , символическое обозначение, массу атома, заряд атомного ядра, перечень основных химических свойств. Программа должна выполнять вывод данных о химическом элементе по указанному символическому обозначению , находить элемент с самой большой массой , с самым маленьким зарядом ядра.

67. Составьте программу, которая описывает массив записей жильцов дома, отображая в нем следующую информацию о каждом: номер квартиры, фамилия, имя, возраст, для лиц старше 18 лет в зависимости от рода занятий (учеба, работа, пенсия)- запись места учебы, места работы и трудового стажа , для пенсионеров - год выхода на пенсию . Программа должна обеспечивать ввод данных , поиск квартиры с максимальным числом жильцов, поиск самого юного и самого пожилого жильца, поиск студентов, пенсионеров.

68. Опишите, используя структуру записи, вступительные экзамены, на которых абитуриенты сдавали 3 экзамена, а для поступления надо было набрать 12 баллов. Составьте программу, считывающую с клавиатуры результаты всех вступительных экзаменов и выводящую на экран следующую информацию:

  • список абитуриентов, сдавших все 3 экзамена на 5;

  • список абитуриентов, потерпевших неудачу на экзаменах;

  • список абитуриентов, зачисленных в институт.

69. Опишите, используя структуру записи, школьный журнал. Предусмотрите в записи поля для хранения информации о фамилии учащегося, предмете, оценке. Составьте программу, считывающую с клавиатуры данные об успеваемости учащихся класса и выводящую на экран сведения об отличниках класса, о средней успеваемости учащихся класса.

70. Опишите, используя структуру записи, школьный класс (фамилия, инициалы, месяц рождения , год рождения ).

Составьте программу, считывающую с клавиатуры данные об учащихся класса и выводящую на экран данные о днях рождения учащихся по месяцам, например:

Январь 12 Петров И. Н.

23 Камнев Е. Р.

25 Костин В. К.

Февраль 5 Демин В. Е.

11 Иванов Л. О.

71.Найти сумму и произведение двух комплексных чисел:

z1:=a1+ib1 и z2:= a2+ib2.

72. Заданы N точек на плоскости. Найдите точку, ближайшую к началу координат.

73. Из данного списка спортсменов распечатать сведения о тех из них , кто занимается плаванием. Указать того, кто занимается спортом дольше всех.

74. Составьте программу, выводящую на экран из списка закройщиц фамилию той, которая получила заказов больше всех.

75. Из базы данных отдела кадров распечатать фамилии сотрудников, у которых есть дети.

76. Составьте программу, выводящую на экран из списка участников соревнования по стрельбе тех, которые в борьбе за первенство не сделали ни одного промаха.

77. Из прайс-листа магазина детских игрушек распечатать названия и цены тех, которые стоят от 100 до 200 рублей.

78. Составьте программу, выводящую на экран координату одной из заданных точек, которая находится на одном расстоянии от обеих осей.

79. Из базы данных отдела кадров распечатать фамилии сотрудников, у которых нет детей.

80. Составьте программу, выводящую на экран список музыкальных инструментов, у которых более 3 струн и вывести их количество.

81. Из данного списка конкурсанток вывести на экран имена тех из них, которые уже участвовали в прошлогоднем конкурсе.

82. На полях десяти колхозов посажены овощи. Вывести на печать 3 вида тех, которые наиболее часто встречаются.

83. Из предложенного фирмой списка вакансий на должности показать те из них, в которых есть требования высшего образования и указать какого.

84. Из списка студентов обучающихся на платной основе в университете вывести на экран имена тех, которые еще не внесли плату за следующее полугодие.

85. Из списка всех сотрудников фирмы распечатать фамилии тех, у которых есть сотовые телефоны.

86. Из списка учеников средней школы распечатать данные о тех, родители которых тоже учились в этой школе.

87. По данным прошедшего учебного года вывести на экран номера школ, которые выпустили больше детей, закончивших с золотой медалью.

88. Составьте программу, выводящую на экран из списка участников соревнования по стрельбе тех, которые вошли в десятку победителей и их время.

89. По данным сведениям об учениках класса определить среднюю рост мальчиков и средний вес девочек. Кто из учеников класса самый маленький ростом?

90. Из базы данных обучающихся в автошколе вывести на экран имена тех, кто сдал первый и второй этап экзамена по вождению с первого раза.

91.Из базы данных ЗАГСА вывести на экран фамилии и даты рождения тех, которые были зарегистрированы с1990 по 2000 год.

92. По данным прошедшего учебного года вывести на экран номера лицеев, которые выпустили больше студентов, окончивших на красные дипломы.

93.Из книги регистрации поликлиники распечатать фамилии больных жалующихся за последние 10 дней на сильную головную боль.

94. Выяснить, кто из выпускников школы сумел поступить в учебное заведение, а также кто поступил в ВУЗ

95. Из списка учеников средней школы распечатать данные о тех, которые учатся в этой школе не с первого класса, т. е. переведенных из других школ.

96.По данным метеопрогноза вывести на экран города, в которых не ожидается завтра дождь. Где будет град?

97. Из списка учеников средней школы распечатать данные о тех, родители которых не учились в этой школе.

98. Распечатать фамилии рабочих строительной фирмы, начинающиеся с букв К, с указанием их должности.

99. Вывести на экран по данным регистратуры фамилии женщин, поставленных на учет и указать их даты рождения.

100. Выяснить, кто из учеников данного класса родился в мае, вывести на экран их имена.