По разделам

 

Решение задачи Begin 21


Даны координаты трех вершин треугольника: (x1, y1), (x2, y2), (x3, y3).
Найти его периметр и площадь, используя формулу для расстояния между двумя точками на плоскости (см. задание Begin20). Для нахождения
площади треугольника со сторонами a, b, c использовать формулу Герона:
S =

p·(p − a)·(p − b)·(p − c),
где p = (a + b + c)/2 — полупериметр.

Код (C/C++)

#include <iostream>
#include <cmath>
using namespace std;
int main(){
	double x1,y1,x2,y2,x3,y3,a,b,c,P,p,S;
	cout << "Vvedit koordinati pervoy vershini (x1, y1): ";
	cin >> x1 >> y1;
	cout << "Vvedit koordinati vtoroy vershini (x2, y2): ";
	cin >> x2 >> y2;
	cout << "Vvedit koordinati tretey vershini (x3, y3): ";
	cin >> x3 >> y3;
	a = sqrt(pow((x1-x2),2)+pow((y1-y2),2));
	b = sqrt(pow((x1-x3),2)+pow((y1-y3),2));
	c = sqrt(pow((x2-x3),2)+pow((y2-y3),2));
	P = a+b+c;
	p = P/2;
	S = sqrt(p*(p-a)*(p-b)*(p-c));
	cout << "Perimetr: " << P << "." << endl;
	cout << "Ploshyad': " << S << "." << endl;
	return 0;
}

Код (Python)

import numpy as np
import math

def Distance(A,B):
    return math.sqrt((A[0] - B[0])**2 + (A[1] - B[1])**2)

x1,x2,x3,y1,y2,y3 = list(np.random.choice(range(-10, 11), 6))
#x1,x2,x3,y1,y2,y3 = [0,3,0,0,0,4]
while (x3-x1)*(y2-y1) == (y3-y1)*(x2-x1):
    x1,x2,x3,y1,y2,y3 = list(np.random.choice(range(-10, 11), 6))    

print("Вершина A (x1, y1): ({0},{1})".format(x1, y1))

 

print("Вершина B (x2, y2): ({0},{1})".format(x2, y2))
print("Вершина C (x3, y3): ({0},{1})".format(x3, y3))

d_AB = Distance([x1,y1],[x2,y2])
print("Длина AB: ", d_AB)

d_AC = Distance([x1,y1],[x3,y3])
print("Длина AC: ", d_AC)

d_BC = Distance([x2,y2],[x3,y3])
print("Длина BC: ", d_BC)

p = (d_AB + d_AC + d_BC)/2
print("Полупериметр: ", p)

S = math.sqrt(p*(p-d_AB)*(p-d_AC)*(p-d_BC))
print("Площадь: ", S)
									

Код (Pascal)

program Begin21;
var
  x1,y1,x2,y2,x3,y3,a,b,c,P,pp,S: Real;{pp-полупериметр}
begin
  Writeln('Введите значение координат певой точки: ');
  Write('Введите значение x: ');
  Readln(x1);
  Write('Введите значение y: ');
  Readln(y1);
  Writeln('Введите значение координат второй точки: ');
  Write('Введите значение x: ');
  Readln(x2);
  Write('Введите значение y: ');
  Readln(y2);
  Writeln('Введите значение координат третьей точки: ');
  Write('Введите значение x: ');
  Readln(x3);
  Write('Введите значение y: ');
  Readln(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));
  P:=a+b+c;
  Writeln('Периметр треугольника равен: ',P);
  pp:=(a+b+c)/2;
  S:=Sqrt(pp*(pp-a)*(pp-b)*(pp-c));
  Writeln('Площадь треугольника равен: ',S);
end.
									




Begin. Абрамян
Begin 1 Просмотров: 177
Begin 2 Просмотров: 79
Begin 3 Просмотров: 96
Begin 4 Просмотров: 93
Begin 5 Просмотров: 82
Begin 6 Просмотров: 92
Begin 7 Просмотров: 74
Begin 8 Просмотров: 76
Begin 9 Просмотров: 82
Begin 10 Просмотров: 100
Begin 11 Просмотров: 102
Begin 12 Просмотров: 91
Begin 13 Просмотров: 92
Begin 14 Просмотров: 130
Begin 15 Просмотров: 85
Begin 16 Просмотров: 80
Begin 17 Просмотров: 94
Begin 18 Просмотров: 88
Begin 19 Просмотров: 90
Begin 20 Просмотров: 90
Begin 21 Просмотров: 117
Begin 22 Просмотров: 81
Begin 23 Просмотров: 79
Begin 24 Просмотров: 86
Begin 25 Просмотров: 75
Begin 26 Просмотров: 75
Begin 27 Просмотров: 96
Begin 28 Просмотров: 83
Begin 29 Просмотров: 93
Begin 30 Просмотров: 81
Begin 31 Просмотров: 87
Begin 32 Просмотров: 92
Begin 33 Просмотров: 90
Begin 34 Просмотров: 81
Begin 35 Просмотров: 76
Begin 36 Просмотров: 70
Begin 37 Просмотров: 75
Begin 38 Просмотров: 94
Begin 39 Просмотров: 95
Begin 40 Просмотров: 82

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться