1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Приветик всем! У меня небольшая проблемка - функция в проге должна находить сумму всех элементов матрицы, но выдает всегда 0 (может не те параметры ). Пож. помогите
program zadacha; uses crt; type mt=array [1..20,1..20] of real; var A,H:mt; K:array [1..20] of real; b:array [1..20] of integer; IM1:char; n1,m1:integer; ch, fl:char; regim: byte; formula: byte; sum: real; l: real; function sumelem(IM: char; Matr1: mt; n,m:integer):real; var i,j:integer; sum: real; begin writeln; sum:=0; begin for i:=1 to n do for j:=1 to m do sum:=sum+Matr1[i,j]; end; sumelem:=sum; end; . . . .
l:= sumelem (IM1, A, n1, m1); textcolor(green); write('Сумма всех элементов матрицы: ',l:8:2); textcolor(white); writeln; writeln; writeln ('Завершить работу программы?'); writeln (' Y -да;'); writeln (' N - нет.'); fl:=readkey; until (fl='Y') or (fl='y'); end.
program zadacha; uses crt; type mt=array [1..20,1..20] of real; var A,H:mt; K:array [1..20] of real; b:array [1..20] of integer; IM1:char; n1,m1:integer; ch, fl:char; regim: byte; formula: byte; sum: real; l: real; function sumelem(IM: char; Matr1: mt; n,m:integer):real; var i,j:integer; sum: real; begin writeln; sum:=0; begin for i:=1 to n do for j:=1 to m do sum:=sum+Matr1[i,j]; end; sumelem:=sum; end;
begin writeln; textcolor(yellow); writeln('‚введите размеры матрицы); writeln('n-строки, m-столбцы');
repeat write ('n='); {$i-} readln(n); Error:=IOResult; {$i+} if (n>20) or (n<2) or (Error<>0) then writeln('неверно!'); until (n<=20) and (n>=2) and (error=0); writeln;
repeat write('m='); {$i-} readln(m); Error:=IOResult; {$i+} if (m>20) or (m<2) or (Error<>0) then writeln('неверно!'); until (m<=20) and (m>=2) and (error=0); writeln;
for i:=1 to n do for j:=1 to m do begin repeat write('‚ўҐ¤ЁвҐ Matr1[',i,',',j,']='); {$i-} readln(Matr1[i,j]); Error:=IOResult; {$i+} if (Matr1[i,j]>=10000) or (Matr1[i,j]<=-10000) or (Error<>0) then writeln('ЋиЁЎЄ .Џ®ўв®аЁвҐ ўў®¤!'); until (Matr1[i,j]<=10000) and (Matr1[i,j]>=-10000) and (error=0); writeln; end; clrscr;
for i:=1 to n do begin for j:=1 to m do write(Matr1[i,j]:8:0,''); writeln; end;
case schet of 1: begin writeln; for j:=1 to m do begin b[j]:=0; for i:=1 to n do if Matr1[i,j]>0 then b[j]:=b[j]+1; end; textcolor(white); writeln; for j:=1 to m do writeln('‚ в столбце № ',j,' кол-во положит элементов: ',b[j]:4); writeln; end;
2: begin
writeln; for j:=1 to m do begin K[j]:=0; for i:=1 to n do if Matr1[i,j]>0 then K[j]:=K[j]+Matr1[i,j]; end; writeln('Сумма положит. элементов'); for j:=1 to m do write(K[j]:8:0); writeln; end;
3: begin writeln; writeln; for j:=1 to m do begin K[j]:=0; for i:=1 to n do if Matr1[i,j]>0 then K[j]:=K[j]+Matr1[i,j]; end;
for j:=1 to m do begin for i:=1 to n do if Matr1[i,j]<>0 then Matr2[i,j]:=K[j] / Matr1[i,j]; end; for i:=1 to n do begin for j:=1 to m do write(Matr2[i,j]:8:2,''); writeln; end; end; end;
case Form of
1: begin sum:=0; for i:=1 to n do for j:=1 to m do if i=j then sum:= sum + Matr1[i,j]; z:=sum; writeln; writeln ('сумма элементов главной диагонали:'); writeln (sum:8:2,' '); end;
2: begin writeln; max:=Matr1[1,1]; min:=Matr1[1,1]; for i:=1 to n do begin for j:=1 to m do if Matr1[i,j]>max then max:=Matr1[i,j]; if Matr1[i,j]<min then min:=Matr1[i,j]; pr:=max-min; z:=pr; end;
writeln ('Разница между максимумом и минимумом:',pr:8:2); end; end;
end;
begin clrscr; ch:=readkey; repeat clrscr; textcolor(yellow); writeln ('—Что вы хотите найти'); textcolor(white); writeln; writeln ('1 => кол-во полож. элем.;'); writeln; writeln ('2 => сумму полож. элем.;'); writeln; writeln ('3 => новую матрицу...');
readln (regim); writeln; textcolor(yellow); writeln ('Какой формулой хотите восп.?'); textcolor(white); writeln; writeln ('1 => суммы элем. главной диагонали;'); writeln; writeln ('2 => разница между макс. и миним..'); readln (formula);
PRC1 (IM1, A, n1, m1, regim, formula); l:= sumelem (IM1, A, n1, m1); textcolor(green); write('‘Сумма полож. элементов',l:8:2); textcolor(white); writeln; writeln; writeln ('завершить?'); writeln (' Y - да'); writeln (' N - нет.'); fl:=readkey; until (fl='Y') or (fl='y'); end.