Массивы. Описание и использование массивов — КиберПедия 

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Массивы. Описание и использование массивов



При решении практических задач достаточно часто возникает потребность хранения табличных данных. В качестве примеров массивов в математике можно привести векторы, матрицы, таблицы и т.п.

Массив – это группа элементов, названная одним именем. Элементы массива обозначают именем массива, их местоположение в массиве определяется приписываемым к имени массива индексом.

Объявление массива в программе осуществляется с использованием ключевого слова array, используемого следующим образом:

 

 

Type

Имя_типа_массива = array [диапазон] of тип_элементов;

 

Рассмотрим несколько примеров декларации массивов:

Type

Ar = array[1..100] of integer;
Var

A,B,C : Ar;

 

Декларацию переменных-массивов можно осуществлять непосредственно в разделе переменных:

 

Var

A,B,C : array[1..100] of integer;

 

Пример использования отдельных элементов – обращение через оператор присваивания, считывание с клавиатуры, использование в арифметических выражениях. Обратить внимание на принципиальное отличие от обычной переменной — возможность использования косвенной адресации, по номеру (индексу) элемента.

Пример ввода одномерного массива с клавиатуры и последующего вывода его на экран.

const

Nmax = 10;

 

var

n : integer;

a : array [1..Nmax] of integer;

begin

{Сначала ввод}

for n:=1 to Nmax do

begin

write(‘Введите элемент a[’, n, ‘]: ’);

read(a[n]);

end;

 

{Теперь вывод}

for n:=1 to Nmax do

writeln(‘Элемент a[’, n, ‘] = ’, a[n]);

 

end.


В качестве примера работы с массивом рассмотрим задачу расчета среднего арифметического элементов массива:

Const

Nmax = 500; {константа, определяющая максимальный

размер массива}

Var

X : array[1..Nmax] of integer; {массив для хранения целых чисел}

n : integer; {переменная для хранения выбранного пользователем

количества используемых элементов массива}

i : integer; {переменная-параметр цикла}

S : real; {Переменная для хранения

рассчитываемой суммы элементов}

Begin

{Ввод числа элементов n}

write(‘Введите n: ’);

read(n);

 

{Ввод массива X}

for i:=1 to n do

Begin

write(‘Введите X[’, i, ‘]: ’);

read(X[i]);

end;

 

{Расчёт среднего арифметического}

S:=0;

For i:=1 to n do

S:=S+X[i];

 

S:=S/n;

writeln(‘S = ’, S);

End.

 

 

Раздел №14 (4 часа)

Процедуры и функции

План:

Структурный подход к разработке программы. Подпрограммы

Синтаксис объявления и использования процедур

Синтаксис объявления и использования функций

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

Параметры-переменные и параметры-значения

 

14. Процедуры и функции

Структурный подход к разработке программы. Подпрограммы



Рассмотрим следующий пример. Дан треугольник ABC с длинами сторон a, b и c соответственно (рис. 2). Необходимо разработать программу, вычисляющую его площадь.

Рис. 2

Для решения задачи воспользуемся формулой Герона:

,

где – полупериметр:

.

Алгоритм решения будет иметь вид:

Программная реализация этого алгоритма может иметь вид:

Var

a, b, c : real; {Переменные для хранения исходных данных}

S : real; {Переменные для хранения исходных данных}

p : real; {Вспомогательная переменная для хранения полупериметра}

 

Begin

write(‘Введите a, b и c: ’); read(a, b, c);

p := (a + b + c)/2.0;

S := sqrt(p*(p-a)*(p-b)*(p-c));

write(‘S=’, S:0:3);

end.

 

Усложним исходное задание. Предположим, что необходимо рассчитать площадь четырёхугольника ABCD, заданного длинами своих сторон a, b, c, d и длиной диагонали e.

Искомая площадь представляет собой сумму площадей соответствующих треугольников . Поэтому для решения задачи можно также воспользоваться формулой Герона, которую в этом случае придётся применять дважды. Алгоритм решения можно представить следующим образом:

Следует обратить внимание на то, что одна и та же последовательность вычислений: «расчёт полупериметра – расчёт площади», – выполняется в программе дважды, но с различными исходными данными. Первый раз вычисления производятся с использованием длин a, b и e, а во втором – c, d и e.

В принципе по данному алгоритму можно было бы непосредственно написать программу вычислений, продублировав однотипные операторы несколько раз. Однако такой подход имеет ряд принципиальных недостатков:

1. Дублирование операторов увеличивает размер программы, повышает требования к объёму оперативной памяти, необходимой для хранения машинных кодов.

2. Дублирование снижает возможности по сопровождению и модификации программы; например можно представить, что на каком-то этапе разработки программы было принято решение отказаться от использования формулы Герона, и рассчитывать площадь треугольников иным образом. В этом случае программисту пришлось бы тщательно отыскивать все места в программе, где встречается последовательность операторов расчёта площади и менять их на новые фрагменты. При этом нет полной уверенности, что все последовательности были найдены и корректно изменены.



3. Механическое дублирование увеличивает размер исходных текстов программы и усложняет её восприятие программистом.

 

Для преодоления всех этих проблем в языках высокого уровня предусматривается обычно возможность выделения отдельных фрагментов программы в некоторые самостоятельные блоки – подпрограммы, к которым можно обращаться многократно из основной части программы.






Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...





© cyberpedia.su 2017 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав

0.012 с.