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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2013, 12:46   #1
цезарь
 
Регистрация: 29.04.2013
Сообщений: 5
По умолчанию процедура, поворачивающая в квадратном массиве matrixnn (n – нечетное) средний наибольший ромб элементов на 90 градусов

Код:
Uses wincrt;

const
  n = 5;
  r = 3;

type
  tarray = array[1..n, 1..n] of integer;

var
  j, i, v_max, v_min: Integer;
  v: tarray;


procedure romb(var a: tarray);
var
  p, i, j: Word;
  temp1, temp2: integer;
begin
  temp2 := a[r, 1];
  a[r, 1] := a[r + 1, 2];
  for p := 1 to r-1 do
  begin
    j := 0;
    for i := r downto 2 do
    begin
      j := j + 1;
      temp1 := a[i - 1, j + 1];
      a[i - 1, j + 1] := temp2;
      temp2 := temp1;
    end;
    j := r - 1;
    for i := 1 to r-1 do
    begin
      j := j + 1;
      temp1 := a[i + 1, j + 1];
      a[i + 1, j + 1] := temp2;
      temp2 := temp1;
    end;
    j := 2 * r;
    for i := r to (2 * r)-2 do
    begin
      j := j - 1;
      temp1 := a[i + 1, j - 1];
      a[i + 1, j - 1] := temp2;
      temp2 := temp1;
    end;
    j := r + 1;
    for i := (2 * r)-1 downto r+1 do
    begin
      j := j - 1;
      temp1 := a[i - 1, j - 1];
      a[i - 1, j - 1] := temp2;
      temp2 := temp1;   
    end;
  end;  
end;


begin
  
  Randomize;
  
  WriteLn('Laboratornaya rabota №7_2');
  WriteLn('Variant №1');
  WriteLn('PI 12-1-1');
  WriteLn('цезарь');
  WriteLn;
  WriteLn('Zadaite diapozon sly4ainih 4isel');
  Write('v_min=');
  ReadLn(v_min);
  Write('v_max=');
  ReadLn(v_max);
  
  for i := 1 to n do
    for j := 1 to n do
      v[i, j] := Random(v_max - v_min + 1) + v_min;       
  Writeln('Ishodnii massiv:');        
  for i := 1 to n do
  begin
    for j := 1 to n do
      Write(v[i, j]:2);
    Writeln;
  end;  
  
  romb(v);
  writeln('Preobrazovanii massiv:');
  for i := 1 to n do
  begin
    for j := 1 to n do
      Write(v[i, j]:2);
    Writeln;
  end;  
end.
нужно изменить процедуру, поворачивающую в квадратном массиве matrixnn (n – нечетное) средний наибольший ромб элементов на 90 градусов по часовой стрелки, так чтоб поворачивала против часовой стрелки




___________
1) Название темы не соответствует правилам форума
Название темы должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В дальнейшем темы с подобным названием будут закрываться/удаляться,
а автор такой темы получать штрафы.


2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)

Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.04.2013 в 12:57.
цезарь вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С квадратной матрицы получить ромб путем отсечение углов по n элементов. Элементы, которыми заполнено ромб переписать в вых. файл Juliks Паскаль, Turbo Pascal, PascalABC.NET 10 29.12.2012 20:50
Содержится ли наибольший элемент массива A в массиве B. Dmitry_Web Помощь студентам 0 25.01.2012 02:55
Си. Максимальный элемент ромба элементов в квадратном массиве. ANutaStar Помощь студентам 4 02.11.2011 23:18
Найти наибольший элемент массива К, не имеющий себе равных в массиве L Cucumber768 Помощь студентам 0 03.05.2011 01:37
В массиве из п элементов много совпадающих элементов. Найти количество различных элементов Strax Фриланс 11 12.06.2010 20:13