Задания

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. Что такое вложенные структуры принятия решений?