1. Опишите формальную грамматику, порождающую огромное количество целых двоичных чисел.
2. Измените описание грамматики из примера в п.8.1.2. таким макаром, чтоб она обрисовывала конструкции типа «Имя_1, Имя_2…Имя_N делают_то-то».
3. Что определяет последующая нотация Бекуса-Наура:
<формула>::=<цифра>|(<формула><символ><формула>)
<символ>::= +| — | *
<цифра>::= 0|1|2|3|4|5|6|7|8|9
4. На каком-либо языке программирования напишите программку, функционирующую в согласовании с нотацией, приведенной в прошлом задании.
5. При помощи синтаксических диаграмм опишите последующие конструкции языка PASCAL:
a) оператор цикла с предусловием WHILE…DO;
b) составной оператор;
c) оператор цикла с параметром FOR…DO;
d) оператор выбора CASE.
6. Можно ли считать формальным исполнителем метода последующие устройства:
a) кодовый замок;
b) графический редактор;
c) телефон с памятью для записи номеров;
d) принтер?
7. Постройте блок-схемы последующих структурных алгоритмов:
а) вычисление n! (ввод n);
b) суммирование цифр целого числа при случайной его разрядности (ввод — целое число);
c) перевод целого числа в двоичную систему счисления (ввод — целое число);
d) вычисление значения функции sin(x) с данной точностью е методом суммирования ее разложения в ряд Тейлора (ввод — аргумент х, точность вычисления е).
8. Запишите при помощи псевдокода методы, приведенные в задании 7.
9. Напишите программки на каком-либо языке программирования для алгоритмов задания 7.
10. В чем смысл и значение структурной аксиомы для практики разработки алгоритмов? Может быть ли существование неструктурных алгоритмов? Если «да» — приведите примеры.