По разделам

 

Решение задачи Proc 58


Используя функции Leng и Perim из заданий Proc56 и Proc57, описать
функцию Area(xA, yA, xB, yB, xC, yC) вещественного типа, находящую
площадь треугольника ABC по формуле
SABC =

p·(p−|AB|)·(p−|AC|)·(p−|BC|),
где p — полупериметр. С помощью этой функции найти площади треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.

Код (C/C++)

#include <bits/stdc++.h>

using namespace std;
double func(double x1, double y1, double x2, double y2, double x3, double y3)
{
    double a = sqrt(pow((x1 - x2),2) + pow((y1 - y2),2));
    double b = sqrt(pow((x1 - x3),2) + pow((y1 - y3),2));
    double c = sqrt(pow((x2 - x3),2) + pow((y2 - y3),2));
    double p = (a + b + c)/2;
    return sqrt(p * (p - a) * (p - b) * (p - c));
}
int main()
{
    double x1, y1, x2, y2, x3, y3, x4, y4;
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
    cout << func(x1, y1, x2, y2, x3, y3) << endl;
    cout << func(x1, y1, x2, y2, x4, y4) << endl;
    cout << func(x1, y1, x3, y3, x4, y4) << endl;
    return 0;
}

Код (Python)

import math
import numpy as np
import random

def Leng(xA, yA, xB, yB):
    d = math.sqrt((xA - xB)**2 + (yA - yB)**2)
    return d

def Perim(xA, yA, xB, yB, xC, yC):
    d_AB = Leng(xA, yA, xB, yB)
    d_AC = Leng(xA, yA, xC, yC)
    d_BC = Leng(xB, yB, xC, yC)
    return d_AB + d_AC + d_BC

def Area(xA, yA, xB, yB, xC, yC):
    d_AB = Leng(xA, yA, xB, yB)
    d_AC = Leng(xA, yA, xC, yC)
    d_BC = Leng(xB, yB, xC, yC)
    p = Perim(xA, yA, xB, yB, xC, yC) / 2
    S = math.sqrt(p*(p-d_AB)*(p-d_AC)*(p-d_BC))
    return S


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))    
x4, y4 = random.sample(range(-10, 11), 2)

A_x = x1
A_y = y1
B_x = x2
B_y = y2
C_x = x3
C_y = y3
D_x = x4
D_y = y4

##A_x = 0
##A_y = 0
##B_x = 0
##B_y = 3
##C_x = 4
##C_y = 0

print("Вершина A (x, y): ({0},{1})".format(A_x, A_y))
print("Вершина B (x, y): ({0},{1})".format(B_x, B_y))

 

print("Вершина C (x, y): ({0},{1})".format(C_x, C_y))
print("Вершина D (x, y): ({0},{1})".format(D_x, D_y))

p = Perim(A_x, A_y, B_x, B_y, C_x, C_y)
print("Периметр треугольника ABC: ", p)
S = Area(A_x, A_y, B_x, B_y, C_x, C_y)
print("Площадь треугольника ABC: ", S)
print()

p = Perim(A_x, A_y, B_x, B_y, D_x, D_y)
print("Периметр треугольника ABD: ", p)
S = Area(A_x, A_y, B_x, B_y, D_x, D_y)
print("Площадь треугольника ABD: ", S)
print()

p = Perim(A_x, A_y, C_x, C_y, D_x, D_y)
print("Периметр треугольника ACD: ", p)
S = Area(A_x, A_y, C_x, C_y, D_x, D_y)
print("Площадь треугольника ACD: ", S)
print()
									




Proc. Абрамян
Proc 1 Просмотров: 6511
Proc 2 Просмотров: 5032
Proc 3 Просмотров: 5115
Proc 4 Просмотров: 4302
Proc 5 Просмотров: 3362
Proc 6 Просмотров: 4607
Proc 7 Просмотров: 3891
Proc 8 Просмотров: 2985
Proc 9 Просмотров: 3123
Proc 10 Просмотров: 2882
Proc 11 Просмотров: 2984
Proc 12 Просмотров: 2181
Proc 13 Просмотров: 2422
Proc 14 Просмотров: 2655
Proc 15 Просмотров: 1865
Proc 16 Просмотров: 2840
Proc 17 Просмотров: 2484
Proc 18 Просмотров: 2405
Proc 19 Просмотров: 2323
Proc 20 Просмотров: 3169
Proc 21 Просмотров: 3298
Proc 22 Просмотров: 2401
Proc 23 Просмотров: 2397
Proc 24 Просмотров: 1659
Proc 25 Просмотров: 2032
Proc 26 Просмотров: 1806
Proc 27 Просмотров: 2006
Proc 28 Просмотров: 1737
Proc 29 Просмотров: 1915
Proc 30 Просмотров: 2444
Proc 31 Просмотров: 1668
Proc 32 Просмотров: 1220
Proc 33 Просмотров: 1250
Proc 34 Просмотров: 1670
Proc 35 Просмотров: 1154
Proc 36 Просмотров: 1612
Proc 37 Просмотров: 1473
Proc 38 Просмотров: 1193
Proc 39 Просмотров: 1098
Proc 40 Просмотров: 1831
Proc 41 Просмотров: 1897
Proc 42 Просмотров: 1149
Proc 43 Просмотров: 1115
Proc 44 Просмотров: 998
Proc 45 Просмотров: 1129
Proc 46 Просмотров: 999
Proc 47 Просмотров: 1060
Proc 48 Просмотров: 811
Proc 49 Просмотров: 1045
Proc 50 Просмотров: 2078
Proc 51 Просмотров: 1682
Proc 52 Просмотров: 1687
Proc 53 Просмотров: 1173
Proc 54 Просмотров: 1260
Proc 55 Просмотров: 1144
Proc 56 Просмотров: 1738
Proc 57 Просмотров: 1488
Proc 58 Просмотров: 1171
Proc 59 Просмотров: 1083
Proc 60 Просмотров: 1364

Комментарии

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



Заявка на расчет