Автор работы: Пользователь скрыл имя, 18 Мая 2012 в 08:17, доклад
Создать программу с процедурами. Первая процедура задает матрицу, представляемую двумерным массивом целых чисел типа Integer.
Размер матрицы 3х3, причем
элемент матрицы a[i,j] вычисляется по формуле: a[i,j] = с[i]-2* с[j], где с является одномерным массивом, представляемым вектором из трех элементов, значение которых вводит пользователь в главной программе.
Создать программу с процедурами. Первая процедура задает матрицу, представляемую двумерным массивом целых чисел типа Integer.
Размер матрицы 3х3,
причем
элемент матрицы a[i,j]
вычисляется по формуле: a[i,j] = с[i]-2* с[j],
где с является одномерным массивом,
представляемым вектором из трех элементов,
значение которых вводит пользователь
в главной программе.
Включить в программу
еще две процедуры, которые выводят
элементы вектора с и матрицы
а на экран.
Добавить в задачу
функцию, которая находит сколько
отрицательных элементов находится в
каждой строке матрицы и их индексы (использовать
побочный эффект функции)
program praktika_14_a;
uses crt;
var
a:array [1..3] of array [1..3] of integer;
c:array [1..3] of integer;
IndexI:array [1..3] of integer;
var i,j,p,k,kk: integer;
procedure Matrix(MassOfVektor:array of integer);
begin
for i:=1 to 3 do
for j:=1 to 3 do
a[i,j]:=c[i]-(2*c[j]);
end;
procedure Vektor(MassofVektor: array of integer);
begin
for i:=1 to 3 do begin
write('Vvedite ',i,'-j element vektota: ');
readln(c[i]);
end;end;
procedure MatrixIS;
begin
for i:=1 to 3 do begin
writeln;
for j:=1 to 3 do
write(a[i,j],' ');
end;
end;
procedure VektorIS;
begin
for i:=1 to 3 do
write(c[i],' ');
end;
function f(NomerStroki:integer): integer;
var l,u,o:integer;
begin
k:=0;
u:=NomerStroki;
for l:=1 to 3 do begin;
IndexI[l]:=0;
o:=a[u,l];
if o<0 then begin
k:=k+1;
IndexI[l]:=l;
end; end; end;
begin
Vektor(c);
Matrix(c);
clrscr;
writeln(' Matrica:');
MatrixIS;
writeln;writeln;
writeln(' Vektor:');
VektorIS;
writeln;writeln;
for p:=1 to 3 do begin
f(p);
write('v ',p,'-oj stroke ',k,' oricatelnih simvol., ih indexi: ');
for i:=1 to 3 do begin
kk:=IndexI[i];
if kk>0 then
write(kk,' ')
end;
writeln;
end;
readln;
end.
Информация о работе Двумерный Массив (матрица) в Turbo Pascal