Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
 Задача по c++  [new]
PavelGR
Member

Откуда:
Сообщений: 2
Имеется вот такая задача (фото в вложениях), вроде как суть понял но не могу понять как сделать так что бы на выводе мы получили число с буквой (в данном случае ответ с радиусом r), и как ввести в переменную alpha pi/3 и так далее

вот такой код я пока сделал
//Подключим библиотеки
#include <iostream>
#include <cmath>
#include <windows.h>
//Объявем переменные
using namespace std;
double a, b, c, r = 1, x, y, pi = 3.14159265, alpha;
//Создадим функцию
double Function(double alpha)
{
    return (pow(r, 3) * sin(alpha) * pow(sin((180 - alpha) / 2), 2)) / r; //Функция
}
//Тело кода
int main()
{
    setlocale(LC_ALL, "Rus"); //Для вывода на русском языке
    cout << "Введите alpha:";
    cin >> alpha; //Вввод alpha
    y = Function(alpha);
    cout << "Решение: " << y << endl;
    return 0;
}


Модератор: Используй теги SRC для оформления исходников.


К сообщению приложен файл. Размер - 81Kb


Сообщение было отредактировано: 12 мар 21, 17:14
12 мар 21, 16:21    [22293641]     Ответить | Цитировать Сообщить модератору
 Re: Задача по c++  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52913
Для этого надо вывести эту букву с помощью оператора вывода.
А пи/3 это 1.047197551.

Сообщение было отредактировано: 12 мар 21, 16:33
12 мар 21, 16:38    [22293657]     Ответить | Цитировать Сообщить модератору
 Re: Задача по c++  [new]
PavelGR
Member

Откуда:
Сообщений: 2
Dimitry Sibiryakov,

Тоесть отдельно cout << "r" <<; ?
12 мар 21, 16:48    [22293670]     Ответить | Цитировать Сообщить модератору
 Re: Задача по c++  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52913

Да.

Posted via ActualForum NNTP Server 1.5

12 мар 21, 18:16    [22293710]     Ответить | Цитировать Сообщить модератору
 Re: Задача по c++  [new]
Пётр Седов
Member

Откуда: Санкт-Петербург
Сообщений: 700
PavelGR
как ввести в переменную alpha pi/3 и так далее
Стандартный C++-ный ввод (iostreams) не поддерживает parsing формул вроде «pi / 3», поэтому вводите цифрами:
π / 2 ≈ 1.5707963267948966
π / 3 ≈ 1.0471975511965976

PavelGR
sin((180 - alpha) / 2)
Это не может работать правильно, потому что стандартная функция sin принимает угол в радианах. Надо как-то так:
#include <assert.h>
#include <math.h>
#include <iostream>

using namespace std;

double squ(double x) {
  return x * x;
}

double cube(double x) {
  return x * x * x;
}

const double _pi = 3.141592653589793; // без учёта НДС

const double _radius = 3;
const double _circle_area = _pi * squ(_radius); // площадь круга

// площадь треугольника; angle -- в радианах
double triangle_area(double angle) {
  assert((0 < angle) && (angle < _pi));
  return 4 * cube(cos(0.5 * angle)) * sin(0.5 * angle) * squ(_radius);
}

bool almost_equals(double x, double y) {
  return fabs(x - y) <= 0.0001;
}

int main() {
  // тестовые случаи из задания
  assert(almost_equals(triangle_area(_pi / 3), (3 * sqrt(3) * squ(_radius)) / 4));
  assert(almost_equals(triangle_area(_pi / 2), squ(_radius)));

  cout << "Enter angle in radians: ";
  double angle;
  cin >> angle;
  double tri_area = triangle_area(angle);
  cout << "triangle area = " << tri_area << endl;
  cout << "ratio = " << _circle_area / tri_area << endl;
  return 0;
}
13 мар 21, 03:16    [22293848]     Ответить | Цитировать Сообщить модератору
Все форумы / C++ Ответить