Ответ:
«* * * » (звезда, пробел, звезда, пробел, звезда, пробел)
Объяснение:
Вызывается функция f, принимающая аргумент 11
Условие x>0 выполняется, при этом вызывается функция g с аргументом x — 1, что будет равно 10
g печатает «* «, пробел после потому что end = » «
Условие x>1 выполняется и вызывается функция с аргументом x — 3, что равно 7
f обращается к g с аргументом x — 1, что равно 6
g печатает «* » снова
g обращается к f с аргументом x — 3, что равно 3
f обращается к g с аргументом x — 1, что равно 2
g печатает «* » снова
g обращается к f с аргументом x — 3, что равно -1
условие x>0 не выполняется
Источник: megamozg.com
Не запуская код, ответьте на вопрос: что выведет на экран данная программа?(питон)
Уроки C++ / #9 урок — Функции и рекурсия
После первой функции f (значение переменной b меняется на значение переменной a, значение переменной с в программе остаётся без изменений, т.к. это локальная переменная и из функции не передаётся):
После функции g (изменяется значение переменной a, значение переменной с в программе остаётся без изменений, т.к. это локальная переменная и из функции не передаётся):
a = ’70’ (a = d + c = ‘7’ + ‘0’ = ’70’, т.к. в функции с = ‘0’)
После второй функции f (значение переменной b меняется на значение переменной a, значение переменной с в программе остаётся без изменений, т.к. это локальная переменная и из функции не передаётся):
a + b + c + d = ’70’ + ’70’ + ‘5’ + ‘7’ = ‘707057’
Источник: 5pages.net
Подпрограммы
Единственный в мире Музей Смайликов
Самая яркая достопримечательность Крыма
Скачать 1.36 Mb.
ПРОЦЕДУРЫ И ФУНКЦИИ
Подпрограммы
Подпрограмма – это отдельная функционально независимая часть программы, имеющая имя и решающая отдельную задачу.
- избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты;
- улучшают структуру программы, облегчая ее понимание;
- позволяют распределять большие задачи между несколькими разработчиками или стадиями проекта;
- повышают устойчивость к ошибкам программирования и непредвидимым
последствиям при модификациях программы.
Два типа подпрограмм
Подпрограммы
выполняют действия, возвращают
В Python нет формального разделения
подпрограмм на процедуры (как,
например, в Паскале или Си), и
процедурой можно считать
функцию, возвращающую пустое
Рекурсия что это. Рекурсия программирование. Рекурсия и цикл. Рекурсия с++. Для начинающих. Урок #43
в основном единственный
Общий вид процедуры
def name_procedury( параметры ):
тело процедуры
define – определить
имя процедуры, даётся тем, кто пишет
если параметры не нужны ставят пустые скобки ()
пишут в скобках имена одной или нескольких переменных через запятую: (n) или (a,b,c,d)
Параметр – это переменная, от значения которой зависит работа подпрограммы.
Вызов процедуры
При вызове процедуры нужно в скобках передать ей фактические значения параметров.
Аргумент – это значение параметра, которое передаётся подпрограмме при её вызове.
Аргументом может быть не только постоянное значение (число, символ), но также переменная, и даже арифметическое выражение.
name_procedury()
name_procedury(n)
name_procedury(a,b,c,d)
Простая процедура
- можно вызывать
сколько угодно раз - нет дублирования кода
- изменять в одном месте
Процедура с параметрами
символьная строка
Общий вид функции
def name_function( параметры ):
тело функции
return ( результат )
define – определить
имя функции, даётся тем, кто пишет
после ключевого слова return будет
возвращаться в качестве
результата вызова функции.
- присвоить переменной,
- использовать его в качестве операндов математических выражений, т.е. составлять более сложные выражения.
Функция
функцию, среднее целых
def Avg(a, b): return (a+b)/2
Функция
Пример. Написать функцию, которая вычисляет наименьший общий делитель двух целых чисел.
Переменные, которые введены в основной программе, называются глобальными (общими). Их могут использовать все подпрограммы (процедуры и функции).
Переменные, которые используются только внутри процедуры или функции, называются локальными (местными). К ним можно обращаться только внутри этой подпрограммы, остальные подпрограммы и основная программа их не видят. Такой прием называется инкапсуляцией (от латинского «помещение в капсулу»).
Локальная переменная создается только при вызове процедуры или функции. Как только работа подпрограммы будет закончена, все локальные переменные будут удаляться из памяти.
переменная b в функции
локальная или глобальная?
Не запуская код, ответьте на вопрос: что выведет на экран данная программа?
Не запуская код, выберите, какие из программ во время запуска получат ошибку выполнения.
Не запуская код, ответьте на вопрос: что выведет на экран данная программа?
Функция
Пример. Функция перевода десятичного
числа в двоичное.
- запрашивается десятичное число,
- если оно не ноль, то вызывается функция перевода его в двоичное представление и
выводится результат работы функции на экран, - иначе (когда введен 0) будем прерывать цикл оператором break.
Функция
Пример. Вам даны 4 отрезка.
Выведите YES, если среди них найдутся 3, из которых можно составить треугольник, и NO
в противном случае.
Для решения напишите функцию triangle(a, b, c), которая будет возвращать True, если из трёх заданных отрезков можно составить треугольник, и False иначе.
Задачи
1) Напишите процедуру, которая принимает
параметр – натуральное число N – и выводит на
экран две линии из N символов «–».
параметр – натуральное число N, –
на экран прямоугольник длиной N
и выводит и высотой
3) Напишите процедуру, которая выводит на экран
треугольник со стороной N символов. При запуске
программы N нужно ввести с клавиатуры.
Длина цепочки: 7
Длина прямоугольника: 7
ooooooo o o
o oo ooo oooo
Задачи
- Напишите функцию, которая вычисляет среднее арифметическое пяти целых чисел.
- Напишите функцию, которая находит количество цифр в десятичной записи числа.
- Напишите функцию, которая находит количество нулей в двоичной записи числа (c клавиатуры вводится десятичное число).
- Найти периметр треугольника, заданного координатами своих вершин. (Определить функцию для расчета длины отрезка по координатам его вершин.)
- Найти все трехзначные простые числа. (Определить функцию, позволяющую распознавать простые числа.)
Найти все трехзначные простые числа
Задачи
- Получить все шестизначные счастливые номера. Счастливым называют такое шестизначное число, в котором сумма его первых трёх цифр равна сумме его последних трёх цифр. (Определить функцию для расчета суммы цифр трёхзначного числа.)
- Даны шесть различных чисел. Определить максимальное из них. (Определить функцию, находящую максимум из двух различных чисел.)
- Составить программу, в результате которой величина а меняется значением с величиной b, а величина c – с величиной d. (Определить процедуру, осуществляющую обмен значениями двух переменных величин.)
Задачи
12) Даны стороны двух треугольников. Найти сумму их периметров и сумму их
площадей. (Определить процедуру для расчета периметра и площади
треугольника по его сторонам.)
13) Даны основания и высоты двух равнобедренных трапеций. Найти сумму их
- В зависимости от выбора пользователя вычислить площадь круга, прямоугольника или треугольника. Для вычисления площади каждой фигуры должна быть написана отдельная функция.
- Напишите функцию, которая возвращает количество цифр в восьмеричной записи числа.
Задачи
- Напишите процедуру с параметрами n и s, которая выводит квадрат размером nxn из символа, который вводится с клавиатуры. Используя эту процедуру, напишите программу, которая запрашивает два значения – строну квадрата и символ, и вызывает процедуру рисования требуемого квадрата
- Напишите процедуру, которая выводит на экран все делители числа N в одну строку через пробел. Используя данную процедуру, составьте программу, которая для всех введенных натуральных чисел (числа вводятся до 0, 0 — признак окончания ввода) выводит делители текущего числа.
- Напишите логическую функцию isByte, которая возвращает значение True, если переданное ей число помещается в 8-битную ячейку памяти (вспомните, какое минимальное и какое максимальное числа можно записать с помощью 8 бит).
Задачи
- Напишите логическую функцию pointInRect, которая возвращает значение True, если точка с заданными координатами находится внутри прямоугольника, для которого заданы координаты верхнего левого и правого нижнего углов. Стороны прямоугольника параллельны осям координат.
- Напишите логическую функцию pointInTriangle, которая возвращает значение
заданного координатами трёх своих вершин.
21) На соревнованиях выступление спортсменов оценивают пять экспертов, каждый из них выставляет оценку в баллах ( целое число от 0 до 100). Для получения итоговой оценки лучшая и худшая из оценок экспертов отбрасываются, а для остальных трёх находится среднее арифметическое. Напишите функцию, которая принимает пять оценок экспертов и возвращает итоговую оценку спортсмена.
Рекурсия
Рекурсия – это определение объекта через такой же объект (или объекты), но с другими параметрами.
Рекурсивная подпрограмма вызывает саму себя напрямую или через другие подпрограммы.
Количество вложенных вызовов функции или процедуры называется глубиной рекурсии. По умолчанию глубина рекурсии в языке Питон ограничена 1000 вызовов.
Рекурсивная программа позволяет описать повторяющееся или даже потенциально бесконечное вычисление, причем без явных повторений частей программы и использования циклов.
Рекурсия
return F(n-1)+ F(n-2) else: return 1
Источник: topuch.com