Не запуская код ответьте на вопрос что выведет на экран данная программа рекурсия

Ответ:

«* * * » (звезда, пробел, звезда, пробел, звезда, пробел)

Объяснение:

Вызывается функция 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

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru