Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задачи по информатике, Программирование на (C++) 
:(
    Опции темы
lomkaaa
Дата 16.6.2017, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 16.6.2017

Репутация: нет
Всего: нет



Даны отрезки a,b,c и d. Для каждой тройки этих отрезков, из которых можно построить треугольник, напечатать площадь данного треугольника. Определить процедуру Plo(x,y,z), печатающую площадь треугольника со сторонами x,y и z, если такой треугольник существует. (С++)
PM MAIL   Вверх
SpeedFighter
Дата 4.7.2017, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 4.7.2017

Репутация: нет
Всего: нет



Код

#include <cstdlib>
#include <iostream>
#include <cmath>

using namespace std;

float CalcArea(float x, float y, float z); // Функция для расчета площади
bool ExistRectangle(float x, float y, float z); // Определение сущепствования треугольника

int main(int argc, char *argv[])
{
    setlocale(0,""); // Включаем кириллицу
    float a, b, c, d; // Заданные параметры (отрезки)
    int i = 0; // Счетчик
    cout << "Введите параметр a: "; 
    cin >> a; 
    cout << endl << "Введите параметр b: ";
    cin >> b;
    cout << endl << "Введите параметр c: ";
    cin >> c;
    cout << endl << "Введите параметр d: ";
    cin >> d; 
    
    /*Из четырех отрезков можно получить 4 комбинации для треугольника, 
    исходя из базовых знаний комбинаторики (число сочетаний из 4 по 3). 
    Эти сочетания:
    a, b, c
    a, b, d
    a, d, c
    b, d, c.
    Перестановка в данном случае не играет роли (на нахождение пложащи никак не влияет).
    */
    
    // Алгоритм поиска возможных вариантов:
    
    cout << endl << "Возможные вариаенты треугольников:" << endl << endl;    
    
    if(ExistRectangle(a, b, c))
        cout << "Вариант №" << ++i << ": a(" << a << "), b(" << b << "), c(" << c << ");" << endl << "Площадь: " << CalcArea(a, b, c) << endl << endl; 
    if(ExistRectangle(a, b, d))
        cout << "Вариант №" << ++i << ": a(" << a << "), b(" << b << "), d(" << d << ");" << endl << "Площадь: " << CalcArea(a, b, d) << endl << endl;          
    if(ExistRectangle(a, d, c))
        cout << "Вариант №" << ++i << ": a(" << a << "), d(" << d << "), c(" << c << ");" << endl << "Площадь: " << CalcArea(a, d, c) << endl << endl;         
    if(ExistRectangle(b, d, c))
        cout << "Вариант №" << ++i << ": b(" << b << "), d(" << d << "), c(" << c << ");" << endl << "Площадь: " << CalcArea(b, d, c) << endl << endl;  
    if(i == 0)
        cout << "Из данных параметров невозможно составить треугольник!" << endl << endl; 

    system("pause");
    return 0;
}

bool ExistRectangle(float x, float y, float z)
{
    // Условие существование треугольника - сумма любых двух сторо больше третьей.
    if((x + y > z) && (z + x > y) && (y + z > x))
        return true;
    else
        return false;
}

float CalcArea(float x, float y, float z) // Расчет площади - по формуле Герона
{
    float p = (x + y + z)/2;
    float S = sqrt(p*(p-x)*(p-y)*(p-z));
    return S;
}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0630 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.