Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Заполнение и обработка матрицы


Автор: PrinceMike 23.11.2006, 01:33
Код

program lab;
type matr=array[1..5,1..3] of real;
var a:matr;
i,j,k:integer;
S:real;
f:text;
begin
assign(f,'otvet.pas');rewrite(f);
writeln(f,'Funcii dlia formirovaniya matrici');
writeln(f,'a[i,j]:=0.37-sqr(j-3)   esli i>j');
writeln(f,'a[i,j]:=0.98*i-sqrt(3.24*j) esli j<=j');
for i:=1 to 5 do
for j:=1 to 3 do
if (i>j) then a[i,j]:=0.37-sqr(j-3) else a[i,j]:=0.98*i-sqrt(3.24*j);
writeln(f,'MaTPuLLa A');
for i:=1 to 5 do
begin
for j:=1 to 3 do
begin
write(f,a[i,j]:6:3,' ');
end;
writeln(f);
end;
s:=0;
for i:=1 to 5 do
for j:=1 to 3 do s:=s+a[i,j];
S:=s/15;
writeln(f,'CPeDHee=',s:6:3);
for j:=1 to 3 do
for i:=1 to 5 do
if ((a[i,j]>S) and ((i mod 2)=0)) then
begin
k:=k+1;
writeln(f,'a[',i,';',j,'] = ',a[i,j]:6:3);
end;
writeln (f,'Vsego znachenii prevyshayushih srednee ',k);
close(f);
end.



user posted image

Автор: volvo877 23.11.2006, 02:37
Вот правильный фрагмент:

Код
writeln(f,'CPeDHee=',s:6:3); { <--- до этого момента все прекрасно... }

{ А здесь ты начал путать строки со столбцами... }
for i:=1 to 5 do 
  if not odd(i) then { сразу же проверяем, что номер строки - четный, и работаем ТОЛЬКО с четными }
    for j:=1 to 3 do
      if (a[i,j]>S) then begin { тогда здесь достаточно одного условия }
        k:=k+1;
        writeln(f,'a[',i,';',j,'] = ',a[i,j]:6:3);
      end;
writeln (f,'Vsego znachenii prevyshayushih srednee ',k);

В следующий раз давай теме нормальное название...

Автор: PrinceMike 23.11.2006, 18:49
ну не знаю я сделал совсем по другому..всю ночь сидел..принял предод ура smile  smile 

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