ВУЗ:
Составители:
Рубрика:
182
0 1 0 2
3 0 4 0
0 5 0 6
7 0 8 0.
Решение. Легко заметить, что ненулевое значение имеют элементы, сумма
индексов которых нечетна. Для формирования значения можно использовать
дополнительную переменную. Для перебора элементов будем использовать два
вложенных цикла. Применим схему перебора от последних элементов к первым.
Она не является необходимой для этой задачи, а применена здесь в качестве
примера.
k:=2*n; {значение последнего элемента
}
for i:=n downto 1 do
for j:=n downto 1 do
if (i+j) mod 2 =1
then begin a[i,j]:=k; k:=k-1 end
else a[i,j]:=0.
Упражнения:
1. Перепишите фрагмент, применив схему перебора от первых элементов к
последним.
2. Установите, какую задачу решает фрагмент, приведенный ниже.
k:=2*n;
for i:=n downto 1 do
for j:=1 to n do
if (i+j) mod 2 =1
then begin a[i,j]:=k; k:=k-1 end
else a[i,j]:=0.
3. Напишите фрагмент программы, печатающий шахматную доску.
Пример 11.35. Сформировать двумерный массив n·n указанного вида для
произвольного n. Для n=5 формируемый массив имеет вид
1 0 0 0 1
1 1 0 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1.
Здесь нули располагаются одновременно и над главной, и над побочной
диагоналями. Соединив соответствующие условия конъюнкцией и выбрав схему
перебора от первых к последним элементам, получаем фрагмент программы:
for i:=1 to n do
for j:=1 to n do
if (i<j) and (i+j<n+1)
then a[i,j]:=0
else a[i,j]:=1.
Пример 11.36. Сформировать двумерный массив n·n указанного вида для
произвольного нечетного n. Для n=5 формируемый массив имеет вид
0 0 1 0 0
0 1 0 1 0
182 0102 3040 0506 7 0 8 0. Решение. Легко заметить, что ненулевое значение имеют элементы, сумма индексов которых нечетна. Для формирования значения можно использовать дополнительную переменную. Для перебора элементов будем использовать два вложенных цикла. Применим схему перебора от последних элементов к первым. Она не является необходимой для этой задачи, а применена здесь в качестве примера. k:=2*n; {значение последнего элемента} for i:=n downto 1 do for j:=n downto 1 do if (i+j) mod 2 =1 then begin a[i,j]:=k; k:=k-1 end else a[i,j]:=0. Упражнения: 1. Перепишите фрагмент, применив схему перебора от первых элементов к последним. 2. Установите, какую задачу решает фрагмент, приведенный ниже. k:=2*n; for i:=n downto 1 do for j:=1 to n do if (i+j) mod 2 =1 then begin a[i,j]:=k; k:=k-1 end else a[i,j]:=0. 3. Напишите фрагмент программы, печатающий шахматную доску. Пример 11.35. Сформировать двумерный массив n·n указанного вида для произвольного n. Для n=5 формируемый массив имеет вид 10001 11011 11111 11111 1 1 1 1 1. Здесь нули располагаются одновременно и над главной, и над побочной диагоналями. Соединив соответствующие условия конъюнкцией и выбрав схему перебора от первых к последним элементам, получаем фрагмент программы: for i:=1 to n do for j:=1 to n do if (i
Страницы
- « первая
- ‹ предыдущая
- …
- 178
- 179
- 180
- 181
- 182
- …
- следующая ›
- последняя »