МБОУ "Лицей №57"

Адрес: г.Прокопьевск, ул.Институтская, 41


E-mail: lyceum57@mail.ru

Одномерные массивы. Формирование и вывод  одномерных массивов

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

Вы знаете, что компьютер предназначен в основном для облегчения работы человека с большими информационными объемами. Как же, используя только переменные известных вам типов, сохранить в памяти и обработать данные, содержащие десяток, сотню, тысячу чисел? А ведь такие задачи встречаются в любой области знания. Конечно, можно завести столько переменных, сколько данных, можно даже занести в них значения, но только представьте, какой величины будет текст такой программы, сколько времени потребуется для его составления, как много места для возможных ошибок? Естественно, об этом задумывались и авторы языков программирования. Поэтому во всех существующих языках имеются типы переменных, отвечающие за хранение больших массивов данных. В языке Паскаль они так и называются: "массивы".

Массивом будем называть упорядоченную последовательность данных одного типа, объединенных под одним именем.

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

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

Мы с вами пока будем заниматься только линейными массивами, так как более сложные структуры строятся на их основе.

Описание типа линейного массива выглядит так:

Type <Имя типа>=Array [<Диапазон индексов>] Of <Тип элементов>;

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

Описать переменную-массив можно и сразу (без предварительного описания типа) в разделе описания переменных:

Var <Переменная-массив> : Array [<Диапазон индексов>] Of <Тип элементов>;

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

Var

  S, BB : Array [1..40] Of Real;

  N : Array ['A'..'Z'] Of Integer;

  R : Array [-20..20] Of Word;

  T : Array [1..40] Of Real;

Теперь переменные S, BB и T представляют собой массивы из сорока вещественных чисел; массив N имеет индексы символьного типа и целочисленные элементы; массив R может хранить в себе 41 число типа Word.

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

S:=BB;

Однако, присваивать можно только массивы одинаковых типов. Даже массиву T присвоить массив S нельзя, хотя, казалось бы, их описания совпадают, произведены они в различных записях раздела описания.

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

R[10] - элемент массива R с индексом 10.

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

BB[15] - прямая адресация;

BB[K] - косвенная адресация через переменную K, значение которой будет использовано в качестве индекса элемента массива BB.

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

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

Задача 1. Ввеости с клавиатуры 20 целых чисел, а затем вывести их в обратном порядке

  Program z1;

  Var A : Array [1..20] Of Integer;

      I : Integer;

    Begin

      For I:=1 To 20 Do {Организуем цикл с параметром I по всем возможным}

      Readln(A[I]); {значениям индексов и вводим A[I] с клавиатуры }

      For I:=20 Downto 1 Do {Распечатываем массив в обратном порядке}

      Write(A[I],' ');

    End.

Задача 2. Сформировать массив, заполнив его значениям квадратов индексов элементов:

  Program z2;

  Const N=50; {Константа N будет содержать количество элементов массива}

  Var   A : Array [1..N] Of Integer;

      I : Integer;

    Begin

      For I:=1 To N Do

      A[I]:=sqr(i);

      For I:=1 To N Do

      Write(A[I],'  ');

    End.

Сформировать массивы можнос помощью генератора случайных чисел. В языке Паскаль случайные числа формирует функция Random. Числа получаются дробными, равномерно расположенными в интервале от 0 до 1. Выражение, дающее целое случайное число в интервале [-50,50] будет выглядеть так: Random(101)-50, т.к. random(А)  - случайное целое число в интервале [0, A).

Задача 3.Зададим и распечатаем случайный массив из сорока целых чисел:

  Program z3;

  Const  N=40; {Константа N будет содержать количество элементов массива}

  Var  A : Array [1..N] Of Integer;

      I : Integer;

    Begin

Randomize;

      For I:=1 To N Do

      Begin

          A[I]:= random(100)-50;

          Write(A[I],' ');

        End;

    End.

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

Обратная связь

Имя отправителя *:
E-mail отправителя *:
Тема письма:
Текст сообщения *:
Код безопасности *:

Задачи для самостоятельной работы:

  1. Составьте программу  формирования одномерного массива генератором случайных чисел в диапазоне от 0 до 1000 и вывести его на экран в виде строки.
  2. Составьте программу  формирования одномерного массива десятью первыми членами арифметической прогрессии с начальным членом x и шагом d, задаваемыми с клавиатуры, и вывести его на экран в виде столбца.
  3. Составьте программу  формирования одномерного массива десятью первыми четными натуральными числами, и вывести его на экран в прямом и обратном порядке в виде двух строк.
  4. Составьте программу  формирования вещественного одномерного массива генератором случайных чисел в диапазоне от 0 до 100 и вывести его на экран в виде строки.
  5. Составьте программу  формирования вещественного одномерного массива по формуле   Ai = I3 -1   вывести его на экран в виде строки.
  6. Составить программу формирования целого линейного массива двадцатью первыми членами геометрической прогрессии с начальным членом x и знаменателем – q, задаваемыми с клавиатуры, и вывести массив виде строки.
Бесплатный хостинг uCoz