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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 83, средняя оценка - 4.90
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
#1

Определить, существует ли треугольник со сторонами a, b, c - C++

19.11.2009, 09:22. Просмотров 10377. Ответов 28
Метки нет (Все метки)

1) поределить существует ли треугольник со сторонами a,b,c, и если существует,то является ли он равносторонним,равнобедренным или разносторонним
2) вычислить r=p!где P третье число делящееся на 9 в диапазоне от 20 до 100
3)вывести на экран третье,пятое и шестое число,кратное 3и 7 в диапазоне от 120 до 270
4)задан массив Z(n) целых чисел.удалить из массива наибольший и наименьший элементы.в преобразованом массиве найти среднее арифметическое тени наибольших элементов.
5)задан массив z(k) целых чисел.поределить в массиве количество простых двухзначных чисел.если таких чисел больше двух,удалить их из массива.проверить,изменился ли максимальный элемент массива
заранее благодарен за помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2009, 09:22     Определить, существует ли треугольник со сторонами a, b, c
Посмотрите здесь:

Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник C++
C++ Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник. Если да, то будет ли он прямоугольным.
C++ Определить, является ли треугольник со сторонами a,b,c равносторонним
C++ Даны два угла треугольника (в градусах). Определить существует ли такой треугольник
C++ Даны три положительных числа. Определить, можно ли построить треугольник со сторонами, длины которых равны этим числам. Если возможно, то ответить на
C++ Выяснить существует ли треугольник со сторонами x,y,z , и определить его вид
Определить, существует ли треугольник со сторонами a, b, c C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mikhail2704
39 / 39 / 8
Регистрация: 18.11.2009
Сообщений: 115
19.11.2009, 10:04     Определить, существует ли треугольник со сторонами a, b, c #2
1. Сравнить а+в и с. Если а+в>=с то треугольник не существует. Если а=в=с - равносторонний. Если а=в или а=с или в=с - равнобедренный
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.11.2009, 10:13     Определить, существует ли треугольник со сторонами a, b, c #3
Цитата Сообщение от mikhail2704 Посмотреть сообщение
Сравнить а+в и с. Если а+в>=с то треугольник не существует
Не все так просто. Во-первых, наверное наоборот (если a+b<=c) то треугольник не существует. Во вторых нужно сделать три подобные проверки (для всех сторон).
Paulie
Айхрень...
306 / 174 / 4
Регистрация: 02.06.2009
Сообщений: 1,078
19.11.2009, 10:21     Определить, существует ли треугольник со сторонами a, b, c #4
Цитата Сообщение от valeriikozlov Посмотреть сообщение
наверное наоборот (если a+b<=c)
опять же - нет, что мешает быть треугольнику 30...30...120?
a+b+c = 180 - тогда существует! в ином случае нет (ну если говорить, конечно, о геометрии на плоскости)...

Добавлено через 4 минуты
ё моё, имелось ввиду стороны a, b & c? а я подумал углы... ну эээ, извиняюсь..
M128K145
Эксперт C++
8280 / 3499 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
19.11.2009, 10:39     Определить, существует ли треугольник со сторонами a, b, c #5
В топике Выяснить существует ли треугольник с длинами сторон a,b,c приводилось правильное решение
C++
1
2
3
4
bool Triangle(int a, int b, int c)
{
    return ((a + b > c) && (b + c > a) && (c + a > b));
}
проверка на вид треугольника
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int Type(int a, int b, int c)
{
    if(a == b == c)
        return 0;
    else
        if(a==b || c == b || a == c)
            return 1;
    return 2;
}
int main()
{
...
    if(Triangle(a, b, c))
        std::cout<<(Type(a, b, c) == 0) ? "равносторонний" :
                    (Type(a, b, c) == 1) ? "равнобедренный" : "разносторонний";
    else
        std::cout<<"Это не треугольник";
...
    return 0;
}
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
19.11.2009, 16:46  [ТС]     Определить, существует ли треугольник со сторонами a, b, c #6
Господа,можете посоветовать литературу по с++ для таких как я,знаний по с практически 0...
ISergey
Maniac
Эксперт С++
1346 / 879 / 51
Регистрация: 02.01.2009
Сообщений: 2,643
Записей в блоге: 1
19.11.2009, 16:49     Определить, существует ли треугольник со сторонами a, b, c #7
Препод грузит на первом курсе а лекции не одной небыло
тачнее вас небыло на лекциях..
Цитата Сообщение от Grand1 Посмотреть сообщение
Господа,можете посоветовать литературу по с++
Литература C++
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
19.11.2009, 16:56  [ТС]     Определить, существует ли треугольник со сторонами a, b, c #8
Цитата Сообщение от ISergey Посмотреть сообщение
тачнее вас небыло на лекциях..

Литература C++
Нет просто тот препод который должен был быть уволился и по настоящее время его ни кто не заменял
ser4ega
27 / 27 / 3
Регистрация: 15.11.2009
Сообщений: 143
19.11.2009, 17:40     Определить, существует ли треугольник со сторонами a, b, c #9
Цитата Сообщение от Grand1 Посмотреть сообщение
вычислить r=p!где P третье число делящееся на 9 в диапазоне от 20 до 100
По-русски говоря, вычислить факториал 45?

Добавлено через 17 минут
И сразу вопрос, кто знает, где можно храниить факториал 45?

Добавлено через 24 секунды
В какой тип ОНО влезет?

Добавлено через 1 минуту
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int i,p;
    unsigned int r=0;
    for(i=20;i<100;i++) {
                        if (i%9==0)r++;
                         if(r==3) {p=i; break;}}//poisk p
    printf("%d\n",p);//takoe vot p 
    r=1; 
    for(i=2;i<=p;i++) r*=i;//uvy, ne pomestitsya
    printf("\n%d\n",r);
    system("PAUSE");    
  
}
вот то, что есть

Добавлено через 1 минуту
Цитата Сообщение от Grand1 Посмотреть сообщение
вывести на экран третье,пятое и шестое число,кратное 3и 7 в диапазоне от 120 до 270
тоесть, кратные 21?

Добавлено через 4 минуты
Цитата Сообщение от Grand1 Посмотреть сообщение
в преобразованом массиве найти среднее арифметическое тени наибольших элементов
Что это?
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 18:09     Определить, существует ли треугольник со сторонами a, b, c #10
ну факториал 45 это длинная арифметика вроде была такая задача 500! погугли её , про среднее арифметическое это видимо ср арифм 3 наибольших элементов , алгоритм в лоб отсортировать сложить первые 3 и поделить на 3 .
M128K145
Эксперт C++
8280 / 3499 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
19.11.2009, 18:47     Определить, существует ли треугольник со сторонами a, b, c #11
для проверки
45!
119 622 220 865 480 194 561 963 161 495 657 715 064 383 733 760 000 000 000
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
20.11.2009, 05:00  [ТС]     Определить, существует ли треугольник со сторонами a, b, c #12
Тени-это то есть семи
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
20.11.2009, 09:33  [ТС]     Определить, существует ли треугольник со сторонами a, b, c #13
Вот еще он озадачил сказал так как не успиваем сделать до следующего четверга 3 лабы и дал еще два задания...Короче нагрузил по полной
6)Задан массив Х(n) целых чисел. Удалить из массива все элементы,
большие среднего арифметического значения. Определить в массиве
количество простых и совершенных чисел до и после удаления.
7)Вычислить среднее арифметическое и среднее геометрическое нечетных
чисел, кратных 7 в диапазоне от 101 до 213.
Только не говорите что я полный дебил ,я просто всего этого не знаю
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
20.11.2009, 13:09     Определить, существует ли треугольник со сторонами a, b, c #14
Grand1,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <numeric>
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    std::vector<int>vec(arr,arr+sizeof(arr)/sizeof(*arr));
    std::cout<<"исходный массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    vec.erase(std::remove_if(vec.begin(),vec.end(),std::bind2nd(std::greater<int>(),std::accumulate(vec.begin(),vec.end(),0)/vec.size())),vec.end());
    std::cout<<"новый массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    system("pause");
    return 0;
}
Добавлено через 37 минут
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <numeric>
 
struct sover : public std::unary_function<int,bool> 
{
  bool operator() (int number)
  {
      int sum = 0 ;
      for (size_t i = 1 ; i < number ; i++)
      {
          if (number%i==0)
          {
              sum=sum+i;
          }
      }
      if (sum==number) return true;
      else
          return false;
  }
 
};
 
struct prost : public std::unary_function<int,bool>
{
    bool operator() (int number)
    {
        for (int i = 2 ; i < number ; i++)
            if (number % i == 0 ) return false;
        return true;
    }
};
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int arr[] = {2,3,4,5,6,7,8,9,10};
    std::vector<int>vec(arr,arr+sizeof(arr)/sizeof(*arr));
    std::cout<<"исходный массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    std::cout<<"количество совершенных чисел"<<' '<<std::count_if(vec.begin(),vec.end(),sover())<<std::endl;
    std::cout<<"количество простые чисел"<<' '<<std::count_if(vec.begin(),vec.end(),prost())<<std::endl;
    vec.erase(std::remove_if(vec.begin(),vec.end(),std::bind2nd(std::greater<int>(),std::accumulate(vec.begin(),vec.end(),0)/vec.size())),vec.end());
    std::cout<<"новый массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    std::cout<<"количество совершенных чисел"<<' '<<std::count_if(vec.begin(),vec.end(),sover())<<std::endl;
    std::cout<<"количество простые чисел"<<' '<<std::count_if(vec.begin(),vec.end(),prost())<<std::endl;
    system("pause");
    return 0;
}
Grand1
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 7
21.11.2009, 08:45  [ТС]     Определить, существует ли треугольник со сторонами a, b, c #15
охринеть! вот мне интересно чтоб такие проги писать сколько времени нужно потратить на изучение C++ по книжкам...
Wolf1851
Сообщений: n/a
21.11.2009, 17:24     Определить, существует ли треугольник со сторонами a, b, c #16
Пожалуйста помогите решить задания:
1.Найти натуральное число от n до k с максимальной суммой делителей
2.Дано натуральное число n. Получить его каноническое разложение (разложение на простые множители).
3.Дано натуральное k <=2109. Вывести k цифру последовательности 011212201220200112... Последовательность строится следующим образом: сначала 0, затем повторяем: уже написанную часть приписываем справа с заменой 0 на 1, 1 на 2, 2 на 0.
Всё организовать через цикл.
lolopolosko
1353 / 311 / 5
Регистрация: 21.11.2009
Сообщений: 992
21.11.2009, 17:32     Определить, существует ли треугольник со сторонами a, b, c #17
Советую тебе книгу "Язык програмирования С++ (учебный курс)" Автор С.В. Глушаков , С.В.Смирнов

ДЛЯ новичков

Добавлено через 3 минуты
Цитата Сообщение от Андрейка Посмотреть сообщение
Grand1,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <numeric>
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    std::vector<int>vec(arr,arr+sizeof(arr)/sizeof(*arr));
    std::cout<<"исходный массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    vec.erase(std::remove_if(vec.begin(),vec.end(),std::bind2nd(std::greater<int>(),std::accumulate(vec.begin(),vec.end(),0)/vec.size())),vec.end());
    std::cout<<"новый массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    system("pause");
    return 0;
}
Добавлено через 37 минут
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <numeric>
 
struct sover : public std::unary_function<int,bool> 
{
  bool operator() (int number)
  {
      int sum = 0 ;
      for (size_t i = 1 ; i < number ; i++)
      {
          if (number%i==0)
          {
              sum=sum+i;
          }
      }
      if (sum==number) return true;
      else
          return false;
  }
 
};
 
struct prost : public std::unary_function<int,bool>
{
    bool operator() (int number)
    {
        for (int i = 2 ; i < number ; i++)
            if (number % i == 0 ) return false;
        return true;
    }
};
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int arr[] = {2,3,4,5,6,7,8,9,10};
    std::vector<int>vec(arr,arr+sizeof(arr)/sizeof(*arr));
    std::cout<<"исходный массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    std::cout<<"количество совершенных чисел"<<' '<<std::count_if(vec.begin(),vec.end(),sover())<<std::endl;
    std::cout<<"количество простые чисел"<<' '<<std::count_if(vec.begin(),vec.end(),prost())<<std::endl;
    vec.erase(std::remove_if(vec.begin(),vec.end(),std::bind2nd(std::greater<int>(),std::accumulate(vec.begin(),vec.end(),0)/vec.size())),vec.end());
    std::cout<<"новый массив"<<std::endl;
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    std::cout<<"количество совершенных чисел"<<' '<<std::count_if(vec.begin(),vec.end(),sover())<<std::endl;
    std::cout<<"количество простые чисел"<<' '<<std::count_if(vec.begin(),vec.end(),prost())<<std::endl;
    system("pause");
    return 0;
}
А не проще дописать
C++
1
using namespace std;
чтобы было понятно новичку...и не входило в заблуждения
M128K145
Эксперт C++
8280 / 3499 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
21.11.2009, 19:17     Определить, существует ли треугольник со сторонами a, b, c #18
lolopolosko, новичку наоборот так будет проще запутаться. Пусть с самого начала привыкает писать правильно
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
22.11.2009, 00:43     Определить, существует ли треугольник со сторонами a, b, c #19
Grand1, ниче в коде сложного нет как дойдёшь до STL поймёшь о чем тут
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2009, 14:56     Определить, существует ли треугольник со сторонами a, b, c
Еще ссылки по теме:

C++ Даны стороны треугольника. Определить, существует ли такой треугольник, и является ли он тупоугольным
C++ Программа, определяющая, существует ли треугольник со сторонами a, b, c, и является ли он тупоугольным
C++ Определить существует ли ромб с задаными сторонами a,b,c,d (без операторов ввода и ввывода,в режиме отладчика)
Определить, существует ли треугольник с заданными сторонами C++
C++ Определить, является ли треугольник со сторонами a, b, c равносторонним

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

Или воспользуйтесь поиском по форуму:
Neys
-1 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 14
22.11.2009, 14:56     Определить, существует ли треугольник со сторонами a, b, c #20
Столкнулся с этой же задачей. Смог сделать только так, чтоб массив был const. Как можно переделать код, чтобы длина массива задавалась с клавиатуры? Я не смог разобраться, как здесь это сделать с помощью указателя. В других программах получалось, а здесь не смог справиться.

Добавлено через пару минут
Кстати, задача на средние значения диапазона.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL,"RUSSIAN");
long long int sum=0, mul=1, itt=0;
    for(int i = 101; i <= 213; i++)
    {
        if( !(i%7) && i%2 )
        {
            sum+=i;
            mul*=i;
            itt++;
        }
    }
cout << "Cреднее арифметическое нечетных чисел, кратных 7 в диапазоне от 101 до 213 равно" << sum/itt 
     << ", среднее геометрическое " << pow((float)mul,(float)1/itt) << "." << endl << endl;
system("pause");
return 0;
}
А вот в задаче с простыми и совершенными числами я так и не сообразил, как организовать ввод длины массива с клавиатуры, чтоб потом всё работало.
Yandex
Объявления
22.11.2009, 14:56     Определить, существует ли треугольник со сторонами a, b, c
Ответ Создать тему
Опции темы

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