Научно-информационный материал «Вопросы и задачи к олимпиаде по информатике. Часть 1»

advertisement
Некоммерческая организация «Ассоциация московских вузов»
Государственное образовательное учреждение
высшего профессионального образования
Московский государственный индустриальный университет
ГОУ ВПО МГИУ
Научно-информационный материал
«Вопросы и задачи к олимпиаде по информатике. Часть 1»
Состав научно-образовательного коллектива:
Роганова Н.А., к.т.н.
Москва 2010 г.
ВОПРОСЫ И ЗАДАЧИ К ОЛИМПИАДЕ ПО ИНФОРМАТИКЕ
ЧАСТЬ 1.
1. Предмет науки программирование. Алгоритмы и их основные свойства.
Парадигмы программирования. Примеры.
2. Задание синтаксиса языка предикатов с помощью нормальной формы
Бэкуса-Наура (НФБН). Цепочки и деревья вывода. Примеры.
3. Общие определения грамматики и языка, ей порождённого. Понятие о
регулярных выражениях и задание языков с их помощью. Примеры.
4. Задание семантики предикатов с помощью таблиц истинности. Тавтологии, законы эквивалентности и примеры доказательств.
5. Расширение понятия предиката. Ограничения на использование кванторов в предикатах. Определение подстановки. Примеры.
6. Спецификация программы {Q} S {R}- Слабейшее предусловие
wp(S1 R) и связь между Q и wp(S1 R). Взаимосвязь между предикатами и
множествами, ими задаваемыми. Понятие правильной программы. При
меры.
7. Определение простейших операторов языка Ruby в терминах wp: пустой оператор, выход, последовательное соединение операторов, оператор
простого и множественного присваивания. Примеры.
8. Массивы с функциональной точки зрения, понятие вырезки. Определение оператора присваивания элементу массива. Примеры.
9. Операторы и выражения. Основные управляющие конструкции и
понятие об исключительных ситуациях в языке Ruby. Примеры.
10. Определение оператора IF в терминах wp. Примеры.
11. Формулировка и доказательство теоремы об операторе IF.
12. Определение оператора WHILE в терминах wp. Примеры.
13. Доказательство полноты системы связок !, V и Л для подмножества
предикатов в классическом смысле без операций || и &&.
14. Правила построения отрицаний к предикатам.
1. Пусть /: {1,2,3,4,5} —> {1,2,3,4,5}. Запишите предикаты, утвер-
ждающие, что существует единственный элемент ж, который / уменьшает, и
отрицание этого факта; не используйте при этом квантора 3!.
2. Докажите, что выражение ((ei Л (ег V ез)) = ((ei Л e<i) V (ei Л ез)))
является предикатом.
3. Пусть /: {1,2,3,4} —> {1,2,3,4}. Запишите предикаты, утверждающие,
что функция / является сюръективной, и отрицание этого факта.
4. Докажите, что выражение ((aVa)) — не предикат (в строгом смысле).
5. Докажите закон эквивалентности {{е\/\{е2Уе^)) = ((eiAe2)V(eiAe3))).
6. Пусть /: {—1,2,4} —>• {—1,3,4,5}. Найдите количество всех таких
функций, а затем количество непостоянных и количество сюръективных
среди них.
7. Докажите закон эквивалентности ((ei||(ei&&e2)) = в\).
8. Докажите, что система связок ! и =>- для подмножества предикатов в
классическом смысле без операций || и && полна.
9. Изобразите дерево вывода для предиката ((ei || (е2&&;ез)) =
((ei||e 2 )&&(ei||e 3 ))).
10. Докажите, что выражение (Зх G [0,1] х2 ^ х) Л (г + j = 3) является
предикатом (в расширенном смысле).
11. Докажите, что система связок V, Л и =>- для подмножества предикатов в классическом смысле без операций || и && не является полной.
12. Запишите предикат, утверждающий, что необходимым условием равенства нулю всех элементов массива Ь[0..п — 1] является отличие от нуля
ровно двух из трех целых чисел а, Ъ и с.
13. Запишите предикат, утверждающий, что достаточным условием наличия в массиве Ь[0..п — 1] нулевых элементов является либо четность
целого числа а, либо нечетность хотя бы одного из целых чисел b или с.
14. Запишите предикат, утверждающий, что необходимым и достаточным
условием равенства нулю всех элементов массива Ь[0..п — 1] является
наличие среди первых к его элементов хотя бы одного нулевого.
15. Приведите пример предиката (в расширенном смысле), множество
состояний которого совпадает с множеством всех точек плоскости, являющегося тавтологией.
16. Постройте дерево вывода для предиката ((ei Л (е2 Л е3)) = ((ei Л е2) Л
17. Вычислите и упростите wp(" i , s = l,b[0] ", 1 ^ г < п Л s = b[0] + ... +
Ь[г-1]).
18. Вычислите и упростите И7^("а,п = 0,1", а2 < п Л (а + I)2 ^ п).
19. Вычислите и упростите Wj9("s=s+b[i] ; i=i+l",0 < г < п Л s = Ь[0] + ... +
Ь[г-1]).
20. Вычислите wp(" if (true)", R) для произвольного предиката R.
21. Найдите выражение ж, при котором следующий предикат будет тавтологией: {г = j" + 1} "j=x;i=i+l" {г = j}.
22. Найдите и упростите wp("a. > b ? a=a-b : b=b-a",a > 0).
23. Вычислите и упростите wр("if а > b then а=Ь end", a = 6).
24. Найдите выражение ж, при котором следующий предикат будет тавтологией: {г = j' + 1} "i=i+l; j=x" {г = j}.
25. Найдите выражение ж, при котором следующий предикат будет тавтологией: {s = Ь[0] + . . . + Ь[г-1]} "s=s+x;i=i+l" {s = Ь[0] + .. . + Ь[г - 1]}.
26. Вычислите и упростите it>]9("s=s+b[i] ; i=i+l",0 < г < п Л s = Ь[0] + ...
+ Ь[г-1]).
27. Вычислите и упростите w;j9("a,n = 0,1", а2 < п Л (а + I)2 ^ п).
28. Найдите wp("4hile true ; end", R) для произвольного предиката R.
29. Найдите выражение ж, при котором следующий предикат будет тавтологией: {г = j} "i=i+l; j=x" {г = j — 1}.
30. Найдите и упростите wp("а <= b ? b=b-a : a=a-b",6 > 0).
31. Вычислите и упростите wp("if а != b then a=b end", a = 6).
32. Вычислите и упростите wp("if а == b then a=b end", a > 0).
33. Вычислите и упростите iu£>("b[i] = 5",6[г] = b[j]).
34. Вычислите и упростите ic£>("b[b[i]] = i", b[i] = г).
35. Опишите с помощью регулярного выражения язык, заданный грам-
матикой S -> ОТ | IS; Т -+ ОТ | е.
36. Опишите с помощью регулярного выражения язык, заданный грамматикой S -> 1Г | OS | е; Т ->• ОТ | г.
37. Опишите с помощью регулярного выражения язык, заданный грамматикой S -> 1Г | IS1; Т -)- ОТ | е.
38. Задайте с помощью грамматики и опишите с помощью регулярного
выражения язык над алфавитом {0,1}, состоящий из всех цепочек,
начинающихся с единицы и заканчивающихся нулём.
39. Задайте с помощью грамматики и опишите с помощью регулярного
выражения язык всех натуральных чисел, не меньших 79.
40. Задайте с помощью грамматики и опишите с помощью регулярного
выражения язык всех натуральных чисел, записанных в шестнадцатерич-ной
системе счисления.
41. Является ли предикат \/х А(х) =>■ Зу А[у) тавтологией?
42. Является ли предикат ЗуУх В(х7 у) =4> Ух 3 уВ(х7 у) тавтологией?
43. Является ли предикат \/х Зу В(х7 у) => 3 у\/х В(х,у) тавтологией?
44. Постройте отрицание к высказыванию (А Л В) =>■ \/у Зх С(ж, у).
45. Запишите предикат, утверждающий, что уравнение f(x) = 0 имеет
ровно два различных корня.
46. Докажите, что предикат (\/х А(х) =>■ Зу В(у)) = (\/х\В(х) =>■
Зу \А{у) является тавтологией.
Download