Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОбсуждУпр8_Python зачет.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
138.42 Кб
Скачать

Глава 6. Обсуждения

  1. Своими словами опишите два побудительных мотива для определения функций в вашей программе.

  2. Ранее мы думали о компьютерной программе как о последовательном выполнении инструкций, компьютер выполняет текущую инструкцию и переходит к следующей инструкции. Содержит ли эта модель выполнения компьютерной программы, программы, которые содержат функции. Объясните свой ответ.

  3. Параметры это важное понятие при определении функции.

    1. Какова цель параметров?

    2. Какова разница между формальными и действительными параметрами?

    3. В каком смысле параметры похожи, а в каком отличны от обычных переменных?

  4. Функции можно представлять себе как маленькие (под)программы внутри других программ. Как и любая другая программа функция имеет входные и выходные данные для обеспечения связи с основной программой.

    1. Как программа осуществляет ввод данных в одну из своих функций?

    2. Как функция обеспечивает вывод данных в основную программу?

  5. Рассмотрим очень простую функцию: def cube(x): answer=x*x*x return answer

    1. Что делает эта функция

    2. Покажите как программа может использовать эту функцию, чтобы напечатать значение y3, в предположении, что y – переменная.

    3. Следующий фрагмент использует функцию cube(x): answer=4 result=cube(3) print(answer, result) Этот фрагмент печатает «4 27». Объясните почему не «27 27». Функция cube вроде должна была бы изменить значение answer на 27.

Глава 6. Упражнения

  1. Напишите программу, которая печатает стихи песни «Old MacDonald». Ваша программа должна печатать стихи для пяти различных животных, аналогично примеру, приведённому ниже. Old MacDonald had a farm, Ee-igh, Ee-igh, Oh! And on that farm he had a cow, Ee-igh, Ee-igh, Oh! With a moo, moo here and a moo, moo there. Here a moo, there a moo, everywhere a moo, moo. Old MacDonald had a farm, Ee-igh, Ee-igh, Oh!

  2. Напишите программу для написания 10 стихов «The Ants Go Marching». Пара стихов-образцов приведена ниже. Вы можете выбрать свою собственную деятельность для «little one» в каждом стихе, желательно, чтобы сохранялась рифма. The ants go marching one by one, hurrah! hurrah! The ants go marching one by one, hurrah! hurrah! The ants go marching one by one, And they all go marching down… In the ground… To get out… Jf the rain. Boom! Boom! Boom! The ants go marching two by two, hurrah! hurrah! The ants go marching two by two, hurrah! hurrah! The ants go marching two by two, And they all go marching down… In the ground… To get out… Jf the rain. Boom! Boom! Boom!

  3. Напишите определения для следующих функций: sphereArea(radius) Возвращает площадь поверхности сферы заданного радиуса. sphereVolume(radius) Возвращает объём сферы заданного радиуса. Воспользуйтесь вашими функциями для решения упражнения 1 из главы 3.

  4. Напишите определения для следующих двух функций: sumN(n) возвращает сумму n первых натуральных чисел sumNCubes(n) возвращает сумму кубов n первых натуральных чисел. Затем используйте эти функции в программе, которая просит пользователя ввести значение n и печатает сумму первых n натуральных чисел и сумму кубов первых n натуральных чисел.

  5. Переделайте упражнение 2 из главы 3. Используйте две функции – одна вычисляет площадь пиццы, вторая – стоимость квадратного сантиметра пиццы.

  6. Напишите функцию, которая вычисляет площадь треугольника по заданным трём сторонам треугольника (упражнение 9 из главы 3). Воспользуйтесь вашей функцией, чтобы дополнить triangle2Rus.py (Занятие06). Так чтобы в ней также отображалась площадь треугольника.

  7. Напишите функцию для вычисления n-ого числа Фибоначчи. Воспользуйтесь функцией для решения упражнения 16 из главы 3.

  8. В упражнении 17 из главы 3 воспользуйтесь функцией nextGuess(guess, x), которая возвращает следующее приближение значения квадратного корня.

  9. Выполните упражнение 3 из главы 5, используя функцию grade(score), которая возвращает буквенную оценку по заданной численной.

  10. Выполните упражнение 5 из главы 5, используя функцию acronim(phrase), которая возвращает акроним по заданной фразе в виде цепочки символов.

  11. Напишите и протестируйте функцию, удовлетворяющую следующим требованиям. squareEach(nums), где nums это список чисел. Функция заменяет каждое число списка на его квадрат.

  12. Напишите и протестируйте функцию, удовлетворяющую следующим требованиям. sumList(nums), где nums это список чисел. Функция возвращает сумму всех чисел списка.

  13. Напишите и протестируйте функцию, удовлетворяющую следующим требованиям. toNumber(strList), где strList это список цепочек символов, каждая из которых представляет число. Функция заменяет каждую цепочку на число.

  14. Используйте функции из предыдущих трёх задач для написания программы, которая вычисляет сумму квадратов чисел, читаемых из файла. Ваша программа должна спросить имя файла и напечатать значение суммы квадратов в файл. Указание: readlines().

  15. Напишите и протестируйте функцию, удовлетворяющую следующим требованиям. drawFace(center, size, win), где center это объект класса Point, параметр size типа int, win это объект класса GraphWin. Функция рисует простое лицо данного размера в объекте win. Ваша функция может нарисовать простую улыбку (или гримасу) лица. Продемонстрируйте работу функции, написав программу, которая рисует несколько лиц разного размера в одном окне.

  16. Воспользуйтесь функцией drawFace из предыдущего упражнения, чтобы написать анонимайзер фотографий. Эта программа позволяет пользователю загрузить графический файл (такой как PPM или GIF) и начертить мультипликационное лицо поверх существующего лица на фото. Пользователь сначала вводит имя файла, содержащего изображение. Образ отображается и у пользователя спрашивают сколько лиц затереть. Программа затем входит в цикл, на каждой итерации которого пользователь щелкает по двум точкам лица: в центре и на границе (чтобы определить размеры лица). Программа затем рисует лицо в указанном месте с помощью функции drawFace. Указания: Раздел 4.8.4 описывает методы для работы с рисунками в графической библиотеке. Если вы отображаете рисунок в центре окна GraphWin, которое того же размера, что и рисунок, то координаты точек окна будут однозначно соответствовать пикселам рисунка. Рисование графики поверх существующего рисунка в действительности не изменяет рисунок. Чтобы сохранить изменённый рисунок воспользуйтесь скриншотами.

  17. Напишите и протестируйте функцию, удовлетворяющую следующим требованиям. moveTo(shape, newCenter), где shape это графический объект, который поддерживает метод getCenter, а newCenter – объект типа Point. Метод двигает фигуру shape так, что newCenter становится центром фигуры.