Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [pascal] Задача на тему "Функции"


Автор: houmy 22.5.2008, 21:17
Условие:
http://imageshack.us
Мой вариант решения:
Код

program ersdf;
uses crt;
function max(s:real;i,j:integer):real;
var a:array[1..4,1..3] of real;
begin
for i:=1 to 4 do
begin
for j:=1 to 3 do
begin
s:=s+abs(a[i,j]);
max:=s;
end;
end;
end;
function mat(n,m:integer):real;
var i,j:integer; a:array[1..4,1..3] of real;
begin
writeln('vvod matrici:');
m:=3;
n:=4;
for i:=1 to n do
begin
for j:=1 to m do
begin
read(a[i,j]);
end;end;
end;
var a,b,c:real;
i,s,j:integer;s1,s2,s3,vmax:real;m,n:integer;
begin
clrscr;
a:=mat(m,n);
readln(a);
s1:=max(s,i,j);
b:=mat(m,n);
readln(b);
s2:=max(s,i,j);
c:=mat(m,n);
readln(c);
s3:=max(s,i,j);
if s1>s2 then vmax:=s1 else vmax:=s2;
if s3>vmax then vmax:=s3;
writeln('max=',vmax);
end.


Выводит не то что нужно. Помогите исправить ошибки пожалуйсто? Тысячу спасиб тому кто поможет smile

Автор: neic 23.5.2008, 12:10
Мне вот эта строка не нравиться:
Код

a:=mat(m,n);
readln(a);


Для чего они?

И ещё(!):насколько я помню, раздел переменных (Var) описывается перед разделом функций

Автор: volvo877 23.5.2008, 12:27
Цитата(neic @  23.5.2008,  12:10 Найти цитируемый пост)
насколько я помню, раздел переменных (Var) описывается перед разделом функций
Кто сказал тебе это? Во-первых, раздел Var может быть не один, а во-вторых, если мне переменная нужна только в основном блоке, то я ее и описываю только перед основным блоком. Зачем мне, чтобы она была видимой из всех процедур/функций? Больше вероятности ошибиться...

По теме. Вопрос к автору: какую именно норму матрицы считаем? Та, которая максимальная сумма по столбцу (обычная норма), или максимальная сумма по строке (бесконечная норма)? Уточни...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)