Другие языки программирования и технологии

Задача 4. Комбинированный тип данных – записиСоставить программу, в которой разнотипные данные, обрабатываемые паралл

Доброго времени суток.

В чем проблема? Объявить запись?

type
TRadioStation = record
Namw : String[20];
Frq : Real;
Time : Integer;
Reclama : Integer;
Price : Real
end;

Или объявить массив и остальные переменные?

var
A : array [1..n] of TRadioStation;
B : TRadioStation;
i,j : Integer;
Ввести данные?

for i:=1 to n do begin
Write('Название станции : ');
ReadLn(A[ i ].Name);
{и так остальные поля}
end;

Отсортировать?

for i := 1 to n do
for j := 1 to n - i do
if A[j] < A[j + 1] then begin
B := A[j];
A[j] := A[j + 1];
A[j + 1] := B;
end;

Вот только сортировать надо по условию: максимальная длительность вещания + много рекламы + малая ее цена. Или по-другому, максимальная длительность вещания + малые завтраты на рекламу. Примерно так.

if (A[j].Time <= A[j + 1].Time) and (A[j].Reclama * A[j].Price >= A[j + 1].Reclama * A[j+1].Price) then

Знак "больше" в отношениях применяется для того, чтобы перестановка выполнилась для элементов, у которых один из критериев лучше при совпалении другого. В результате сортировки в начало массива будут переставлены станции, у которых максимальная длительность вещания и при этом произведение времени рекламы на цену минуты минимально.

В выводе на экран?

WriteLn('Станция':20, 'Частота':7:1, 'Рекл':5, 'Цена':6, 'Затраты':7);
for i:=1 to 3 do
WriteLn(A[ i ].Name:20, A[ i ].Frq:7:1, A[ i ].Reclama:5, A[ i ].Price:6:2, A[ i ].Reclama*A[ i ].Price:7:2);

Или проблема в написании задачи полностью? Тут уж извините, помочь не смогу.

Удачи!
Василий Рухлов
Василий Рухлов
59 613
Лучший ответ
переводись на другой факультет. 100% это будет единственный комент в теме.
Eugene Karaulov
Eugene Karaulov
2 221