русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Структурированные типы данных

Итак, структурированные типы данных определяют упорядоченную совокупность скалярных переменных и характеризуются типом своих компонентов. В языке Turbo Pascal допускаются следующие структурированные типы данных: строки, массивы, множества, записи, файлы, указатели, процедурные типы и объекты.

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

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

Количество элементов в массиве всегда конечно.

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

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

Характеристики массива:

- тип – общий тип элементов массива;

- размерность – количество индексов массива;

- диапазон – количество допустимых значений каждого индекса;

- форма – совокупность размерности и диапазонов.

Массив должен быть объявлен в разделе описания переменных:

Var имя массива : array [диапазон индексов] of тип;

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

Пример:

A: array [1..5, 1..5] of real;

X: array [1..10] of integer;

После объявления массива каждый его элемент можно обрабатывать, указав идентификатор (имя) массива и индекс элемента в квадратных скобках. Например, запись Mas[3], Vector[10] позволяет обратиться к третьему элементу массива Mas и десятому элементу массива vector. При работе с двумерными массивами указываются два индекса. Например, запись Matr[4, 6] делает доступным для обработки значение элемента, находящегося в четвертой строке шестого столбца массива Matr.

Рассмотрим типичные ситуации, возникающие при работе с данными типа array. Для этого опишем три массива и четыре вспомогательные переменные.

Var A, D: ARRAY [1..4] OF REAL;

B: ARRAY [1..10, 1..15] OF INTEGER;

I, J, K: INTEGER;

S:REAL;

Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод-вывод значений производится поэтапно. Значения элементам массива можно присвоить с помощью оператора присваивания, однако чаще всего они вводятся с экрана с помощью оператора read или readln с использованием оператора цикла for:

For i:=1 to 4 do readln(a[i]);

Аналогично значения элементов двумерного массива вводятся с помощью сложенного оператора for:

For i:=1 to 10 do

For j:=1 to 15 do

Read(b[I, j]);

Можно ввести значения и отдельных элементов, а не всего массива. Так операторами read(A[3]), readln(b[6, 9]) вводятся значения третьего элемента вектора А и значения элемента, расположенного в шестой строке девятого столбца матрицы В.

Вывод значений элементов массива выполняется аналогичным образом, но используются операторы write и writeln:

For i:=1 to 4 do

Write(A[i]); writeln;

Или

For i:=1 to 10 do begin

For j:=1 to 15 do

Write(b[I, j]); writeln; end;

Иногда требуется осуществить поиск в массиве каких-либо элементов, удовлетворяющих неким условиям. Пусть, например, надо выяснить, сколько элементов массива А имеют нулевое значение. Для ответа на этот вопрос введем дополнительную переменную к и воспользуемся операторами for и if:

K:=0;

For i:=1 to 4 do

If a[i]=0 then k:=k+1;

После выполнения цикла переменная к будет содержать количество элементов массива А с нулевыми значениями.

Пример 1.Составить программу, которая формирует двумерный массив по формуле и выводит его на экран.

Program massiv_1;

Var Mas:array[1..5, 1..5] of real;

I, j:integer;

Begin

For i:1 to 5 do begin

For j:=1 to 5 do begin

Mas[I,j]:=sin(i*j)+cos(i/j);

Write(mas[I, j]:6:2);

End;

End;

End.

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

Program massiv_2;

Var mas:array[1..20] of integer;

I, max, nim:integer;

Begin

Randomize;

For i:1 to 20 do begin

Mas[i]:=random(99)+1;

Write(mas[i]:6);

End; writeln;

Max:=-100000000;

For i:=1 to 20 do

If mas[i]>max then begin

Max:=mas[i]; nim:=I;

End;

Writeln(‘max=’, max:6, ‘ nom=’, nom:2);

End.

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

Program massiv_3;

Const n=10;

M:array[1..n] of integer=(9, 11, 12, 3, 19, 1, 5, 17, 10, 18);

Var s, I, j:integer;

Begin

For i:=1 to n-1 do

For j:=i+1 to n do

If m[i]>m[j] then begin

S:=m[i];

M[i]:=m[j];

M[j]:=s;

End;

For i:=1 to n do

Write(m[i]:6); writeln;

End.

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

Program massiv_4;

Const n=4;

M:array[1..n, 1..4] of integer=((3,2,4,1),(5,7,6,8),(9,11,10,12),(15,14,16,13));

Var i, j, k:integer;

Buffer:integer;

Begin

For k:=1 to n do

For j:=1 to n-1 do

For j:=i+1 to n do

If m[k, i]<m[k, j] then begin

Buffer:=m[k, i];

M[k, i]:=m[k, j];

M[k,j]:=buffer;

End;

For i:=1 to n do begin

For j:=1 to n do

Write(m[i, j]:6); writeln;

End;

End.

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

Program massiv_5;

Const n=5;

Var d:array [1..n] of integer;

I, k:integer;

S:real;

Begin

Randomize;

For i:=1 to n do begin

D[i]:=random(100);

Write(d[i]);

End; writeln;

K:=0; s:=0;

For i:=1 to n do

If d[i]>10 then begin

S:=s+d[i];

K:=k+1;

End;

S:=s/k;

Writeln(‘s=’, s:6:2);

End.

Множество – это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно рассматривать как единое целое. Каждый объект в множестве называется элементом множества. Все элементы должны принадлежать одному из скалярных типов, кроме вещественного. Этот тип называется базовым типом множества. Базовый тип задается диапазоном или перечислением. Область значений типа множества – набор всевозможных подмножеств, составленных из элементов базового типа. Значения элементов указываются в квадратных скобках: [1,2,3,4], [`a`,..`z`]. Если множество не имеет элементов, оно называется пустым и обозначается как [ ]. Количество элементов множества называется мощностью.

Запись - это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается идентификатором record и заканчивается словом end. Т.е. запись представляет собой наиболее общий и гибкий тип данных, т.к. может наиболее полно охарактеризовать используемый объект.

Файлом называется совокупность данных, записанная во внешней памяти под определенным именем. Каждый файл на диске имеет обозначение, которое состоит из двух частей: имени (от 1 до 8 символов) и расширения (от 1 до 3 символов), например:

Command.com, turbo.exe, autoexec.bat.

Подпись автора _______ К.Т. Тынчеров

«_____» ____________________ 2009 г.

Лекция рассмотрена на заседании

кафедры ИТМЕН

«_____» _________________ 2009 г.

протокол № ______

Просмотров: 1103


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.