Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 14.12.2017, 21:50   #1 (permalink)
NomadZ
Member
 
Регистрация: 14.12.2017
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Подпрограммы, процедура

Здравствуйте, помогите пожалуйста с написанием кода для следующей задачи на Pascal'е.
Задача:

Создать процедуру, поворачивающую в квадратном массиве matrixnn (n – нечетное) средний наибольший ромб элементов на 90 градусов против часовой стрелки.
NomadZ вне форума   Ответить с цитированием

Старый 14.12.2017, 21:50
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Кто то уже создавал на нашем форуме подобные обсуждения

Pascal процедура
Процедура, Паскаль
Процедура
VBA. Процедура находящая решение
Функция и процедура

Старый 15.12.2017, 11:14   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от NomadZ Посмотреть сообщение
Здравствуйте, помогите пожалуйста с написанием кода для следующей задачи на Pascal'е.
Задача:

Создать процедуру, поворачивающую в квадратном массиве matrixnn (n – нечетное) средний наибольший ромб элементов на 90 градусов против часовой стрелки.
Пожалуйста.
Код:
Uses CRT;

Const
 N=9;

Type
 Matrix=Array[1..N,1..N] of Integer;

Var
 A,B:Matrix;
 i,j:Byte;

Procedure Turn(var C:Matrix);
var
 k,p:Byte;
 D:Matrix;
begin
 D:=C;
 for k:=1 to (N div 2)+1 do
  for p:=1 to N do
   if (p>=(N div 2)+1-(k-1)) and (p<=(N div 2)+1+(k-1)) then
    D[N+1-p,k]:=C[k,p];
 for k:=(N div 2)+2 to N do
  for p:=1 to N do
   if (p>=k-((N div 2))) and (p<=N-(k-((N div 2)+1))) then
    D[N+1-p,k]:=C[k,p];
 C:=D;
end;

Begin
 ClrScr;
 Writeln;
 Randomize;
 for i:=1 to N do
  begin
   for j:=1 to N do
    begin
     A[i,j]:=Random(100);
     write(A[i,j]:5);
    end;
   writeln;
  end;
 Writeln;

 B:=A;
 Turn(B);
 for i:=1 to N do
  begin
   for j:=1 to N do write(B[i,j]:5);
   writeln;
  end;
 ReadKey
End.
P.S. И, пожалуйста, не надо клепать дубликаты тем в разных разделах. Хотя бы потому, что Правилами (п. 3.3) этот кросспостинг ЗАПРЕЩЁН.
Тема-дубль удалена.
Миниатюры
aa01.jpg  
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
поворот на 90 градусов, подпрограммы, процедуры

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 05:18.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.