Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю»




Скачать 52.54 Kb.
НазваниеЗадача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю»
Дата публикации07.03.2013
Размер52.54 Kb.
ТипЗадача
uchebilka.ru > Информатика > Задача
Міжуніверситетський медико-інженерний факультет

Кафедра медичної кібернетики та телемедецини

Звіт
Лабораторна робота № 11


З дисципліни «Основи програмування та алгоритмічні мови»

Тема «Комбіновані типи. Оператор приєднання»

Задача № 13.19

Виконав
студент групи ІМ-92
Найдьонов Іван

Перевірив
ст. викладач Зінченко Н. П.

Київ 2009

Зміст


Зміст 3

Умова задачі 4

Теоретична частина 4

Запись 4

Лістинг програми 7

Екран результатів роботи програми 8

Контрольні розрахунки 8

Блок-схема програми 8

Блок-схема функції DaysInMonth 8

Блок-схема функції IsCorrect 9

Блок-схема функції DaysCount 9

Блок-схема функції DayOfWeak 9

Список використовуваної літератури 9



Умова задачі


Задача № 13.19

type число = 1..31; месяц = 1..12;

год = 1..2000;

дата = record

ч:число;

м:месяц;

г:год

end;

деньнеделн = (пн,вт,ср,чт,пт,сб,вс);

Считая, что все даты даются по григорианскому календарю («новому стилю»), описать:

  1. функцию nocлчисло(d) вычисляющую количество дней в том месяце, которому принадлежит дата d;

  2. логическую функцию вернаядата(й), проверяющую правильность даты d (т. е. чтобы не было 31 июня и т.п.);

  3. функцию числодней(3), подсчитывающую, сколько дней прошло от 1 января 1-го года нашей эры до даты d;

  4. функцию MH(d) для определения дня недели, на который приходится дата d (учесть, что 1 января 1-го года нашей эры было понедельником).

Теоретична частина

Запись


Тип-запись включает ряд компонент, называемых полями, которые могут быть разных типов. При задании типа-записи после зарезервированного слова record следует перечислить все поля типа-записи с указанием через двоеточие их типов и завершить задание типа словом end. Поля отделяются друг от друга точкой с запятой. Количество полей записи может быть любым.

Пример.

type

Complex = record {Тип комплексных чисел}

Re: Real;

Im: Real

{Тип - дата рождения}

end;

Data = record

Year: Integer;

Month: 1..12;

Day: 1..31

{Тип - сведения о сотруднике}

end;

Person = record

Name: string[20];

Sex: (Male, Female);

Age: Integer;

Married: Boolean

end;

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

type

Complex = record

Re, Ira: Real

end;

После введения типа-записи можно затем задать переменные или типизированные константы этого типа - записи.

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

Так, для введенных выше типов можно задать, например, следующие переменные и константы:

var

X, Y, Z: Complex;

Dat: Data;

const

Birthday: Data = (Year: 1971; Month: 12; Day: 9);

Ivanov: Person = (Name: 'Иванов'; Sex: Male; Age': 40;

Married: True);

Примечание. Тип-запись можно вводить и непосредственно при определении переменных или типизированных констант. Например, фрагмент var

X, Y, Z: record

Re, Im: Real end;

определяет те же комплексные переменные, что и в редыдущем примере.

Доступ к полям записи осуществляется указанием имени переменной (константы) и имени поля, записываемого через точку, например:

Ivanov.Age,

X.Re,

Dat, Day и т . д. ..

Пример. Использование полей записей.

X.Re

X.Im

Y.Re

Y.Im

:= 1.5;

:= 1.7;

:= -X.Re;

:= -X.Im;

Ivanov.Married := False;

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

with <имя записи> do <оператор>;

В этом случае внутри оператора можно указывать только поле записи. Например, фрагмент:

with X do ^

begin

Re := 1. 5;Im := 1.7;

Y.Re := -Re;

Y.Ira := -Im

end;

with Ivanov do

Married := False;

эквивалентен фрагменту из предыдущего примера.

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

Пример. Использование .вариантной части.

type

Figure = (Square, Triangle, Circle);

{точка привязки} {параметры фигур}

Param = record

X, Y: Real;

case Fig: Figure of

Square: (Side: Real);

Triangle: (Sidel, Side2, Angle: Real);

Circle: (Radius: Real)

end;

var MySquare, MyCircle: Param;

Вариантная часть начинается словом case, за которым следует переменная выбора варианта (в примере Fig) с указанием типа. Далее указываются константы, значения которых может принимать переменная выбора варианта (в примере -Square, Triangle, Circle). За каждой константой через двоеточие в круглых скобках записываются поля данного варианта записи с указанием их типов. Круглые скобки необходимы, даже если для данного варианта вариантная часть отсутствует. Следует отметить, что вариантная часть не завершается своей операторной скобкой end, как у обычной конструкции CASE, т. к. далее идет завершающая операторная скобка end всего типа.

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

Fig := Square;

MySquare.Side := 5.0;

Fig := Circle;

MyCircle.Radius := 7.5;

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

Fig := Circle;

MySquare.Side : = 5.0;

Fig := Square;

MyCircle.Radius := 7.5;

В тип-записи допустимо не вводить переменную выбора вариантов, а перечислить лишь разные варианты, например:

Transf = record

case Integer of

1: (_Word: Word);

2: (_TwoSymb: array[1..2] of Char) end;

Лістинг програми


13s.jpg

Екран результатів роботи програми


13r.jpg

Контрольні розрахунки




Блок-схема програми



Блок-схема функції DaysInMonth



Блок-схема функції IsCorrect



Блок-схема функції DaysCount



Блок-схема функції DayOfWeak



Список використовуваної літератури


1. Зінченко Н.П. Завдання для лабораторних робіт. Київ, 2009.

2. Зінченко Н.П. Курс Лекції. Київ, 2009.

3. Издательская группа BHV. Турбо Паскаль 7.0. Киев : BHV, 1998.

Добавить документ в свой блог или на сайт

Похожие:

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» iconДата рождения (число,месяц,год)
Киевский Институт Международных Отношений при кну им. Т. Г. Шевченка, Международные отношения

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» iconАнкета (заполняется собственноручно)
Число, месяц, год и место рождения (село, деревня, город, район, область, край, республика, страна)

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» iconУрок по теме «Сутки, неделя, месяц, год»
Цель: обобщить и расширить сведения о таких единицах времени как сутки, неделя, месяц, год

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» iconЗадача a угадай-ка
Получается число в интервале от 0 до Далее по линейной пропорции определяется оценка в интервале от 2 до Тоесть число 0 соответствует...

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» icon14 марта
Этот неофициальный праздник придумал в 1987 году физик из Сан-Франциско Ларри Шоу (Larry Shaw)[1], который подметил, что в американской...

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» iconЗадача составле
Определение. Пусть G=(V,E) – обыкновенный граф и k – натуральное число. Функция f: V{1,…,k} называется раскраской графа. Раскраска...

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» iconКалендарные системы Европы
После перехода, каждый месяц обозначался своей руной, из т н. Футарха (сборника Рун). Месяца отличались по продолжительности, так...

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» iconАмариллис прекрасный
Христово Воскресенье – один из самых крупных двенадцати христианских праздников. Все остальные памятные дни и праздники ведут отсчет...

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» iconИспользование диаграмм потоков данных (dfd) при разработке комплексной...
При этом число обрабатываемых документов составляет 10-15 тысяч в месяц и может достигать до 300-400 тысяч документов за год. Многие...

Задача № 13. 19 type число =. 31; месяц =. 12; год =. 2000; дата = record ч: число; м: месяц; г: год end; деньнеделн = (пн,вт,ср,чт,пт,сб,вс); Считая, что все даты даются по григорианскому календарю («новому стилю» iconОтветы Астрономия. 10 класс
Средний календарный год стал длиннее тропического всего на 0,0003 суток и счет времени по григорианскому календарю и тропическими...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<