Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лабораторная работа № 5. Двумерные массивы




Begin

Ввод и вывод одномерных массивов в Паскале

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

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

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

Тип массив описывается следующим образом:

 

Type < имя _ типа >= array [ I ] of T;

где I – тип индекса массива, T – тип его элементов.

Var

Имя переменной: имя типа;

Переменную типа массив можно описать сразу в разделе описания переменных Var:

Var Имя переменной: array [тип индекса (ов)] Of тип элементов;

Здесь

Array – служебное слово (в переводе с английского означает «массив»);

Of – служебное слово (в переводе с английского означает «из»).

Тип индекса – любой порядковый тип, кроме типов integer, longint.

Тип же самих элементов может быть любым, кроме файлового типа.

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

Например:

Type

mas = array [1..20] of real;

Var X: mas;

Массив Х – одномерный, состоящий из двадцати элементов вещественного типа. Элементы массива хранятся в памяти компьютера последовательно друг за другом.

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

Индексы элементов массива могут начинаться с любого целого числа, в том числе и отрицательного, например:

Type bb = Array [-5..3] Of Boolean;

Массивы данного типа будут содержать 9 логических переменных, пронумерованных от -5 до 3.

Ввод и вывод массивов осуществляется поэлементно.

Введем одномерный массив Х, состоящий из 30 элементов, то есть необходимо ввести некую последовательность элементов Х1, Х2, …, Х30.

Пусть i – индекс (порядковый номер) элемента в массиве Х. Тогда

Х i – i-й элемент массива Х, где i = 1, 2, …, 30.

Задание 9

Дан одномерный массив, элементами которого являются вещественные числа. Определить количество положительных чисел в массиве.

Текст программы на языке Турбо Паскаль

 

Program ChisloPol;

Uses crt;

Var c: array[1..1000] of real; i, n, K: integer;

clrscr;

{*Задание размера массива*}

writeln(‘введите размер массива’);

readln(n);

{*Ввод элементов массива*}

for i:=1 to n do readln(c[i]);

{*Подсчет числа положительных элементов*}

K:=0;

for i:=1 to n do if c[i]>0 then K:=K+1;

{*Печать результатов*}

writeln(‘число положительных элементов массива равно ’, K);

repeat until keypressed;

end.


Блок-схема
Задания для самостоятельного выполнения

Составить программу, выбрав вариант задачи по номеру компьютера. Варианты заданий приведены в табл.4.

Таблица 4.

 

Вариант Задача
  Задан одномерный массив. Найти сумму положительных элементов массива.
  Найти сумму всех четных элементов массива (или сумму элементов, кратных заданному числу).
  Найти сумму всех четных элементов массива, стоящих на четных местах, то есть имеющих четные номера.
  Найти сумму первых пяти элементов массива. Сколько элементов массива превосходят по модулю заданное число А? Отрицательные элементы возвести в квадрат.
  Найти сумму элементов, больших данного числа А (А вводить с клавиатуры). Заменить все элементы большие А на 0.
  Найти сумму элементов, принадлежащих промежутку от А до В (А и В вводить с клавиатуры).
  Задан одномерный массив целых чисел. Найти число четных элементов. К четным элементам прибавить А, а из элементов с четными номерами вычесть В.
  Найти максимальный элемент массива и его номер при условии, что все элементы различные.
  Найти номера всех отрицательных элементов (вывести их на экран); если таких нет, то сообщить об этом.
  Найти номера всех элементов с максимальным значением.
  Найти минимальный элемент.
  Найти число нечетных элементов. Заменить все четные элементы на их квадраты, а нечетные удвоить.
  Найти число отрицательных элементов. Вычесть из положительных элементов элемент с номером k1, а к отрицательным прибавить элемент с номером к2, нулевые элементы оставить без изменения.

 


 

Цель работы: составление программ на Турбо-Паскале, ис­пользующих массивы. Освоение справочной системы Турбо-Паскаль.

 

 

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

Мы уже рассматривали формирование и обработку одномерных массивов. Вспомним, что в массив мы объединяем конечную последовательность компонентов одного типа и даем им общее имя. Каждый отдельный компонент массива называется элементом. Количество элементов называется размером массива. Тип элементов определяет тип массива. Размер и тип массива указываются при его описании, причем размер может быть указан либо конкретным значением, либо ранее определенной константой. Номер элемента называется индексом. Индексы могут быть целыми положительными константами или целыми переменными. Чтобы обратиться к некоторому элементу массива, нужно рядом с идентификатором массива в скобках указать индекс элемента.

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

Первый индекс – это номер строки, а второй – номер столбца, где расположен элемент массива.

Размер двумерного массива задается парой чисел: M*N, где M – число строк, а N –число столбцов в таблице.

Блок-схема ввода элементов матрицы и свойства элементов матрицы изображены на рисунках.

 

Пусть задан двумерный массив Matr, имеющий размер 10*20. Этот массив на языке Паскаль может быть описан следующим образом:

Var Matr: array [1..10,1..20] of integer;

тогда Matr[5,7] – элемент, расположенный в 5-ой строке и в 7-ом столбце.

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

Имя, которое программист присваивает своему определяемому типу, – произвольный идентификатор. Объявление типа должно быть сделано в разделе объявлений, и ему должно предшествовать кодовое слово Type.

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

Type Digit = array [0..9] of integer; Matrix = array [1..100, 0..9] of real; Var m: Matrix; d: Digit; i: integer;

Описание типа массива задается следующим образом:

<имя типа> = array [<сп. инд. типов>] of <тип>;

где:

<имя типа> – правильный идентификатор,
<сп. инд. типов> – список из одного или нескольких индексных типов, разделенных запятыми,
<тип> – любой тип Турбо Паскаля.

Примечание. Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов через две точки (..). Так как <тип>, идущий за кодовым словом of, - любой тип Турбо Паскаля, он может быть, в частности, другим массивом.

Рассмотрим примеры.

Пример 1. Массив можно описать как одномерный, элементами которого в свою очередь являются одномерные массивы.

Const n=2; m=3; Type MyArray1 = array [1..m] of integer; MyArray2 = array [1..n] of MyArray1; Var V: MyArray1; A: MyArray2;

В данном случае переменная V объявлена как одномерный массив из трех элементов целого типа, а переменная А описана как двумерный массив из двух строк, в каждую из которых включено по три элемента.

Пример 2. Описание массива можно сократить, исключив определение массива MyArray1.

Const n=2; m=3; Type MyArray2 = array [1..n] of array [1..m] of integer; Var A: MyArray2;

Пример 3. Еще более краткое описание массива А можно получить, указывая имя массива и диапазоны изменения индексов для каждой размерности массива (чем мы уже пользовались).

Const n=2; m=3; Type MyArray2 = array [1..n, 1..m] of integer; Var A: MyArray2;

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

Const n=2; m=3; Var A: array [1..n, 1..m] of integer;



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


Дата добавления: 2014-12-10; Просмотров: 1363; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.