Консультация № 77224
28.02.2007, 21:54
0.00 руб.
0 1 1
Как решить задачу?
В файле, содержащем одномерные массивы вещественных чисел, найти номер компоненты с максимальной суммой элементов.
Заранее спасибо

Обсуждение

Неизвестный
28.02.2007, 22:40
общий
это ответ
Здравствуйте, Виктория!

Из условия следует что файл типизированный следовательно описать его можно таким образом:
<code>
type mas=array[1..n] of real;
var f:file of mas;
</code>

Соответственно для нахождения номера компонента нам необходимо произвести такие действия:
1) Находим сумму элементов массива, который находиться в первой компоненте и предполагаем что она и есть максимальна и запоминаем номер 1.

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

3) Выводим полученный результат на экран.

Вот <i><b>схематическая</b></i> реализация алгоритма:
<code>
const n=10;
type mas=array[1..n] of real;
var f:file of mas;
i,j,mxn:integer;
ms:mas;
mx,s:real;
begin
assign(f,‘file.dat‘);
reset(f);
read(f,ms);
s:=0;
for i:=1 to n do s:=s+ms[i];
mx:=s; mxn:=1;
while not eof(f) do
begin
read(f,ms);
s:=0;
for i:=1 to n do s:=s+ms[i];
if mx < s then begin mx:=s; mxn:=filepos(f)+1;end;
end;
writeln(mxn);
end.
</code>

Good Luck!!!
Форма ответа