МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


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

Нахождение суммы элементов массива





Лабораторная работа №5

Использование массивов в среде программирования Pascal

Цель работы

Ознакомиться с понятием массивов данных; научиться описывать одномерные и двумерные массивы на языке Pascal; ознакомиться с некоторыми алгоритмами обработки массивов данных.

Задачи работы

Научиться обрабатывать одномерные массивы данных на языке программирования Pascal.

Общие положения

Основные сведения о массивах

Массивом называется совокупность элементов одинакового типа, объединенных общим именем. Число элементов в массиве называется размерностью (размером) массива; каждый элемент массива задается своим порядковым номером в массиве - индексом.

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

В языке Pascal нет ограничения на число элементов в массиве (т.е. на его размерность), однако, суммарная длина любого из массивов во внутреннем представлении не должна превышать 65520 байт.

Описание одномерных массивов на языке Pascal

Язык Pascal допускает описание в программах одномерных массивов в следующем виде: TYPE <Имя_типа_массива>=ARRAY [<Диапазон_индексов>] OF <Тип>;

где TYPE - служебное слово, используемое для создания пользовательского типа данных;

ARRAYOF - служебные слова для описания массивов («Массив … из»);

<Имя_типа_массива> - задаваемое пользователем имя типа массива (требования к именам типов совпадают с требованиями к именам переменных);

<Диапазон_индексов> – диапазон изменения индексов массива. В качестве данного диапазона может выступить любой порядковый тип, кроме LONGINT. Чаще всего используют тип-диапазон, в котором задают границы изменения индексов;

<Тип> - тип элементов массива, например, REAL, INTEGER, CHAR и др.

Примеры описания типа массивов:

TYPE М=ARRAY [1..10] OF INTEGER;TYPE AR=ARRAY [0..15] OF REAL;

Переменные, относящиеся к тому или иному типу массивов, должны быть соответственно объявлены в разделе описания переменных, например:

VAR REZ:M;VAR P:AR;

Можно также описать переменную как непосредственно имеющую тип массива, например: VAR REZ: ARRAY [1..10] OF INTEGER;

При обращении к элементам массива в тексте программы обязательно требуется указывать их порядковый номер в массиве, например, REZ[1], P[5] и т.д.

Одномерные массивы также иногда называются векторами. Как правило, предполагается, что диапазон индексов вектора начинается с 1. Например, если задан вектор V из 5 чисел (4, 2, 1, -7, 8), то первый элемент вектора равен 4 (т.е. V[1]=4), второй элемент вектора равен 2, третий элемент вектора равен 1 и т.д.

Для работы с массивом как с единым целым используется идентификатор массива без указания индексов. В данном случае допустимыми являются только операции отношения =, <> и оператор присваивания :=, например A=B; A<>B; A:=B; где А и В – массивы идентичной структуры.

Типовые задачи обработки массивов данных

К стандартным типам задач на обработку массивов данных можно отнести следующие задачи:

- нахождение суммы элементов массива;

- нахождение количества элементов массива, удовлетворяющих определенным условиям;



- задачи на поиск элементов массива, удовлетворяющих некоторым заданным условиям;

- преобразование массивов путем замены и перестановки их элементов;

- упорядочение элементов массива и др.

Рассмотрим некоторые типовые алгоритмы обработки массивов данных.

Нахождение суммы элементов массива

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

Пример 1. Найти сумму четных элементов заданного одномерного массива из 10 целых чисел.

PROGRAM Sum_mas;

Type Mas=array[1..10] of integer;

Var a: Mas;

i,s: integer;

begin

s:=0;

for i:=1 to 10 do

begin

writeln('Введите элемент массива');

readln(a[i]);

if a[i] mod 2=0 then s:=s+a[i] {Проверка четности элемента и накопление суммы}

end;

writeln('Сумма s=', s)

end.

Поиск данных в массивах

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

Пример 2. Задан одномерный массив из 7 действительных элементов. Найти наибольший элемент данного массива.

PROGRAM Max_mas;

Type Mas=array[1..7] of real;

Var a: Mas;

max : real;

i: integer;

begin

for i:=1 to 7 do

begin

writeln(‘Введите элемент а[‘,i,’]’);

readln(a[i])

end;

max:=a[1];

for i:=2 to 7 do

if max<a[i] then max:=a[i];

writeln(‘max=’, max)

end.

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





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.