Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec01 1213_nav.doc
Скачиваний:
2
Добавлен:
17.11.2019
Размер:
116.74 Кб
Скачать

Стадии преобразования программы

Для получения исполниого файла исходная программа проходит следующие стадии обработки:

  1. Препроцессорное преобразование. Исходный текст обрабатывается специальной программой-препроцессором. При этом выполняются преобразования, заданные препроцессорными директивами (подключение заголовочных файлов и др.), сами директивы из текста удаляются. В результате получается полный исходный текст программы без препроцессорных директив.

  2. Компиляция. Полный исходный текст программы с помощью программы-компилятора преобразуется в машинный код. В результате образуется объектный модуль.

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

Организация ввода-вывода

Для организации ввода-вывода в стиле C++ используются стандартные потоки cin – ввод данных и cout – вывод данных (заголовочный файл iostream.h). Для работы с потоками используются операции извлечения из потока >> и помещения в поток <<.

Пример программы (вычисление площади круга):

#include <iostream.h>

void main()

{

double r,s;

const float pi=3.14;

cout << "\nРадиус круга r=";

cin >> r;

s=pi*r*r;

cout << "\nПлошадь круга:" << s;

}

В языке Си нет встроенных средств ввода/вывода. Для организации ввода-вывода используются библиотечные функции scanf() (ввод) и printf() (вывод).

Формат вызова функций:

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

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

Функция scanf() считывает коды с клавиатуры, преобразует их в соответствии со спецификацией форматной строки и передает программе. Форматная строка и список аргументов для функции scanf() – обязательные параметры.

Форматная строка для функции scanf() имеет вид:

%ширина_поля спецификатор

Для числовых данных используются спецификаторы:

d – для целых десятичных чисел (тип int);

u – для целых десятичных без знака (тип unsigned int);

f – для вещественных чисел (тип float);

e – для вещественных чисел в экспоненциальной форме (тип float).

Перед спецификатором можно указать префикс h, l или L. Например: %lf, %le, %hd.

Для целых типов префикс h эквивалентен short, префикс l – long.

Для вещественных типов префикс l означает, что тип аргумента не float а double. (для префикса L – тип long double).

Примечание – Форматная строка всегда заключается в двойные кавычки.

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

Для использования в программе функций printf() и scanf() необходимо вначале программы разместить препроцессорную директиву

#include <stdio.h>.

Пример программы (вычисление площади круга):

#include <stdio.h>

void main()

{

double r,s;

const float pi=3.14;

printf("\nРадиус круга r=");

scanf("%lf",&r);

s=pi*r*r;

printf("\nПлошадь круга: %10.3f",s);

}

Примечание – В функции scanf() используются не имена переменных, а их адреса (знак & означает взятие адреса).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]