Program treyg; uses crt; var x1,y1,x2,y2,x3,y3 : integer; a,b,c,s,p : real; begin write('Введите координаты первой точки: '); Readln(x1,y1); write('Введите координаты второй точки: '); Readln(x2,y2); write('Введите координаты третьей точки: '); Readln(x3,y3); a:=sqrt(sqr(x1-x2)+sqr(y1-y2)); b:=sqrt(sqr(x2-x3)+sqr(y2-y3)); c:=sqrt(sqr(x3-x1)+sqr(y3-y1)); if ((a+b)>c) and ((b+c)>a) and ((c+a)>b) then writeln('Данные координаты не могут являться вершинами треугольника') else begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln('Площадь треугольника ',s); end end.
#include<iostream>
#include<windows.h>
using namespace std;
struct Sponsor
{
char name[32];
char surname[32];
double sum;
};
Sponsor* AddStruct(Sponsor* Obj, const int amount);
void setData(Sponsor* Obj, const int amount);
void showData(const Sponsor* Obj, const int amount);
int main()
{
setlocale(LC_ALL, "rus");
Sponsor* OurSponsors = 0;
int sponsorAmount = 0;
int YesOrNot = 0; // продолжить или остановить ввод данных
do
{
OurSponsors = AddStruct(OurSponsors, sponsorAmount);
setData(OurSponsors, sponsorAmount);
sponsorAmount++;
cout << "Продолжить ввод данных (1 - да, 0 - нет): ";
cin >> YesOrNot;
cin.get();
} while (YesOrNot != 0);
showData(OurSponsors, sponsorAmount);
delete[] OurSponsors;
return 0;
}
Sponsor* AddStruct(Sponsor* Obj, const int amount)
{
if (amount == 0)
{
Obj = new Sponsor[amount + 1]; // выделение памяти для первой структуры
}
else
{
Sponsor* tempObj = new Sponsor[amount + 1];
for (int i = 0; i < amount; i++)
{
tempObj[i] = Obj[i]; // копируем во временный объект
}
delete [] Obj;
Obj = tempObj;
}
return Obj;
}
//
void setData(Sponsor* Obj, const int amount)
{
cout << "Фамилия: ";
cin.getline(Obj[amount].surname, 32);
cout << "Имя: ";
cin.getline(Obj[amount].name, 32);
cout << "Сумма пожертвования: ";
cin >> Obj[amount].sum;
cin.get();
cout << endl;
}
//
void showData(const Sponsor* Obj, const int amount)
{
system("cls");
cout << "№ " << "Фамилия\t" << "Имя\t" << "Сумма\t" << endl;
cout << "" << endl;
for (int i = 0; i < amount; i++)
{
cout << i + 1 << " " << Obj[i].surname << '\t' << Obj[i].name << '\t' << Obj[i].sum << endl;
}
}
Объяснение:
uses crt;
var x1,y1,x2,y2,x3,y3 : integer;
a,b,c,s,p : real;
begin
write('Введите координаты первой точки: ');
Readln(x1,y1);
write('Введите координаты второй точки: ');
Readln(x2,y2);
write('Введите координаты третьей точки: ');
Readln(x3,y3);
a:=sqrt(sqr(x1-x2)+sqr(y1-y2));
b:=sqrt(sqr(x2-x3)+sqr(y2-y3));
c:=sqrt(sqr(x3-x1)+sqr(y3-y1));
if ((a+b)>c) and ((b+c)>a) and ((c+a)>b) then
writeln('Данные координаты не могут являться вершинами треугольника')
else
begin
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln('Площадь треугольника ',s);
end
end.