КАТЕГОРИИ: Архитектура-(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).
Рис.13.3. – Распределение памяти Содержимое выделенного участка памяти - неопределенное; 1) выполняется обращение к процедуре вывода: writeln('Введите номер месяца') На экране, начиная с текущего положения курсора, появляется сообщение: Введите номер месяца 2) выполняется обращение к процедуре ввода: readln(m) Пользователь на клавиатуре набирает информацию: 5 и нажимает клавишу ввод (Return или Enter). ЭВМ: 5 помещает в память под именем m;
Рис.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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |