Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Заполнение двумерного массива, вывод в файл

Автор: Лёва 17.06.2007 9:18

Привет всем! Вот уже неделю борюсь турбо паскалем. И понял что я что без общественности он меня разобъет на голову. Проблема вот такая.
Мне нужно просто сформировать двумерный массив 7 x 7 и забить его генератором случайных чисел, а еще вывести элементы массива на экран и в файл. Все было бы великолепняк, но надо еще и вычислить сумму отрицательных элементов столбца, в котором находится максимальный элемент и что самое невообразимое для меня это оформить нахождение максимального элемента в виде процедуры и вывести на экран и в файл полученную сумму и номер столбца %(

Вот таки вот у меня баталии. Может кто поможет поставить это на место

Автор: Lapp 17.06.2007 10:23

Шутки - шутками, а правила - правилами.
М
Прочти Правила (ссылка вверху) и в следующий раз делай информативное название


На этот раз я исправил.

Если ты неделю что-то делаешь, покажи результаты, пожалуйста. Любые, что получилось.

Автор: Тимон 18.06.2007 1:04

Я что то не понял над каким именно вопросом ты больше всего убиваешься?

Автор: Айра 18.06.2007 2:02

Попробуй так:

uses crt;
var f: text;
a: array[1..7,1..7] of integer;
i,j,max,sum,nom: integer;

procedure poisk_max(b,j: integer; var m: integer; var n: integer);
begin
if b>max then
begin
max:=b; {если наибольших элементов два}
n:=j; {то программа запомнит первый}
end; {такой вариант пойдет?}
end;

begin
assign(f, 'matr.txt');
rewrite(f);
randomize;
max:=-100;
sum:=0;
for i:=1 to 7 do
begin
for j:=1 to 7 do
begin
a[i,j]:=random(11)-5; {чтоб и отрицательные числа получались}
write(f,a[i,j]:4);
write(a[i,j]:4);
poisk_max(a[i,j],j,max,nom);
end;
writeln(f);
writeln;
end;
writeln('максимум: ',max,' столбец: ',nom,'');
for i:=1 to 7 do
begin
if a[i,nom]<0 then sum:=sum+a[i,nom];
end;
writeln('сумма: ',sum,'');
writeln(f,'сумма: ',sum,'; столбец: ',nom,'');
close(f);
end.

Что непонятно, спрашивай smile.gif