Лекции по курсу программирования в среде C++Builder

advertisement
Лекции по курсу программирования в среде C++Builder
Лекция 1. Основные принципы и понятия языка С++. Консольное приложение. Основные встроенные типы данных. Переменные, константы.
ПРОЦЕСС ПОСТРОЕНИЯ ПРОГРАММЫ НА ЯЗЫКЕ С++
Процесс построения программы на языке С++ включает в себя следующие этапы:
- подготовку файлов исходного кода (*.cpp);
- компиляцию исходных файлов в файлы объектного кода (*.obj);
- компоновку объектных файлов с присоединением необходимых библиотек (*.lib,
*.dll) и ресурсов (*.res), в результате формируется конечный исполняемый файл (*.exe).
Для того, чтобы сделать возможным написание программ, состоящих из нескольких файлов исходного кода и, как следствие, раздельную компиляцию исходных
файлов в языке С++ используется механизм заголовочных файлов (*.h или *.hpp). Они
подключаются к компилируемым исходным файлам на этапе препроцессорной обработки и содержат информацию (как правило, прототипы функций), необходимую для
раздельной компиляции исходных модулей программы. Заголовочные файлы подключаются к компилируемому файлу исходного кода с помощью директивы #include. Один
и тот же заголовок можно подключать ко многим исходным файлам. Структурно программа на С++ представляет собой набор функций, среди которых одна является входной точкой программы; она называется main() или WinMain(). Функции - единственный
тип подпрограмм в С++.
СОЗДАНИЕ КОНСОЛЬНОГО ПРИЛОЖЕНИЯ В СРЕДЕ С++ BUILDER
Стандартное консольное приложение является простейшим типом приложений,
создаваемых средой С++ Builder. Внешне оно похоже на программу DOS (на самом деле таковой, конечно же, не являясь). Чтобы создать в среде С++ Builder 6 консольное
приложение необходимо выполнить следующие действия:
- запустить среду С++ Builder;
- выбрать в главном меню File|New|Others; появится многостраничная диалоговая панель;
- на странице New выбрать Console Wisard, на появившейся панели установить состояние флажков «включено» для С++ и Console Application.
После этих действий появится окно редактора кода, с шаблоном функции main().
Создадим консольное приложение, выводящее приветствие Hello World. Для
этого в верхнюю часть исходного файла поместим директивы
#include<stdio.h>
#include<conio.h>
Далее в функцию main поместим следующие строки:
printf(“Hello World. \n”);
printf("OK");
getch();
Приложение Hello World готово.
Директива #include<stdio.h> делает доступными прототипы функций буферизованного ввода-вывода (в нашем случае - printf( ) ), а #include<conio.h> позволяет использовать функцию getch().
Windows – приложения, создаваемые средой Borland C++ Builder, требуют для
запуска нескольких dll библиотек. Для обеспечения переносимости создаваемых приложений рекомендуется присоединить используемые ими dll функции к исполняемому
коду программы. Для этого нужно в среде выставить следующие настройки: в главном
меню выбрать опцию Project->Options и затем на странице Linker убрать флажок «Use
dynamic RTL”, а на странице Packages убрать флажок “Build with runtime”.
ОСНОВНЫЕ ВСТРОЕННЫЕ ТИПЫ ДАННЫХ
Данные в программе могут присутствовать как непосредственно в тексте программы, так и храниться в памяти во время её выполнения. В первом случае они представляются в виде литеральных констант. Литеральные константы бывают:
символьными (одиночный символ, заключённый в апострофы, например 'w', 'g',
'7');
строковыми (последовательность символов, заключённая в двойные кавычки,
например "Это строка");
целыми десятичными (последовательность цифр, не начинающаяся с 0, например 23, 2003);
целыми восьмеричными (последовательность цифр от 0 до 7, начинающаяся с 0,
например 011, 0147);
целыми шестнадцатеричными (последовательность шестнадцатеричных цифр
0-9 и A-F, перед которой стоит 0X или 0x, например 0xffff);
вещественными десятичными (например, 123.0, 43.87), и, наконец, вещественными экспоненциальными (например, 3e10, 5.12E-6).
В случае если данные присутствуют в памяти машины во время её выполнения,
то они рассматриваются компилятором как принадлежащие к некоторому типу данных.
В С++ имеется несколько встроенных (или простых) типов данных:
char (беззнаковое целое размером 1байт),
signed char (знаковое целое размером 1байт),
unsighed char (беззнаковое целое размером 1байт),
short (знаковое целое размером 2байта),
unsighed short (беззнаковое целое размером 2байта),
int (знаковое целое размером 4байта),
unsigned int (беззнаковое целое размером 4байта),
long (то же, что int),
unsigned long (то же, что unsigned int),
float (вещественное с одинарной точностью – 4байта),
double (вещественное с удвоенной точностью - 8байт),
long double (вещественное с расширенной точностью – 10 байт).
Переменные перечисленных простых типов различаются размером занимаемой памяти
и внутренним представлением. Последние три типа используются для хранения только
вещественных чисел.
ПЕРЕМЕННЫЕ
Переменной называется поименованное место в памяти для хранения данных.
Переменные в С++ создаются с помощью оператора объявления переменных, в котором указываются тип, имена переменных и, иногда, их начальные значения. Имена переменных в С++ могут состоять из латинских букв, цифр и символов подчёркивания,
причём первый символ имени не может быть цифрой. Следует помнить, что компилятор С++ различает регистр. Объявление переменной должно предшествовать её использованию в программе.
Ниже приведён пример объявления переменных:
short i;
char s = 'Q';
float f1, f2=3.0, f3;
double x1, y1, _x2, _y2;
ТИПИЗИРОВАННЫЕ КОНСТАНТЫ
Типизированные константы являются разновидностью переменных. Это переменные, значения которых (заданные при инициализации) нельзя изменить. Типизированные константы объявляются следующим образом (несколько примеров):
const short i=1;
const char s='Q';
const float f2=3.0;
const double Pi=3.14159265;
ПРЕДСТАВЛЕНИЕ ВЕЩЕСТВЕННЫХ ПЕРЕМЕННЫХ В ПАМЯТИ МАШИНЫ
В отличие от переменных целых типов, значения которых представляются в памяти компьютера абсолютно точно, значения переменных вещественных типов определяют произвольное число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа.
Тип
Диапазон значений
Значащих цифр
Размер, Б.
float
1.5 * 10–45 .. 3.4 * 1038
7–8
4
double
5.0 * 10–324 .. 1.7 * 10308
15–16
8
long double
3.6 * 10–4951 .. 1.1 * 104932
19–20
10
Как видно из таблицы, вещественное число в С++ занимает от 4 до 10 смежных байт и
имеет следующую структуру в памяти:
s
e
m
Здесь s – знаковый бит числа; е – экспоненциальная часть, содержит двоичный порядок
числа; m – мантисса числа. Мантисса m имеет длину от 23 (для float) до 46 (для double)
и 63 (для long double) двоичных разрядов (бит), что и обеспечивает соответствующую
точность вычислений и диапазон значений. Десятичная точка подразумевается после
первого разряда мантиссы. Таким образом, вещественное число, заданное описанной
e
структурой имеет значение x  m  2 , причём x>0, если s=0 и х<0, если s=1.
ЗАДАНИЕ К ЛЕКЦИИ 1
Объявить вещественные переменные a, b и с и задать их значения. Предполагая,
что a, b, c есть коэффициенты квадратного уравнения вывести на консоль значения их
корней х1, х2 (см. также пример программы к первой лекции).
Download