Задача такова: Даны две матрицы А(3,9) и В(6,6). Вычислить z=c(в квадрате)*(d+e)/(f+1), где с и f – количество положительных элементов матриц А и В, d и е – количество отрицательных элементов в матрицах А и В соответственно. Вычисление количества положительных и отрицательных элементов оформить в виде процедур-функций.
Начало программы я написала(вывод двух массивов и вывод кол-ва отриц. и полож. элементов этих массивов).Осталось только вычислить по формуле.Помогите,пожалуйста,кому не трудно!
Вот начало:
uses crt;
const m=6; n=9;
type ma2=array[1..m,1..n]of real;
var a:ma2; b:ma2;
{--------------------------------------------------}
procedure gen(var a:ma2; m,n:integer);
var i,j:integer;
begin
for i:=1 to m do
for j :=1 to n do a[i,j]:= -25+random(50);
end;
{-------------------------------------------------}
procedure print(name:string; a:ma2; m,n:integer);
var i,j: integer;
begin writeln('Massiv '+name);
for i:=1 to m do
begin
for j:=1 to n do write (a[i,j]:7:2);
writeln;
end;
end;
{--------------------------------------------------------}
Procedure kol(A:ma2);
Var i,j,kp,ko:byte;
Begin
kp:=0; ko:=0;
For i:=1 to 6 do
For j:=1 to 9 do
If A[i,j]<0 then inc(ko) Else If A[i,j]>0 then inc(kp);
Writeln('kol-vo pol:',kp);
Writeln('kol-vo otr:',ko);
End;
begin
clrscr;
gen(a,3,9); print('A',a,3,9); kol(A);
gen(b,6,6); print('B',b,6,6); kol(B);
Readln;
end.
Turbo Paskal.Двумерный массив
Код: Выделить всё
uses crt;
const m=6; n=9;
type ma2=array[1..m,1..n]of real;
var a:ma2; b:ma2;
c,f:byte; // положительные элементы матриц
d,e:byte; // отрицательные элементы матриц
Z:real;
{--------------------------------------------------}
procedure gen(var a:ma2; m,n:integer);
var i,j:integer;
begin
for i:=1 to m do
for j :=1 to n do a[i,j]:= -25+random(50);
end;
{-------------------------------------------------}
procedure print(name:string; a:ma2; m,n:integer);
var i,j: integer;
begin writeln('Massiv '+name);
for i:=1 to m do
begin
for j:=1 to n do write (a[i,j]:7:2);
writeln;
end;
end;
{--------------------------------------------------------}
Procedure kol(A:ma2; var kp:byte; var ko:byte);
Var i,j:byte;
Begin
kp:=0; ko:=0;
For i:=1 to 6 do
For j:=1 to 9 do
If A[i,j]<0 then inc(ko) Else If A[i,j]>0 then inc(kp);
Writeln('kol-vo pol:',kp);
Writeln('kol-vo otr:',ko);
End;
begin
clrscr;
gen(a,3,9); print('A',a,3,9); kol(A,c,d);
gen(b,6,6); print('B',b,6,6); kol(B,f,e);
z:=c*c*(d+e)/(f+1);
Writeln('Otvet:',Z);
Readln;
end.
- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
Поправил ваш код. Если не ошибаюсь, то должно быть так...
- Вложения
-
[Расширение txt было запрещено, вложение больше недоступно.]
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>