русс | укр

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

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

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

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


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

Краткое изложение теоретического материала


Дата добавления: 2014-11-28; просмотров: 480; Нарушение авторских прав


Тип данных запись позволяет объединять разнотипные данные.

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

Обработка записей в языке Турбо Паскаль:

6. Описание нового типа данных - запись:

a. Описание типа:

Type <имя типа>= Record

<имя поля 1> :<тип поля 1>;

<имя поля N> :<тип поля N>

End;

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

b. Описание переменной типа запись:

Var<имя переменной> : <имя описанного выше типа>;

Например:

Type Book = Record { тип данных книга состоит из трех полей }

Name, Author : String [ 30 ]; { название и автор }

Year : Integer { год издания }

End;



Var Bk : Book; { Переменная Bk – запись с тремя полями }

7. Обращение к полям записи:

Для обращения к отдельному полю записи следует сначала указать имя переменной типа запись, затем через точку имя поля. Например: Bk.Name.

Для ввода значений полей описанной выше записи Bk может быть записан следующий фрагмент программы:

Write (‘Введите название книги ’); Readln (Bk.Name);

Write (‘Введите фамилию автора ’); Readln (Bk.Author);

Write (‘Введите год издания книги ’); Readln (Bk.Year);

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

With <имя переменной-записи> Do

<составной оператор>;

Оператор With позволяет «вынести за скобки» имя переменной-записи. Приведенный выше фрагмент программы можно переписать с использованием оператора присоединения:

With Bk Do

Begin

Write (‘Введите название книги ’); Readln (Name);

Write (‘Введите фамилию автора ’); Readln (Author);

Write (‘Введите год издания книги ’); Readln (Year)

End;



Примеры решаемых задач

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

а) вводит такую информацию;

б) выводит список студентов заданной группы;

в) выводит список студентов в порядке убывания рейтинга.

Пояснение: Для хранения данных будем использовать массив записей с информацией о студентах. (При решении этой задачи можно и не использовать тип запись, а написать программу, обрабатывающую три массива. Без использования типа Record трудно обойтись при обработке файлов – см. следующую тему.)

Программа:

Program Record_Student;

Uses Crt;

Const N = 100; { N - максимальное количество студентов }

Type Stud = Record {данные об одном студенте–запись из трех полей:}

Name : String; { фамилия}

Group : Integer; { номер группы}

Rating : Real { рейтинг }

End;



Students = Array [1..N] Of Stud; { данные обо всех студентах - }

{ это массив записей }

Var St : Students; { список студентов – массив записей }

K, M, L, Gr : Integer;

Pst : Stud; { промежуточная переменная, необходимая для того, }

{чтобы менять местами два элемента массива при его сортировке}

Begin

ClrScr;

{ а) Ввод данных о студентах }

Write (‘Сколько студентов ’);

Readln (M);

For K := 1 To M Do

With St [K] Do { вводим все поля записи St[K] }

Begin

Write (‘Введите фамилию ’,K,’ студента ‘);

Readln (Name);

Write (‘Введите номер его группы ‘);

Readln (Group);

Write (‘Введите его рейтинг ‘);

Readln (Rating)

End;



{ б) Вывод списка заданной группы }

Write (‘Список какой группы требуется ’);

Readln (Gr);

Writeln(‘Список группы № ‘,Gr);

For K := 1 To M Do { просматриваем весь список }

With St [K] Do

If Group = Gr { если номер группы студента равен требуемому}

Then Writeln (Name:20); { то печатаем его фамилию }

{ в) Сортировка студентов по их рейтингу }

For K := 1 To M – 1 Do

For L := K + 1 To M Do

If St[L]. Rating > St[K]. Rating

Then Begin

Pst:= St[L];

St[L]:=St[K];

St[K]:=Pst

End;



{ вывод отсортированного списка}

Writeln (‘Список студентов в порядке убывания рейтинга:’);

For K := 1 To M Do

Writeln (Name:20, Group:5, Rating:7:2);

Readln

End.



<== предыдущая лекция | следующая лекция ==>
Контрольные задания | Краткое изложение теоретического материала


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


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

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

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


 


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

 
 

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

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