• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Массив, Паскаль

  • Автор темы Автор темы Lambert
  • Дата начала Дата начала

Lambert

Ученик
Регистрация
8 Июн 2011
Сообщения
3
Реакции
0
Баллы
0
Массив, Паскаль

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

Дана матрица А[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;
 
блин... как указать на количество?
 
Нужна помощь ни как не могу догадаться как составить программку
Например, так:
Код:
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.
 
Назад
Сверху