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

Var I, j : word; buf : tSportMan;

Begin

for i:=1 to n-1 do

for j:=i to n do

If fSort(a[I], a[j]) then

begin

buf:=a[i]; a[i]:=a[j]; a[j]:=buf;

end;

End;

// Критерий сортировки по полю FIO.

Function SortFIO(r1, r2 : TSportMan) : Boolean;

Begin

if r1.FIO>r2.FIO then Result:=True else Result:=false;

End;

// Критерий сортировки по полю Time.

Function SortTime(r1, r2 : TSportMan) : Boolean;

Begin

if r1.Time>r2.Time then Result:=True else Result:=false;

End;

// Функция подсчета суммы баллов на трех рубежах.

Function SumB(r : TSportMan) : byte;

Begin Result:=r.bh+r.bm+r.bl; End;

// Критерий сортировки по сумме баллов.

Function SortBall(r1, r2 : TSportMan) : Boolean;

Begin

if SumB(r1)>SumB(r2) then Result:=True else Result:=false;

End;

// Среднее арифметическое времени на дистанции.

Function AverTime(a : Ta; n : word) : real;

Var I : word;

Begin

result:=0;

for i:=1 to n do

result:=result+a[i].Time;

result:=result/n;

End;

// Среднее арифметическое суммы баллов.

Function AverBall(a : Ta; n : word) : real;

Var I : word;

Begin

result:=0;

for i:=1 to n do

result:=result+SumB(a[i]);

result:=result/n;

End;

// Процедура формирования массива спортсменов, чьи

// результаты выше средних.

Procedure Atop(a : Ta; n : word; aT, aB : real;

Var aHi : Ta; Var nHi : word);

Var I : word;

Begin

nHi:=0;

for i:=1 to n do

if (a[i].Time<at) and (SumB(a[i])>aB) then

begin inc(nHi); aHi[nHi]:=a[i]; end;

End;

// Глобальные переменные и основная программа.

Var a, aHi : Ta;

SportMan : TSportMan;

ns, nHi : word;

fs : File of TSportMan;

ch : char;

aT, aB : real;

BEGIN

AssignFile(fs, 'Biathlon.dat');

Reset(fs); Seek(fs, FileSize(fs));

write('Input data? y/n '); Readln(ch);

if ch <> 'n' then

while True do

begin

writeln('Continue Input? No: Enter/'+

'Yes: Any String');

with SportMan do

begin

write('FIO = '); readln(FIO);

if FIO = '' then Break;

write('Club = '); readln(Club);

write('Time (min.sec) ='); readln(Time);

write('bh bm bl (0..5)='); readln(bh, bm, bl);

end;

write(fs, SportMan);

end;

CloseFile(fs);

// Чтение из файла и формирование массива.

Reset(fs);

ns:=0;

while not EoF(fs) do

begin

inc(ns);

read(fs, a[ns]);

end;

CloseFile(fs);

// Вывод файла.

OutA('Results', a, ns);

// Сортировка по полю FIO.

SortR(a, ns, SortFIO);

OutA('Results Sort FIO', a, ns);

// Сортировка по полю TIME.

SortR(a, ns, SortTime);

OutA('Results Sort Time', a, ns);

// Сортировка по сумме баллов.

SortR(a, ns, SortBall);

OutA('Results Sort Ball', a, ns);

// Формирование и вывод массива спортсменов, имеющих

// результаты выше средних значений.

aT:=AverTime(a, ns);

aB:=AverBall(a, ns);

writeln(' Aver Time=', aT:7:3,

' Aver Ball=', aB:7:3);

Atop(a, ns, aT, aB, aHi, nHi);

OutA('Results Half Hi ', aHi, nHi);

readln;

END.

Задания.

  1. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о студентах, средний балл успеваемости у которых выше 3.5.

  2. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести названия фильмов по возрастанию времени сеанса, на которые есть билеты.

  3. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о студентах, успеваемость у которых не ниже 4 по всем предметам.

  4. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести в алфавитном порядке по названию фильма сведения о сеансах, на которых нет билетов.

  5. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о неуспевающих студентах, у которых есть хотя бы одна двойка.

  6. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о студентах, имеющим хотя бы одну тройку при среднем балле 3.5 и выше.

  7. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести названия фильмов по возрастанию времени сеанса, на которые есть билеты.

  8. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести в алфавитном порядке по названию фильма сведения о сеансах, на которых нет билетов.

  9. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о студентах, имеющим только одну тройку.

  10. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести названия фильмов по возрастанию времени сеанса, на которые есть билеты.

  11. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах с наличием свободных мест в заданный (с клавиатуры) аэропорт назначения в порядке возрастания времени вылета.

  12. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах, на которые билеты проданы в алфавитном порядке по аэропорту назначения.

  13. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести в алфавитном порядке по названию фильма сведения о сеансах, на которые есть билеты, после заданного времени.

  14. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах, на которые есть билеты в алфавитном порядке по аэропорту назначения.

  15. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах, на которые есть билеты в порядке возрастания времени вылета.

  16. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах, на которые есть не менее 10 билетов в алфавитном порядке по аэропорту назначения.

  17. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести в алфавитном порядке по названию фильма сведения о сеансах, на которые есть билеты, после заданного времени.

  18. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах до заданного (с клавиатуры) аэропорта, на которые есть билеты по возрастанию времени вылета.

  19. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах до заданного (с клавиатуры) аэропорта, на которые есть билеты по возрастанию времени вылета.

  20. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах до заданного (с клавиатуры) времени, на которые есть билеты по возрастанию времени вылета.

  21. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах после заданного (с клавиатуры) времени, на которые есть билеты по возрастанию времени вылета.

  22. Создать пополняемый файл, содержащий расписание вылета самолетов с полями: <Аэропорт назначения>; <время вылета (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Выдать сведения о всех рейсах в алфавитном порядке по аэропорту назначения в заданном (с клавиатуры) интервале времени.

  23. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о студентах, средний балл успеваемости у которых выше 3.5.

  24. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести названия фильмов по возрастанию количества нераспроданных билетов с указанием времени сеанса..

  25. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о студентах, успеваемость у которых не ниже 4 по всем предметам.

  26. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о неуспевающих студентах, у которых есть хотя бы одна двойка.

  27. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о студентах, имеющим хотя бы одну тройку при среднем балле 3.5 и выше.

  28. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о студентах, имеющим хотя бы одну тройку.

  29. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести названия фильмов по возрастанию количества нераспроданных билетов с указанием времени сеанса..

  30. Создать пополняемый файл, содержащий сведения об успеваемости студентов с полями: <Фамилия И.О. студента>; <индекс группы>; <оценка по математике>; <оценка по физике>; <оценка по химии>. Вывести в алфавитном порядке по фамилиям сведения о студентах, имеющим только одну тройку.

  31. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести в алфавитном порядке по названию фильма сведения о сеансах, на которые есть билеты.

  32. Создать пополняемый файл, содержащий сведения о расписании сеансов кинофильмов в кинотеатре с полями: <Название фильма>; <время сеанса (REAL формат “час.мин”, например 11.40)>; <количество свободных мест>. Вывести названия фильмов по возрастанию времени сеанса, на которые есть билеты.