Указывает на то что необходимо выполнить функцию
Указывает на то что необходимо выполнить функцию
Циклический алгоритм – описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называют телом цикла.
Циклические алгоритмы бывают двух типов:
Циклы со счетчиком, в которых какие-то действия выполняются определенное число раз;
Циклы с условием, в которых тело цикла выполняется, в зависимости от какого-либо условия.
В общем случае схема циклического алгоритма со счетчиком будет выглядеть так:
Для счетчика от нач. значения до кон. значения выполнить действие. Часто бывает так, что необходимо повторить тело цикла, но заранее не известно, какое количество раз это надо сделать. В таких случаях количество повторений зависит от некоторого условия. Такие циклы называются циклы с условием. Циклы в которых сначала проверяется условие, а затем, возможно, выполняется тело цикла называют циклы с предусловием. Если условие проверяется после первого выполнения тела цикла, то циклы называются циклы с постусловием.
Например, в субботу вечером вы смотрите телевизор. Время от времени поглядываете на часы и если время меньше полуночи, то продолжаете смотреть телевизор, если это не так, то вы прекращаете просмотр телепередач.
В общем случае схема циклического алгоритма с условием будет выглядеть так:
Полезный блог
Чем больше в вашей программе строк, тем сложнее она для понимания. Поскольку программу придётся актуализировать, дополнять и изменять бесконечно, то объёмный код в этой задаче не помощник. Для его упрощения есть функции. Благодаря им вы сократите время на разработку и уберёте дублирующиеся части. Понимать и тестировать программу станет проще. Как всё работает, сейчас покажем.
Сначала теория
Программы состоят из алгоритмов. А они в свою очередь из команд, переменных и функций.
Функция – это часть кода, совокупность команд, которая решает конкретную задачу. Чтобы легко обратиться к функции из разных частей программы, ей присваивают имя.
Зачем обращаться к функции? Чтобы не прописывать тот же самый алгоритм повторно в другом месте. Вместо этого достаточно написать только имя функции. Код становится лаконичным и понятным, его легко отлаживать и сопровождать.
Объясняем
Например, вы хотите написать программу, которая проигрывает песню. И в ней 5 раз звучит игра на барабанах. Вы бы прописали следующий алгоритм для барабанщика:
4. Нажать на педаль ногой.
5. Помотать головой в такт.
Без функции вам пришлось бы прописывать 5 раз одно и то же в тех частях композиции, где нужны ударные. Но гораздо удобнее оформить этот алгоритм в функцию playDrums и вызывать её каждый раз, когда необходимо. Это экономит время.
По сути, это алгоритм в алгоритме, который вызывается по имени с помощью команды. Например, лай собаки – это функция, которая выполняется по определённому алгоритму и вызывается командой «Голос».
Аргументы
Функциям можно передавать параметры, которые называются аргументами функции.
Когда мы пишем функцию, то указываем в ней не конкретные значения, а параметры, которые необходимо ввести при вызове функции, чтобы она заработала.
Например, если взять функцию человека ходить, то в качестве аргументов в неё передаётся «обувь».
Обувь – это параметр.
В разное время потребуется разная обувь, поэтому при каждом вызове функции аргументы меняются. Например, чтобы ходить по спортивной площадке нужна обувь «кроссовки», а чтобы перейти лужу – «сапоги».
Кроссовки и сапоги – это аргументы.
Алгоритм при этом не поменяется: каждый раз человек ходит одинаково, но в разной обуви.
При вызове функции в строке происходит следующее:
1. Язык программирования находит её в той части программы, где она прописана.
2. Выполняет команды, содержащиеся в ней, с учетом указанных при вызове аргументов.
3. Возвращается обратно к строке, которая её вызвала.
4. Переходит к следующей строке.
Некоторые функции уже встроены в язык программирования, например, console.log() в JavaScript, с которой мы уже познакомились 🙂
Пользовательские функции
Помимо стандартных встроенных в язык функций, мы можем создавать свои – пользовательские. Для этого необходимо записать алгоритм в определённой форме и придумать ему имя.
В JavaScript специальное слово для определения функций – function. После него указывается:
— список аргументов в круглых скобках;
— тело функции в фигурных скобках.
Создадим простейшую функцию без параметров с именем greeting, которая будет выводить строку ‘Hello!’:
Если позже нам понадобится вызвать функцию в другой части программы, то мы вызовем её только по имени – «greeting();» – и нажмём :
Увидим в консоли результат:
Тренировка
1. Напишем на JS функцию height() с двумя аргументами: высота в полных метрах (m) и остаток в сантиметрах (cm). Объявление функции выглядит так:
При объявлении функции нам не нужно указывать значения этих параметров. Мы только обозначаем их через запятую. Когда позже мы вызовем функцию, то укажем в скобках после имени конкретные значения, которые компьютер подставит под эти параметры.
2. По нашей задумке функция height() должна вычислять общую высоту в сантиметрах и выводить её в консоль. Для этого мы составим формулу вычисления, по которой функция произведет расчёт:
100 * m + cm
Мы указали, что для расчета общей высоты в сантиметрах необходимо взять значение аргумента m, умножить его на 100, а затем прибавить значение аргумента cm.
3. Запишем эту формулу в переменную total. Наша функция теперь выглядит так:
4. Попросим функцию сразу выводить значение переменной total, которое получилось после произведённого рассчета:
5. Вызовем функцию с аргументами 1 и 70:
Что произойдёт? Компьютер понимает, что функции height(m, cm) переданы аргументы 1 и 70 и подставляет их соответственно: m = 1, cm = 70. Затем производится расчёт по формуле:
Результат вычисления 170 записывается в переменную total. Далее – значение переменной total выводится в консоль:
6. Теперь попросим функцию выводить не просто результат расчёта, а добавлять к нему обозначение результата ‘cm tall’ и снова вызовем функцию с теми же аргументами:
Алгоритм работы функции не поменяется. Но при выводе результата вычисления – в нашем случае 170 – выполняется конкатенация (склейка) двух строк таким образом:
— значение переменной total автоматически преобразуется в строку благодаря неявному преобразованию в JavaScript: число 170 превращается в строку ‘170’;
— строка ‘cm tall’ склеивается со строкой ‘170’.
Теперь результат в консоли выглядит так:
Возвращение значений
Функции могут возвращать значения – результаты вычислений. Эти значения удобно присвоить переменной и использовать при необходимости для выполнения дальнейших вычислений.
Чтобы «научить» функцию возвращать значения потребуется ввести ключевое слово return. А после него указать значение какой переменной необходимо вернуть.
Напишем функцию с именем calc(), которая бы принимала два числовых параметра и суммировала их. Запишем алгоритмическое выражение в переменную total:
Справка! Переменной присваивается не само выражение a + b, а результат, который в итоге получится.
Теперь попросим функцию возвращать значение переменной total:
При вычислении функция получит результат, присвоит его переменной total и вернёт это значение как результат функции.
Например, вызовем функцию calc() с параметрами 4 и 5:
Такие хитрости упрощают жизнь разработчика. Без функций на прописывание повторов в коде уходило бы время, за которое программист напишет еще 30-40% программы.
Домашнее задание
Напишите функцию на языке JavaScript, которая бы считала количество минут в днях.
Функция. Способы задания функций.
Функция является заданной, иначе говоря, известной, если для каждого значения возможного числа аргументов можно узнать соответствующее значение функции. Наиболее распространенные три способа задания функции: табличный, графический, аналитический, существуют еще словесный и рекурсивный способы.
1. Табличный способ наиболее широко распространен (таблицы логарифмов, квадратных корней), основное его достоинство – возможность получения числового значения функции, недостатки заключаются в том, что таблица может быть трудно читаема и иногда не содержит промежуточных значений аргумента.
Аргумент х принимает заданные в таблице значения, а у определяется соответственно этому аргументу х.
2. Графический способ заключается в проведении линии (графика), у которой абсциссы изображают значения аргумента, а ординаты – соответствующие значения функции. Часто для наглядности масштабы на осях принимают разными.
Например: для нахождения по графику у, которому соответствует х = 2,5 необходимо провести перпендикуляр к оси х на отметке 2,5. Отметку можно довольно точно сделать с помощью линейки. Тогда найдем, что при х = 2,5 у равно 7,5, однако если нам необходимо найти значение у при х равном 2,76, то графический способ задания функции не будет достаточно точным, т.к. линейка не дает возможности для столь точного замера.
Достоинства этого способа задания функций заключаются в легкости и целостности восприятия, в непрерывности изменения аргумента; недостатком является уменьшение степени точности и сложность получения точных значений.
3. Аналитический способ состоит в задании функции одной или несколькими формулами. Основным достоинством этого способа является высокая точность определения функции от интересующего аргумента, а недостатком является затрата времени на проведение дополнительных математических операций.
4. Словесный способ состоит в задании функции обычным языком, т.е. словами. При этом необходимо дать входные, выходные значения и соответствие между ними.
Словесно можно задать функцию (задачу), принимающуюся в виде натурального аргумента х с соответствующим значением суммы цифр, из которых состоит значение у. Поясняем: если х равно 4, то у равно 4, а если х равно 358, то у равен сумме 3 + 5 + 8, т. е 16. Далее аналогично.
5. Рекурсивный способ состоит в задании функции через саму себя, при этом значения функции определяются через другие ее же значения. Такой способ задания функции используется в задании множеств и рядов.
При разложении числа Эйлера задается функцией:
Ее сокращение приведено ниже:
При прямом расчёте возникает бесконечная рекурсия, но можно доказать, что значение f(n) при возрастании n стремится к единице (поэтому, несмотря на бесконечность ряда, значение числа Эйлера конечно). Для приближённого вычисления значения e достаточно искусственно ограничить глубину рекурсии некоторым наперёд заданным числом и по достижении его использовать вместо f(n) единицу.
Тест по дисциплине «Основы алгоритмизации и программирования»
1. Какому зарезервированному слову программа передаёт управление в случае, если значение переменной или выражения оператора switch не совпадает ни с одним константным выражением?
2. Какой оператор не допускает перехода от одного константного выражения к другому?
4. Укажите правильное определение функции main в соответствии со спецификацией стандарта ANSI
5. Какую функцию должны содержать все программы на С++?
6. До каких пор будут выполняться операторы в теле цикла while (x
Пока х меньше или равен 100
Пока х строго меньше 100
7. Какое значение, по умолчанию, возвращает программа операционной системе в случае успешного завершения?
Программа не возвращает значение.
8. Структура объявления переменных в С++
9. Программа, переводящая входную программу на исходном языке в эквивалентную ей выходную программу на результирующем языке, называется:
10. Название С++ предложил
11. Каков результат работы следующего франмента кода?
case 2: cout Привет мир «;
12. Какое значение будет напечатано?
int main(int argc, char** argv)
13. Оператор вывода cout может печатать несколько значений или переменных в одной команде, используя следующий синтаксис:
cout Привет «, name, «n»;
cout Привет » + name + «n»;
14. Какое значение будет напечатано, в результате выполнения программы?
ничего не напечатается, программа вообще не будет работать
15. Тело оператора выбора if, будет выполняться. если его условие:
16. Укажите блок кода, в котором переменная y доступна.
int main(int argc, char** argv)
17. Что появится на экране, после выполнения этого фрагмента кода?
вывод на экран не выполнится
результат не может быть заранее определен
19. Какое из следующих значений эквивалентно зарезервированному слову true?
Все варианты ответов
20. Это значение 5.9875e17 может быть сохранено в переменной, типа
21. Вывод данных в C++
22. В каком случае лучше всего использовать приведение типов данных?
во всех выше указанных случаях
чтобы разрешить программе использовать только целые числа
чтобы изменить тип возвращаемого значения функции
при делении двух целых чисел, для того, чтобы вернуть результат с плавающей точкой
23. Какой тип данных имеет переменная ARGV?
24. Что будет напечатано на экране, после выполнения этого кода?
int main(int argc, char** argv)
25. Какая строка содержит зарезервированные слова языка программирования С++?
sizeof, const, typedef, static, voided, enum, struct, union
char, int, float, doubled, short, long, unsigned, signed
if, else, for, while do, switch, continue, break
defaulted, goto, return, extern, private, public, protected
const variable = value;
const type variable := value;
const type variable = value;
2. Укажите объектно-ориентированный язык программирования
Все варианты ответов
int i, N = 40;for(i = 0; i
int i, N = 20;for(i = 0; i
int i, N = 20;for(i = 20; i
int i, N = 20;for(i = 19; i
4. Какие служебные символы используются для обозначения начала и конца блока кода?
5. Чтобы подключить заголовочный файл в программу на С++, например iostream необходимо написать:
#include <>; с iostream.h внутри скобок
#include <> с iostream внутри скобок
6. Какими знаками заканчивается большинство строк кода в Си++?
у цикла нет условия
8. Что будет напечатано?
Ошибка компиляции в строке 10
9. Какой из перечисленных типов данных не является типом данных в С++?
11. Результат выполнения следующего фрагмента кода: 54
нет правильного ответа
12. Какие преобразования типов данных не возможны без потери данных?
все перечисленные преобразования не возможны
13. Укажите операцию, приоритет выполнения которой ниже остальных.
14. Что будет напечатано, после выполнения этого кода: cout
15. Укажите неправильно записанную операцию отношения
все операторы записаны правильно
16. Результат выполнения следующего фрагмента кода: cout
17. В каком случае можно не использовать фигурные скобочки в операторе выбора if?
если в теле оператора if всего один оператор
если в теле оператора if два и более операторов
нет правильного ответа
если в теле оператора if нет ни одного оператора
18. Ввод данных в C++
19. Какое ключевое слово указывает, что целая переменная не может принимать отрицательные значения?
нет такого зарезервированного слова
20. Преобразование целочисленной переменной value в ASCII эквивалент
22. Какое значение будет содержать переменная y?
int main(int argc, char** argv)
int y = sizeof(x) / sizeof(int);
23. Укажите правильный вызов функции, предпологается, что функция была объявлена ранее.
24. Что такое ARGV[0]?
ARGV[0] нигде не используется
первый аргумент, который передается в программу из командной строки
25. Можно ли гарантировать, что объявленная встроенная функция действительно является встроенной?
можно с уверенностью гарантировать, что объявленная вами функция как встроенная, действительно будет встроенной
гарантировать не возможно, в каждом индивидуальном случае бывает по разному
1. Язык программирования C++ разработал
2. Какие среды программирования (IDE) предназначены для разработки программных средств?
MVS, Code::Blocks, QT Creator, AutoCAD, Eclipse
MVS, NetBeans, QT Creator, RAD Studio, Dev-C++
MVS, Code::Blocks, QT Creator, RAD Studio, MathCAD
4. Чему будет равна переменная a, после выполнения этого кода int a; for(a = 0; a
5. Цикл с постусловием?
6. Укажите правильную форму записи цикла do while
// форма записи оператора цикла do while:
do // начало цикла do while
// форма записи оператора цикла do while:
do // начало цикла do while
while (/*условие выполнения цикла*/); // конец цикла do while
// форма записи оператора цикла do while:
do // начало цикла do while
while (/*условие выполнения цикла*/) // конец цикла do while
7. Какой из ниже перечисленных операторов, не является циклом в С++?
8. Общий формат оператора множественного выбора – switch
case constant1, case constant2: statement1; [break;]
case constantN: statementN; [break;]
[default: statement N+l;]
case constant1: statement1; [break;]
case constant2: statement2; [break;]
case constantN: statementN; [break;]
[default: statement N+l;]
case constant1: statement1; [break;]
case constant2: statement2; [break;]
case constantN: statementN; [break;]
9. Цикл с предусловием?
10. Простые типы данных в С++.
целые – bool, вещественные – float или double, символьные – string
целые – int, вещественные – float или double, символьные – char
целые – int, вещественные – float или double, символьные – string
целые – int, вещественные – float или real, символьные – char
11. Укажите операцию, приоритет выполнения которой больше остальных
13. Какое значение будет содержать переменная х?
14. Какой заголовочный файл следует подключить, чтобы можно было пользоваться приведением типов данных?
15. Переменная x может быть доступна в другом блоке программы?
int main(int argc, char** argv)
16. Если условие оператора выбора ложное, то:
выполняется тело оператора выбора
выполняется следующий оператор, сразу после оператора if
программа завершает работу
17. Логическая операция с большим приоритетом выполнения
19. Укажите правильное приведение типа данных!
20. Почему приведение типов данных может быть не безопасно.
нет никаких опасностей
Вы можете навсегда изменить значение переменной
только для ложного условия
только для истинного условия
для истинного и ложного условий
условное выражение if
if условное выражение
if ( условное выражение )
23. Какая из переменных хранит количество аргументов, передаваемых в программу?
24. Для чего используются встроенные функции?
Чтобы уменьшить размер программы
Для увеличения скорости работы программы
Для удаления ненужных функций
Для упрощения файла с исходным кодом
25. Что будет напечатано на экране, после выполнения этого кода?
int foo(int x, int y)
double foo(double x, double y)
int main(int argc, char** argv)
Курс повышения квалификации
Дистанционное обучение как современный формат преподавания
Курс повышения квалификации
Современные педтехнологии в деятельности учителя
Курс профессиональной переподготовки
Информатика: теория и методика преподавания в образовательной организации
Ищем педагогов в команду «Инфоурок»
Номер материала: ДБ-1636687
Не нашли то что искали?
Вам будут интересны эти курсы:
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.
Учителям предлагают 1,5 миллиона рублей за переезд в Златоуст
Время чтения: 1 минута
В Москве новогодние каникулы в школах могут начаться с 27 декабря
Время чтения: 1 минута
Учителя о ЕГЭ: секреты успешной подготовки
Время чтения: 11 минут
Росприроднадзор призвал ввести в школах курс по экологии
Время чтения: 1 минута
Путин поручил не считать выплаты за классное руководство в средней зарплате
Время чтения: 1 минута
Минтруд представил проект программ переобучения безработных на 2022 год
Время чтения: 2 минуты
Подарочные сертификаты
Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако администрация сайта готова оказать всяческую поддержку в решении любых вопросов, связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.
Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение администрации может не совпадать с точкой зрения авторов.
Определение функции. Способы задания функции.
Что значить задать функцию? Какими способами можно задать функцию? Что такое определение функции?
Задать функцию — это значит указать правило, при задании любого значения аргумента x вы найдете значение функции y.
Функция y=f(x) – зависимость переменной y от переменной x. Когда задаем значение аргумента x, получаем единственное значение функции y.
Способы задания функции.
В данной статье рассмотрим 3 способа задания функции. На самом деле их больше, в школьной программе чаще всего разбирают эти способы задания функции.
Аналитический способ задания функции.
Чаще всего в школьной программе правило задают в виде формулы y=f(x), x∈X или нескольких формул. Такой способ задания функции называется аналитическим.
Примеры аналитического задания функции:
Графический способ задания функции.
Также если по формуле построить график функции, то данный способ задания функции будет называться графическим. Не всегда вам будут давать график совместно с формулой. Иногда вам в заданиях будут давать только график функции, по которому вы должны будете найти определенные данные. По графику функции можно восстановить его формулу, но это не всегда легко сделать, все зависит от начерченного графика. В школьной программе вам будут задавать графики, по которым вы сможете рассчитать формулу.
Примеры, графического задания функции:


Табличный способ задания функции.
Следующий способ задания функции применяется чаще всего на практике называется табличный.
Все данные представлены в виде таблице. У этого способа имеется конечное множество значений аргумента. Такими таблицами вы уже пользовались в алгебре, например, таблица квадратов, таблица корней и т.д.
Примеры, табличного задания функции:
x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
y | 1 | 4 | 9 | 16 | 25 | 36 | 49 | 64 | 81 |
Рассмотрим примеры по теме «Способы задания функции»:
Пример №1:
Является ли графическим заданием какой-либо функции фигура?
Сколько бы мы не проводили вертикальных линий, всегда будет одно пересечение с графиком. Следовательно, изображенная фигура является графиком функции.
Пример №2:
Является ли графическим заданием какой-либо функции фигура?
Сколько бы мы не проводили вертикальных линий, всегда будет одно пересечение с графиком. Следовательно, изображенная фигура является графиком функции.
Пример №3:
Является ли графическим заданием какой-либо функции фигура?
При проведении вертикальных линий у нас имеется два пересечения. То есть у одной вертикальной линии два пересечения с фигурой. По определению переменной x должно соответствовать только одно значение переменной y, а у нас два пересечения фигуры. Следовательно, данная фигура не является графиком функции.