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

  • Пара́метр

  • 32.Многомодульная программа в с++. Препроцессор. Основныедирективы

  • 34 Динамическая память.Операторыnew и delete.Функцииmalloc и free

  • 33.Понятие указателя. Операции. Указатели и массивы. Указатель на функцию.

  • 35Обработка символьной информации в с++.Массивы символов.Строки.Основные функции для работы со строками

  • Копирование строк strlen

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


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

    Вопрос 25

    Приближенные вычисления и их реализация в С++. Метод бисекции и метод Ньютона.

    Вопрос 26

    Приближенные вычисления и их реализация в С++. Метод бисекции и метод секущих.

    Вопрос 27

    Приближенные вычисления и их реализация в С++. Метод бисекции и метод простых итераций.




    Вопрос 29

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


    Тип void

    К основным типам языка относится тип void, но множество значений этого типа пусто. Он используется для определения функций, которые не возвращают значения, для указания пустого списка аргументов функции, как базовый тип для указателей) и в операции приведения типов
    Вызов функций
    Вызов функции - это выражение, которое передает управление и ФАКТИЧЕСКИЕ параметры (если они есть) функции. Вызов функции связан с выполнением действий над фактическими параметрами, заданных в ее определении.

    Вопрос 30

    Параметры-переменные и параметры-значения. Механизм передачи в функцию и из неё. Локальные и глобальные данные. Примеры.


    Пара́метр в программировании — принятый функцией аргумент. Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в каком качестве функция применила это принятое. Т.е. вызывающий код передает аргумент в параметр, который определен в члене спецификации функции.

    По способу применения различают:

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

    Правила соответствия

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

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

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

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

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

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

    Локальные переменные – действуют в пределах одной функции (память выделяется только при вызове функции)

    Глобальные переменные – действуют на протяжении всей программы. Хранятся в статическом сегменте памяти. Память под них распределяется при компиляции программы.


    32.Многомодульная программа в с++. Препроцессор. Основныедирективы

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

    Директивы препроцессора

    Препроцессором называется первая фаза компилятора. Инструкции препроцессора называются директивами. Они должны начинаться с символа #

    Директива #include

    Директива #include <имя_файла> вставляет содержимое указанного файла в ту точ­

    ку исходного файла, где она записана.

    С помощью директивы #define определяется макрос. Каждое появление в тексте программы имени, расположенном после директивы #define, заменяется определенным для него значением. Например, директива

    #definePI 3.14159265359

    указывает препроцессору на необходимость замены каждого появления в текущей единице компиляции лексемы PI лексемой 3.14159265359

    • Макрос можно отменить в любом месте с помощью директивы #undef:

    #undefPI

    Директивы условной компиляции #if, #ifdef и #ifndef применяются для того,

    чтобы исключить компиляцию отдельных частей программы.
    34 Динамическая память.Операторыnew и delete.Функцииmalloc и free
    Динамическая память

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

    • new - выделение памяти, если выделение памяти не произошло возвращается нулевой указатель;

    • delete - освобождение памяти, не во всех компиляторах после освобождения памяти указателю присваивается 0

    Выделение памяти с помощью оператораnew имеет следующий синтаксис:

    указатель = new тип;

    указатель = new тип [число элементов] (для массивов.)

    Освобождение памяти с помощью оператора delete производится только в том случае, если она была выделена с использованием оператора new и имеет следующий синтаксис:

    delete указатель;

    delete [число элементов] указатель;

    Резервирование и освобождение памяти в программах на C++ может происходить в любой момент времени. Осуществляются операции распределения памяти двумя способами:

    с помощью функции malloc, calloc, realloc и free;

    посредством оператора new и delete.

    Функция malloc резервирует непрерывный блок ячеек памяти для хранения указанного объекта и возвращает указатель на первую ячейку этого блока. Обращение к функции имеет вид:

    void *malloc(size);

    Для освобождения выделенной памяти используется функция free. Обращаются к ней так:

    voidfree (void *p size);

    Здесь p — указатель на участок памяти, ранее выделенный функциями malloc, calloc или realloc.

    Операторы new и delete аналогичны функциям malloc и free. New выделяет память, а его единственный аргумент — это выражение, определяющее количество байтов, которые будут зарезервированы. Возвращает оператор указатель на начало выделенного блока памяти. Оператор delete освобождает память, его аргумент — адрес первой ячейки блока, который необходимо освободить.

    Вопрос 31.

    Рекурсивный вызов функции.


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

    Все функции языка С++ (кроме функции main) могут быть использованы для построения рекурсии.

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

    Обработка вызова рекурсивной функции в принципе ничем не отличается от вызова функции обычной.

    http://teacher.dn-ua.com/old_version/cpp/5/function%20in%20c++.files/image008.jpghttp://teacher.dn-ua.com/old_version/cpp/5/function%20in%20c++.files/image010.jpg

    33.Понятие указателя. Операции. Указатели и массивы. Указатель на функцию.
    Указатели предназначены для хранения адресов областей памяти. В C++

    различают три вида указателей — указатели на объект, на функцию и на void, от­

    личающиеся свойствами и набором допустимых операций.

    Указатель на функцию содержит адрес в сегменте кода, по которому располагает­

    ся исполняемый код функции, то есть адрес, по которому передается управление

    при вызове функции. Указатели на функции используются для косвенного вызо­

    ва функции (не через ее имя, а через обращение к переменной, хранящей ее ад­

    рес), а также для передачи имени функции в другую функцию в качестве пара­

    метра.

    Указатель на объект содержит адрес области памяти, в которой хранятся данные

    определенного типа (основного или составного). Простейшее объявление указа­

    теля на объект (в дальнейшем называемого просто указателем) имеет вид:

    тип *имя:

    Звездочка относится непосредственно к имени, поэтому для того, чтобы объявить

    несколько указателей, требуется ставить ее перед именем каждого из них. На­

    пример, в операторе

    1nt *a. b . *с;

    Указатель на void применяется в тех случаях, когда конкретный тип объекта, ад­

    рес которого требуется хранить, не определен

    Указатель может быть константой или переменной, а также указывать на кон­

    станту или переменную. Рассмотрим примеры:
    int 1; // целая переменная

    const int ci = 1; // целая константа

    int * pi; // указатель на целую переменную

    const int * pci; // указатель на целую константу
    Указатель на функцию - переменная, которая содержит адрес некоторой функции. Соответственно, косвенное обращение по этому указателю представляет собой вызов функции.

    Определение указателя на функцию имеет вид:

    int (*pf)(); // без контроля параметров вызова

    int (*pf)(void); // без параметров, с контролем по прототипу


    35Обработка символьной информации в с++.Массивы символов.Строки.Основные функции для работы со строками

    Символ – элементарная единица, некоторый набор которых несет определенный смысл. В языке программирования С++ предусмотрено использование символьных констант. Символьная константа – это целочисленное значение (типа int) представленное в виде символа, заключённого в одинарные кавычки, например 'a'. В таблице ASCII представлены символы и их целочисленные значения.

    1// объявления символьной переменной

    2char symbol = 'a';

    3// где symbol – имя переменной типа char

    4// char – тип данных для хранения символов

    Строки в С++ представляются как массивы элементов типа char, заканчивающиеся нуль-терминатором \0 называются С строками или строками в стиле С.

    \0 — символ нуль-терминатора.

    Символьные строки состоят из набора символьных констант заключённых в двойные кавычки. При объявлении строкового массива необходимо учитывать наличие в конце строки нуль-терминатора, и отводить дополнительный байт под него.

    1// пример объявления строки

    2charstring[10];

    3// где string – имя строковой переменной

    4// 10 – размер массива, то есть в данной строке может поместиться 9 символов , последнее место отводится под нуль-терминатор.

    Функции для работы со строками и символами

    Копирование строк

    strlen(имя_строки) определяет длину указанной строки, без учёта нуль-символа

    strcpy(s1,s2) выполняет побайтное копирование символов из строки s2 в строку s1

    Конкатенация строк

    strcat(s1,s2) объединяет строку s2 со строкой s1. Результат сохраняется в s1

    strncat(s1,s2,n) объединяет n символов строки s2 со строкой s1. Результат сохраняется в s1

    Функции поиска

    strchr(s,c) поиск первого вхождения символа с в строке s. В случае удачного поиска возвращает указатель на место первого вхождения символа с. Если символ не найден, то возвращается ноль.


    1   2   3   4   5   6   7   8   9   10


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