Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab_rab_Pascal_OZO / Lab_11_Одномерн_массивы

.doc
Скачиваний:
26
Добавлен:
21.03.2015
Размер:
62.46 Кб
Скачать

Лабораторная работа № 11.

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

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

Оборудование и программное обеспечение: компьютер, Turbo Pascal 7.0.

Место проведения:

Время:

Теоретические сведения:

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

Массивы бывают одномерными и многомерными. Размер массива (и число измерений) ограничивается только объёмом рабочей памяти ПЭВМ. В математике и информатике массив называется одномерным, если для получения доступа к его элементам достаточно одной индексной переменной. Объявление одномерного массива выглядит следующим образом:

VAR

имя_массива: ARRAY[нач_инд..кон_инд] OF тип данных;

Например:

VAR

mas: ARRAY[1..25] OF Integer;

Таким образом мы объявили одномерный массив mas целых чисел. Номер (индекс) первого элемента 1, последний номер (индекс) 25.

Объявление массивов может производится и немного другим способом. Сначала объявляется тип пользователя (в нашем случае типа "ARRAY"), а затем и переменная на основе этого типа данных. Например:

TYPE

tab=ARRAY[1..25] OF Integer;

VAR

mas: tab;

Это объявление аналогично приведённого выше. В следующем примере объявляется несколько переменных типа массив:

VAR

mas_1: ARRAY[1..10] OF Real;

mas_2: ARRAY[5 .. 16] OF Integer;

sst: ARRAY[20..40] OF Char;

Обратите внимание, что величины, обозначающие "начальный индекс" и "конечный индекс", в квадратных скобках разделяются двумя (!) точками, причём перед этими двумя точками и после них допускаются пробелы.

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

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

VAR

mas: array [1..15] of real;

{описан массив из 15 вещественных чисел}

www: array [(mon,tue,wed)] of integer;

{описан массив из трёх целых чисел, индексы элементов массива имеют перечислимый тип и принимают значение названий дней недели mon, tue, wed}

ast: array ['A'..'Z'] of boolean;

{описан массив элементов логического типа, тип индексов – ограниченный символьный}

art: array [(black,white)] of 11..20;

{описан массив целых чисел с индексами black, white. Каждый элемент массива может принимать значения от 11 до 20}

svz: array [byte] of integer;

{описан массив из 256 целых чисел с индексами стандартного типа byte (от 0 до 256)}

Извлечения и присвоения в массивах

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

mas[2]:=34;

элементу массива с индексом 2 присваивается значение 34. Оператор

Writeln(mas[2]);

вызовет вывод на экран пользователя значение хранящегося в элементе-ячейке N 2 массива mas. Наряду с конкретным значением (константой) в качестве индекса может быть использована переменная, например, при обработке массива поэлементно в рамках цикла "FOR ... TO ... DO". Так с помощью фрагмента программы

FOR i:=1 TO 25 DO mas[i]:=0;

всем элементом массива присваивается значение "0".

Использование массивов вместо одиночных переменных позволяет Вам благодаря применению циклов "FOR ... TO ... DO" существенно сэкономить время и объём программы. Это демонстрируется следующим примером.

Пример 1: Дана последовательность реальных чисел s1 ... s30. Организовать массив для хранения этих чисел. Определить сумму этих элементов.

PROGRAMM ex_1;

VAR

m: ARRAY[1..30] of real; {декларация массива}

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

s: real; {сумма элементов}

BEGIN

FOR i:=1 TO 30 DO {заполнение массива}

Begin

Write('Введите элемент последовательности N ',i);

Readln(m[i]);

End;

s:=0; {обнуление счётчика суммы}

FOR i:=1 TO 30 DO s:=s+m[i]; {вычисление суммы}

Write('Сумма элементов последовательности равна ',s);

Readln;

END.

Порядок выполнения работы:

Задание: Создать и отладить программу для решения следующую задачу (см. Приложение), используя

Содержание отчета по каждому заданию:

  • исходные данные (условие задачи);

  • алгоритм (блок-схема) решения задачи;

  • текст программы (или основной фрагмент программы);

  • результаты выполнения программы

Контрольные вопросы:

  1. Что такое массивы?

  2. Что называют элементом массива?

  3. Что называют индексом элемента массива?

  4. Сколько элементов может содержать массив?

  5. Сколько индексов может быть у одного элемента массива?

  6. Элементы какого типа может содержать массив?

  7. Какие типы данных допустимы для индексов элементов массива?

Приложение: (ваш номер по журналу соответствует номеру варианта)

Задание.

  1. Напишите программу, которая сначала вводит десять чисел в одномерный массив, а затем складывает отдельно все положительные элементы этого массива, отдельно отрицательные элементы и выдаёт полученные результаты.

  2. Разработайте программу, которая будет вводить с клавиатуры 25 реальных чисел и сохранять их в некотором одномерном массиве. Затем у пользователя запрашивается ввод ещё одного "контрольного" числа. Программа должна проверить, содержится ли последнее введённое число среди введённых раннее элементов массива, и выдать соответствующее сообщение на экран.

  3. Напишите программу, которая вводит с клавиатуры 15 реальных чисел, организовывает их хранение в массиве и определяет разность между максимальным и минимальным элементом массива.

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

  5. Напишите программу, которая вводит с клавиатуры 10 реальных чисел, и организовывает их хранение в массиве. После этого массив пересортировывается по закону: первый элемент меняется с последним, второй с предпоследним и т.д.

  6. Напишите программу, которая вводит с клавиатуры 10 целых чисел, организовывает их хранение в массиве и определяет количество чётных и количество нечётных элементов в массиве.

  7. Напишите программу, которая вводит с клавиатуры 30 реальных чисел и определяет среднее арифметическое первых десяти элементов, вторых десяти и последних десяти. После этого определяется максимальное и минимальное среднее арифметическое и выводится сообщение.

  8. Напишите программу, которая вводит с клавиатуры 20 реальных чисел, организовывает их хранение в одномерном массиве, а затем заменяет первый максимальный элемент массива нулем. Результат выдаётся на экран пользователя.

  9. Напишите программу, которая вводит с клавиатуры 25 реальных чисел, организовывает их хранение в одномерном массиве, а затем определяет число положительных элементов данной последовательности и выводит результат на экран.

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

  11. Напишите программу, которая вводит с клавиатуры 15 целых чисел, организовывает их хранение в одномерном массиве, а затем определяет среднее арифметическое элементов массива. Результат выдаётся на экран пользователя.

  12. Напишите программу, которая вводит с клавиатуры 20 реальных чисел, организовывает их хранение в одномерном массиве, а затем определяет индекс и значение максимального элемента массива. Результат выдаётся на экран пользователя.

  13. Напишите программу, которая вводит с клавиатуры 30 символов, организовывает их хранение в одномерном массиве, а затем выводит содержимое массива в обратном порядке с указанием индекса (номера) каждого элемента.

  14. Напишите программу, которая вводит с клавиатуры 20 реальных чисел, организовывает их хранение в одномерном массиве, а затем определяет среднее арифметическое элементов с чётными индексами, и среднее арифметическое элементов с нечётными номерами. Результат выдаётся на экран пользователя.

  15. Напишите программу, которая вводит с клавиатуры 20 реальных чисел, и организовывает их хранение в массиве. После этого определяет сумму элементов, значение которых больше среднего арифметического элементов массива.