Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

Информатика, программирование->Лекция
знак числа - плюс або мінус. Під знак числа приділяється один біт у двійковому поданні, він розташовується в старшому, тобто знаковому розряді. Одиниц...полностью>>
Информатика, программирование->Курсовая работа
Процес створення програмного забезпечення складний, особливо сьогодні, в умовах «швидкісного кодування». Обчислювальні системи неперервної розростають...полностью>>
Информатика, программирование->Курсовая работа
Для эффективного управления , предприятиями и организациями различных широко внедряются системы автоматизированного управления, ядром которых являются...полностью>>
Информатика, программирование->Конспект урока
Ми вже розглянули один із редакторів, який входить до складу пакета Microsoft Office – Microsoft Excel. У чому полягає основне призначення Microsoft E...полностью>>

Главная > Лекция >Информатика, программирование

Сохрани ссылку в одной из сетей:

Типы данных, определяемых программистом.

Цель:

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

Задачи:

Воспитательная: работа над собой.

Учебная: создание приложений.

Развивающая: развитие внимательности.

План занятия.

  1. Организационный момент.

  2. Изучение нового материала.

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

  4. Резюме.

  5. Домашнее задание.

Изучение нового материала.

До этого момента в программах использовались стандартные типы данных: integer, Real, Char, string и Boolean. Вместе с тем, язык Delphi позволяет программисту определить свой собственный тип данных, а затем данные этого типа использовать в программе. Объявляемый программистом новый тип данных базируется на стандартных типах или на типах, созданных программистом ранее. Тип, определенный программистом, может быть отнесен к:

  • перечисляемому;

  • интервальному;

  • составному типу данных (записи).

Перечисляемый тип

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

Тип =( Значение1, Значение2, ... Значение i)

где:

  • тип – имя перечисляемого типа данных;

  • Значение i – символьная константа, определяющая одно из значений, которое может принимать переменная типа Тип.

Примеры:

TDayOfWeek = (MON,TUE,WED,THU,FRI,SAT,SUN);

TColor = (Red,Yellow,Green);

После объявления типа можно объявить переменную, относящуюся к этому типу, например:

type

TDayOfWeek = (MON,TUE,WED,THU, FRI,SAT,SUN) ;

var

ThisDay, LastDay: TDayOfWeek;

Помимо указания значений, которые может принимать переменная, описание типа задает, как значения соотносятся друг с другом. Считается, что самый левый элемент списка значений является минимальным, а самый правый — максимальным. Для элементов типа DayOfWeek справедливо:

MON < TUE < WED < THU < FRI < SAT < SUN

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

if (Day = SAT) OR (Day = SUN) then

begin

{ действия, если день – суббота или воскресенье }

end;

Приведенную инструкцию можно записать и так:

if Day > FRI then begin

{ действия, если день – суббота или воскресенье }

end;

Очевидно, что программа, написанная с использованием объявленного программистом типа, более наглядна, легче читается и, следовательно, уменьшается вероятность появления ошибки. Во время компиляции Delphi проверяет соответствие типа переменной типу выражения, которое присваивается переменной. Если тип выражения не может быть приведен к типу переменной, то выводится сообщение об ошибке. Например, в фрагменте программы

type

TDayOfWeek = (MON, TUE, WED, THU, FRI, SAT, SUN) ;

var

ThisDay: TDayOfWeek;

begin

ThisDay:=1;

if ThisDay = 6 then

begin

{ блок инструкций }

end;

инструкция ThisDay:= 1; ошибочна, т. к. переменная ThisDay принадлежит к определенному программистом перечисляемому типу TDayOfWeek, а константа, значение которой ей присваивается, принадлежит к целому типу (integer). В условии инструкции if тоже ошибка.

Можно утверждать, что объявление перечисляемого типа – это сокращенная форма записи объявления именованных констант. Например, приведенное выше объявление типа TDayOfWeek равносильно следующему объявлению:

const

MON=0;

TUE=1;

WED=2;

THU=3;

FRI=4;

SAT=5;

SUN=6;

Интервальный тип

Интервальный тип является отрезком или частью другого типа, называемого базовым. В качестве базового обычно используют целый тип данных (integer). При объявлении интервального типа указываются нижняя и верхняя границы интервала, т. е. наименьшее и наибольшее значение, которое может принимать переменная объявляемого типа. В общем виде объявление интервального типа выглядит так:

Тип = НижняяГраница..ВерхняяГраница;

где:

  • тип – имя объявляемого интервального типа данных;

  • НижняяГраница – наименьшее значение, которое может принимать переменная объявляемого типа;

  • верхняяГраница – наибольшее значение, которое может принимать переменная объявляемого типа.

Примеры:

TIndex = 0 .. 100;

TRusChar = 'А' .. 'я';

В объявлении интервального типа можно использовать именованные константы. В следующем примере в объявлении интервального типа TIndex использована именованная константа HBOUND:

const

HBOUND=100;

type

TIndex=l..HBOUND;

Интервальный тип удобно использовать при объявлении массивов, например, так:

type

TIndex =1 .. 100;

var

tab1 : array[TIndex] of integer;

i:TIndex;

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

type

TMonth = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);

TSammer = Jun.. Aug;

Запись

В практике программирования довольно часто приходится иметь дело с данными, которые естественным образом состоят из других данных. Например, сведения об учащемся содержат фамилию, имя, отчество, число, месяц и год рождения, домашний адрес и другие данные. Для представления подобной информации в языке Delphi используется структура, которая носит название запись (record). С одной стороны, запись можно рассматривать как единую структуру, а с другой – как набор отдельных элементов, компонентов. Характерной особенностью записи является то, что составляющие ее компоненты могут быть разного типа. Другая особенность записи состоит в том, что каждый компонент записи имеет имя.

Запись – это структура данных, состоящая из отдельных именованных компонентов разного типа, называемых полями.

Объявление записи

Как любой тип, создаваемый программистом, тип "запись" должен быть объявлен в разделе type. В общем виде объявление типа "запись" выглядит так:

Имя = record

Поле_1 : Тип_1;

Поле_2 : Тип_2;

Поле_К : Тип_К;

end;

где:

  • Имя – имя типа "запись";

  • record – зарезервированное слово языка Delphi, означающее, что далее следует объявление компонентов (полей) записи;

  • поле_i и тил_i – имя и тип i-го компонента (поля) записи, где i=1, ..., k;

  • end – зарезервированное слово языка Delphi, означающее, что список полей закончен.

Примеры объявлений:

type

TPerson = record

f_name: string[20];

i_name: string[20];

day: integer;

month: integer;

year: integer;

address: string[50];

end;

TDate = record

day: integer;

month: integer;

year: integer;

end;

После объявления типа записи можно объявить переменную-запись (или просто запись), например:

var

student : TPerson;

birthday : TDate;

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

ShowMessage('Имя: ', student.f_name + #13 + 'Адрес: ', student.address);

выводит на экран содержимое полей f_name (имя) и address (адрес) переменной-записи student.

Иногда тип переменной-записи объявляют непосредственно в разделе объявления переменных. В этом случае тип записи указывается сразу за именем переменной, через двоеточие. Например, запись student может быть объявлена в разделе var следующим образом:

student: record

f_name:string[20];

i_name:string[20];

day:integer;

month:integer;

year:integer;

address:string[50];

end;

Инструкция with

Инструкция with позволяет использовать в тексте программы имена полей без указания имени переменной-записи. В общем виде инструкция with выглядит следующим образом:

with Имя do

begin

( инструкции программы }

end;

где:

  • имя – имя переменной-записи;

  • with – зарезервированное слово языка Delphi, означающее, что далее, до слова end, при обращении к полям записи имя, имя записи можно не указывать.

Например, если в программе объявлена запись

student:record // информация о студенте

f_name: string[30]; // фамилия

i_name: string[20]; // имя

address: string[50]; // адрес

end;

и данные о студенте находятся в полях Edit1, Edit2 и Edit3 диалогового окна, то вместо инструкций

student.f_name := Editl.text;

student.i_name := Edit2.text;

student.address := Edit3.text;

можно записать:

with student do

begin

f_name := Edit1.text;

i_name := Edit2.text;

address := Edit3.text;

end;

Ввод и вывод записей в файл

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

type

ТРеrson = record

f_riame: string [20] ;

l_name: string[20];

address: string[50];

end;

var

f: file of TPerson;

объявляют файл, компонентами которого являются записи типа TPerson.

Процесс работы с файлом записей практически ничем не отличается от процесса работы с обычным файлом. Сначала надо объявить файловую переменную и с помощью процедуры Assign связать эту переменную с конкретным файлом. Затем нужно открыть файл (для чтения, записи или обновления). После этого можно прочитать запись из файла или записать запись в файл.

Вывод записи в файл

Рассмотрим программу, которая записывает в файл введенные пользователем данные о результатах соревнований, формируя, таким образом, простую базу данных. Исходные данные вводятся в поля диалогового окна и сохраняются в файле, компонентами которого являются записи типа TMedal.

Для ввода фамилии спортсмена применяется поле редактирования (компонент Edit). Для ввода названия вида спорта и страны используются компоненты ComboBox (комбинированный список). Компонент ComboBox, значок которого находится на вкладке Standard, дает возможность ввести данные либо непосредственно в поле ввода-редактирования, либо путем выбора из списка, который появляется в результате щелчка на кнопке раскрывающегося списка.

Таблица 1. Свойства компонента ComboBox

Свойство

Определяет

Name

Имя компонента. Используется для доступа к свойствам компонента

Text

Текст, находящийся в поле ввода-редактирования

Items

Элементы раскрывающегося списка

DropDownCount

Количество отображаемых элементов в раскрытом списке

Left

Расстояние от левой границы компонента до левой границы формы

Top

Расстояние от верхней границы компонента до верхней границы формы

Height

Высоту компонента (поля ввода-редактирования)

Width

Ширину компонента

Font

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

ParentFont

Признак наследования свойств шрифта родительской формы

Список, который появляется в результате щелчка на кнопке раскрытия списка, может быть сформирован как в процессе разработки формы приложения, так и во время работы программы. Чтобы сформировать список во время разработки формы, нужно в окне Object Inspector выбрать свойство Items, щелкнуть на кнопке активизации редактора списка строк (кнопка с тремя точками) и ввести элементы списка.

Полный текст программы приведен в листинге 1.

Листинг 1. Добавление записей в файл

unit apprec_;



Загрузить файл

Похожие страницы:

  1. Типы данных, определяемые пользователем (агрегативные типы данных)

    Контрольная работа >> Информатика, программирование
    Типы данных, определяемые пользователем (агрегативные типы данных) Язык C позволяет программисту создавать следующие типы данных: переименование типов перечислимый тип структура битовые поля ...
  2. Способы описания различных типов данных в программах на языке Delphi

    Практическая работа >> Информатика, программирование
    ... типов данных Object Pascal поддерживает простые типы данных, определяемые самим программистом. К ним относятся перечислимый и интервальный типы. Данные этих типов ...
  3. Типы данных в языке Паскаль

    Реферат >> Информатика
    ... значений, принадлежащим типу. Предикатной функцией, определяющей принадлежность объекта к данному типу Необходимость использования типов данных Типы данных различаются начиная ...
  4. Информационные данные

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

    Лекция >> Информатика, программирование
    ... данных, определяемые программистом, описываются в специальном разделе - разделе типов. Раздел типов определен синтаксической диаграммой: Раздел типов Перечисляемый тип данных ...

Хочу больше похожих работ...

Generated in 0.0019688606262207