Главная страница

не знаю. Организация Вводавывода данных


Скачать 47.24 Kb.
НазваниеОрганизация Вводавывода данных
Анкорне знаю
Дата30.05.2020
Размер47.24 Kb.
Формат файлаdocx
Имя файла-_-_.docx
ТипЛекции
#126713

Тема лекции:

«Организация Ввода/вывода данных».

Цель лекции: Расширить знания в области программирования функций, ознакомиться с новыми определениями такими, как прототип функции, перегрузка функции, передача значений функции по значению и по ссылке.

Повторение. Подготовка к контр. работе.

1. Ответить на вопросы. (УСТНО!)

  1. Дать определение функции

  2. Как создать функции в C++

  3. Типы данных функции (перечислить).

  4. Что такое Имя функции.

  5. Тело функции (Из чего состоит)

  6. Аргументы функции

  7. Что такое «Возвращаемое значение»

  8. Как вызывать функцию


Далее внимательно прочитайте и запишите основные положения теории, особенно те, кто пропустил или не понял тему Функции.

  1. Язык С++ позволяет описывать функции в любом порядке (сверху-вниз, снизу вверх, смешанно), но некоторое время, в первые дни знакомства с функциями, пробуйте придерживаться стиля снизу-вверх

  2. Функции состоят из 4 частей: тип, название, список формальных параметров, блок с вычислением

  3. Если тип, приписанный к функции, не void, тогда внутри функции обязательно должно быть return (исключением является функция main(), современные компиляторы умеют неявно прописывать return внутри неё, поэтому в ней оно необязательно в явном виде)

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

  5. Круглые скобки функции — это список формальных параметров. При написании функции в список параметров надо заявить типы, с которыми должна работать функция, и дать параметрам имена, чтобы мы имели связь с параметрами, принимающими приходящие данные

  6. Список формальных параметров может быть или пустым (пустые круглые скобки), или с заявленными параметрами

  7. Количество параметров должно совпадать с количеством приходящих в функцию аргументов. Исключение только если в списке формальных параметров явно описано то, что количество приходящих в функцию аргументов может быть разным. Вам пока что нужно просто познакомиться с функциями и понять их суть, о разном количестве аргументов задумываться не нужно (не бегите впереди паровоза)

  8. Типы параметров должны совпадать с типами приходящих в них аргументов. Хоть иногда типы могут совпадать не строго, из-за умения С++ неявно преобразовывать типы, лучше следовать простому правилу, что типы должны полностью совпадать, иначе можно словить не очень приятную ошибку

  9. Количество параметров ничем не ограничено

  10. Функции, порождающие значение путём использования в вычислении пришедших в них аргументов, могут отдавать результат вычисления, для этого используется return

  11. В первое время функцию можно воспринимать как переменную, которой можно скормить значения, чтобы получить какой-то ожидаемый эффект: сумма, разность, квадратный корень, степень или логарифм и др. — любой запрограммированный прогаммистом или вами эффект. Но в то же время нужно помнить и никогда не забывать, что функции — не переменные. Этот совет только для вашего осознания способов использования функций в кодах. В функцию обычно нельзя присвоить значение, но забрать из функции значение как будто бы она переменная — легко.

  12. Различайте термины аргумент и параметр. Аргументы используются при обращении к функции (возможно, множество раз), а параметры в описании функции только однажды

ИТОГО (лучше записать):

  1. Любая функция имеет тип, как и любая переменная.

  2. Функция может возвращать значение, тип которого в большинстве случаев аналогично типу самой функции.

  3. Если функция не возвращает никакого значения, то она должна иметь тип void (такие функции иногда называют процедурами)

  4. При объявлении функции, после ее типа должно находиться имя функции и две круглые скобки — открывающая и закрывающая, внутри которых могут находиться один или несколько аргументов функции, которых также может не быть вообще.

  5. после списка аргументов функции ставится открывающая фигурная скобка, после которой находится само тело функции.

  6. В конце тела функции обязательно ставится закрывающая фигурная скобка.

  7. Для чего нужны функции:

Функции очень сильно облегчают работу программисту и намного повышают читаемость и понятность кода, в том числе и для самого разработчика

Пример построения функции (записать)

#include

using namespace std;

void function_name ()

{

cout<< "Hello, world" <

}

int main()

{

function_name(); // Вызовфункции

return 0;

}
Определить функцию можно двумя способами:

1.до main-функции;

2.после main-функции.

В этом случае необходимо до main-функции объявить прототип собственной функции.

Второй способ является более распространённым.

Первый способ можно использовать, если функция одна и её код совсем небольшой.

Вызов функций

Вызов функцииможет быть выполнен из функции main() или из любой другой функции и даже из самой себя (рекурсивная функция). По завершению работы вызванной функции выполнение программы возобновляется со строки, следующей после вызова функции.

Вызов функции может быть оформлен двумя способами:

1.в виде оператора, если у функции отсутствует возвращаемое значение,

2.или в виде выражения, если существует возвращаемое значение.

  1. Если функция имеет тип возвращаемого значения void, т.е. не возвращает никакого значения, тогда функция вызывается отдельно стоящим оператором:

имя_функции([список_аргументов]);

где список_аргументов задаёт список величин, называемых аргументами, которые передаются в функцию при её вызове.

Передача аргументов в функцию:

1.по значению

2. по ссылке (по адресу)

По умолчанию аргументы в функцию передаются по значению. В этом случае C++ помещает копию значения аргумента во временный участок памяти, называемый стеком.Любые изменения, которые функция осуществляет над аргументом, влияют только на эту копию,расположенную в стеке. Например:



intmain(){

int y = 5; fun(y);

cout<5


}

void fun(int x){

x++;

cout<6

}

Как мы видим, изменения, внесенные в параметр x во время выполнения функции, не влияют на значение переменной y, которая передаётся в функцию, т.е. на аргумент.


написать администратору сайта