Задачи по теме "Логические выражения" В обычной школьной и вузовской практике учащимся и студентам предлагаются для решения те задания, которые представлены в задачниках или составлены преподавателем. Однако усвоение материала будет более осознанным, если предоставить ученикам возможность самостоятельно разработать и решить задачи на указанную тему. Здесь появляется возможность дать волю фантазии, выдумке, сделать какие-то нестандартные ходы. Всё это идёт на пользу делу. В настоящей публикации представлены наиболее удачные задачи по теме "Логические выражения и их запись на языке Pascal", которые были составлены студентами. Задание они получили в следующей формулировке: "Составить высказывание, содержащее переменные, которое в зависимости от их значений принимает значение RUE или FALSE. Записать соответствующее логическое выражение.". Тема "Логические выражения" является очень важной при изучении программирования как в школьном, там и вузовском курсе. Зачастую она остается незаслуженно обойденной, в то время как именно по этой причине учащиеся затрудняются правильно построить логическое выражения, являющееся условием в развилке или цикле. Потому подобного рода задания позволяют акцентировать внимание на указанной проблематике и лучшей степени подготовить учащихся к изучению тем "Развилка", "Циклы". Что касается моего задания, то следует отметить, что некоторые студенты подошли к его выполнению формально, предложив полные аналоги задач из учебников, но были и своего рода находки. Ниже приведены сами задания и соответствующие им логические выражения. 1. Сумма цифр заданного четырёхзначного числа превосходит произведение цифр этого же числа на 1. Div 1000 Div 100 Mod 10 Mod 100 Div 10 Mod 10 - 1 = ( Div 1000) ( Div 100 Mod 10) ( Mod 100 Div 10) ( Mod 10) 2. Сумма двух последних цифр заданного трёхзначного числа меньше заданного K, а первая цифра больше5. ( Div 10 Mod 10 Mod 10 < K) A d ( Div 100 > 5) 3. Заданное натуральное число является двузначным и кратно K. ( >= 10) A d ( C) A d (A C > B) A d (B C > A) A d ((A = B) Or (B = C) Or (A = C)) Для действительных A, B, C (A B > C) A d (A C > B) A d (B C > A) A d ((Abs(A - B) < 1E-7) Or (Abs(B - C) < 1E-7) Or (Abs(A - C) < 1E-7)) 8. Среди заданных целых чисел A, B, C, D есть хотя бы два чётных. Ord( o Odd(A)) Ord( o Odd(B)) Ord( o Odd(C)) Ord( o Odd(D)) >= 2 9. Прямоугольник с измерениями A, B подобен прямоугольнику с соответствующими измерениями C, D. Abs(A / C - B / D) < 1E-7 10. Дробь A / B является правильной. (A < B) A d (B > 0) 11. Дано натуральное число — некоторый год. Этот год является високосным. ( Mod 4 = 0) A d ( Mod 100 0) Or ( Mod 400 = 0) или ( Mod 4 = 0) A d o (( Mod 100 = 0) Xor ( Mod 400 = 0)) Список литературыПути решения изложены в эскизном проекте соответствующей модернизации экспериментальной РЛС «Дута-2» в районе Николаева, разработанном в 1981 году. Осенью 1981 года директор НИИДАР (Марков В.И. Прим. автора.) сначала отложил рассмотрение этого проекта на НТС предприятия, а как следствие и представление его заказчику. Затем, в связи с переводом опытно-конструкторской работы «Дуга-2М» в научно-исследовательскую экспериментальную работу НИЭР «Дуга-2М», он потребовал разработку и утверждение нового ТТЗ. На это Заказчик (Прим. Автора. Минобороны, 4 ГУМО), по понятным в частности для меня мотивам, не дал согласия и предложил оформить «Решение...», которое определило бы порядок выполнения НИЭР «Дуга-2М» на основе ранее утвержденного ТТЗ на ОКР «Дуга-2М». Многократные попытки сблизить решение директора НИИДАР с мнением «Заказчика» к успеху не привели. Такое отношение его к данному вопросу, тем более выраженное в отказе подписать ТТЗ на совершенствование радиолокационного узла «Дуга№1» только из-за того, что в нем предусмотрена задача оценить в эскизном проекте возможности узла по обнаружению запусков одиночных и малых групп МБР с последующим уточнением при испытаниях, естественно, снизило настойчивость исполнителей в доведении данного вопроса до нормальных условий выполнения работы.
Цикл с предусловием это такой цикл, в котором условие проверяется перед выполнением тела цикла. А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while
А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while