Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Математическая модель




Постановка задачи

Исполнение программы p_sezon

Программная модель

Информационная модель

Входные данные - номер месяца m типа INTEGER;

выходные - тексты 'зима', 'весна', 'лето', 'осень', 'решения нет';

промежуточные - отсутствуют.

 

program p_sezon;

var m:integer;{номер месяца}

begin

{ввод исходных данных}

writeln('Введите номер месяца');

readln(m);

 

{реализация метода решения}

case m of

12, 1, 2: writeln('зима');

3, 4, 5: writeln('весна');

6, 7, 8: writeln('лето');

9, 10, 11: writeln('осень')

else writeln('решения нет')

end {Сase}

 

end.

0) До выполнения программы осуществляется распределение свободного участка памяти под переменные величины, описанные в разделе переменных программы (рис. 13.3).

  ОП ..
m ? INTEGER

Рис.13.3. – Распределение памяти

Содержимое выделенного участка памяти - неопределенное;

1) выполняется обращение к процедуре вывода:

writeln('Введите номер месяца')

На экране, начиная с текущего положения курсора, появляется сообщение:

Введите номер месяца

2) выполняется обращение к процедуре ввода:

readln(m)

Пользователь на клавиатуре набирает информацию:

5 и нажимает клавишу ввод (Return или Enter).

ЭВМ: 5 помещает в память под именем m;

  ОП ..
m ? INTEGER

Рис.13.4. – Распределение памяти после ввода

3) начинается выполнение оператора выбора:

Сase m of

12, 1, 2: writeln('зима');

3, 4, 5: writeln('весна');

6, 7, 8: writeln('лето');

9, 10, 11: writeln('осень')

else writeln('решения нет')

end {Сase}

В начале вычисляется ключевое выражение (в нашем случае состоящее из переменной целого типа m), получается ответ 5;

4) производится последовательное сравнение результата вычисления ключевого выражения с константами-ключами вариантов.

Во втором по порядку варианте обнаруживается совпадение ключа 5 с результатом 5;

5) выполняется оператор по ключу 5, остальные действия в операторе Сase не выполняются:

writeln('весна')

На экране, начиная с текущего положения курсора, появляется сообщение:

весна

 

Задача определения количества дней в месяце

Необходимо определить количество дней в заданном месяце заданного года. Изучаем проблему. Известно, что в январе, марте, мае, июле, августе, октябре и декабре всегда 31 день. В апреле, июне, сентябре и ноябре - 30 дней. В феврале в високосном году бывает 29 дней, а в обычном - 28. Високосный год определяется следующим образом: номер года должен быть либо кратен четырем и не кратен ста, либо кратен четыремстам. Этот календарь действует с 1600 года.

Если обозначим месяца числами, то математическая модель будет выглядеть следующим образом:

пусть mes и god, соответственно, заданные месяц и год.

При god<1600 'решения нет';

при god>=1600 решение зависит от mes:

при mes=1, 3, 5, 7, 8, 10, 12 - '31 день';

при mes=4, 6, 9, 11 - '30 дней';

при mes=2 анализируем номер года -

при выполнении условия

(god mod 4= 0) and (god mod 100 <> 0)or (god mod 400=0)

- '29 дней',

при невыполнении - '28 дней'




Поделиться с друзьями:


Дата добавления: 2015-06-28; Просмотров: 279; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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