Программирование алгоритмов с использованием одномерных массивов данных



Если переменная в каждый момент времени способна принимать лишь одно фиксированное значение, то ее называют простой (скалярной). Переменные, состоящие из нескольких объединенных по какому-то признаку простых компонентов одного типа и имеющие общее имя, называют сложными (структурированными). Примером структурированной переменной является массив.

Массив (индексированные переменные)подмножество однотипных переменных, объединенных по какому-либо признаку и имеющих общее имя. Отдельные величины, составляющие массив, называются его элементами. Имена массивов образуются по тем же правилам, что и имена простых переменных. Доступ к конкретному элементу массива осуществляется с помощью индексов, которые указывают в квадратных скобках после имени. Например: 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






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