Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Формирование матриц

Читайте также:
  1. Базовые понятия и определения, их формирование в процессе развития складского и тарного хозяйства
  2. Влияние внутригосударственного права на формирование и осуществление норм МП
  3. Вопрос №1 Оповещение и информирование населения об опасностях, возникающих в чрезвычайных ситуациях военного и мирного времени.
  4. Воспитание как формирование и развитие личности.
  5. Деформирование и разрушение горных пород
  6. Деформирование и разрушение горных пород. Деформационные свойства горных пород
  7. История развития российской правовой системы: формирование и особенности
  8. Лекция 1.(конспект)Формирование духовно-материальной культуры в Византии
  9. Лекция 12 ОБЩЕСТВЕННО-ИСТОРИЧЕСКАЯ ПРИРОДА ПСИХИКИ ЧЕЛОВЕКА И ЕЕ ФОРМИРОВАНИЕ В ОНТОГЕНЕЗЕ ЧЕЛОВЕКА
  10. Лекция 16 ЛИЧНОСТЬ И ЕЕ ФОРМИРОВАНИЕ

Begin

d:=a[I,j];

a[I,j]:=a[n-j+1,i];

a[n-j+1,i]:=a[n-i+1,n-j+1];

a[n-i+1,n-j+1]:=a[j,n-i+1];

a[j,n-i+1]:=d;

end;

При формировании матриц бывает необходимо организовать перебор элементов матрицы согласно определенному закону (пример 1) или значения элементов вычислять по определенным правилам (пример 2), или то и другое одновременно. В любом случае полезно нарисовать на бумаге матрицу размером не менее 5*5 и вручную выполнить требования условия задачи. Тогда легко удается выявить закономерность перебора элементов или вычисления значений элементов.

Пример 1. Дана квадратная матрица А(N,N) натуральных чисел. Заполнить ее числами от 1 до N*N по спирали (см.рис)

 
           
             
             
             
             
             
             

 

Решение. Определим сначала, сколько витков совершает спираль в зависимости от размера матрицы N: N=1 – 1, N=2 – 1 N=3 – 2 (второй состоит из 1 элемента), N=4 – 2 N=5 – 3 (третий из одного элемента), N = 6 – 3 N=7 – 4 (четвертый из одного элемента), N = 8 – 4 Т.о., вычислить количество витков можно по формуле: (N+1) div 2

Теперь рассмотрим перебор элементов в одном витке. Если повторить его полученное количество раз, мы заполним все витки. Виток разобъем на 4 части: верх, право, низ, лево (по стрелкам на рис.). Распишем изменение координат в них (N=7):

№ витка Верх Право Низ Лево
строка столбец строка столбец строка столбец Строка столбец
От 1 до 7 От 2 до 7 От 6 до 1 От 6 до 2
От 2 до 6 От 3 до 6 От 5 до 2 От 5 до 3
От 3 до 5 От 4 до 5 От 4 до 3 От 4 до 4
i i for i to N-i+1 for i+1 to N-i+1 N-i+1 N-i+1 for N-i downto i For N-i downto i+1 i

Последняя строка таблицы содержит закономерность изменения индексов элементов, составляющих i-ый виток спирали. Для получения числа, которое нужно присвоить очередному элементу, введем переменную Х, которой будем прибавлять 1 после каждого присвоения.

 


<== предыдущая страница | следующая страница ==>
Фрагмент программы. освобождаем for i:=N downto L do {для каждой перемещаемой строки } | Turbo-строки

Дата добавления: 2014-03-11; просмотров: 335; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.