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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2013, 16:15   #1
sekirei
Новичок
Джуниор
 
Регистрация: 20.11.2013
Сообщений: 2
По умолчанию Процедуры и функции - Заданы три двумерных массива одинаковой размерности. Написать фукнции и процедуры их обработки

Заданы три двумерных массива одинаковой размерности. Организовать ввод и вывод на экран массивов с использованием процедур программиста.
Найти сумму нечетных по значению элементов каждого массива, используя функцию программиста.
В том массиве, где эта сумма больше всего, поменять местами максимальный и минимальный элемент массива. Обмен осуществить при помощи процедуры.

Помогите написать программу, в благодарность 100 руб кину на мобильник)
sekirei вне форума Ответить с цитированием
Старый 21.11.2013, 12:29   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
type Tmatrix = array[1..100, 1..100] of integer;
var a, b, c: Tmatrix;
  col, row: integer;
  a1, b1, c1: real;

procedure InputMatrix(var M: Tmatrix; _col, _row: integer);
var i, j: integer;
begin
  for i := 1 to _col do
    for j := 1 to _row do
    begin
      write('[', i, ',', j, ']=');
      readln(M[i, j]);
    end;
  Writeln('========================================');
end;

procedure OutputMatrix(var M: Tmatrix; _col, _row: integer);
var i, j: integer;
begin
  for i := 1 to _col do begin
    for j := 1 to _row do
      write(M[i, j]: 4);
    writeln;
  end;
  Writeln('========================================');
end;

function SumODD(var M: Tmatrix; _col, _row: integer): real;
var i, j: integer;
  s: real;
begin
  s := 0;
  for i := 1 to _col do
    for j := 1 to _row do
      if odd(M[i, j]) then s := s + M[i, j];
  SumODD := s;
end;

function MyMax(a, b: real): real;
begin
  if a > b then Mymax := a
  else Mymax := b;
end;

procedure Swap(var a, b: integer);
var t: integer;
begin
  t := a; a := b; b := t;
end;

procedure SwapMaxMin(var M: Tmatrix; _col, _row: integer);
var i, j: integer;
  imax, imin, jmax, jmin: integer;
begin
  imax := 1; jmax := 1;
  imin := 1; jmin := 1;
  for i := 1 to _col do
    for j := 1 to _row do begin
      if M[i, j] > M[imax, jmax] then begin imax := i; jmax := j; end;
      if M[i, j] < M[imin, jmin] then begin imin := i; jmin := j; end;
    end;
  Swap(M[imax, jmax], M[imin, jmin]);
end;
begin
  write('Row='); readln(row);
  write('column='); readln(col);
{=========================================}
  InputMatrix(a, col, row);
  InputMatrix(b, col, row);
  InputMatrix(c, col, row);
{=========================================}
  writeln('==============BEFORE============');
  OutputMatrix(a, col, row);
  OutputMatrix(b, col, row);
  OutputMatrix(c, col, row);

{=========================================}
  a1 := SumODD(a, col, row);
  b1 := SumODD(b, col, row);
  c1 := SumODD(c, col, row);
  if MyMax(a1, MyMax(b1, c1)) = a1 then SwapMaxMin(a, col, row)
  else
    if MyMax(a1, MyMax(b1, c1)) = b1 then SwapMaxMin(b, col, row)
    else
      SwapMaxMin(c, col, row);
{=========================================}
  writeln('==============AFTER============');
  OutputMatrix(a, col, row);
  OutputMatrix(b, col, row);
  OutputMatrix(c, col, row);
{==========================================}
  readln;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 21.11.2013 в 14:08.
Mad_Cat вне форума Ответить с цитированием
Старый 21.11.2013, 12:41   #3
sekirei
Новичок
Джуниор
 
Регистрация: 20.11.2013
Сообщений: 2
По умолчанию

стукнул, стукнул)
sekirei вне форума Ответить с цитированием
Старый 21.11.2013, 14:43   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Почему я Mad_Cat'у плюсик не могу поставить?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 21.11.2013, 15:04   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Почему я Mad_Cat'у плюсик не могу поставить?
потому что система автонакрутки работает
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 21.11.2013, 15:22   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

А что за система? В help'e не написано про отзывы. Мне пишет, вы не можете тра-ля-ля, пока не поставите отзыв другому пользователю.
Другим плюсики я уже ставил.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 21.11.2013, 15:29   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Другим плюсики я уже ставил.
надо десятерым и не обязательно +, можно и -
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 21.11.2013, 15:38   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Mad_Cat
потому что система автонакрутки работает
система АНТИ накрутки

Цитата:
надо десятерым и не обязательно +, можно и -
про минусики верно, а вот про десятерых - не уверен. я когда-то задался целью и подсчитал. Если не ошибаюсь, было число 20. т.е. через 20 отзывов можно опять ставить отзыв первому.

А вообще...
ZX Spectrum-128, Mad_Cat, давайте не будем оффтопить!

про репутацию и отзывы можете почитать в теме ТУТ
(я там пытался объяснить что к чему, ну, насколько я сам понимаю... )
там же и обсудить можно...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.11.2013, 15:45   #9
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Не-не, я больше не буду.
Сложновато как-то.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и функции для двумерных массивов }|{eka Паскаль, Turbo Pascal, PascalABC.NET 2 24.06.2012 23:20
Процедуры и фукнции. hewlett Помощь студентам 1 27.03.2010 08:46
Добавление данных в текстовые файлы. Другие процедуры и функции для обработки текстовых файлов student2009 Паскаль, Turbo Pascal, PascalABC.NET 5 01.06.2009 21:27