В обычной школьной и вузовской практике учащимся и студентам предлагаются для решения те задания, которые представлены в задачниках или составлены преподавателем. Однако усвоение материала будет более осознанным, если предоставить ученикам возможность самостоятельно разработать и решить задачи на указанную тему. Здесь появляется возможность дать волю фантазии, выдумке, сделать какие-то нестандартные ходы. Всё это идёт на пользу делу.
В настоящей публикации представлены наиболее удачные задачи по теме "Логические выражения и их запись на языке Pascal", которые были составлены студентами. Задание они получили в следующей формулировке: "Составить высказывание, содержащее переменные, которое в зависимости от их значений принимает значение TRUE или FALSE. Записать соответствующее логическое выражение.". Тема "Логические выражения" является очень важной при изучении программирования как в школьном, там и вузовском курсе. Зачастую она остается незаслуженно обойденной, в то время как именно по этой причине учащиеся затрудняются правильно построить логическое выражения, являющееся условием в развилке или цикле. Потому подобного рода задания позволяют акцентировать внимание на указанной проблематике и лучшей степени подготовить учащихся к изучению тем "Развилка", "Циклы".
Что касается моего задания, то следует отметить, что некоторые студенты подошли к его выполнению формально, предложив полные аналоги задач из учебников, но были и своего рода находки. Ниже приведены сами задания и соответствующие им логические выражения.
1. Сумма цифр заданного четырёхзначного числа N превосходит произведение цифр этого же числа на 1.
N Div 1000 + N Div 100 Mod 10 + N Mod 100 Div 10 + N Mod 10 - 1 = (N Div 1000) * (N Div 100 Mod 10) * (N Mod 100 Div 10) * (N Mod 10)
2. Сумма двух последних цифр заданного трёхзначного числа N меньше заданного K, а первая цифра N больше 5.
(N Div 10 Mod 10 + N Mod 10 < K) And (N Div 100 > 5)
3. Заданное натуральное число N является двузначным и кратно K.
(N >= 10) And (N <= 99) And (N Mod K = 0) или (N in [10..99]) And (N Mod K = 0)
4. Сумма двух первых цифр заданного четырёхзначного числа N равна произведению двух последних.
N Div 1000 + N Div 100 Mod 10 = (N Mod 100 Div 10) * (N Mod 10)
5. Каждая последующая цифра трёхзначного числа N, начиная со старшего разряда, больше предыдущей на 1.
(N Mod 10 - N Div 10 Mod 10 = 1) And (N Div 10 Mod 10 - N Div 100 = 1)
6. X отрицательное целое число, делящееся на 3 нацело.
(X < 0) And (X Mod 3 = 0)
7. Заданы три положительных числа A, B, C. Эти числа являются сторонами равнобедренного треугольника.
(A + B > C) And (A + C > B) And (B + C > A) And ((A = B) Or (B = C) Or (A = C))Для действительных A, B, C
(A + B > C) And (A + C > B) And (B + C > A) And ((Abs(A - B) < 1E-7) Or (Abs(B - C) < 1E-7) Or (Abs(A - C) < 1E-7))
8. Среди заданных целых чисел A, B, C, D есть хотя бы два чётных.
Ord(Not Odd(A)) + Ord(Not Odd(B)) + Ord(Not Odd(C)) + Ord(Not Odd(D)) >= 2
9. Прямоугольник с измерениями A, B подобен прямоугольнику с соответствующими измерениями C, D.
Abs(A / C - B / D) < 1E-7
10. Дробь A / B является правильной.
(A < B) And (B > 0)
11. Дано натуральное число N некоторый год. Этот год является високосным.
(N Mod 4 = 0) And (N Mod 100 <> 0) Or (N Mod 400 = 0) или (N Mod 4 = 0) And Not((N Mod 100 = 0) Xor (N Mod 400 = 0))