Материал: Основы работы со структурами в языке программирование С++

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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++»

·        Павловская Т.А., Щупак Ю.А. «С и С++ Структурное программирование»