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

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

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

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

2017-11-18 277
Массивы. Описание и использование массивов 0.00 из 5.00 0 оценок
Заказать работу

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

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

Объявление массива в программе осуществляется с использованием ключевого слова 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. Механическое дублирование увеличивает размер исходных текстов программы и усложняет её восприятие программистом.

 

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


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

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

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

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

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...



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

0.016 с.