Конспект лекций по программированию для начинающих. Гладков В.П. - 43 стр.

UptoLike

Составители: 

45
Остановимся еще на некоторых выводах, которые можно сделать из
решения задачи 1. Решение начинается с выбора способа представления
исходных данных. Этот выбор во многом определяет алгоритм решения задачи,
потому что далее подбираются операторы обработки данных в соответствии с
их типом.
В полученных решениях порядок следования операторов изменить нельзя,
иначе будет
нарушен результат.
Решенная задача может встретиться как часть другой, большей задачи,
поэтому ее решение следует запомнить.
Упражнения:
1. Как изменится результат работы программы obmen, если в ней поменять
местами операторы, отмеченные комментариями 2 и 3? 1 и 3? 1 и 2?
2. Какой результат получится, если на вход алгоритма из третьего решения
(решения с операцией xor) подать данные типа string?
Рассмотрим робот Кибик, умеющий исполнять следующий набор команд и
проверок, заданных в виде функций:
сум(a,b) - возвращает
сумму аргументов a и b;
раз(a,b) - возвращает разность аргументов a и b;
кв(a) - возвращает квадрат аргумента а;
пол(а) - возвращает половину аргумента а;
?() - вводит число, заданное пользователем;
!() - выводит результат;
знак(а) проверяет аргумент и возвращает
+1,если x>0,
0, если x=0,
если x<0.
1,
Все используемые роботом числа - вещественные. Программа для робота
строится в виде суперпозиции функций, т.е. вложения их друг в друга.
Пример 8.7. Пусть необходимо вычислить сумму двух заданных
пользователем чисел. Тогда программа для Кибика запишется так:
!(сум(?(),?())). Внимательно проверьте соответствие скобок, здесь это
существенно. Если полученную программу назвать сум2=!(
сум(?(),?())) и
записать в библиотеку программ робота, то ее можно будет использовать в
других программах наравне с командами робота. Однако в отличие от команд,
выполнение сум2 вызовет исполнение программы из библиотеки, состоящей из
нескольких команд.
Включение новых программ в библиотеку робота можно сравнить с
обучением, т.к. с каждой новой
включенной программой расширяется круг
решаемых роботом задач, т.е. увеличиваются его знания и умения.
Пример 8.8. Составим для Кибика программу для вычисления выражения:
352+498-703. Здесь исходными данными являются три числа. Они могут быть
любыми, поэтому в общем случае искомая программа должна находить
значение выражения a+b-c. (Заметьте, что меняющиеся от одного вычисления к
другому значения констант мы заменили переменными.)
                                      45

    Остановимся еще на некоторых выводах, которые можно сделать из
решения задачи 1. Решение начинается с выбора способа представления
исходных данных. Этот выбор во многом определяет алгоритм решения задачи,
потому что далее подбираются операторы обработки данных в соответствии с
их типом.
    В полученных решениях порядок следования операторов изменить нельзя,
иначе будет нарушен результат.
    Решенная задача может встретиться как часть другой, большей задачи,
поэтому ее решение следует запомнить.
    Упражнения:
    1. Как изменится результат работы программы obmen, если в ней поменять
местами операторы, отмеченные комментариями 2 и 3? 1 и 3? 1 и 2?
    2. Какой результат получится, если на вход алгоритма из третьего решения
(решения с операцией xor) подать данные типа string?
    Рассмотрим робот Кибик, умеющий исполнять следующий набор команд и
проверок, заданных в виде функций:
    сум(a,b) - возвращает сумму аргументов a и b;
    раз(a,b) - возвращает разность аргументов a и b;
    кв(a) - возвращает квадрат аргумента а;
    пол(а) - возвращает половину аргумента а;
    ?() - вводит число, заданное пользователем;
    !() - выводит результат;
                                                 ⎧+ 1, если x > 0,
                                                 ⎪
    знак(а) − проверяет аргумент и возвращает ⎨0, если x = 0,
                                                 ⎪
                                                 ⎩− 1, если x < 0.
    Все используемые роботом числа - вещественные. Программа для робота
строится в виде суперпозиции функций, т.е. вложения их друг в друга.
    Пример 8.7. Пусть необходимо вычислить сумму двух заданных
пользователем чисел. Тогда программа для Кибика запишется так:
!(сум(?(),?())). Внимательно проверьте соответствие скобок, здесь это
существенно. Если полученную программу назвать сум2=!(сум(?(),?())) и
записать в библиотеку программ робота, то ее можно будет использовать в
других программах наравне с командами робота. Однако в отличие от команд,
выполнение сум2 вызовет исполнение программы из библиотеки, состоящей из
нескольких команд.
    Включение новых программ в библиотеку робота можно сравнить с
обучением, т.к. с каждой новой включенной программой расширяется круг
решаемых роботом задач, т.е. увеличиваются его знания и умения.
    Пример 8.8. Составим для Кибика программу для вычисления выражения:
352+498-703. Здесь исходными данными являются три числа. Они могут быть
любыми, поэтому в общем случае искомая программа должна находить
значение выражения a+b-c. (Заметьте, что меняющиеся от одного вычисления к
другому значения констант мы заменили переменными.)