Turbo Paskal.Двумерный массив

Общие вопросы: версии и диалекты, синтаксис языка, cтруктуры и типы данных (массивы, строки, списки...), обработка данных и т.д.
Ответить
YuliyaKramar
Сообщения: 1
Зарегистрирован: 23 фев 2013, 18:08

23 фев 2013, 18:29

Задача такова: Даны две матрицы А(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.
interacia
Сообщения: 1
Зарегистрирован: 25 янв 2013, 20:15
Контактная информация:

24 фев 2013, 00:30

Код: Выделить всё

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.
http://interacia.net
Аватара пользователя
Oleg_Rus
Сообщения: 330
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

18 апр 2013, 12:58

Поправил ваш код. Если не ошибаюсь, то должно быть так...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
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>
Ответить