русс | укр

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

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

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

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


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

Теоретическая часть


Дата добавления: 2015-07-04; просмотров: 1247; Нарушение авторских прав


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

type Row=Record

FIO: String[20];

TEL: String[7]

end;

var str: Row;

Описание записей возможно и без использования имени типа, например:

var str: Record

FIO: String[20];

TEL: String[7]

end;

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

str.FIO, str.TEL

Такое имя называется составным. Компонентой записи может быть также запись, в таком случае составное имя будет содержать не два, а большее количество имен. Обращение к компонентам записей можно упростить, если воспользоваться оператором присоединения with. Он позволяет заменить составные имена, характеризующие каждое поле, просто на имена полей, а имя записи определить в операторе присоединения:

with M do OP;

Здесь М – имя записи, ОР – оператор, простой или составной. Оператор ОР представляет собой область действия оператора присоединения, в пределах которой можно не использовать составные имена.

Пример 16.1. Создать базу данных о студентах student, содержащую следующие поля:



· Номер зачетки (n_zach);· фамилия и инициалы (fio);· средний балл (sr_b);· количество сданных зачетов и экзаменов (kz);· форма обучения (fo).Написать программу, выполняющую следующие действия:1) ввод с клавиатуры данных в массив, состоящий из n записей; 2) вывод на экран всей введенной информации;3) вывод на экран информации о студентах, которые получают стипендию (форма обучения – b, количество зачетов и экзаменов – 10, средний балл >=7.5).

Program Project1;

uses crt;

type student=record

n_zach:string[5];

fio:string[35];

sr_b:real;

kz:byte;

fo:string[2];

end;

 

var s:array[1..30] of student;

n,k,i:integer;srbg:real;

 

begin

write('n='); readln(n);

for i:=1 to n do // начало цикла for для ввода исходных данных

with s [i] do

begin

writeln('n зачетки'); readln(n_zach);

writeln('ФИО'); readln(fio);

writeln('средний балл?'); readln(sr_b);

writeln('количество зачетов?'); readln(kz);

writeln('форма обучения?'); readln(fo);

end; // конец цикла for для ввода исходных данных

 

k:=0;

for i:=1 to n do

with s [i] do

begin

if(fo='b') and (kz=10)and (sr_b>=7.5) then

begin

writeln(n_zach,' ',fio,' ',sr_b:3:1,' ',kz,' ',fo);

k:=k+1;

end;

writeln('количество студентов, которые получают стипендию ',k:2);

readln;

end.

Пример 16.2. Необходимо организовать массив записей Паскаля, а затем из общего списка вывести фамилии студентов 2-го курса.

 

program Project2;
type anketa=record
fio: string[45];
dat_r: string[8];
adres: string[50];
curs: 1..5;
grupp: string[3]

end;

var student: array [1..100] of anketa; I: integer;
begin
//последовательно вводим каждую запись
for I:=1 to 100 do
begin
writeln ('введите сведения о', I , '-м студенте');
writeln ('введите фамилию, имя и отчество'); readln (student[I].fio);
writeln ('введите дату рождения'); readln (student[I].dat_r);
writeln ('введите адрес'); readln(student[I].adres);
writeln ('введите курс'); readln(student[I].curs);
writeln ('введите группу'); readln (student[I].grupp);
end;
writeln ('ввод закончен');
writeln ;
//просматриваем массив записей и выбираем только студентов 2-го курса
for I:=1 to 100 do
if student[I].curs=2 then
writeln(' фамилия студента : ', student[I].fio);
end.

 

Например, фрагмент из предыдущей программы с использованием оператора присоединения (with …. Do ….) будет выглядеть так:

Фрагмент примера

for I:=1 to 100 do
with student[I] do
begin
writeln ('введите сведения о', I , '-м студенте');
writeln ('введите фамилию, имя и отчество'); readln (fio);
writeln ('введите дату рождения'); readln (dat_r);
writeln ('введите адрес'); readln(adres);
writeln ('введите курс'); readln(curs);
writeln ('введите группу'); readln (grupp);
end;

Варианты заданий

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

1. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (средний балл).

Запрограммировать вывод на экран фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4,5.

2. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (средний балл).

Запрограммировать вывод на экран фамилий и номер группы для студентов, имеющих средний балл 4 или 5.

3. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (средний балл).

Запрограммировать вывод на экран фамилий и номеров групп для всех студентов, имеющих средний балл от 6 до 8.

4. Описать структуру с именем AEROFLOT, содержащую следующие поля: название пункта назначения рейса; номер рейса; тип самолета.

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

5. Описать структуру с именем AEROFLOT, содержащую следующие поля: название пункта назначения рейса; номер рейса; тип самолета.

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

6. Описать структуру с именем WORKER, содержащую следующие поля: фамилия и инициалы работника; название занимаемой должности; год поступления на работу.

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

7. Описать структуру с именем POEZD, содержащую следующие поля: название пункта назначения; номер поезда; время отправления.

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

8. Описать структуру с именем POEZD, содержащую следующие поля: название пункта назначения; номер поезда; время отправления.

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

9. Описать структуру с именем POEZD, содержащую следующие поля: название пункта назначения; номер поезда; время отправления.

Запрограммировать вывод на экран информации о поезде, номер которого введен с клавиатуры.

10. Описать структуру с именем MARSH, содержащую следующие поля: название начального пункта маршрута; название конечного пункта маршрута; номер маршрута.

Запрограммировать вывод на экран информации о маршруте, номер которого введен с клавиатуры.

11. Описать структуру с именем MARSH, содержащую следующие поля: название начального пункта маршрута; название конечного пункта маршрута; номер маршрута.

Запрограммировать вывод на экран информации о маршрутах, которые начинаются или оканчиваются в пункте, название которого введено с клавиатуры.

12. Описать структуру с именем NOTE, содержащую следующие поля: фамилия, имя; номер телефона; год рождения.

Запрограммировать вывод на экран информации о человеке, номер телефона которого введен с клавиатуры.

13. Описать структуру с именем NOTE, содержащую следующие поля: фамилия, имя; номер телефона; год рождения.

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

14. Описать структуру с именем NOTE, содержащую следующие поля: фамилия, имя; номер телефона; год рождения.

Запрограммировать вывод на экран информации о человеке, чья фамилия и имя введены с клавиатуры.

15. Описать структуру с именем ZNAK, содержащую следующие поля: фамилия, имя, отчество; месяц рождения; год рождения.

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

16. Описать структуру с именем ZNAK, содержащую следующие поля: фамилия, имя, отчество; знак Зодиака; год рождения.

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


 

Литература

1. Архангельский, А. Я. Программирование в Delphi : учебник по классическим версиям Delphi / А. Я. Архангельский. – Москва : Бином, 2008. – 1154 с.

2. Бобровский, С. И. Delphi 7: учебный курс / С. И. Бобровский. – Санкт-Петербург : Питер, 2008. – 736 с.

3. Графические средства Delphi: методические указания для самостоятельной работы студентов механических специальностей дневной и заочной форм обучения по дисциплинам : "Информатика", "Вычислительная техника, программирование и расчеты на ЭВМ" / УО "ВГТУ" ; сост. В. П. Терентьев, Т. П. Стасеня. – Витебск, 2007. – 61 с.

4. Климов, Ю. С. Программирование в среде Turbo Pascal 6.0 : справ. пособие / Ю. С. Климов, А. И. Касаткин, С. М. Мороз. – Минск : Вышэйшая школа, 1992. – 158 с.

5. Методические указания к курсовому проектированию для студентов механических специальностей по предметам цикла "Информатика" / УО "ВГТУ" ; сост. В. П. Терентьев, А. С. Дягилев, Т. П. Стасеня. – Витебск : УО "ВГТУ", 2004. – 81 с.

6. Программирование на персональных ЭВМ : практикум / под ред. Д. В. Офицерова. – Минск : Вышэйшая школа, 1993. – 256 с.

7. Сурков, Д. А. Программирование в среде Borland Pascal для Windows : справочное пособие / Д. А. Сурков, К. А. Сурков, А. Н. Вальвачев. – Минск : Вышэйшая школа, 1996. – 432 с.

8. Фаронов, В. В. Delphi : учебник / В. В. Фаронов. – Санкт-Петербург : Питер, 2010. – 640 с.

9. Фаронов, В. В. Delphi. Программирование на языке высокого уровня : учебник для студентов вузов, обучающихся по направлению подготовки дипломированных специалистов "Информатика и вычислительная техника" / В. В. Фаронов. – Санкт-Петербург : Питер, 2010, 2007. – 640 с.

10. Фаронов, В. В. Основы Турбо Паскаля : учеб. пособие / В. В. Фаронов. – Москва : Учебно-инженерный центр «МВТУ-ФЕСТО ДИДАКТИК», 1992. – 304 с.

11. Язык программирования Object Pascal (Delphi) : курс лекций по дисциплине "Вычислительная техника, программирование и расчеты на ЭВМ" для студентов механических спец. / УО "ВГТУ" ; сост. В. П. Терентьев. – Витебск : УО "ВГТУ", 2005. – 75 с.

 



<== предыдущая лекция | следующая лекция ==>
Задание 2 | 


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


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

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

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


 


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

 
 

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

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