- •Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
- •Задание 1
- •I. Постановка задачи
- •II. Алгоритм задачи, описанный в виде блок-схемы:
- •III. Алгоритм задачи, описанный на языке программирования Pascal-программа:
- •IV. Описание используемых модулей и основных операторов.
- •Алгоритмы циклической структуры (повторение) — алгоритмы, отдельные действия в которых многократно повторяются.
- •V . Результаты работы программы
Алгоритмы циклической структуры (повторение) — алгоритмы, отдельные действия в которых многократно повторяются.
Цикл — совокупность действий алгоритма, связанная с повторением. Тело цикла — многократно повторяющиеся действия алгоритма. Параметр цикла — величина, с изменением которой связано многократное выполнение цикла.
Различают циклические алгоритмы:
с заранее неизвестным числом повторений — цикл “До” и цикл “Пока”,
с заранее известным числом повторений — цикл “Для”.
При решении задачи использовался цикл «для».
Оператор цикла «Для»
Структура оператора: FOR <параметр цикла> := <нач. знач.> TO <кон. знач> DO <тело цикла> . FOR, TO, DO — зарезервированные слова (для, до, выполнить); <параметр цикла> — параметр цикла (переменная типа INTEGER); <нач. знач.> - начальное значение (выражение типа INTEGER); <кон. знач> — конечное значение (выражение типа INTEGER); <тело цикла> — произвольная последовательность операторов.
Шаг наращивания цикла строго постоянен и равен (+1).
При выполнении оператора FOR в начале вычисляется выражение, задающее значение параметру цикла, а затем это значение присваивается параметру цикла. После этого следует:
1. проверка условия <параметр цикла> := <нач. знач.>; если условие выполняется, то перейти к пункту 2, иначе к пункту 4; выполнение действий — <тело цикла> ;
наращивание переменной <параметр цикла> на единицу и переход к пункту 1;
завершение работы.
Вложенные циклы
Вложенным называется любой цикл, содержащий внутри себя один или несколько других циклов. Цикл, охватывающий другие циклы, называется внешним, а остальные — внутренними.
Правила организации как для внешнего, так и для внутреннего циклов такие же, как и для простого цикла. Параметры этих циклов изменяются не одновременно, т. е. при одном значении параметра внешнего цикла параметр внутреннего цикла принимает по очереди все свои значения.
Двумерные массивы
Двумерный массив соответствует понятию прямоугольной
таблицы (матрицы), состоящей из n строк и m столбцов.
Таким образом, первый индекс в двумерном массиве указывает номер строки, второй – номер столбца, на пересечении которых и находится элемент в матрице. Поэтому их иногда называют координатами элемента массива. Двумерные массивы, у которых значения индексов одинаковые, т.е. число строк равно числу столбцов, называют квадратной матрицей.
Описание двумерного массива имеет вид:
<имя > : ARRAY[n1..n2, m1..m2] OF <тип>;
Действия над элементами массивов
Описание двумерного массива:
VAR В: ARRAY[1..5,1..6] OF INTEGER;
Ввод элементов массива:
I способ – ввод элементов через клавиатуру
FOR I := 1 TO 5 DO
FOR I := 1 TO 6 DO READ(B[I,J]);
II способ – если известен закон, по которому создаются элементы.
FOR I := 1 TO 5 DO
FOR I := 1 TO 6 DO B[I,J] := f (I,J);
Вывод элементов массива:
FOR I := 1 TO 5 DO
FOR I := 1 TO 6 DO WRITE(B[I,J]);
Тогда все значения элементов массива выведутся в одну строку
в11, в12, …, в16, в21, в22,…, в26,…, в56
Чтобы вывести двумерный массив в 5 строк необходимо использовать переход на новую строку :
FOR I := 1 TO 5 DO
BEGIN
FOR I := 1 TO 6 DO WRITE(B[I,J]);
WRITELN;
END;
Сортировка массивов методом „пузырька“(обменная):
Алгоритм начинается со сравнения 1-го и 2-го элементов массива. Если 2-й элемент меньше 1-го, то они меняются местами. Этот процесс повторяется для каждой пары соседних элементов массива, пока все N элементов не будут обработаны. За один "проход" массива самый большой элемент встанет на старшее (N-е) место. Далее алгоритм повторяется, причем на р-м "проходе" первые (N-p) элементов сравниваются со своими правыми соседями. Если на очередном "проходе" перестановок не было, то алгоритм свою работу закончил. Таким образом, самые "легкие" элементы в процессе исполнения алгоритма постепенно "всплывают".
