ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

4.5. Компиляция

Для получения выполняемого кода написанная на C++ программа должна быть скомпилирована; по своей сути процесс компиляции такой же, как и для С, и в нём участвует большая часть входящих в последний программ. Производятся чтение и анализ текста программы, и если не обнаружены ошибки, то генерируется код.

Затем программа проверяется на наличие имён и операций, которые использовались, но не были определены (в нашем случае это cout и <<). Если это возможно, то программа делается полной посредством дополнения недостающих определений из библиотеки (есть стандартные библиотеки, и пользователи могут создавать свои собственные). В нашем случае cout и << были описаны в stream.h, т. е. были указаны их типы, но не было дано никаких подробностей относительно их реализации.

В стандартной библиотеке содержатся спецификация пространства и инициализирующий код для cout и <<. На самом деле, в этой библиотеке содержится и много других вещей, часть из которых описана в stream.h, однако к скомпилированной версии добавляется только подмножество библиотеки, необходимое для того, чтобы сделать нашу программу полной [13].


Ввод

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

Функция scanf() имеет следующий прототип в файле stdio.h:

int scanf(char *управляющая строка);

Функция возвращает число переменных, которым было присвоено значение.

Управляющая строка содержит три вида символов: спецификаторы формата, пробелы и другие символы.

Спецификаторы формата начинаются с символа %:

%c чтение символа
%d чтение десятичного целого
%i чтение десятичного целого
%e чтение числа типа float (плавающая запятая)
%h чтение short int
%o чтение восьмеричного числа
%s чтение строки
%x чтение шестнадцатеричного числа
%p чтение указателя
%n чтение указателя в увеличенном формате

При вводе строки с помощью функции scanf() (спецификатор формата %s), строка вводится до первого пробела, т. е. если вы вводите строку "Привет информатик!" с использованием функции scanf()

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

#include iostrem.h
main()
{ int i = 0; // i - дюйм
cin>>i;
cout << "дюймов ";
cout << " = ";
cout << i*2.54;
cout << " см\n"; }

Первая строка функции main() описывает целую переменную i. Её значение считывается с помощью операции >> («взять из») над стандартным потоком ввода cin. Описания cin и >> находятся в iostrem.h. После её запуска ваш терминал может выглядеть примерно так:

12 дюймов = 30.48 см

В этом примере на каждую команду вывода приходится один оператор; это слишком длинно. Операцию вывода << можно применять к её собственному результату так, чтобы последние четыре команды вывода можно было записать одним оператором:

cout << " дюймов =" << i*2.54 << " см\n";

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011