Программирование алгоритмов с использованием одномерных массивов данных
Если переменная в каждый момент времени способна принимать лишь одно фиксированное значение, то ее называют простой (скалярной). Переменные, состоящие из нескольких объединенных по какому-то признаку простых компонентов одного типа и имеющие общее имя, называют сложными (структурированными). Примером структурированной переменной является массив.
Массив (индексированные переменные)– подмножество однотипных переменных, объединенных по какому-либо признаку и имеющих общее имя. Отдельные величины, составляющие массив, называются его элементами. Имена массивов образуются по тем же правилам, что и имена простых переменных. Доступ к конкретному элементу массива осуществляется с помощью индексов, которые указывают в квадратных скобках после имени. Например: Beta[5] – пятый элемент массива Beta; Delta[J] – элемент массива Deltaс порядковым номером J. Значение индекса есть целочисленная переменная (константа, выражение) или отдельные символы (тип CHAR). Присутствующие в программе элементы массивов объявляются в разделе описания переменных VAR, например:
VAR MAS1 : ARRAY[1..10] OF INTEGER;
MAS2 : ARRAY[1.. 8] OF REAL;.
При объявлении массива вначале указывают его имя (например, MAS1), а затем, после двоеточия и слова ARRAY, интервал изменения индексов в квадратных скобках (в частности, для MAS1 – от 1 до 10), ключевое слово OF и указатель типа элементов в массиве (в нашем примере INTEGER – целый).
|
|
Количество приводимых в квадратных скобках индексов, необходимых для установления месторасположения элементов массива, определяет его размерность. Для ввода и вывода элементов массива будем использовать оператор цикла FOR, в котором параметром цикла будет индекс (порядковый номер) элемента массива.
Пример 3. В заданном массиве А1, А2, ... , А30 найти и вывести на экран сумму и произведение всех элементов массива.
Рисунок 7 – Схема алгоритма примера 3 | PROGRAM PRIMER3; VAR i: INTEGER; S, P : REAL; A: ARRAY [1..30] OF REAL; BEGIN FOR i:=1 TO 30 DO READLN(A[i]); S:=0; P:=1 ; FOR i:=1 TO 30 DO BEGIN S:=S+A[i]; P:=P*A[i]; END; WRITELN (‘СУММА=’,S:12:3, ‘ПРОИЗВЕДЕНИЕ=’,P:14:3); END. |
Пример 4 В массиве из nэлементов (n задано): X1, X2, ... , Xn, не содержащем одинаковых элементов, найти максимальный элемент и его порядковый номер.
Рисунок 8 – Схема алгоритма решения примера 4 | PROGRAM PRIMER4; CONST N=20; VAR i,M: INTEGER; MAX:REAL; X: ARRAY [1..N] OF REAL; BEGIN FOR i:=1 TO N DO READLN (X[i]) ; MAX:=X[1]; M:=1; FOR i:=2 TO N DO IF X[i]>MAX THEN BEGIN MAX := X[i]; M := i; END; WRITELN(‘МАКС .ЭЛЕМЕНТ=’, MAX:5, ‘ЕГО НОМЕР - ’,M:3); END. |
При составлении алгоритмов решения задач возникает необходимость неоднократного повторения одних и тех же действий. Участок алгоритма, где многократно повторяются вычисления при различных значениях, используемых в нем величин, называют циклом, а сам алгоритм, содержащий циклы - циклическим.
|
|
Циклические алгоритмы позволяют существенно сократить объем программы за счет многократного выполнения группы повторяющихся вычислений. Специально изменяемый по заданному закону параметр, входящий в тело цикла, называется переменной цикла. Переменная цикла используется для подготовки очередного повторения цикла. В качестве переменной цикла могут использоваться индексы массивов, аргументы вычисляемых функций и другие величины. Во время выполнения тела цикла параметры переменной цикла изменяются с заданным шагом. Следовательно, при организации циклических вычислений необходимо предусмотреть задание начального значения переменной цикла, закона ее изменения и проверку на окончание цикла, при выполнении которой произойдет завершение цикла. Циклы, в теле которых нет разветвлений и других встроенных в них циклов, называют простыми. В противном случае их относят к сложным.
Циклические алгоритмы разделяют на детерминированные и итерационные.
Циклы, в которых число повторений заранее известно из исходных данных или определено в ходе решения задачи, называют детерминированными. Для организации детерминированных циклов наиболее целесообразно использовать блок модификации, внутри которого указывается переменная цикла, ее начальное и конечное значения, а также шаг ее изменения (если шаг изменения равен 1, то его допускается не указывать). Организовать подобный цикл возможно и при использовании блока проверки условия вместо блока модификации, однако при этом несколько усложняется алгоритм и теряется его рациональность.
|
|
Студенту следует для задач своего варианта, условия которых приведены ниже, выполнить следующие задания:
· составить схему алгоритма задачи;
· записать пояснения к схеме алгоритма;
· составить программу на языке Pascal;
· проверить выполнение составленного алгоритма на контрольном примере, приняв упрощенные значения исходных данных по своему усмотрению.
Дата добавления: 2018-05-31; просмотров: 426; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!