Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Пожалуйста!!! Помогите решить задачу по программированию на Паскале!!!

17K
25 мая 2006 года
Trener
3 / / 25.05.2006
Здравствуйте!!! У меня большая проблема, мне нужно срочно решить одну задачу по программированию на Паскале... Если сможите помогите, пожалуйста!!!

Задача:В матрице A(N,N) уплотнить все четные элементы в направлении указанном на рисунке. Остальные элементы сделать равными нулю.
17K
25 мая 2006 года
Trener
3 / / 25.05.2006
Цитата:
Originally posted by Trener
Здравствуйте!!! У меня большая проблема, мне нужно срочно решить одну задачу по программированию на Паскале... Если сможите помогите, пожалуйста!!!

Задача:В матрице A(N,N) уплотнить все четные элементы в направлении указанном на рисунке. Остальные элементы сделать равными нулю.



Вот ресунок...

929
26 мая 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by Trener
Вот ресунок...


Покажи на конкретном примере, как это должно происходить. Исходная матрица и результирующая.

17K
26 мая 2006 года
Trener
3 / / 25.05.2006
Цитата:
Originally posted by sp999
Покажи на конкретном примере, как это должно происходить. Исходная матрица и результирующая.



Исходная:
5 6 8 7 5
2 4 8 1 4
6 9 8 7 5
5 4 7 8 9
2 1 6 8 7

Результирующая:
0 0 0 0 0
6 0 0 0 0
4 8 8 0 0
8 8 4 6 0
6 2 4 8 2

Т.е. программа в исходной матрице определяет четные числа(эллементы)и в результирующей матрице выставляет их согласно рисунку (т.е. первое четное число идет в нижний левый угол и т.д.), и когда она выстроит все четные эллементы то в остальных ячейках матрицы поставит нули.

P.S. Как смог, так объяснил... если кто может, помогите пожалуйста!!!

929
26 мая 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by Trener
Исходная:
5 6 8 7 5
2 4 8 1 4
6 9 8 7 5
5 4 7 8 9
2 1 6 8 7

Результирующая:
0 0 0 0 0
6 0 0 0 0
4 8 8 0 0
8 8 4 6 0
6 2 4 8 2

Т.е. программа в исходной матрице определяет четные числа(эллементы)и в результирующей матрице выставляет их согласно рисунку (т.е. первое четное число идет в нижний левый угол и т.д.), и когда она выстроит все четные эллементы то в остальных ячейках матрицы поставит нули.

P.S. Как смог, так объяснил... если кто может, помогите пожалуйста!!!


Вот прога (ремарки писАть некогда):

Код:
program Matr;

uses
  Crt;

const
  N = 5;
  S: array[1..N, 1..N] of Integer = (
  (5, 6, 8, 7, 5),
  (2, 4, 8, 1, 4),
  (6, 9, 8, 7, 5),
  (5, 4, 7, 8, 9),
  (2, 1, 6, 8, 7));

var
  D: array[1..N, 1..N] of Integer;
  E: array[1..N*N] of Integer;
  i, j, NumE, X, Y, Direct: Integer;

begin
  ClrScr;
  for i := 1 to N do begin
    for j := 1 to N do
      Write(S[i, j]:4);
    WriteLn;
  end;
  NumE := 0;
  for i := 1 to N do
    for j := 1 to N do
      if not Odd(S[i, j]) then begin
        Inc(NumE);
        E[NumE] := S[i, j];
      end;
  for i := NumE + 1 to N * N do
    E := 0;
  X := 1;
  Y := N;
  Direct := 1;
  for i := 1 to NumE do begin
    D[Y, X] := E;
    case Direct of
      1: if Y > 1 then begin
        Dec(Y);
        Direct := 2;
      end else begin
        Inc(X);
        Direct := 4;
      end;
      2: if Y < N then begin
        Inc(X);
        Inc(Y);
      end else
        if X < N then begin
          Inc(X);
          Direct := 3;
        end else begin
          Dec(Y);
          Direct := 5;
        end;
      3: if X > 1 then begin
        Dec(X);
        Dec(Y);
      end else
        if Y > 1 then begin
          Dec(Y);
          Direct := 2;
        end else begin
          Inc(X);
          Direct := 4;
        end;
      4: if X < N then begin
        Inc(X);
        Inc(Y);
      end else
        if Y < N then begin
          Dec(Y);
          Direct := 5;
        end;
      5: if Y > 1 then begin
        Dec(X);
        Dec(Y);
      end else begin
        Inc(X);
        Direct := 4;
      end;
    end;
  end;
  WriteLn;
  for i := 1 to N do begin
    for j := 1 to N do
      Write(D[i, j]:4);
    WriteLn;
  end;
end.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог