Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
28.06.2014
Размер:
54.27 Кб
Скачать

Упражнение № 5

Вариант 10.

Захаров Антон

группа А–13–08

  1. Условие задачи.

Последовательность типизированных файлов содержит следующую информацию:

Год

Город

Январь

Декабрь

Осадки

Температура

Осадки

Температура

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

  1. Входные данные.

Состав: цел year – текущий год

1900..2008

лит city – город

[20]

лит name_month – название месяца

[10]

цел os – осадки за текущий месяц

500..1000

цел temp – средняя температура за текущий месяц

–70..70

Входная форма:

fin

<year><city><name_month><os><temp>…<name_month><os><temp>

… … … …

<year><city><name_month><os><temp>…<name_month><os><temp>


конец файла

  1. Выходные данные.

Состав: цел year1 – год с наиболее снежной зимой в Игарке

Выходная форма:

fout

<Meteo><Meteo> … <Meteo>


output

Наиболее бесснежная зима в Игарке была в <year1> году


fout

meteo*

year city month*(12)

name_month os temp

  1. Метод.

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

  1. Аномалии.

Не рассматриваются.

6. Функциональные тесты.

Входной файл

1900 Владивосток январь 654 -19 февраль 643 -17 ……… декабрь 694 -21

1901 Владивосток январь 621 -12 февраль 564 -14 ……… декабрь 632 -20

1902 Владивосток январь 542 -16 февраль 611 -15 ……… декабрь 602 -20

………

1900 Игарка январь 654 -19 февраль 688 -17 ……… декабрь 651 -23

1901 Игарка январь 594 -18 февраль 639 -17 ……… декабрь 617 -19

1902 Игарка январь 687 -16 февраль 653 -19 ……… декабрь 686 -22

2008 Хабаровск январь 546 -12 февраль 564 -14 ……… декабрь 632 -20

program Exercise_5 (fin, fout);

type

Tmonth = record

name_month : string [10];

os : 500..1000;

temp : -70..70;

end;

Tmeteo = record

year : 1900..2008;

city : string [20];

Month : array [1..12] of Tmonth;

end;

var

fin : text;

fout : file of Tmeteo;

meteo : Tmeteo;

year1, I, os1, os2 : integer;

begin

assign (fin,’C:\fin.txt’);

reset (fin);

assign (fout,’C:\fout.dat’);

rewrite (fout);

while not eof (fin) do

begin

with meteo do

begin

read (fin, year, city);

for i:=1 to 12 do

with month [i] do

read (fin,name_month,os,temp);

end;

readln (fin);

write (fout,meteo);

end;

reset (fout);

read (fout, meteo);

while meteo.city<>’Игарка’ do

read (fout, meteo);

os1:= meteo.month[1].os+meteo.month[2].os+meteo.month[12].os;

year1:=1900;

read (fout, meteo);

while meteo.city=’Игарка’ do

begin

os2:=meteo.month[1].os+meteo.month[2].os+meteo.month[12].os;

if os2<os1

then

begin

os1:=os2; year1:=meteo.year;

end;

read (fout, meteo);

end;

writeln (‘Наиболее бесснежная зима в Игарке была в ’,year1,’ году’);

readln;

end.