Типизированные файлы. "Роза Ветров" - Pascal ABC
Формулировка задачи:
Файл(типизированный), содержит информацию о направлении ветра в некотором населенном пункте в течении некоторого продолжительного времени. Опеределить в каком направлении от города нужно сроить металургичесский комбинат, если направлений несколько вывести их.
з.ы.:8 направллений(север,юг,запад,восток, и между ними).
Прошу помочь с алгоритмом, если получится можно и с реализацией
Решение задачи: «Типизированные файлы. "Роза Ветров"»
textual
Листинг программы
type st=string[2];
const a:array[0..7] of st=('С','СВ','В','ЮВ','Ю','ЮЗ','З','СЗ');
var f:file of st;
n,i,j,k,imin:integer;
x:st;
b:array[0..7] of integer;
begin
randomize;
assign(f,'roza_vetrov');
rewrite(f);
write('Количество наблюдений n=');
readln(n);
for i:=1 to n do
begin
x:=a[random(8)];
write(f,x);
end;
reset(f);
writeln('Направление ветра по моментам наблюдений');
for i:=0 to 7 do
b[i]:=0;
while not eof(f) do
begin
read(f,x);
write(x:4);
k:=-1;
j:=0;
while(j<=7)and(k=-1)do
if x=a[j] then k:=j
else inc(j);
inc(b[k]);
end;
close(f);
writeln;
writeln('Роза ветров');
imin:=0;
for i:=0 to 7 do
begin
writeln(a[i]:3,b[i]:4);
if b[i]<b[imin] then imin:=i;
end;
write('Завод следует строить на ',a[imin]);
end.
Объяснение кода листинга программы
- Создается тип данных st, который представляет собой массив из двух символов.
- Создается константа a, которая представляет собой массив из восьми строк.
- Создается переменная f, которая представляет собой файл.
- Создаются переменные n, i, j, k, которые представляют собой целые числа.
- Создается переменная x, которая представляет собой строку.
- Создается массив b, который представляет собой массив из восьми целых чисел.
- Задается начальное значение для randomize.
- Задается начальное значение для rewrite.
- Выводится сообщение о количестве наблюдений.
- Для каждого наблюдения:
- Выводится сообщение о направлении ветра.
- Чтение из файла для получения направления ветра.
- Выводится сообщение о текущем направлении ветра.
- Обновление значений в массиве b.
- Выводится сообщение о минимальном направлении ветра.
- Выводится сообщение о том, где следует строить завод.