Теория недели 17.12 - 22.12.2012

Структуры данных. Понятие о массивах.

 

Пример 1. Необходимо найти сумму пяти целых чисел.

Program Example_15;

Uses Crt;

Var a1, a2, a3, a4, a5, s: Integer;

Begin

   ClrScr;

   Writeln (‘Введите пять целых чисел ‘);

    Readln (a1, a2, a3, a4, a5);

    s:= a1+a2+a3+a4+a5;

    Writeln (‘Ихсуммаравна ‘, s);

    Readln

End.

Пример 2. Найти сумму тридцати целых чисел.

Решение аналогично…

? Ребята! Какой выход из создавшейся ситуации нашли вы?

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

 Да, такой способ есть. И мы сейчас с ним познакомимся. Мы используем для решения этой задачи одномерный массив.

Формирование понятия “массив”, знаний характеристик массивов и их элементов.

Регулярный тип данных. С понятием “массив” приходится сталкиваться при решении научно-технических и экономических задач обработки совокупностей большого количества значений. В общем случае массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.

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

“Массив – это составной объект, образованный из элементов (компонент) одного и того же типа. Такой тип данных применяется в программировании для обозначения объектов, аналогичных числовым последовательностям в математике, где сразу целая группа чисел обозначается одним именем (чаще всего буквой), а для обращения к каждому отдельному числу данной последовательности используются различные индексы (номера элементов). В математике это может выглядеть, например, так: a1, а2, а3, …, аn.

Для описания подобных объектов в программировании предварительно следует ввести соответствующий тип в разделе описания типов. Описание типа данных массив производится согласно синтаксической диаграмме, представленной на схеме: (презентация).

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

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

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

максимальное значение индекса – минимальное значение индекса + 1.

При использовании переменных для обозначения индекса их значения к моменту использования должны быть определены, а в случае арифметических выражений их результат не должен выходить за границы массива (минимальное и максимальное значения индекса). Индексы элементов массива могут начинаться с любого целого числа, в том числе и отрицательного, например: Type bb = Array [-5..3] Of Boolean. Массивы данного типа будут содержать 9 логических переменных, пронумерованных от -5 до 3.

Заполнение массива

Первый способ заполнения одномерного массива – это заполнение с клавиатуры.

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

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

Найти номера четных элементов массива.

Решение:

            Необходимо просмотреть весь массив, и если просматриваемый элемент является четным, то

вывести его номер.

ProgramExample_19;

Const n=30; dd=51;

Type Myarray=Array[1..n] Of Integer;

Var A: Myarray;

  k, s, i: Integer;          

Begin

     Randomize;

     Writeln (‘Формирование значений элементов

     массива A’);    

     For i:=1 To n Do A[i]:=-25+Random (dd);                                                                                                                            

     For i:=1 To n Do Write (A[i]:3);

     Writeln;

     For i:=1 To n Do

          If A[i] mod 2=0 Then Write (‘i = ‘, i);

              Readln

        End.

Домашнее задание:

Задача 1.Определить пару соседних элементов с суммой, равной заданному числу.

Задача 2. Есть ли две пары соседних элементов с одинаковыми знаками?