На сайте в режиме реального времени публикуются решения контестных задач сервиса Codeforces.
Загружайте свои решения( здесь ) прямо на сайте. Подробнее. Жду ваших решений
 

По разделам

 

Задача 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 Просмотров: 14
Proc 2 Просмотров: 14
Proc 3 Просмотров: 12
Proc 4 Просмотров: 12
Proc 5 Просмотров: 16
Proc 6 Просмотров: 10
Proc 7 Просмотров: 14
Proc 8 Просмотров: 13
Proc 9 Просмотров: 13
Proc 10 Просмотров: 12
Proc 11 Просмотров: 14
Proc 12 Просмотров: 12
Proc 13 Просмотров: 12
Proc 14 Просмотров: 16
Proc 15 Просмотров: 13
Proc 16 Просмотров: 11
Proc 17 Просмотров: 24
Proc 18 Просмотров: 13
Proc 19 Просмотров: 15
Proc 20 Просмотров: 11
Proc 21 Просмотров: 14
Proc 22 Просмотров: 12
Proc 23 Просмотров: 11
Proc 24 Просмотров: 13
Proc 25 Просмотров: 10
Proc 26 Просмотров: 13
Proc 27 Просмотров: 18
Proc 28 Просмотров: 19
Proc 29 Просмотров: 25
Proc 30 Просмотров: 26
Proc 31 Просмотров: 13
Proc 32 Просмотров: 14
Proc 33 Просмотров: 12
Proc 34 Просмотров: 20
Proc 35 Просмотров: 11
Proc 36 Просмотров: 12
Proc 37 Просмотров: 12
Proc 38 Просмотров: 11
Proc 39 Просмотров: 14
Proc 40 Просмотров: 11
Proc 41 Просмотров: 14
Proc 42 Просмотров: 12
Proc 43 Просмотров: 12
Proc 44 Просмотров: 13
Proc 45 Просмотров: 15
Proc 46 Просмотров: 11
Proc 47 Просмотров: 12
Proc 48 Просмотров: 14
Proc 49 Просмотров: 11
Proc 50 Просмотров: 13
Proc 51 Просмотров: 20
Proc 52 Просмотров: 12
Proc 53 Просмотров: 14
Proc 54 Просмотров: 11
Proc 55 Просмотров: 14
Proc 56 Просмотров: 10
Proc 57 Просмотров: 11
Proc 58 Просмотров: 12
Proc 59 Просмотров: 10
Proc 60 Просмотров: 12

Комментарии

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