tr.a = StrToFloat(LabeledEdit4->Text);.b = StrToFloat(LabeledEdit5->Text);.c = StrToFloat(LabeledEdit6->Text);
float p = (tr.a+tr.b+tr.c)/2;
float area =
sqrt(p*(p-tr.a)*(p-tr.b)*(p-tr.c));->Lines->Add("площадь
= "+FloatToStr(area));
tr.a = StrToFloat(LabeledEdit4->Text);.b = StrToFloat(LabeledEdit5->Text);.c = StrToFloat(LabeledEdit6->Text);max = tr.a;= tr.b*tr.b+tr.c*tr.c;(tr.b>max) {= tr.b;= tr.a*tr.a+tr.c*tr.c;
}(tr.c>max) {= tr.c;= tr.b*tr.b+tr.a*tr.a;
}(max*max-smt> 0) {->Lines->Add("тупоугольный");
}if (max*max-smt == 0) {->Lines->Add("прямоугольный");
}Memo2->Lines->Add("остроугольный");
tr.a = StrToFloat(LabeledEdit4->Text);.b = StrToFloat(LabeledEdit5->Text);.c = StrToFloat(LabeledEdit6->Text);max = tr.a;= tr.b*tr.b+tr.c*tr.c;= 2*tr.b*tr.c;(tr.b>max) {= tr.b;= tr.a*tr.a+tr.c*tr.c;= 2*tr.a*tr.c;
}(tr.c>max) {= tr.c;= tr.b*tr.b+tr.a*tr.a;= 2*tr.b*tr.a;
}
float angle = acos((smt - max*max)/smot);
Memo2->Lines->Add("Наибольшийугол"+FloatToStr(angle));
На третьей панели размещены поля ввода координат
прямой, поле для вывода результатов и на трех кнопках выводится уравнение
прямой, вычисляется угол наклона и пересечение двух прямых.
ln.x1 =
StrToFloat(LabeledEdit7->Text);.y1 = StrToFloat(LabeledEdit8->Text);.x2 =
StrToFloat(LabeledEdit9->Text);.y2 = StrToFloat(LabeledEdit13->Text);k =
(ln.y2-ln.y1)/(ln.x2-ln.x1);b = ln.y1-k*ln.x1;->Lines->Add("y =
"+FloatToStr(k)+"x + "+FloatToStr(b));
ln.x1 = StrToFloat(LabeledEdit7->Text);.y1 = StrToFloat(LabeledEdit8->Text);.x2 = StrToFloat(LabeledEdit9->Text);.y2 = StrToFloat(LabeledEdit13->Text);k = (ln.y2-ln.y1)/(ln.x2-ln.x1);->Lines->Add("уголнаклона- "+FloatToStr(atan(k))+" градусов");
ln.x1 =
StrToFloat(LabeledEdit7->Text);.y1 = StrToFloat(LabeledEdit8->Text);.x2 =
StrToFloat(LabeledEdit9->Text);.y2 = StrToFloat(LabeledEdit13->Text);k =
(ln.y2-ln.y1)/(ln.x2-ln.x1);b = ln.y1-k*ln.x1;c =
-b/k;->Lines->Add("пересечениесосью
x: "+FloatToStr(c));->Lines->Add("пересечениесосью
y: "+FloatToStr(b));
На четвертой панели вводятся комплексные числа и
выполняются вычисления по заданной формуле, вычисление модуля и вычисления
сопряжения комплексного числа.
a.x = StrToFloat(LabeledEdit10->Text);.y = StrToFloat(LabeledEdit11->Text);.x = StrToFloat(LabeledEdit12->Text);.y = StrToFloat(LabeledEdit14->Text);(b,b,e);(a,b,d);(e,d,b);(a,b,e);->Lines->Add("a+b^2+(a+b) = "+FloatToStr(e.x)+" + "
a.x =
StrToFloat(LabeledEdit10->Text);.y = StrToFloat(LabeledEdit11->Text);.x =
StrToFloat(LabeledEdit12->Text);.y = StrToFloat(LabeledEdit14->Text);ma =
sqrt(a.x*a.x + a.y*a.y);= sqrt(b.x*b.x + b.y*b.y);->Lines->Add("|a|
= "+FloatToStr(ma));->Lines->Add("|b| = "+FloatToStr(mb));
a.x = StrToFloat(LabeledEdit10->Text);.y = StrToFloat(LabeledEdit11->Text);.x = StrToFloat(LabeledEdit12->Text);.y = StrToFloat(LabeledEdit14->Text);.x = a.x; e.y = -a.y;.x = b.x; d.y = - b.y;->Lines->Add("число, сопряженноеa: "+FloatToStr(e.x)+
"+"+FloatToStr(e.y)+"i");->Lines->Add("число, сопряженное b: "+
FloatToStr(d.x)+"+"+FloatToStr(d.y)+"i");
Для того, чтобы программа понимала откуда такие объекты, ранее были объявлены соответствующие структуры следующего вида:
struct Date {// структурадатаday;month;year;decade; season;
int century;
} dt1; // объявление переменной этой структуры
structTriangle { // структура Треугольник
float a;b; c;
} tr; // объявление переменной этой структуры
structLine { // структура для прямой линии
float x1;
float y1;x2;y2;
} ln; // объявление переменной этой структуры
structComplex { // структура для комплексных чисел
float x;
float y;
} a,b,e,d;
// объявление переменных этой структуры
Заключение
программирование структура приложение
В целях подробного просмотра возможностей работы со структурами в С++ было разработано приложение содержащее различные структуры и выполняющее самого различного вида операции над ними. В ходе разработки программы, было создано четыре вида структур, которые характеризуют дату (время), свойства треугольника, свойства прямой и свойства комплексных чисел. С помощью различных задач, были приведены различные способы работы со структурами. Так как, структуры это «мини» классы, они очень схожи в объявлении и имеют схожие свойства. Структура тоже, отчасти, новый тип данных, но в узком смысле этого слова. У нас структуры содержат различного рода информацию и свойства одного определенного понятия. Структуру можно один раз описать и с помощью разных объявленных переменных использовать как несколько структур с одинаковыми свойствами. Мы воспользовались этим свойством структур и выполнили несколько операций над такими структурами, отличающимися друг от друга лишь названием (две прямых xи у, два комплексных числа а и b).
Как видите, это очень удобно в выполнении
многочисленных вычислений с данными, имеющими несколько одинаковых или схожих
свойств. Используя структуры, необязательно перед каждым новым объектом
описывать его свойства в ряд, достаточно по определенным критериям
сгруппировать данные и в начале программы оформить их в виде структур и в
дальнейшем использовать их сколько угодно раз, с разным обозначением.
Использованная литература
· Громов Ю. «Программирование на языке C»
· Вальпа О. «Borland C++ Builder»
· Златопольский Д.М. «Сборник задач по программированию»
· Прата С. «Язык программирования С++»
· Культин Н. Б. «Основы программирования в Delphi 7»
· «Borland C++ Builder. Освой самостоятельно за 21 день»
· Дейтел Х., Дейтел П «Как программировать на C++»
· Крупник А.Б. «Изучаем C++»
· Архангельский, «С++ Справочное пособие»
· «Объектно-ориентированное программирование в C++»
· Липпман С., Лажойе Ж. «Язык программирования C++»
· Страуструп Б. «Язык программирования C++»
· Павловская Т.А., Щупак Ю.А. «С и С++ Структурное программирование»