Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2019, 15:48   #1
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию

Помогите пожалуйста.
Есть задание: "Создать функцию, которая определяет площадь треугольника по трем сторонам
и функцию, которая определяет существование треугольника со сторонами a, b, c.
Определить треугольник наибольшей площади, который можно создать из данного множества отрезков."
с первыми двумя задачами справился, а что делать с определением треугольника наибольшей площади сложно. Кто-нибудь может подсказать?

Код:
#include <iostream>
#include <cmath>

using namespace std;

float square(float a, float b, float c) {
	float p = (a + b + c) / 2; //полупериметр треугольника
	float s = sqrt(p*(p - a)*(p - b)*(p - c)); //площадь 
	return s;
}

void existence(float a, float b, float c)
{
	if ((a + b > c) && (a + c > b) && (b + c > a))
		cout << "Treugolnik sushestvuet" << endl;
	else
		cout << "Treugolnik ne sushestvuet" << endl;
}

int main()
{
	float x, y, z, res;
	cout << "Vvedite storonbI treugolnika" << endl;
	cout << "x="; cin >> x;
	cout << "y="; cin >> y;
	cout << "z="; cin >> z;
	existence(x,y,z);
	res = square(x, y, z);
	cout << "Ploshad:" << res << endl;
	return 0;
}
вот мой код

Последний раз редактировалось Вадим Мошев; 10.02.2019 в 20:34.
LOkeron вне форума Ответить с цитированием
Старый 10.02.2019, 16:56   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

existence переделываете в функцию возвращающую bool, вывод там нафик не нужен
вместо трех переменых a,b,c заводите массив
вычитываете в массив длины
перебираете массив по 3 отрезка, проверяете на треугольник, вычисляете площадь и сравниваете с текущим максимумом
p51x на форуме Ответить с цитированием
Старый 10.02.2019, 18:55   #3
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
existence переделываете в функцию возвращающую bool, вывод там нафик не нужен
вместо трех переменых a,b,c заводите массив
вычитываете в массив длины
перебираете массив по 3 отрезка, проверяете на треугольник, вычисляете площадь и сравниваете с текущим максимумом
Если вам не сложно, то не могли бы вы поподробнее про массив и перебирание по нему? Что-то в голову ничего не вырисовывается
LOkeron вне форума Ответить с цитированием
Старый 10.02.2019, 19:30   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Например, возьмте прямой перебор:
фиксируем первый, второй элемент, а третьим бегим по остатку
двигаем второй, а третьим бегим по остатку
...
двигаем первый и повторям
три цикла видны...
p51x на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции в языке С. Передача параметров в функции. Создание многофайловых проектов fifaman Общие вопросы C/C++ 6 28.12.2014 15:30
Табулирование заданной функции и определение максимального и минимального значения функции в таблице Марина1986 C/C++ Сетевое программирование 0 07.05.2013 11:31
Использование подпрограммы-функции: Вычислить значение функции (Турбо паскаль) RealUnited Паскаль, Turbo Pascal, PascalABC.NET 1 05.12.2012 20:34
Построение графика функции, мигание(затухание) шарика в минимумах функции kas1m_rus Паскаль, Turbo Pascal, PascalABC.NET 0 27.05.2012 20:28
Как подменить адрес возврата функции func на адрес функции f используя переполнение буфера buf и функции gets dmitrii6120 Помощь студентам 6 14.11.2011 20:10