Просмотр содержимого документа
«6.3.Еще пример задания»
Еще пример задания:
В таблице представлены несколько записей из базы данных «Расписание»:
№ | Учитель | День_недели | Номер_урока | Класс |
1 | Айвазян Г.С. | понедельник | 3 | 8А |
2 | Айвазян Г.С. | понедельник | 4 | 9Б |
3 | Айвазян Г.С. | вторник | 2 | 10Б |
4 | Михальчук М.С. | вторник | 2 | 9А |
5 | Пай С.В. | вторник | 3 | 10Б |
6 | Пай С.В. | среда | 5 | 8Б |
Укажите номера записей, которые удовлетворяют условию
Номер_урока 2 И Класс '8А'
1) 1, 6 2) 2, 6 3) 2, 5, 6 4) 1, 2, 5, 6
Решение:
уберем из таблицы всю лишнюю информацию, оставив только номер записи, номер урока и класс:
№ | Номер_урока | Класс |
1 | 3 | 8А |
2 | 4 | 9Б |
3 | 2 | 10Б |
4 | 2 | 9А |
5 | 3 | 10Б |
6 | 5 | 8Б |
логическая связка И означает одновременное выполнение двух условий; оставим в таблице только те строки, для которых выполняется первое из двух условий, Номер_урока 2
№ | Номер_урока | Класс |
1 | 3 | 8А |
2 | 4 | 9Б |
5 | 3 | 10Б |
6 | 5 | 8Б |
теперь нужно из оставшихся строк отобрать те, для которых Класс '8А'; на взгляд «нормального» человека, этому условию удовлетворяют последние 3 строчки, однако это неправильный ответ
дело в том, что в данном случае поле Класс имеет тип «символьная строка», поэтому сравнение будет Класс '8А' выполняться по кодам символов, начиная с первого
цифры во всех кодовых таблицах располагаются последовательно, одна за другой, от 0 до 9
поэтому код цифры «1» меньше, чем код цифры «8», и строка 5 не удовлетворяет условию Класс '8А'
к счастью, русские буквы А и Б во всех кодовых таблицах расположены друг за другом1, поэтому сравнение пройдет «нормально», условие Класс '8А' для записи № 6 будет истинно
в результате после применения условия Класс '8А' остаются две записи
№ | Номер_урока | Класс |
2 | 4 | 9Б |
6 | 5 | 8Б |
таким образом, правильный ответ – 2.
Возможные ловушки и проблемы: помните, что символьные строки сравниваются по кодам символов цифры в таблице кодов стоят подряд от 0 до 9 (коды 48-57) в кодировке Windows русские буквы стоят по алфавиту |
1 Интересующиеся могут посмотреть на коды русских букв в кодировке КОИ-8R
и ужаснуться, осознав, что было бы при использовании букв В и Г.