Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Структурированный тип данных массив
Структурированные данные представляют собой элементы, которые в свою очередь являются данными простых или структурированных типов. В языке Pascal различают следующие структурированные типы данных: массивы, строки, записи, множества, файлы. Массивв Pascal представляет собой конечный набор однотипных объектов (чисел, символов, строк и т. п.), имеющих общее имя и хранящихся в последовательно размещенных ячейках памяти. Использование массивов позволяет хранить элементы векторов и матриц в памяти компьютера с теми же обозначениями, что и в математических записях; организовать циклические вычисления с различными исходными данными; уменьшить объем программ, сделать их более наглядными и надежными. Размер массива − это количество элементов, содержащихся в нем. Каждый элемент массива занимает определенное местоположение, определяемое порядковым номером, который называется индексом. Количество индексов, необходимое для точного определения положения элемента, называется размерностью массива. В языке Pascal различают одно-, двух- и многомерные массивы. Наиболее широко используются одномерные массивы, соответствующие математическому представлению векторов, и двумерные, соответствующие прямоугольным таблицам − матрицам. Описание массивов При описании массива указывают его имя, размерность и диапазон изменения каждого индекса, а также тип входящих в массив элементов. Формат описания массива: <имя массива> :array[диапазон индексов]of<тип элементов> Можно декларировать массив-константу, тип данных массив или переменную-массив, например: Const mas_const = (2.3, 4, 6.4, −2, −3.7); {массив из пяти вещественных элементов-констант} Var D :array[1..10]ofinteger; {одномерный массив-переменная из десяти целочисленных элементов} B : array[0..50,0..20] ofchar;{двумерный массив-переменная, размером 51 ´ 21, из символьных элементов} C :array[-3..4]ofBoolean; {одномерный массив-переменная из восьми элементов логического типа} Type norm_mas = array[1..10,1..10]ofinteger; {описание типа данных пользователя – массив 10 ´ 10 из целых чисел} Var D1, D2 : norm_mas; {двумерные переменные-массивы типа norm_mas} Над массивами целиком определена операция присваивания, например, оператор вида D1:=D2 означает, что всем элементам массива D1 присвоены значения элементов массива D2. Могут быть также использованы логические выражения вида D1=D2 и D1<>D2. Все остальные операции с массивами осуществляются поэлементно. Формат обращения в программе к конкретному элементу массива: <имя массива> [<номер элемента>] Например, D[1] − обращение к первому элементу одномерного массива D, D[i] − обращение к i-му элементу одномерного массива D; D[2*i+1] − обращение к элементу одномерного массива D, номер которого является значением выражения 2*i+1. W[i, j] − обращение к элементу, расположенному на пересечении i-й строки и j-го столбца в двумерном массиве W, W[1, 5] − обращение к элементу, являющемуся пятым в первой строке двумерного массива W, W[3, j] − обращение к элементу третьей строки и j-го столбца. Ввод элементов массива Для работы с массивами широко используют циклы и вложенные циклы. Ввод элементов одномерного массива D размером n можно кодировать следующим образом: fori:=1tondoread(D[i]); Выполняется указанный фрагмент кода в случае ввода значений-чисел следующим образом: 1) параметру цикла (целочисленной переменной i) присваивается начальное значение (единица); 2) выполнение программы приостанавливается в ожидании ввода пользователем значений элементов массива; 3) после ввода пользователем строки из n чисел, разделенных пробелом, и нажатия клавиши Enterвыполнение программы возобновляется, и введенные числа заносятся в качестве значений в массив D. Вариантом кода, реализующего ввод значений элементов массива, является конструкция fori:=1tondoreadln(D[i]); Она выполняется так: 1) параметру цикла (целочисленной переменной i) присваивается начальное значение (единица); 2) выполнение программы приостанавливается в ожидании ввода пользователем первого элемента массива (обращение к процедуре ввода readln(D[i])); 3) после ввода пользователем значения первого элемента массива, который может быть целым или вещественным числом, символом или строкой (в зависимости от того, как описан массив D в разделе описаний программы), необходимо нажать клавишу Enter, что возобновит выполнение программы – введенное пользователем значение станет значением первого элемента массива D; 4) параметру цикла iприсваивается следующее значение (два). Далее повторяются шаги 2−4 алгоритма. Когда значение параметра цикла достигнет конечного (станет равным n), и пользователь введет значение последнего элемента массива и нажмет Enter, цикл for..to..do завершит свою работу и управление перейдет следующему оператору. Ввод элементов массива − многошаговая процедура. Поэтому следует позаботиться о том, чтобы в процессе выполнения программы были введены корректные данные. Один из способов повышения надежности ввода − вывод на экран подсказки в виде строки текста, дающего представление о количестве и типе элементов массива, например: n:=7; {количество элементов массива} writeln('Введите ',n,' целочисленных элементов fori:=1ton do Begin write('D[',i,']='); readln(D[i]) end; Первый раз приостановка выполнения программы произойдет тогда, когда на экране монитора отобразится подсказка D[1]= Далее необходимо набрать значение первого элемента массива и нажать клавишу Enter. Подобная подсказка будет появляться каждый раз перед тем, как программа требует ввода очередных данных. В языке Pascal, реализованном в Free Pascal, присвоение элементам массива заданных списком значений допустимо также и при описании массива. Например, Var D : array[1..10]ofinteger = (3,5,8,12,7,4,6,34,3,43); Для двумерного массива W, состоящего из n × m элементов, простейший фрагмент кода, реализующего ввод элементов массива, имеет вид: fori:=1tondo forj:=1tomdoread(W[i,j]); При выполнении этого кода сначала требуется ввести с клавиатуры значения элементов первой строки, затем второй и т. д. Завершается ввод нажатием клавиши Enter. Вывод элементов массива Вывод одномерного массива тоже производится поэлементно с помощью, например, цикла for..to..do: fori:=1tondowrite(D[i],’ ’); или fori:=1tondowriteln('D[',i,']=',D[i]); Посредством первого оператора цикла значения элементов массива D, разделенные пробелами, выводятся в строку. Например, 3 5 8 12 7 4 6 34 3 43 Второй оператор цикла выводит значения элементов массива D в виде 10 строк: D[1]=3 D[2]=5 D[3]=8 D[4]=12 D[5]=7 D[6]=4 D[7]=6 D[8]=34 D[9]=3 D[10]=43 Вывести двумерный массив можно в строку и в столбец. Но наиболее информативным является представление в форме прямоугольной таблицы. Код, реализующий такой способ вывода, имеет вид: fori:=1ton do Begin forj:=1tomdowrite(W[i,j]); {вывод элементов i-й строки через пробел} writeln {переход на новую строку} end; |
||
Последнее изменение этой страницы: 2018-05-10; просмотров: 224. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |