Главная страница
Навигация по странице:

  • Параметры функции

  • Информатика. Шпаргалка. С++. Информатика. Шпаргалка. Экзаменационные вопросы по информатике Вопрос 1 Информация. Информационные революции. Информационные технологии. Информатика


    Скачать 434.98 Kb.
    НазваниеЭкзаменационные вопросы по информатике Вопрос 1 Информация. Информационные революции. Информационные технологии. Информатика
    АнкорИнформатика. Шпаргалка. С++.docx
    Дата03.04.2017
    Размер434.98 Kb.
    Формат файлаdocx
    Имя файлаИнформатика. Шпаргалка. С++.docx
    ТипЭкзаменационные вопросы
    #4456
    страница9 из 10
    1   2   3   4   5   6   7   8   9   10



    Вопрос 24

    Алгоритмы обработки двумерных массивов. Поиск в выделенных областях.


    Поиск в выделенных областях.

    Часто возникает необходимость осуществить обработку в некоторой части матриц: только на главной диагонали, выше главной диагонали, ниже главной диагонали. Для обработки используются кратные циклы.

    1)выше главной диагонали, не включая ее элементы:

    i:=1 ton-1

    j:=I+1 ton

    2)выше главной диагонали, включая ее элементы:

    i:=1 ton

    j:=Iton

    3)ниже главной диагонали, не включая ее элементы:

    j:=1 ton-1

    i:=j+1 ton

    4)ниже главной диагонали, включая ее элементы:

    j:=1 ton

    i:=jton

    Вопрос 28

    Функции в С++. Описание, вызов, передача результата. Формальные и фактические параметры, правила соответствия, примеры.


    Функции

    Важный плюс применения функций – возможность с их помощью разбить сложную задачу на ряд сравнительно простых этапов.

    Для того, чтобы в С++ использовать функцию, нужно ее:

    1) Описать (или определить).

    2) Объявить.

    3) Вызвать.

    Описание функции

    Функция описывается заголовком и телом.

    Заголовок содержит:

    • класс памяти;

    • имя функции;

    • тип возвращаемого результата;

    • имена и типы формальных параметров, заключенные в ( ) и разделенные запятыми.
    Объявление и определение функций

    Функция — это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие. Функция может принимать параметры и возвращать значение.

    Любая программа на C++ состоит из функций, одна из которых должна иметь имя main (с нее начинается выполнение программы). Функция начинает выполняться в момент вызова. Любая функция должна быть объявлена и определена. Как и для других величин, объявлений может быть несколько, а определение только одно. Объявление функции должно находиться в тексте раньше ее вызова для того, чтобы компилятор мог осуществить проверку правильности вызова. Объявление функции (прототип, заголовок, сигнатура) задает ее имя, тип возвращаемого значения и список передаваемых параметров.
    Правила соответствия

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

    • Список параметров определяет величины, которые требуется передать в функцию при ее вызове. Элементы списка параметров разделяются запятыми. Для каждого параметра, передаваемого в функцию, указывается его тип и имя (в объявлении имена можно опускать).

    • В определении, в объявлении и при вызове одной и той же функции типы и порядок

    следования параметров должны совпадать

    c:\users\илья\desktop\img4.jpg

    c:\users\илья\desktop\img1.jpg


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

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

    #include

    int sum (int a. int b); // объявление функции

    int main(){

    int a = 2, b - 3, c. d;

    с = sum(a. b): // вызов функции

    cin » d:

    cout « sum(c. d); // вызов функции

    return 0:

    }

    int sumdnt а. int b){ // определение функции

    return (а + b):

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

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

    Существует два способа передачи параметров в функцию: по значению и по адресу. При передаче по значению в стек заносятся копии значений аргументов, и операторы функции работают с этими копиями.

    При передаче по адресу в стек заносятся копии адресов аргументов, а функция осуществляет доступ к ячейкам памяти по этим адресам и может изменить исходные значения аргументов:

    #1nclude

    void f(int i. int* j . int& k);

    Если требуется запретить изменение параметра внутри функции, используется

    модификатор const:

    1nt f(const char*);

    char* t(char* a. const int* b);

    По умолчанию параметры любого типа, кроме массива и функции (например, ве­

    щественного, структурного, перечисление, объединение, указатель), передаются

    в функцию по значению.
    Примеры описания функции

    Пример :

    /* Функция poisk — предназначена для поиска максимального элемента и его номера, значение максимума возвращается в качестве результата через заголовок, а номер максимального элемента n_max возвращается через список параметров. Здесьn_maxобъявленкакуказатель */

    intpoisk(int* a, int n, int* n_max)

    // входной параметр a - массив объявлен как указатель

    // входной параметр n - число элементов в массиве

    //

    1   2   3   4   5   6   7   8   9   10


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