Форум программистов, компьютерный форум CyberForum.ru

написать функцию которая вычисляет площадь криволинейного треугольника - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Запись данных в динамический массив через указатели http://www.cyberforum.ru/cpp-beginners/thread985253.html
Здравствуйте! У меня возникла проблема... Когда я ввожу, например, 10 чисел в дин. массив, цикл while(через который я и хочу организовать ввод в массив) не выходит до тех пор, пока программа не дойдёт до 14-го элемента. Т.е. вот, мне нужно ввести 10 элементов, однако программа продолжает вводить 11, 12, 13, 14 элементы. Вот код программы: #include "stdafx.h" #include <stdio.h> int*...
C++ в файл text.in записано матрицу NxN. Найти ее детерминант в файл text.in записано матрицу NxN. Найти ее детерминант. результат записать в файл test.out. для работы с файлами использовать cstdio. У меня есть код но он неправильно работает. Постоянно пишет что невозможно открыть файл. И я не знаю как вместо суммы детерминант найти. #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread985241.html
Дано натуральное n. Вычислить n сомножителей произведения 2/1*2/3*4/3*4/5*6/5*6/7 C++
Дано натуральное n. Вычислить n сомножителей произведения 2/1*2/3*4/3*4/5*6/5*6/7... Помогите пожалуйста!!! Срочно нужен код программы)) Заранее спасибо! Турбо Паскаль!! Добавлено через 6 минут Пожалуйста помогите!! Мне надо сдавать эти задачи завтра утром)))
C++ объявление перпеменных
Доброй ночи,написал простейший калькулятор(складывает числа) и при запуске вместо: "Введите первое число" выводит модифицированный русский алфавит,подскажите,пожалуйста,что делать?
C++ Средняя зарплата http://www.cyberforum.ru/cpp-beginners/thread985235.html
Средняя зарплата На некотором предприятии работает некоторое количество работников, но не менее двух: директора и главного бухгалтера. Известно также, что количество работающих не превышает 1000. Зная заработные платы кождого работника определить среднюю зарплату на предприятии. Технические условия Входные данные Заработные платы работников (не обязательно в одной строке) в...
C++ Напишите функцию, определяющую является ли число простым 2. Напишите функцию, определяющую является ли число простым (Целое число является простым, если оно делится только на 1 и на само себя. Например, 2, 3, 5 – простые числа, а 4, 6, 8 – нет. подробнее

Показать сообщение отдельно
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
23.10.2013, 10:09     написать функцию которая вычисляет площадь криволинейного треугольника
Вот что у меня вышло
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <cstdlib>
#include <cmath>
 
/*
  Площадь криволинейного треугольника,
ограниченного окружностью (x-a)^2+(y-b)^2=r^2
и первым квадрантом равна сумме
площадей прямоугольного треугольника и сектора круга,
ограниченного гипотенузой этого треугольника
 
Треугольника не сущестует, если (a^2+b^2)>=r^2
 
длина сторон треугольника
A = r-a
B = r-b
C = sqrt(A^2+B^2)
площадь St = (A*B)/2
 
Площадь сегмента
Ss =0.5*r^2*(alpha - sin(alpha))
где alpha = 2*arcsin(C/(2*r))
*/
 
double enter(const char*query) {
    double value;
    std::cout<<"Введите "<<query;
    std::cin>>value;
    return value;
}
 
void error(const char* message) {
    std::cerr<<message<<std::endl;
    exit(EXIT_FAILURE);
}
 
int main() {
    double a,  b,  r; // переменные для ввода
    double A,  B,  C; // длины
    double S, St, Ss; // площади
    double alpha;
 
    r = enter("r: ");
    if (r<=0) {
        error("r должно быть больше 0");
    }
 
    a = enter("a: ");
    b = enter("b: ");
    if ((a*a + b*b) >= r*r) {
        error("Треугольника с такими параметрами нет");
    }
 
    A = r - a;
    B = r - b;
    C = sqrt(A*A + B*B);
    St = (A*B)/2.0;
 
    alpha = 2.0*asin(C/(2.0*r));
    Ss = 0.5*r*r*(alpha - sin(alpha));
 
    S = St+Ss;
    std::cout<<"Площадь равна "<<S<<std::endl;
    return 0;
}
 
Текущее время: 03:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru