65 / 37 / 3
Регистрация: 30.11.2011
Сообщений: 109
|
|
1 | |
Задача на структуры (Records)30.11.2011, 17:48. Показов 1699. Ответов 5
Метки нет (Все метки)
Даже не знаю с чего начать - опыта работы с записями нуль. Условие задачи :
Дано: type число = 1..31; месяц = 1..12; год = 1..2000; дата = record ч : число; м : месяц; г : год end; ДеньНедели = (пн, вт, ср, чт, пт, сб, вс); Считая, что все даты даются по григорианскому календарю (в «новом стиле»), описать: функцию ПослЧисло( d ), вычисляющую количество дней в том месяце, которому принадлежит дата d; Очень желательно пояснить решение хотя бы в общих чертах.Заранее спасибо
1
|
30.11.2011, 17:48 | |
Ответы с готовыми решениями:
5
Структуры (Records) Задача на records Записи (Records) Типизированный файл. records |
43 / 43 / 14
Регистрация: 16.11.2011
Сообщений: 125
|
|
01.12.2011, 16:41 | 2 |
Судя по тому как я понял условие (а понял я его плохо), задача очень проста.
На вход функции подается структура(запись) с определенными полями. Вам нужно извлечь поле месяц. "x:=дата.месяц". В описании локальных переменных функции обозначить числовой массив типа byte[1..12] и заполнить его(31,28,31,30,31,30,31,31,30,31,30,31). Ответом будет являться Значение элемента массива с индексом х. Да и еще обязательно не забудьте проверить високосность года условаием типа: if (x=2) and (дата.год mod 4 =0) then ответ=29; ПС: для чего сточка "ДеньНедели = (пн, вт, ср, чт, пт, сб, вс); "?
2
|
65 / 37 / 3
Регистрация: 30.11.2011
Сообщений: 109
|
|
02.12.2011, 18:41 [ТС] | 3 |
понятия не имею,но в условии задачи она зачем-то дана.возможно,что это условие нужно для выполнения остальных пунктов задания,но для первого,которое я и написал,как мне кажется,оно не нужно
1
|
65 / 37 / 3
Регистрация: 30.11.2011
Сообщений: 109
|
|||||||||||
06.12.2011, 22:32 [ТС] | 4 | ||||||||||
вот немного накодил,но программа вылетает.в чём ошибка?
подправил,не вылетает,но ответ выдаёт бредовый
1
|
43 / 43 / 14
Регистрация: 16.11.2011
Сообщений: 125
|
|
07.12.2011, 08:24 | 5 |
Единственное замечание, что надо проверить входные данные Assert((Date.Month>=1)AND(Date.Month<=12), 'Error: value "month" is not valid'); Тоже самое сделать с годом.
1
|
65 / 37 / 3
Регистрация: 30.11.2011
Сообщений: 109
|
|
07.12.2011, 15:23 [ТС] | 6 |
оказалось,что я просто значения вводил не в том порядке,поэтому месяц у меня мог быть какой-нибудь 1900 проверку,действительно,надо бы добавить.спасибо
1
|
07.12.2011, 15:23 | |
07.12.2011, 15:23 | |
Помогаю со студенческими работами здесь
6
Информация о клиентах (records) Результат сортировки записать в файл с помощью records Задача на records: Справочная автовокзала задача нужна на экзамен на тип Records!!!!! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |