Задания
1. Создайте программу, приглашающую пользователя ввести две строки и выводящую строку, первый символ которой имеет более высокое числовое значение ASCII. В строках используются только символы английского алфавита.
2. Создайте программу, приглашающую пользователя ввести число и определяющую, является ли это число положительным, отрицательным или равным нулю.
3. Даны вещественные положительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами a, b, c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.
4. Дано целое число k (1<=k<=365). Определить каким днем недели (понедельник, …, воскресенье) является k-ый день невисокосного года, в котором 1 января – понедельник.
5. Используемый нами григорианский календарь был введен в 1582 году. Разработайте программу, определяющую день недели каждого задаваемого дня после 1582 года. Программа должна выполнить следующие действия.
а) Пригласить пользователя ввести месяц и год.
б) Определить количество дней в месяце и пригласить пользователя ввести номер дня. Проверить, допустим ли введенный пользователем номер дня в месяце. Все годы, делящиеся на 4, являются високосными, кроме делящихся на 100, но не на 400. Например, годы 1600 и 2000 високосные, а 1700, 1800 и 1900 – невисокосные. Если вам удастся, то вы сможете проверить это условие в одном операторе if.
в) Определить день недели с помощью следующего алгоритма.
• Предполагается, что январь и февраль – это тринадцатый и четырнадцатый месяцы предыдущего года. Например, 1/10/1998 (в американской системе обозначений месяц/день/год) заменяется на 13/10/1997, а 2/10/1998 – на 14/10/1997.
• Пусть m, d и у обозначают месяц, день и год. Необходимо вычислить величину w как
w := d + 2*m + Int((3/5)*(m +1)) + у + Int(y/4)– Int(у/100) + Int(y/400)+2;
• Остаток деления w на 7 равен номеру дня в неделе. Предполагается, что 0 – это суббота, 1 — воскресенье, 2 — понедельник и т.д.
Контрольные вопросы
1. Назовите три оператора сравнения и приведите примеры их использования.
2. Назовите три первичных булевых оператора.
3. Чем отличаются режимы полного и неполного вычисления булевых выражений?
4. Что такое приоритеты операций и почему они так важны?
5. Приведите синтаксис и опишите действия, выполняемые операторами if и case в самом общем виде.
6. Можно ли заменить любой оператор if эквивалентным ему оператором case наоборот?
7. Что такое вложенные структуры принятия решений?