русс | укр

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

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

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

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


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

Лабораторная работа 7


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


 

КОМБИНИРОВАННЫЕ ТИПЫ ДАННЫХ

 

Цель работы: выработать практические навыки в написании и отладке программ при работе с комбинированными типами данных.

 

Записи

 

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

Общий вид описания типа –

 

type T = record

i1:T1;

i2:T2;

.......

iN:TN

end;

var a,b:T;

Здесь Т - идентификатор типа; и - имена полей; ТN - типы полей.

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

type adres = record

G,U:array [1..10] of char;

D:1..100;

K:1..500

end;

var A: adres;

Здесь перменная А описанная как запись, которая состоит из четырех полей с именами: G,U,D,K. Поле D переменной A записывается как A.D.

Например, чтобы записать в А адрес: «г. Краматорск, ул. Шкадинова, д.8, кв.12» надо выполнить следующие операторы присваивания:

A.G:='Краматорск';

A.U:='Шкадинова';

A.D:=8;

A.K:=12;

Можно обращаться не только к полю записи, но и к записи в целом, используя оператор присваивания.

Оператор with разрешает упростить обращения к полям записей.

Общий вид - with A do P;

Здесь A - имя переменной типа record; Р - оператор. В операторе Р при ссылках на компоненты записи имя А можно опускать. Например, для занесения адреса в предыдущем примере достаточно выполнить операторы

With A do begin

G:=’Краматорск’;

U:=’Шкадинова’;

D:=8;

K:=12

end;

 

Примеры выполнения задания лабораторной работы

Пример 35. Запись имеет пять полей, содержащих фамилию, имя студента, наименование, год создания и номер группы. Написать программу, которая вводит информацию о студентах и выводит на печать фамилии и имена студентов группы ИТ98-2.



Программа имеет вид:

PROGRAM PR35;

USES CRT;

CONST GRU=ИТ’; GOD=98; NOM=2; M=5;

type student=record

fa,im,gr:string;

g:85..95; n:1..4; end;

mas=array[1..m] of student;

VAR S:MAS; I:INTEGER; C:CHAR;

BEGIN

CLRSCR;

{ВВЕДЕНИЕ ИСХОДНЫХ ДАННЫХ}

FOR I:=1 TO M DO

WITH S[I] DO BEGIN

WRITELN(' ДАННЫЕ ПРО ',I,'-ОГО СТУДЕНТА:');

WRITELN(' ФАМИЛИЯ?:'); READLN(FA);

WRITELN(' ИМЯ?:'); READLN(IM);

WRITELN('НАИМЕНОВАНИЕ ГРУППЫ?:'); READLN(GR);

WRITELN('ГОД СОЗДАНИЯ ГРУППЫ?:'); READLN(G);

WRITELN(' НОМЕР ГРУППЫ?:'); READLN(N);

END;

WRITELN('===КОНЕЦ ВВОДА====');

C:=READKEY; CLRSCR;

WRITELN(' ':5,'СПИСОК ВСЕХ СТУДЕНТОВ:');

for i:=1 to m do

with s[i] do

writeln(' ', fa:10,im:10,gr:5,g:3,'-',n);

WRITELN(' ':5,'СПИСОК СТУДЕНТОВ ГР.ИТ98-2');

for i:=1 to m do

with s[i] do

if (gr=gru) and (g=god) and (n=nom) then

writeln(' ',fa:10,im:10);

c:=readkey

end.

 

Пример 36. Составить программу перевода полярных координат точки (R,j) в декартовые (Х,Y), приняв способ изображения точки в виде записи с двумя полями.

Программа имеет вид:

 

program pr36;

uses crt;

label 1;

type polar=record r,fi:real; end;

dekar=record x,y:real; end;

VAR P:POLAR; D:DEKAR; C:CHAR;

BEGIN CLRSCR;

1: WRITE('ПОЛЯРНЫЕ КООРДИНАТЫ ТОЧКИ (R,FI):');

READLN(P.R,P.FI);

IF P.R=0 THEN BEGIN

WRITELN('ВВОД ЗАКОНЧЕН');

c:=readkey; exit end;

with p,d do begin

X:=R*COS(FI*PI/180); Y:=R*SIN(FI*PI/180);

WRITE('ДЕКАРТОВЫЕ КООРДИНАТЫ ТОЧКИ (X,Y):');

writeln(x:5:2,’ ‘,y:5:2)

end;

goto 1

end.



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


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


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

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

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


 


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

 
 

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

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