Баланс: 0.00
Авторизация
Демонстрационный сайт » Рефераты » Информатика (Рефераты) » Программирование с использованием структурирование типы данных
placeholder
Openstudy.uz saytidan fayllarni yuklab olishingiz uchun hisobingizdagi ballardan foydalanishingiz mumkin.

Ballarni quyidagi havolalar orqali stib olishingiz mumkin.

Программирование с использованием структурирование типы данных Исполнитель


 с использованием структурирование типы данны~.doc
  • Скачано: 48
  • Размер: 79 Kb
Matn

Программирование с использованием структурирование типы данных

Цель: Формирование умений, навыков и знаний по изучению программирование с использованием  структурирование типы данных

План:

1. Регулярные типы данных (массивы).

2. Запись

3. Множественные типы данных (множества).

4. Файловые типы данных (файл)

 {spoiler=Подробнее}

Структурированные типы данных включают массивы, записи, множества, файлы, указатели. Они отличаются от простых тем, что их переменные имеют более одной компоненты

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

Типы компонент и индексов задаются в виде:

TYPE

         A=ARRAY (T1) OF T2;

где А - имя массива; Т1-скалярный или ограниченный тип индекса (типы REAL и INTEGER не допускается);

Т2-тип компоненты или базовый тип (может быть простым или сложным).

         С использованием раздела описания типов массивы с именами XTR,WRD представляются в виде:

         TYPE

                   XTR=ARRAY(1…NM) OF REAL;

                   WRD= ARRAY(1…NM) OF BOOLEAN;

         Переменные  в разделе описания переменных описываются с помощью имен, определенных в разделе TYPE:

         VAR

                   YT,ZT:XTR;

                   FT:WRD;

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

         VAR

                   YT,ZT: ARRAY(1…NM) OF REAL;

                   TF: ARRAY(1…NM) OF BOOLEAN

         В тех случаях, когда массивы принадлежат к одному типу и содержат одинаковое количество компонент, допускает использовать оператор присваивания вида:

YT=ZT;

         После выполнения оператора компоненты массива YT получает значения соответствующих компонент массива ZT.

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

         В языке ПАСКАЛЬ кроме одномерных массивов используется  массивы большей размерности. Так как базовый тип массива быть  любым типом данных, то в частности, он может быть другим массивом. В результате получается многомерный массив, который в общем виде представляет как

         TYPE

                   B=ARRAY (T2)OF T3;

                   A=ARRAY (T1)OF B;

где Т1, Т2-типы индексов;  Т3-тип компонент.

         Матрица А (15х15) действительного типа описывается следующим образом:

         CONST

                   SIZE=15,

         TYPE

                   INDEX=1… SIZE;

                   STLA=ARRAY (INDEX) OF REAL;

                   AMATR=ARRAY (INDEX) OF STLA;

         Определение типа столбец (STLA) можно включить в определения типа матрица:

         TYPE

                   AMATR=ARRAY (INDEX) OF ARRAY (INDEX) OF REAL;

         Чаще используется боле компактная запись определения типа в виде:

         AMATR=ARRAY (INDEX,INDEX) OF REAL;

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

         В простейшем случае список полей представляет собой перечень имен и типов. После определения имена полей используется  как имена переменных, входящих в состав записи. Синтаксическая диаграмма общей части списка полей приведена на рис. 1.37.

         Геометрические фигуры- прямоугольник, треугольник и круг описываются  следующим образом:

         TYPE

         PRYM=RECORD

                       HPR,WPR:REAL

                       END;

         TYPE

                   TREYG=RECORD

                                  SIDE1,SIDE2,ALFA:REAL

         TYPE

         KRYG=RECORD

                       RAD:REAL;

                        END;

Где прямоугольник (PRYM) описан высотой  (HPR) и шириной (WPR) : треугольник (TREYG)---двумя сторонами (SIDEL,SIDE2) и углом (ALFA)между ними; круг (KRYG)радиусом (RAD).

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

         Например, запись имеет вид:

     FIGUR= REKORD

                              PERIM, ALFA:REAL

                     END:

    VAR

         PRYM.TREYG. KRYG;

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

        

         PRYM.PERIM:=2.0*(HPR+WRP);

         PRYM.AREA:=HRP* WRP;

         KRYG.PERIM;=2.0*PI*RAD;

         KRYG.AREA:=2.0*PI*SQR(RAD);

                   При неоднократном обращении к одному и тому же полю записи или к нескольким полям одной и той же записи удобно воспользоваться оператором присоединение, синтаксическая диаграмма которой показана на рис. 1.38.

         Использую оператор присоединения для предыдущего примера, мoжно записать:

         WITH PRYM DO

                   BEGIN

                            PERIM:=2.0*(HPR+WRP);

                            AREA:=HPR*WPR

                         END:

                   WITH KRYG DO

                            BEGIN

                                      PERIM:=2.0*PI*RAD:

                                      AREA:=2.0*PI*SQR(RAD)

                            END;

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

         Язык ПАСКАЛЬ допускает использование записей одного и того же типа, содержащих переменные поля. В этом случае список полей записи содержит общую вариантную части.   Синтаксическая диаграмма вариантной части списка полей показана на рис. 1. 39. В описании записи перечисляются возможные варианты данной структуры. Выбор варианта записи осуществляется в зависимости от значение селектора варианта, которым является тип записи и означает окончание вариантов. После вариантной части записи никакие поля появляется не могут. Имена полей, использующиеся в описании различных вариантов, не  должны повторяться в этой записи, нельзя также применять одно и тоже имя для обозначения полей в общей и вариантной частях записи.

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

         Примеры записи:

         TYPE

                   STUD=1..25;

                   GRUP=SET OF STUD

         VAR

                   STUD3,STUD4,STUD5:GRUP;

         Элементы простого типа, все подмножества множественного типа и пустое подмножество составляют множество. Пустое подмножество не содержит ни одного элемента. Множества строятся из элементов с помощью конструктора множества, который представляет собой перечисление через  запятую элементов, заключенных в квадратные скобки. Пустое множество представляется как [] .

         Конструкция М..N обозначает множество всех элементов I базового   типа, для которых выполняется условие М £ i£. При М>N  множество [ М...N] является пустым

         Например, если переменная определена как SET OF 1..3, то она может  принимать одно значение  из множества [1,2,3], [1,2], [1,3],[2,3], [1], [2], [ ].  Каждое из этих значений является элементом базового типа множества.

         Например, множество состоит полностью или частично из диапазона упорядоченных значений, использовать сокращенный вид записи.  Например, [1,2,3,4,5,6] то же, что и [1…6].

         Переменные, принадлежащие к множественному типу, могут быть описаны непосредственно в разделе VAR  без предварительного определение имени типа в разделе TYPE

         TYPE

                   STUD=1..25;

         VAR

                   GRUP:SET OF STUD;

                   STUD3,STUD4,STUD5:GRUP;

         Ко всем объектам множественного  типа применимы операции объединения (+), пересечения (*) и вычитание (-). Так, [1,2]+[1,3]=[1,2,3]=[1,2],[1,2,3]-[1,2]=[3].

         Операция вычитания, например А-В, означает множество всех элементов А, не являющихся элементами В.

         Операции отношения применимы  также к объектам  множественного типа: проверка на равенство  (=), неравенство (< >), включение (< = или>=) и принадлежность множеству (IN). Отношения, приведенные ниже, принимают следующие значения:

         [2,3]=[ ]-FALSE,[1,3]=[3,1]-TRUE

         [1,2] < =[1,2,3]-TRUE (содержится в), [2,3] >=[1]-FALSE (содержит).

         При использовании операции IN первый операнд является выражением, задающим значение базового   типа множества, то результат  отношения  есть TRUE. Например, определение типа:

         TYPE

                   DAYS=(NON,WED,THU,SAT, SUN);

         NONTHS=(JAN,FEB,MAR,APR,MAY/JUN,JUL,AUG,SEP,OCT,NOV,DEC);

А отношение FEB IN DAYS примет значение FАLSE.

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

         Выражение с использованием логических операций вида (CH>=’0’) AND (CH< ='9') с использованием операции   имеет вид CH IN[‘0’..’9’].

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

         Язык ПАСКАЛЬ допускает использование множественного  типа данных в качестве  любого другого структурированного типа ( массива, записи), что значительно расширяет  возможности языка.

         Файловые типы данных (файлы)  представляют собой упорядоченную совокупность произвольного числа однотипных  компонент  с последовательным  методом доступа. Синтаксическая диаграмма файлового типа данных показана на рис. 1.41.

         Понятие файла в языке ПАСКАЛЬ имеет исключительную важность, так как файлы могут хранить гораздо больше информации,  чем основная память машины. С помощью файлов  осуществляется  связь программы с входными и выходными стандартные файлы INPUT и OUTPUT.

         Файл в языке ПАСКАЛЬ представляется   в виде переменной. Он может существовать как до,  так и после выполнения программы. При каждом обращении к файлу программе доступно только одна компонента.

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

         TYPE

                   STROKA FILE OF CHAR;

                   NUMBER FILE OF INTEGER;

         К файлам применимы следующие стандартные функции и процедуры:

         EOF (ИФ)=функция «конец файла» указывает, находится ли файл с именем   ИФ в состоянии «конец файла». Если файл  пуст, то функция   EOF принимает значение TRUE, в противном случае значение FALSE;

         PUT (ИФ) – процедура  осуществляет запись значения буферной переменной ИФ ­ в файл ИФ. Запись производится, если значение функции EOF равно TRUE этом случае после записи значение функции EOF остается равным TRUE , а значение буферной переменной не определено;

         GET (ИФ) –процедура осуществляет передвижение  по файлу на одну компоненту. Буферная переменная значение этой компоненты, если файл не пуст. Если следующего значения  компоненты не существует, то значение функции EOF принимает значение TRUE, а значение буферной переменной ИФ­ не определено. Процедура GET определена в тех случаях, когда перед выполнением следующего вызова функция EOF  имеет значение FALSE (файл не пуст);

         RESET (ИФ)-процедура осуществляет поиск начала файла и подготавливает  его к просмотру. Если функция EOF имеет значение FALSE, то буферная переменная ИФ­ приобретает значение первой компоненты файла. В противном случае функция EOF имеет значение TRUE , а значение  буферной переменной не определено;

         REWRITE (ИФ)-процедура предшествует созданию файла ИФ. Значение ИФ заменяется  на пустой файл. Функция EOF (ИФ) принимает значение  TRUE., и можно создавать новый файл.

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

         Одна из разновидностей файла – последовательный файл, который является основой  процедур ввода-вывода. Этот файл представляет  собой последовательность  компонент с двумя видами действий: создание или просмотр файла. Создание файла осуществляется  добавлением их компонент и конец  первоначального пустого файла, а просмотр осуществляется  с начала по одному элементу. В обоих случаях компоненты файла обрабатываются  последовательно. Файлы хранятся  на внешних  запоминающих устройствах ЭВМ. В любой момент времени доступ  только один компонент  файла который и хранится в оперативной памяти ЭВМ. Для файловых типов данных или других типов с файловыми  компонентами не доступны  ни операторы присваивания ни проверки на равенство.

         Создания и просмотр файла рассмотрим на примере:

         VAR

         ITEM:TX;

         FL:FILE OF TX;

         CH:CHAR;

         КОНТРОЛЬНЫЕ ВОПРОСЫ:

1. Ограничено ли количество измерений массивов в языке ПАСКАЛЬ?

2. Какой тип характеризует объекты называемые записями?

3. Как осуществляется доступ  к полям записи?

4.Какие типы данных используется в качестве базовых при построением множественных типов?

5.В каких случаях удобно использовать файлы?

6 Где хранятся  файлы?

7.Каким образом описываются переменные файловых типов?

ОПОРНЫЕ СЛОВА:

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

               ИСПОЛЬЗУЕМЫЕ ЛИТЕРАТУРЫ:

1. Персональный компьютер :Диалог и программные средства. Москва – 1991 г. УДН. В.М.Матюшок и др.

2. Программирование на языке Паскаль. Радио и связи. Москва 1998 г. О.Н.Перминов.

3. Программирование на алгоритмических языках Бейсик, Фортран, Паскаль. Москва. ’’Просвещение 1991г.Б.И.Чернов.

4. Языки  программирования (ПАСКАЛЬ, ПЛ/М). Москва «Высшая школа» 1987. В.Е.Алексеев, А.С. Ваулин.

5.   www.kbsu.ru/~book/www.mtuci.ruwww.mesi.ruwww.informatika.ru comp-science.narod.ru

 {/spoilers}

Комментарии (0)
Комментировать
Кликните на изображение чтобы обновить код, если он неразборчив
Copyright © 2024 г. openstudy.uz - Все права защищены.