1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 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.