Добавил:
ПОИТ 2016-2020 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
59
Добавлен:
29.04.2018
Размер:
1.63 Mб
Скачать

21. Создание исполняемого файла.

После отладки и исправления всех ошибок можно построить приложение без отладочной информации. Для переключения в окончательную конфигурацию необходимо выбрать команду Построение / Диспетчер конфигураций. На экран будет выведено диалоговое окно установки активной конфигурации проекта. Надо выбрать  Win32 Release и повторить построение проекта с помощью Построение / Перестроить проект.

Каждая конфигурация проекта определяет папки, куда будут помещены файлы с промежуточными и окончательными результатами компиляции и компоновки. По умолчанию это папки Debug и Release, которые располагаются в папке проекта. Папка решения содержит: файл текущего примера решения *.sln, файл с информацией о проектах решения и опциями решения *.suo. В файле решения зафиксирован  перечень проектов, входящих в решение. Во вложенной папке находятся файлы и папки проекта: файл *.vcproj  в формате XML содержит перечень файлов, включенных в проект; файл *.сpp содержит исходный код программы на языке C++;  *.obj -объектные файлы, содержащие машинный код исходных файлов проекта; *.pch - предварительно скомпилированный файл заголовков; *.pdb - файл с отладочной информацией, используемой при выполнении программы в режиме отладки; *.idb - файл с информацией, необходимой  для перестройки всего решения и др.

Папка Debug используется для хранения временных файлов. В этой папке размещаются файлы с программным кодом на промежуточном языке. В частности, файл  *.exe содержит программный код приложения.

24. Алгоритм метода дихотомии для решения уравнений.

22. Алгоритм метода трапеций для вычисления определенного интеграла.

Согласно методу трапеций значение интеграла вычисляется как сумма площадей трапеций, высоты которых равны h, а основания соответственно yи y1 – для первой трапеции, yи y2 – для второй и т. д.

23. Алгоритм метода парабол для вычисления определенного интеграла .

25. Алгоритм метода касательных для решения уравнений.

26. Классы памяти и области действия переменных (auto, static, extern, register).

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

Автоматические переменные

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

Статические переменные

В программе могут находиться некоторые переменные, используемые только в функциях, входящих в состав программы. Указание static, примененное к внешней переменной или функции, ограничивает область действия соответствующего объекта концом файла.

static int i; // внешняя статическая переменная

main()

{ . . . // тело функции

}

Декларацию static можно использовать и для внутренних переменных. Аналогично автоматическим внутренние статические переменные локальны в функциях, но в отличие от автоматических они не возникают только на период выполнения функции, а существуют в памяти постоянно.

fun()

{ static int i; // статическая переменная

 . . . // тело функции

}

Регистровые переменные

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

register int i,j;

register char k;

При этом компилятор имеет право проигнорировать указание разместить данные переменные в регистре машины. Спецификация register может применяться только к арифметическим переменным и к формальным параметрам функции. Объявление для формальных параметров имеет вид

fun(register unsigned int n, register char c)

{ register int k;

. . .

}

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

Соседние файлы в папке Пустовалова 1 сем