IT_03_11
.pdfОсновное время работы программистом выполняется в Редакторе Кода при написании методов обработки событий, реализующих алгоритм программы, “кодируя” приложение.
Палитра Компонент использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Dialogs и д.р.
Слева от Дизайнера Форм расположен Инспектор Объектов (рисунок 4.2 а). Отображаемая информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. С его помощью можно менять вид и поведение выделенного на форме объекта (компонента). Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница Properties - это список свойств, вторая Events - список событий, связанных с определенным компонентом.
Страница событий (Events) связана с Редактором Кода. Двойной щелчок мышкой на правую сторону выбранного пункта с названием события, то соответствующий этому событию код автоматически запишется в Редактор, сам Редактор немедленно получит фокус, и можно возможность добавить код обработчика данного события в указанный метод с пустой операторной частью.
Справочник (on-line help) вызывается выбором в системном меню пункта Help или F1. При нажатии клавиш Ctrl+F1 в окне Редактора кода выдается подсказка по элементу, на котором зафиксирован текстовый курсор.
Вспомогательными инструментами для среды программирования являются:
-Системное Меню (Menu System);
-Панель с кнопками для быстрого доступа (SpeedBar);
-Графический редактор (Image Editor).
Меню предоставляет быстрый и гибкий интерфейс с набором “горячих клавиш”. В составе Главного меню используются следующие разделы:
1)File – работа с файлами проекта приложения;
2) |
Edit – параметры и операции редактирования, работа с буфером |
обмена; |
|
3)Search – поиск и замена кода программы;
4)View – параметры отображения элементов проекта, содержит менеджер проекта позволяющий переключать на экране различные формы и файлы проекта;
5)Project – набор элементов управления проектом: включение и исключение файлов, сборка проекта, проверка синтаксиса;
6)Run – управление параметрами выполнения и отладки проекта;
7)Component – средства разработки новых компонентов и их инсталляции, конфигурирование Палитры компонентов;
8)Database – работа с базами данных;
9)Tools – работа с встроенными инструментами Delphi;
10)Help – справочная система.
SpeedBar выполняет наиболее часто используемые команды меню. Расположение мыши над иконками SpeedBar, вызывает всплывающие подсказки о назначении кнопки.
Графический редактор вызывается выбором пункта меню Tools/Image Editor. Он используется для создание файлов с рисунками и ярлыков приложений (пиктограмм).
В дополнение к инструментам, обсуждавшимся выше, существуют инструментальные средства, поставляемые с C++Builder:
-редактор баз данных формата Paradox, dBase, SQL - Database Desktop;
-интегрированная утилита редактирования баз данных – Database Explorer;
-утилита конфигурирования СУБД Borland Database Engine - BDE
Configuration;
-Report Smith – генератор отчетов по БД;
-Local InterBase Server – локальная версия СУБД InterBase;
-утилита создания и выполнения SQL запросов;
-встроенный и внешний отладчик приложения;
-компилятор командной строки – dcc32.exe;
-утилита для отслеживания сообщений Windows - WinSight32
Отладчик позволяет пройти пошагово по исходному тексту программы, выполняя по одной строке за раз, и открыть просмотровое окно (Watch), в котором будут отражаться текущие значения переменных программы.
WinSight32 используется наблюдения за системой сообщений Windows. Почти все главные и второстепенные события в среде Windows принимают форму сообщений, которые рассылаются с большой интенсивностью среди различными окнами на экране. С++Builder дает полный доступ к сообщениям Windows и позволяет отвечать на них, как только будет нужно.
C++Builder в своем составе имеет интерактивные обучающие программы (тьюторы), которые запускаются из меню Help/Interactive Tutors.
4.2 Основы языков программирования С и С++
4.2.1Алфавит языков программирования С и С++
Вязыке программирования C++ для написания идентификаторов используются следующие группы ACSII символов:
1) символы латинского алфавита верхнего и нижнего регистров, из которых строятся наименования операторов и идентификаторов (в отличие от языка Pascal);
2) цифры от 0 до 9, обозначающие численные константы; 3) специальные символы знаков операций и т.п. (<,>,=,+,*,\,/,#,@ и др.);
4) разделители, которые отделяют элементы языка друг от друга (символы пробела, запятой и точки с запятой);
5) символы местного (русского) языка, которые можно использовать только внутри строковых констант или комментариев.
Имена, использующиеся для переменных, функций, меток и других определяемых пользователем объектов, называются идентификаторами. Идентификаторы языков C и С++ строятся по правилам:
1) идентификатор может состоять из одного или более символов латинского алфавита, включая символ подчеркивания (_) и цифры от 0 до 9, имя всегда должно начинаться с символа;
2) максимальная длина – 126 символов, но в С только первые 31 символ являются значимыми (в С++ все символы значимые);
3) идентификатор не может совпадать с зарезервированными словами С или C++
ине должен иметь такое же имя, как функция из библиотеки модулей;
4) идентификаторы учитывают регистр (xn, Xn и XN - различные идентификаторы).
Пробел, табуляция, перевод строки, возврат каретки, новая страница, табуляция и новая строка – это символы, называемые пробельными, так как разделяют элементы программы друг от друга. Запятая (,) отделяет между элементы некоторого списка (например, списка переменных: int i, j, k;). Точка с запятой
(;) служит окончанием оператора и отделяет между собой выражения языка. Двоеточие (:) служит для обозначения оператора с меткой.
4.2.3.Словарь языков программирования С и С++.
Словарь языков С и С++ состоит из лексем. Лексемы C++ образуются из
последовательности |
операций, |
выполняемых |
с |
программой |
компилятором |
и |
препроцессором языка. C++ распознает лексемы семи классов: |
|
|
||||
1) ключевые |
(зарезервированные) слова |
языка – |
используются |
для |
||
обозначения некоторых операторов |
и действий в программе; |
|
|
2)идентификаторы – имена переменных, констант, типов и функций, вводимые программистом;
3)константы – значения, неизменные в процессе выполнения программы;
4)строковые литералы (строковые константы) – содержат управляющие комбинации символов для форматирования ввода – вывода данных;
5)операции – обозначение операций преобразования данных в программе (операторы, функции),
6)директивы препроцессора – начинаются с символа # и предназначены для задания режима обработки программы;
7) комментарии – текстовые пояснения фрагментов программы, которые игнорируются при ее выполнении.
Существует два способа указания на комментарии:
1)традиционный метод языка C – представляет собой любую последовательность символов, помещаемую внутри двух пар символов /* */:
/* Программа решения задачи */
2)метод языка C++ – создает комментарий в одной строке при помощи двух подряд следующих символов наклонной черты (//), который может начинаться в любой позиции строки и включает в себя все до символа новой строки:
float Xn; // начальное значение X
Разрешается смешанное и комбинированное использование комментариев любого типа в программах языков C и C++. Комментарии стиля С (/**/) являются более мощным средством, чем комментарии С++ (//), и могут закомментировать фрагменты кода при отладке программы с внутренними строчными комментариями.
4.2.4Операции в выражениях
Операции определяют вычисления с переменными и прочими объектами, указанными в выражении. Различают два типа операций:
1)унарные – состоят из символа операций и одного знака, например –X;
2)бинарные – включают два операнда, например A+B.
Операции # и ## используются только препроцессором. Таблица 4.1 - Арифметические операции в языке С:
Символ |
Выполняемая операция |
+ |
Плюс, унарный и бинарный |
- |
Минус, унарный и бинарный |
* |
Умножение |
/ |
Деление |
% |
Получение остатка целочисленного деления |
Целое деление дает целый результат: 7/2 есть 3. Над целыми может выполняться операция % получения остатка: 7%2 равно 1.
В таблице 5.5 представлены операторы С++, наиболее часто используемые для управления логикой выполнения.
Таблица 4.2 – Логические операторы и сравнения
Операторы сравнения, равенства и логические |
|
|
|||||
|
|
|
Меньше |
|
< |
|
|
Операторы сравнения |
|
Больше |
|
> |
|
|
|
|
меньше или равно |
|
<= |
|
|
||
|
|
|
|
|
|
||
|
|
|
больше или равно |
|
>= |
|
|
Операторы равенства |
|
Равно |
|
== |
|
|
|
|
не равно |
|
!= |
|
|
||
|
|
|
|
|
|
||
|
|
|
Отрицание |
|
! |
|
|
Логические операторы |
|
логическое и |
|
&& |
|
|
|
|
|
|
логическое или |
|
|| |
|
|
Очень важно |
не путать |
операторы равенства и присваивания, например |
a==b |
||||
- это проверка на |
равенство |
т.е. если a и b |
равны то выражение вернет |
true |
(истина) в противном случае false (ложь), а в выражении a=b переменная a станет равна b.
4.2.5 Операция присваивания Оператор присваивания в С обозначается символом = и имеет формат
переменная = расчетное выражение; При этом сначала рассчитывается выражение, стоящее справа от =, которое в
последствии присваивается переменной, стоящей в левой части.
В C++ в отличие от многих языков программирования имеется операция присваивания вместо оператора присваивания. Это позволяет выполнять присваивание внутри других выражений, например: x=sqrt(a=3*x).
Допустимо множественное присваивание в формате
<переменная 1> = <переменная 2> = ... = <переменная N> = <выражение> Например: a=b=c, что означает присвоение значения c объекту b, а затем
объекту a.
Другим свойством операции присваивания является то, что она может совмещаться с большинством бинарных операций.
Например, x[i+3]*=4 означает x[i+3]=x[i+3]*4, за исключением того факта, что выражение x[i+3] вычисляется только один раз.
4.2.6 Встроенные функции модуля math Таблица 4.3 – Некоторые функции модуля math
Имя |
Описание |
|
|
|
|
acos |
Арккосинус |
|
asin |
Арксинус |
|
atan |
Арктангенс |
|
atan2 |
Арктангенс с двумя параметрами |
|
ceil |
Округление до ближайшего большего целого числа |
|
cos |
Косинус |
|
cosh |
Гиперболический косинус |
|
exp |
Вычисление экспоненты |
|
fabs |
Абсолютная величина (числа с плавающей точкой) |
|
floor |
Округление до ближайшего меньшего целого числа |
|
fmod |
Вычисление остатка от деления нацело для чисел |
с плавающей |
|
точкой |
|
frexp |
Разбивает число с плавающей точкой на мантиссу и показатель |
|
|
степени |
|
ldexp |
Умножение числа с плавающей точкой на целую степень двух |
|
log |
Натуральный логарифм |
|
log10 |
Логарифм по основанию 10 |
|
modf(x,p) |
Извлекает целую и дробную части (с учетом |
знака) из |
|
вещественного числа |
|
pow(x,y) |
Результат возведения x в степень y |
|
sin |
Синус |
|
sinh |
Гиперболический синус |
|
sqrt |
Квадратный корень |
|
tan |
Тангенс |
|
tanh |
Гиперболический тангенс |
|
4.2.7 Общая структура программы языка С и С++ В программах, записанных на языках программирования высокого и среднего
уровня, выделяют две области:
1)область описания данных, используемых программой, где описываются константы, типы данных пользователя и переменные. Это необходимо для выделения под переменные и константы требуемых объемов ресурсов оперативной памяти;
2)описание вычислительного алгоритма – кодирование алгоритма с помощью операторов языка программирования (тело программы или операторная часть).
Си С++ является не полностью структурируемым языком. В С и С++ возможно проводить описание переменных внутри тела программ перед их фактическим использованием.
В самом простом случае структура программы на С включает следующие части:
1)список заголовочных файлов, каждый элемент списка начинается с директивы препроцессора #include с именем h-файла;
2)описание глобальных данных программы: констант и переменных;
3)объявление прототипов (заголовков) дополнительных функций
программиста;
4)описание заголовка главной функции main программы;
5)определение операторной части главной функции программы;
6)если функция main возвращает результат в точку вызова (т.е. объявлена как int main()), то в конце операторной части вызывается оператор return с кодом успешного завершения программы;
7)описание дополнительных функций, которые могут и отсутствовать.
Пример линейной программы для языка |
С++ расчета выражения: |
||||
#include |
<iostream.h> |
// |
модуль |
потоков |
ввода вывода |
#include |
<math.h> |
// |
модуль |
математических функций |
float |
alfa, beta, x, y, z; |
// Описание |
глобальных переменных |
|||||
int main() |
|
// Объявление заголовка |
главной функции |
|||||
{ cout << "\nalfa="; |
// Вывод запроса на |
экран |
для ввода alfa |
|||||
cin |
>> |
alfa; |
|
// |
Ввод значения alfa с |
клавиатуры |
||
cout << "\nbeta="; |
// Вывод запроса на |
экран |
для ввода beta |
|||||
cin |
>> |
beta; |
|
// |
Ввод значения beta с |
клавиатуры |
||
cout << "\nx="; |
|
// Вывод |
запроса на экран для |
ввода x |
||||
cin |
>> |
x; |
|
// |
Ввод значения x с |
клавиатуры |
||
cout << "\ny="; |
|
// Вывод запроса на |
экран |
для ввода y |
||||
cin |
>> |
y; |
|
// Ввод значения y с |
клавиатуры |
|||
z=fabs(pow(x,3)*sin(alfa)-pow(y,2)*cos(beta)); |
|
|
||||||
cout << "\nz=" << z;// Вывод результатов расчета |
на экран |
|||||||
return |
0; |
// возвращение кода успешного |
завершения |
|||||
} |
|
|
|
// Конец операторной части |
|
5 Контрольные вопросы
1)Как загрузить интегрированную среду Borland С++Buider на персональном компьютере?
2)Каким образом происходит открытие файла в IDE Borland С++Buider?
3)Как производится сохранение информации в IDE Borland С++Buider?
4)Как в IDE Borland С++Buider произвести компиляцию и выполнение набранной программы?
5)Каким образом производится работа с окнами в IDE?
6)Каким образом производится поиск и замена нужных фрагментов в тексте программы?
7)Как производится в IDE вызов справочной системе?
8)Как просмотреть в среде полученный результат работы программы?
9)Какую структуру имеет линейная программа в языке программирования С++?
10)Как производится вывод данных на экран в языке С++?
11)Как в С++ производится ввод данных в программу с клавиатуры?
6 Индивидуальное задание
Написать линейную программу на языке программирования С++ для расчета заданного в таблице 6.1 выражения. При этом исходные данные переменных должны вводиться с клавиатуры, а результат расчета – на экран дисплея.
Таблица 6.1 – Индивидуальные задания
Вар. |
Выражение расчета |
||||||
1 |
Y=a×tg(X2)+Z×Cos(A/(b+g)) |
||||||
2 |
Z= Sin(e×a-X×Y2 |
|
×Ln|E/D| |
||||
) |
|||||||
3 |
C=arctg(T×W2+l×D-J)/Cos(j)2 |
||||||
4 |
K=tg(e×F)2+L/Cos(M×g + E) |
||||||
5 |
X=Sin3(Z×l-B)+Cos(Q×J+Y)2 |
||||||
6 |
P=Ln|Sin2(C-S)+Cos2(D-W)|/m |
||||||
7 |
U=t×arctg(J×d-Y+N2)+M2 |
||||||
8 |
T=Cos(arctg(m×G-d)2-(E×e+R)3) |
|
|
||||
|
|||||||
9 |
J=U×|Sin2(p×s+i)-Cos3(K+H)| |
||||||
10 |
R=arctg|Cos(C×V-x×W)2-A×b| |
||||||
11 |
F=Ö|R|-a×(B-X)/Sin(d2-G) |
||||||
12 |
B=|P×Q2-arctg(f+d)×(S-R)3| |
||||||
13 |
h=tg(W×G2)-Ln|X-K×Y+j| |
||||||
14 |
E=arctg2(b×M-L+N)/tg(q-T) |
||||||
15 |
D=s×Ln|C×t2-A×Cos3(B+D)| |
||||||
16 |
A=arctg|E×F2+x3-M×ÖE+g| |
|
|
|
|
||
|
|||||||
17 |
N=X×|Cos2y-Sin2(Q3-z×Z2+V)| |
||||||
18 |
H=L×Sin(j+W2)/Cos2(Y-y×w) |
||||||
19 |
c=|Sin2(N-e×P)-k×Cos(T3-E)| |
||||||
20 |
d=Q×Ln|Cos(t×V-J)/Sin2(W2-R)| |
||||||
21 |
M=arctg|B×Cos2(P×g-S+Q3)-j| |
||||||
22 |
W=y×Cos|k-D2+e|/Sin2(C+L) |
||||||
23 |
m=arctg(f×Ln|X3-A×G+Y|+Z)2 |
||||||
24 |
i=Ö|Cos2(j-Q)-Sin(X1/(X2 +X3)+X4)| |
||||||
25 |
l=Sin|(V×U-a×K)2/Cos3(Z+L)| |
Вар. |
Выражение расчета |
26 |
S1=|Cos2(С×a3-h×A)-Sin(B2-F)| |
27 |
U2=d×Ln(R×Öc-N×C3+D2)2 |
28 |
Q=arctg(H×Cos2E-n×Sin3F+Y×e)2 |
29 |
Z4=r×Cos(Ln2|Q×j-R2+K-g|) |
30 |
D=A×Cos3(L1-y×L2)/Sin2(h3-L3) |
31 |
X1=B×Ln|d×Sin(Y2-Z1)×s2+Z2| |
32 |
r=w×Sin2(A1+A3×A2)-e×Cos(A3)2 |
33 |
j2=arctg2|M4×d2-S×M13+M3×ÖM2| |
34 |
W0=Sin2|ctg(a×B1-B3×B2+b-B4)| |
35 |
T2=tgy2/Ln|D3×D12-D4×D2+l| |
36 |
R7=C3×arctg|C12-s×C2|/Cos2(x-C4) |
37 |
E2=y×F12/Cos(F2+F3)/(t-F4) |
38 |
w=Q4×arctg(Q1-t×Q2)2/Ln(Q3-e)2 |
39 |
P1=Sin|tg(V1-u×V2)2/(f+V3-V4)3| |
40 |
V5=K42×|tg(K1+b×K2)/Cos(j3-K3)| |
41 |
I=Cos(tg(m-g)/ln3|G1+G2|+G4)×G3 |
42 |
F4=ln2|R1-a×R2|/Cos2(R3×z-R4) |
43 |
K1=Y3×Sin(Y1-h)/tg(Y2+Y4)+Öq3 |
44 |
L=tg|V3×Sin(V1+g)+J×Ln(V2-l)2| |
45 |
a1=Ln|P13-P22+a3|/Sin2(a2×P3+P4) |
46 |
DN=b×Cos3g/Sin2|×X12-d×X2+X3| |
47 |
Xm=|Sin(Z12-e×Z2)-Cos(r-Z3|/Z4 |
48 |
J=Cos|tg3(J1-J2)2/Ln(j×J32+J4)|+h |
49 |
Mj=i3×Ln|y2+l|/Cos2(i1-i2+i4) |
50 |
d = Ln2|T12-w×T2+y|/Sin3|T3-T4| |
Список литературы
1.Скляров В.А. Язык C++ и объектно-ориентированное программирование. –
Мн.: Выш. шк., 1997. – 478 с.
2.Скляров В.А. Программирование на языках Си и Си++: Учебн. пособие. –
М.: Высш. шк., 1999. – 288 с.
3.Харви Дейтел, Пол Дейтел. Как программировать на С++. Пер с англ. – М.: ЗАО «Издательство БИНОМ», 2000. – 1024 с.
4.Ивашкова Э.А. С++. Начала программирования. – М.: ЗАО «Издательство БИНОМ», 2000. – 304 с.
5.П. Франка С++. Учебный курс. Пер с англ. – СПб.: Питер, 2001. – 528 с.