Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Массив, Паскаль (http://www.tehnari.ru/f41/t52892/)

Lambert 08.06.2011 15:50

Массив, Паскаль
 
Массив, паскаль.
Нужна помощь ни как не могу догадаться как составить программку:

Дана матрица А[1:4;1:6]. Если количество положительных элементов в третьей строке больше количества отрицательных элементов в третьем столбце, то из матрицы А получить матрицу В по правилу: В(i,j)=A(i,j)∙Amax где Amax - максимальный элемент матрицы А. Иначе получить квадратную матрацу, добавив строки, элементы каждой из которых представляют сумму двух последних элементов в столбце.

Eсть только начало:


program MATRICA;
uses wincrt;
var
A:array [1..4,1..6] of integer;
B:array[1..4,1..6] of integer;
I,J:INTEGER;
Begin
RANDOMIZE;
for I:=1 to 4 do
for J:=1 to 6 do
A[I,J]:=random(100)-30;
writeln('ЗАДАНА МАТРИЦА А');
for I:=1 to 4 do
Begin
writeln;
for J:=1 to 6 do
write(A[I,J]:4);
end;

Lambert 08.06.2011 21:12

блин... как указать на количество?

Lambert 08.06.2011 21:13

Цитата:

Сообщение от Lambert (Сообщение 534665)
блин... как указать на количество?

мб еще 2 переменных ввести?

Vladimir_S 08.06.2011 21:29

Цитата:

Сообщение от Lambert (Сообщение 534434)
Нужна помощь ни как не могу догадаться как составить программку

Например, так:
Код:

program MATRICA;
var
 A,B:array [1..6,1..6] of integer;
 I,J,Npos,Nneg,Max,Imax:INTEGER;
Begin
 RANDOMIZE;
 Max:=-100;
 for I:=1 to 4 do
  for J:=1 to 6 do
  begin
    A[I,J]:=45-random(100);
    If A[I,J]>Max then Max:=A[I,J];
  end;
  writeln('ЗАДАНА МАТРИЦА А');
  for I:=1 to 4 do
  Begin
    writeln;
    for J:=1 to 6 do
    write(A[I,J]:6);
  end;
  writeln;
  Writeln;
  Npos:=0;
  For J:=1 to 6 do
  If A[3,J]>0 then Inc(Npos);
  Nneg:=0;
  For I:=1 to 4 do
  If A[I,3]<0 then Inc(Nneg);
  Writeln('Max= ',Max,';    Npos= ',Npos,';    Nneg= ',Nneg);
  IF Npos>Nneg then
  begin
    Imax:=4;
    for I:=1 to 4 do
    for J:=1 to 6 do
      B[I,J]:=A[I,J]*Max;
  end
  else
  begin
    Imax:=6;
    for J:=1 to 6 do
    for I:=1 to 6 do
      If I<5 then B[I,J]:=A[I,J] else
      B[I,J]:=A[3,J]+A[4,J];
  end;
  for I:=1 to Imax do
  Begin
    writeln;
    for J:=1 to 6 do
    write(B[I,J]:6);
  end;
 ReadLn;
END.



Часовой пояс GMT +4, время: 19:07.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.