Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2011, 09:16   #1
casperskii
Новичок
Джуниор
 
Аватар для casperskii
 
Регистрация: 11.10.2011
Сообщений: 1
По умолчанию Задача .....

Помогите понять задачу ....

Прямоугольную матрицу А(m*n) преобразовать по правилу: если у матрицы меньше половины строк заканчивается нулевым элементом (т.е. Аi,n=0), то все отрицательные элементы матрицы умножить на 5, в противном случае все элементы с четными номерами строк увеличить на 10.
Необходимо использовать не менее одной подпрограммы-функции и подпрограммы-процедуры.


{ как сделать ?

Размер матрицы ввести с клавиатуры }


если это так x:array [1..3,.1..3] of integer ;

зарание спасибо !

Последний раз редактировалось casperskii; 11.10.2011 в 11:31.
casperskii вне форума Ответить с цитированием
Старый 11.10.2011, 20:30   #2
A_c_i_d
Новичок
Джуниор
 
Регистрация: 13.01.2011
Сообщений: 1
По умолчанию

Цитата:
{ как сделать ?

Размер матрицы ввести с клавиатуры }


если это так x:array [1..3,.1..3] of integer ;
нет это так:
Код:
var
   x: array[1..100,1..100] of integer;
   n,i,j: integer;
begin
   Write('Введите размер матирицы ');
   Readln(n);
   for i:=1 to n do
      for j:=1 to n do
      begin
      {Тут допустим вводим элементы матрицы}
      end;
   {А тут обрабатываем матрицу, так же в циклах}
end.
A_c_i_d вне форума Ответить с цитированием
Старый 11.10.2011, 21:16   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Можно рассмотреть и такой вариант(см. выше) - делаем большую матрицу и несколько подпрограмм:
Код:
Type Tmatr = array[1..100,1..100] of integer;
...
var matr1 : Tmatr;
n, m : integer; {m и n - глобальные переменные}
{но их можно добавить в вызовы процедур и функции}

function Zero(const matr : Tmatr) : boolean;
var i, j : integer; {строк, столбцов}
   z : integer;
begin
   z := 0;
{тут подсчитываем нули в хвостиках строк: z := z + 1;}
{Организуем вложенные циклы:
   один до m,
  а второй - до n}
if (z < (i div 2)) then
   Zero := true
else
   Zero := false;
end;
procedure Mull(k : integer; var matr : Tmatr);
var i, j : integer;
begin
   {тут умножаем все отрицательные элементы на k}
   {k - может быть не только 5}
{Организуем вложенные циклы:
    один до m,
    а второй - до n}
end;
procedure Add(k : integer; var matr : Tmatr);
var i, j : integer;
begin
   {тут добавляем к элементам k}
   {k - может быть не только 10}
{Организуем вложенные циклы:
    один до m,
    а второй - до n}
end;

...
begin
{заправшиваем m и n, указав, что они должны быть менее 100}
readln(m,n);
If ((m > 100) or (n > 100)) then begin
   {сообщаем об ошибке}
   Halt;
end;
{Заполняем матрицу данными}
{Так думаю, что следует использовать random}
if Zero(matr1) then
   Mull(5, matr1)
else
   Add(10, matr1);
...
{местами вставляем вывод матрицы на экран}
...
end.
Есть и другой способ, когда запрашиваются размеры матрицы и
матрицы создаются и обрабатываются в динамической памяти.
Но так кажется, что до этого варианта ещё не доросли
В общем, как то так.
PS: Естественно, что код представлен с определённой неопределённостью
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51
задача! вредина123 Помощь студентам 3 16.12.2010 11:53
Задача на Си savra Помощь студентам 13 15.10.2009 17:38
задача на С++ densan Помощь студентам 5 02.03.2009 20:29