Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
mr.man
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 14
#1

(Вопрос) Базовые понятия. Реализация разветвленных вычислительных процессов. - C++

22.05.2009, 00:31. Просмотров 1538. Ответов 12
Метки нет (Все метки)

Добрый вечер прошу помочь с задачей:
Определить, можно ли построить треугольник по заданным длинам сторон a, b, c. Если построение возможно, то определить тип треугольника: прямоугольный, тупоугольный, остроугольный, равносторонний, равнобедренный и тому подобное Для равностороннего треугольника – вычислить его высоту, для равнобедренного - медиану к основе.

Заранее благодарен за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2009, 00:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос (Вопрос) Базовые понятия. Реализация разветвленных вычислительных процессов. (C++):

Базовые понятия о рекурсии - C++
Здравствуйте! Я на этом форуме новичок и не атк давно занимаюсь программированием на С++. И у меня возник такой вопрос. В книге (Борис...

Можно ли выучить C++, имея базовые понятия в C? - C++
Можно ли выучить C++ знаю С до функций и структур?

Базовые понятия-класс. Как он сотносится с обьектом? - C++
Обьясните также пожалуста, что значит error C2864: miclasse::AA: в пределах класса могут быть инициализированы только статические...

Програмирование на С++ разветляющихся вычислительных процессов - C++
Помогите бедной девушке решить задачку на С++,сама не справляюсь!:cry: Выяснить, у какого из трех прямоугольных треугольников площадь...

Программирование разветляющихся вычислительных процессов - C++
Выяснить, пересекаются ли кривые у=аx3+bx2+сx+d и y=ex3+fx2+gx+h. При положительном ответе найти точки пересечения.

Программная реализация задачи о распиле бревна по моделированию производственно-экономических процессов - C++
Всем здравствуйте. Пишу курсовой проект. Постановка задачи выглядит таким образом: Планирование оптимального распила бревна...

12
mikutu
27 / 27 / 2
Регистрация: 29.04.2009
Сообщений: 90
22.05.2009, 05:18 #2
в принципе формулы для высоты равностороннего треугольника и для медианы к основе равнобедренного будут одинаковы.
пусть a - основа
b=с (если равностороний еще и = a )
h=(b^2-(a/2)^2)^0.5
а про определение типа треугольника я уже вам писал как определить тип (вот вам ссылка на теорему косинусов http://ru.wikipedia.org/wiki/Теорема_косинусов)
0
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 483
22.05.2009, 23:35 #3
C++
1
((a+b>=c)&&(a+c>=b)&&(b+c>=a))
а это условие существования треугольника если что
0
mr.man
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 14
23.05.2009, 00:09  [ТС] #4
у меня возник вопрос при построении программы,для определения угла,нужно ли переводить полученные радианы в градусы?если да,тогда я прошу написать ф-цию.Спасибо за помощь!
0
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 483
23.05.2009, 00:44 #5
смотря что будешь считать, обычно в геометрии всё переводится в градусы.
вот формула сама:
al_grad=(al_rad*180)/3.14;
0
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
23.05.2009, 00:49 #6
C++
1
2
3
4
5
double RadToDeg(double radian)
{
   #define pi 3.14159265358979323846;
   return 180*radian/pi;
}
0
insolent
826 / 344 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
23.05.2009, 16:30 #7
Вот код:
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
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <algorithm>
using namespace std;
 
bool compale(double i,double j){
    return(i<j);
}
void med(double a,double b){
    double x;
    x = sqrt(a - b/2);
    if(a != b){
    cout << "Треугольник с данными сторонами равнобедренный." << endl;
    cout << "Длина медианы - " << x << endl;
    }else
        cout << "Длина высоты - " << x << endl;
}
int main(int argc,char *argv[])
{
    setlocale(0,"");
    double stor[2];
    cout << "Введите стороны треугольника." << endl;
    cin >> stor[0] >> stor[1] >> stor[2];
    _flushall();
    //Проверяем условие существования треугольника
    while (!((stor[0]+stor[1]>stor[2]) & (stor[0]+stor[2]>stor[1]) & (stor[1]+stor[2]>stor[0]))){ 
        cout << "Трекгольника с такими сторонами не существует." << endl;
        cout << "Введите новые стороны треугольника."<<endl;  
        //Если такого не существует - просим ввести новые стороны
        cin >> stor[0] >> stor[1] >> stor[2];
    }
    _flushall();
    //сортируем массив по возрастанию; первый элемент - самая длинная сторона
    sort(stor,stor+2,compale); 
    stor[0] = pow(stor[0],2);
    stor[1] = pow(stor[1],2);
    stor[2] = pow(stor[2],2);
    if(stor[0] == (stor[1] + stor[2]))
        cout << "Треугольник с данными сторонами прямоугольный." << endl;
    if(stor[0] < (stor[1] + stor[2]))
        cout << "Треугольник с данными сторонами остроугольный." << endl;
    if(stor[0] > (stor[1] + stor[2]))
        cout << "Треугольник с данными сторонами тупоугольный." << endl;
    if((stor[0] == stor[1]) &&(stor[1] == stor[2])){
        cout << "Треугольник с данными сторонами равносторонний." << endl;
        med(stor[0],stor[0]);
    }else{
    if(stor[0] == stor[1])
        med(stor[0],stor[1]);
    else if(stor[0] == stor[2])
        med(stor[0],stor[1]);
    else if(stor[1] == stor[2])
        med(stor[1],stor[0]);
    }
    system("PAUSE");
    return 0;
}
2
mr.man
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 14
24.05.2009, 13:27  [ТС] #8
благодарю!
0
insolent
826 / 344 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
24.05.2009, 15:26 #9
Кнопочка внизу есть такая - "Спасибо" наз.
1
mr.man
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 14
25.05.2009, 00:56  [ТС] #10
вот только возник вопрос,опишите поподробней сортировку массива по возрастанию...
0
insolent
826 / 344 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
25.05.2009, 09:36 #11
Алгоритмы сортировок
http://algolist.manual.ru/
Вот самый простой способ сортировки -
пузырьком
C++
1
2
3
4
5
6
7
8
9
10
void bubble(int *a, int size){
    int i,j;
    int x;// х должно быть того же типа, что и массив
    for(i = 0; i < size;i++)
        for(j = size-1;i > i; j--)
            if(a[j-1] > a[j]){
                x = a[j-1];
                a[j-1] = a[j];
                a[j] = x;
            }
( я написал с модификацией)
1
mikutu
27 / 27 / 2
Регистрация: 29.04.2009
Сообщений: 90
25.05.2009, 19:33 #12
если первый элемент самая большая величина, то сортировка по убыванию.
примерно так методом пузырька
Pascal
1
2
3
4
5
6
7
8
9
for i := 0 to 2 begin
for j := i+1 to 2 begin
if(stor[j] > stor[i]) then begin
temp := stor[j];
stor[j] := stor[i];
stor[i] := temp;
end;
end;
end;
Не заметил что ответ вам уже дали, ну пусть останется и мой вариант.
1
mr.man
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 14
25.05.2009, 23:01  [ТС] #13
благодарю!!
0
25.05.2009, 23:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2009, 23:01
Привет! Вот еще темы с ответами:

программирование разветвленных вычисляемых процессов - Pascal
программирование разветвленных вычисляемых процессов

программирование разветвленных вычисляемых процессов - Pascal
вот задача:

.NET 4.x Некоторые базовые понятия из документации - C#
У меня в процессе изучения Шарпа, возникают различные вопросы. Создавать череду веток не вариант. И, по сему, думаю логично будет создать...

Базовые понятия java ООП, инкапсуляция и т.д - ООП и паттерны
Всем привет. Изучаю сейчас джава, простенький код написал, чтоб разобраться, как джава с переменными работает. В итоге мозг взрывается....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru