- •Глава 3. Реализация алгоритмов ветвления
- •3.1. Условный оператор
- •Полная форма оператора
- •Краткая форма оператора.
- •3.2. Задачи к пройденной теме
- •3.3. Задачи для самостоятельного решения
- •Глава 4. Реализация циклических алгоритмов
- •4.1. Конструкция цикла со счетчиком
- •4.2. Базовые алгоритмы
- •4.3. Циклы с предварительной и последующей проверкой условия
- •Цикл с последующей проверкой условия.
- •4.4. Вложенные циклы
- •4.5 Решение задач
- •Задачи для самостоятельного решения
- •Глава 5. Пользовательские типы данных.
- •5.1. Общие понятия
- •5.2. Одномерные массивы
- •5.4. Задачи для самостоятельного решения.
- •Глава 6. Многомерные массивы
- •6.1. Двумерные массивы
- •1. Заполнение двумерного массива по строке.
- •2. Заполнение двумерного массива по столбцу.
- •3. Печать содержимого двумерного массива в виде таблицы.
- •4. Вычисление суммы элементов каждой строки (столбца).
- •6. Задача поиска максимального (минимального) элемента и его индексов (считая, что элемент единственный).
- •Алгоритм поиска минимального элемента и его индексов для всего массива.
- •6.2. Квадратные матрицы.
- •Введем некоторые понятия:
- •6.3. Задачи
- •Глава 7. Типы данных Char и String
- •7.1. Символьные данные
- •7.2. Кодирование
- •7.3. Операции над данными типа char.
- •7.4. Строки
1. Заполнение двумерного массива по строке.
Массив содержит 3 строки и 4 столбца, т.е. 3x4=12 элементов.
a11 |
A12 |
a13 |
a14 |
a15 |
a16 |
a21 |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
Заполним значениями элементы первой строки:
for j:=1 to 4 do
a[1,j]:=random(100);
Для того, чтобы перейти к заполнению элементов 2ой строки мы должны изменить индекс строки на 1 и получить два, и т.д. Индекс строк меняется медленнее, чем индекс столбца.
Фрагмент программы для общего случая:
for i:=1 to 3 do
for j:=1 to 4 do
a[i,j]:=random(100);
2. Заполнение двумерного массива по столбцу.
Заполним двумерный массив, перемещаясь по столбцу.
a |
A12 |
a13 |
a14 |
a15 |
a16 |
a21 |
. |
. |
. |
. |
. |
а31. |
. |
. |
. |
. |
. |
for j:=1 to 4 do {внешний цикл: j — индекс столбца; он меняется медленнее}
for i:=1 to 3 do
a[i,j]:=random(100);
3. Печать содержимого двумерного массива в виде таблицы.
for i:=1 to 3 do
begin
for j:=1 to 4 do
write(a[i,j],’ ’); {печатаем элементы строки, не перемещая
курсор}
writeln; {перемещаем курсор}
end;
4. Вычисление суммы элементов каждой строки (столбца).
Используем базовый алгоритм вычисления суммы элементов одномерного массива.
Никогда не разрывайте действия в алгоритмах, во избежание лишних ошибок.
Таблица 6.1. - Вычисление суммы каждой строки(столбца)
Вычисление суммы строки |
Вычисление суммы столбца |
For i:=1 to 3 do begin S:=0; For j:=1 to 4 do S:=S+a[i, j]; {вывод s} End; |
For j:= 1 to 4 do S:=0; For i:=1 to 3 do S:=S+a[i, j]; {вывод s} End; |
5. Вычисление суммы всех элементов двумерного массива.
Решение задачи сводится к использованию базового алгоритма накапливания суммы.
Фрагмент программы приведен в табл.6.2.
Таблица 6.1.
Вычисление суммы всех элементов двумерного массива |
S:=0; For i:=1 to 3 do For j:=1 to 4 do S:=S+a[i, j];
|
6. Задача поиска максимального (минимального) элемента и его индексов (считая, что элемент единственный).
Решение задачи сводится к повторению аналогичного базового алгоритма для одномерных массивов.
Таблица 6.2. - Нахождение максимального (минимального) элемента строки (столбца)
Вычисление минимального элемента строки |
Вычисление максимального элемента столбца |
For i:=1 to 3 do begin min:=a[i, 1]; For j:=1 to 4 do IF min > a[i, j]then min:= a[i, j]; {вывод min} end; |
For j:=1 to 4 do begin max:=a[1, j]; For i:=1 to 3 do IF max < a[i,j ] then max:= a[i,j ]; {вывод max} end; |

11