Вычисление по формулам в среде C++Builder

advertisement
Рыбалка С.А., Шкатова Г.И., Языки программирования и методы трансляции
Министерство образования Российской Федерации
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
УТВЕРЖДАЮ
Декан факультета АВТ
___________ Гайворонский С.А.
"___"_________ 2007 г.
Вычисление по формулам в среде C++Builder
Методические указания к выполнению лабораторных работ по курсу «Языки
программирования и методы трансляции» для направления
510200 "Прикладная математика и информатика"
Томск 2007
Рыбалка С.А., Шкатова Г.И., Языки программирования и методы трансляции
Цель работы: Приобрести практические навыки в использовании компонентов TLabel,
TEdit, TButton.
Задание
1. Разработать приложение для вычисления значения функции, предложенной в
соответствующем варианте. Для каждой из вводимых переменных предусмотреть
отдельный однострочный редактор Edit, например, как это показано на рис.1.
2. К событию OnCreatе формы привязать процедуру, в теле которой требуется изменить
размеры формы, цвет и заголовок формы.
Порядок выполнения работы
1.
2.
3.
4.
Создать отдельную папку для проекта.
Загрузить C++Builder.
Сохранить проект
Познакомиться с методическим указанием. Обратить особое внимание на описание строк
AnsiString.
5. Выполнить задание.
6. Подготовить отчет.
7. Сдать работу преподавателю.
Методические указания
Рис.1. Возможный интерфейс приложения, предназначенного для вычислений по
формулам
Основные свойства компонента TLabel
Компонент представляет собой статический текст. Применяется для отображения
информации, задания заголовков другим компонентам. Тогда при выборе компонента
TLabel активизируется компонент к которому привязан TLabel.
Caption — строка текста
FocusControl — задает компонент, к которому привязывается TLabel;
Transparеnt — устанавливает прозрачный фон;
Рыбалка С.А., Шкатова Г.И., Языки программирования и методы трансляции
WordWrap — определяет возможность разрыва слов, если текст выходит за
границу.
Основные свойства компонента TEdit
TEdit отображает прямоугольную область редактируемого ввода одиночной строки
информации на форме. Начальное содержимое области редактирования определяет
строка, являющаяся значением свойства Text.
Text — текст компонентов редактирования. Это свойство представляет собой
стандартную строку на языке C++ — типа AnsiString;
BorderStyle — стиль обрамления окна редактора;
AutoSize — свойство позволяющее/запрещающее изменяться размерам окна
автоматически, при изменении размеров шрифта текста;
CharCase — преобразовывать или нет автоматически при вводе символы в верхний
(ecUpperCase) или нижний (ecLowerCase);
AutoSelect — выделять или нет автоматически текст при получении фокуса
редактором;
MaxLength — максимальная длина текста; если 0 то ограничений нет;
ReadOnly — запрещает возможность редактирования; т.е. окно только отображает
текст передаваемый из программы;
onChange — событие, позволяющее отслеживать изменения в окне редактора.
Clear — очищает весь текст в окне редактора;
Тип строк AnsiString
В C++Builder тип строк AnsiString реализован как класс, объявленный в файле
vcl/dstring.h. Это строки с нулевым символом в конце. При объявлении переменные типа
AnsiString инициализируются пустыми строками.
Для AnsiString определены операции отношения ==, !=, >, <, >=, <=. Сравнение
производится с учетом регистра. Сравниваются коды символов, начиная с первого, и если
очередные символы не одинаковы, строка, содержащая символ с меньшим кодом,
считается меньше. Если все символы совпали, но одна строка длиннее и в ней имеются
еще символы, то она считается больше, чем более короткая.
Для AnsiString определены операции присваивания =, += и операция склеивания
строк (конкатенации) +. Определена также операция индексации []. Индексы начинаются
с 1. Например, если S1 = "Привет", то Sl[l] вернет 'П', Sl[2] вернет 'р' и т.д. Класс
AnsiString имеет множество методов.
Тип AnsiString используется для ряда свойств компонентов C++Builder. Например,
для таких, как свойства Text окон редактирования, свойства Caption меток и разделов
меню и т.д. Этот же тип используется для отображения отдельных строк в списках строк
типа TStrings. Таким образом, постоянно имея дело с этими свойствами, вы постоянно
работаете с AnsiString.
Функции преобразования строк типа AnsiString
Заголовочный файл SysUtils.hpp
 IntToStr — преобразование целого числа в строку.
Синтаксис:
AnsiString fastcall IntToStr(int Value);
Рыбалка С.А., Шкатова Г.И., Языки программирования и методы трансляции
Спецификация:
Функция IntToStr преобразует целое значение Value в строку. Параметр Value — целая
константа или выражение. Если преобразовываемое значение превышает величину,
допустимую для целого типа данных, результат преобразования может быть неверным.
 StrToInt - преобразование строки в целое число.
Синтаксис:
int fastcall StrToInt(const AnsiString S);
Спецификация:
Функции преобразуют строку S в целое число.
 FloatToStr — преобразование действительного числа в строку.
Синтаксис:
AnsiString fastcall FloatToStr(Extended Value);
Спецификация:
Функция FloatToStr преобразует действительное значение Value в строку. Параметр Value
— действительная константа или выражение. При преобразовании используется основной
числовой формат с 15 значащими цифрами. Если преобразовываемое выражение окажется
не числом, функция вернет значение "NAN". Если преобразовываемое значение
превышает по модулю величину, допустимую для объявленного типа данных, функция
вернет значение "INF" (бесконечность) или "-INF" (минус бесконечность).
 FloatToStrF — преобразование действительного числа в строку, используя заданный
формат, точность и число цифр.
Синтаксис:
AnsiString fastcall FloatToStrF(Extended Value, TFloatFormat Format, int Precision, int Digits);
Спецификация:
Функция FloatToStrF преобразовывает действительное значение Value в строку,
используя заданный формат Format, точность Precision и число цифр Digits. Параметр
Value — действительная константа или выражение. Возможные значения параметра
Format означают следующее: ffGeneral - основной числовой формат; ffExponent - научный
формат; ffFixed - формат с фиксированной запятой; ffNumber - числовой формат;
ffCurrency - монетарный формат. Параметр Precision определяет точность
преобразовываемого значения. Значение Precision должно быть не более 7 при
преобразовании типа Single, не более 15 для Double, не более 18 для Extended. Параметр
Digits совместно с Format определяет форматирование строки. Если преобразовываемое
выражение окажется не числом, функция вернет значение "NAN". Если
преобразовываемое значение превышает по модулю величину, допустимую для
объявленного типа данных, функция вернет значение "INF" (бесконечность) или "-INF"
(минус бесконечность).
Примеры работы с AnsiString

Labell->Caption = Editl->Text + ' ' + Edit2->Text; //конкатенация (склеивание)
// строк из двух редакторов Edit
В данном случае в свойстве Labell->Caption отображается текст, введенный
пользователем в окне редактирования Editl, затем записывается символ пробела, а затем
— текст, введенный в окне редактирования Edit2. Как видите, склеивание строк типа
AnsiString легко осуществляется перегруженной операцией сложения "+".
 float x = StrToFloat(Edit1->Text); //получение числового вещественного значения
// из строки Edit
 Edit3->Text=FloatToStr(z); //запись вещественного числа в строку Edit
 Edit3->Text=IntToStr(z); //запись целого числа в строку Edit
Рыбалка С.А., Шкатова Г.И., Языки программирования и методы трансляции


float x = StrToInt(Edit1->Text); //получение числового целого значения из Edit
char* Str = Edit1->Text.c_str(); //переход от типа AnsiString к типу (char *)
Такие переходы приходится делать при передаче параметров в некоторые функции,
требующие тип параметра (char *). Преобразование строки AnsiString в строку (char *)
осуществляется функцией c_str() без параметров, возвращающей строку с нулевым
символом в конце, содержащую текст той строки AnsiString, к которой она применена.

AnsiString Ptr = AnsiString(char *S); //преобразование строки (char *) в строку
AnsiString

Edit3->Text ->FloatToStrF(f,ffFixed,6,3);
Основные свойства компонента TButton
Caption — надпись на кнопке
Defualt - определяет, что нажатие пользователем клавиши ввода Enter, будет
эквивалентно нажатию на данную кнопку даже в том случае, если данная кнопка в этот
момент не находится в фокусе.
Контрольные вопросы
1. Как формируется имя процедур для кнопок Button?
2. Структура модуля в C++Builder?
3. В каком месте модуля размещаются глобальные переменные?
4. Как выбирать тесты для проверки правильности алгоритма?
5. Что собой представляет тип строк AnsiString?
6. Как получать числовое значение из строки элемента Edit? Вещественное? Целое?
7. Как преобразовать строку AnsiString в строку (char *)?
8. Какие операции определены для строк типа AnsiString? Примеры?
9. Назначение свойства AutoSize элемента Edit?
10. В каких целях можно использовать элемент Label?
11. Как предусмотреть возможность разрыва слов в элементе Label?
12. Что делает процедура Close, используемая в одной из кнопок Button?
13. Как формируется имя процедуры события onClick для кнопок Button?
Вариант 1
1.
y  Sin i  k Tg
7 3
x  t  eq  k
Вариант 2
1.
1
u
y  7i  Tg 2  n 
a
w
3
|t  e |
Рыбалка С.А., Шкатова Г.И., Языки программирования и методы трансляции
Вариант 3
q
1.
e
y  Sin i  k Tg x  w  h 
3,7 3
h
Вариант 4
1.
i
y  e k  Sin35 | w  q | r
3
Вариант 5
1.
1
| w|
y  Sin(2 x)  e k 
7
u t
Вариант 6
1.
6
y  R e k 1.1  i | sin(t 2 ) | a  u
Вариант 7
1.
2
y  ln tgi  n  sin( a  r )  t 5
3
Вариант 8
1.
y  Tg 5 x 2 e3  i  q  f 3
k
Вариант 9
1.
ye
Ln3 x 2
k
m
 r  e ( a  f )
Рыбалка С.А., Шкатова Г.И., Языки программирования и методы трансляции
1.
y4 1
Sink
n
t d
p e  a
Вариант 10
Вариант 11
1.
y e
3,7 x 5
1
  k 3  р  sin( g )
2
Вариант12
1.
y  1 i  e
7
k m
 x  n  w5  q
Вариант 13
1.
y  h5  t 3  m  i  Sin e 3  x
3
Вариант 14
1.
5
g
6
2
y  5 e x  k 
cos| w|
Вариант 15
1.
y  ea  c  Sin3 m  6 m
k
Вариант 16
1.
7
y  Tg | t |  i  e5k  x
6
Рыбалка С.А., Шкатова Г.И., Языки программирования и методы трансляции
Вариант 17
1.
y  Sin| z  q|
a 6
 k
Cosx k i

Вариант 18
1.
1.
w
y  e r  Sin3x7  6 i  k 
f
y  5 x i  ek 
sin( x  r )
q2
Вариант 19
Вариант 20
1.
a
e
2
y4 1
j 
Sink
t p
Download