0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 23
1

Определить, является ли треугольник прямоугольным

10.03.2014, 17:50. Показов 5565. Ответов 11
Метки нет (Все метки)

Написать программу которая определяет:Является ли треугольник с длинами a,b,c прямоугольным с #
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2014, 17:50
Ответы с готовыми решениями:

Определить является ли треугольник прямоугольным
Ввести координаты треугольника. Определить является ли он прямоугольным. Я только учусь...

Определить, является ли треугольник с заданными сторонами, прямоугольным
Написать пр-му на C# И: Блок схему под условия: Определить, является ли треугольник с заданными...

Определить является ли заданный длинами сторон треугольник тупоугольным, прямоугольным или остроугольным
Треугольник задан длинами своих сторон – a, b, c. Определить является ли он тупоугольным,...

Определить, является ли треугольник равнобедренным
Треугольник со сторонами a, b, c является равнобедренным.Если Вы будете продолжать создавать темы с...

11
58 / 55 / 37
Регистрация: 02.04.2012
Сообщений: 131
10.03.2014, 18:17 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            double a = 0;
            double b = 0;
            double c = 0;
            Console.Write("Введите a=");
            a = double.Parse(Console.ReadLine());
            Console.Write("Введите b=");
            b = double.Parse(Console.ReadLine());
            Console.Write("Введите c=");
            c = double.Parse(Console.ReadLine());
            if (System.Math.Pow(c, 2) == System.Math.Pow(a, 2) + System.Math.Pow(b, 2))
            {
                Console.Write("Треугольник прямоугольный");
            }
            Console.Read();
1
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 23
10.03.2014, 18:26  [ТС] 3
Я ввожу а,b,c и программа завершает работу
0
Заблокирован
10.03.2014, 18:30 4
В конце программы Console.ReadKey();

и добавить условие
C#
1
 else{ Console.Write("Треугольник не прямоугольный");}
2
Master of Orion
Эксперт .NET
6091 / 4947 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
10.03.2014, 18:58 5
IUMag, никогда не используйте Math.Pow для возведения в степень ниже четвертой.
0
2 / 2 / 1
Регистрация: 19.10.2013
Сообщений: 48
10.03.2014, 19:00 6
Почему? Сложнее компилировать?
0
Master of Orion
Эксперт .NET
6091 / 4947 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
10.03.2014, 19:02 7
ChpoKDev, ощутимо дольше работает. Да и x*x короче писать.

Добавлено через 33 секунды
даже по длине сравните
C#
1
if (System.Math.Pow(c, 2) == System.Math.Pow(a, 2) + System.Math.Pow(b, 2))
и
C#
1
if (a*a + b*b == c*c)
1
159 / 151 / 73
Регистрация: 03.03.2014
Сообщений: 368
10.03.2014, 19:39 8
Psilon, А можно объяснить очень интересно. Почему ощутимо дольше работает? Это ведь здесь переменные с именами а и с, а в жизни бывают ОченьСложноКемтоПридуманныеИдиотскиеПеременные? Неужели там такой провис по производительности?
0
Master of Orion
Эксперт .NET
6091 / 4947 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
10.03.2014, 20:33 9
Not_Jon_Skeet, ну можно тест запустить. Но по факту эмпирически даже если написано x*x*x... 10 раз подряд (то есть 10 сомножителей), то это все равно быстрее, чем Math.Pow. Видел где-то расширение на IDE, где компилятор в качестве оптимизации если степень менее 10 заменяет на произведение.
1
Заблокирован
10.03.2014, 20:45 10
А если я не знаю сколько раз мне нужно перемножить пусть то 2 или 3 раза. УЗнаю в результате работы.
1
Master of Orion
Эксперт .NET
6091 / 4947 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
10.03.2014, 21:06 11
ICanHelpU, ну микроскопом гвозди забивать не надо, можно же в зависимости от ситуации по-разному поступать, а не всегда идти по прямой. В одном случае это правильно, а в другом - дорога по граблям
1
159 / 151 / 73
Регистрация: 03.03.2014
Сообщений: 368
10.03.2014, 21:52 12
Добавлено через 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
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication4
{
   
 
    class Program
    {
        static void Main(string[] args)
        {
            double a = 123.456;
            double b = 123.456;
            double ans;
            Stopwatch watch1 = new Stopwatch();
            Stopwatch watch2 = new Stopwatch();
            
            watch1.Start();
            for (int i = 0; i < 1000000; i++)
            {
                ans = a * a * a * a * a * a * a * a * a;
            }
            watch1.Stop();
            TimeSpan ta = watch1.Elapsed;
            string variantA = String.Format("{0}", ta.Ticks);
            Console.WriteLine("Простое умножение: " + variantA);
 
            watch2.Start();
            for (int i = 0; i < 1000000; i++)
            {
                ans = Math.Pow(b, 9);
            }
            watch2.Stop();
            TimeSpan tb = watch2.Elapsed;
            string variantB = String.Format("{0}", tb.Ticks);
            Console.WriteLine("Умножение с помощью Math.Pow: " + variantB);
 
            Console.ReadLine();
        }
    }
}
Стало интересно и сделал некое подобие бенчмарка. Разница действительно большая. Где-то в 20 раз.

Добавлено через 32 секунды
Psilon,
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
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication4
{
   
 
    class Program
    {
        static void Main(string[] args)
        {
            double a = 123.456;
            double b = 123.456;
            double ans;
            Stopwatch watch1 = new Stopwatch();
            Stopwatch watch2 = new Stopwatch();
            
            watch1.Start();
            for (int i = 0; i < 1000000; i++)
            {
                ans = a * a * a * a * a * a * a * a * a;
            }
            watch1.Stop();
            TimeSpan ta = watch1.Elapsed;
            string variantA = String.Format("{0}", ta.Ticks);
            Console.WriteLine("Простое умножение: " + variantA);
 
            watch2.Start();
            for (int i = 0; i < 1000000; i++)
            {
                ans = Math.Pow(b, 9);
            }
            watch2.Stop();
            TimeSpan tb = watch2.Elapsed;
            string variantB = String.Format("{0}", tb.Ticks);
            Console.WriteLine("Умножение с помощью Math.Pow: " + variantB);
 
            Console.ReadLine();
        }
    }
}
Стало интересно и сделал некое подобие бенчмарка. Разница действительно большая. Где-то в 20 раз.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2014, 21:52
Помогаю со студенческими работами здесь

Определить, является ли треугольник равносторонним
Только начинаю изучать C# При любых введенных a, b, c программа выдает только &quot;Данный треугольник...

Определить, является ли треугольник со сторонами а, 6, с равнобедренным
Определить, является ли треугольник со сторонами а, 6, с равнобедрен¬ным. Плиз

Определить, является ли треугольник со сторонами a, b, c равносторонним
1. Определить, является ли треугольник со сторонами a, b, c равносторонним. 2. a) Найти на...

Определить, является ли треугольник со сторонами а, b, с равнобедренным
Определить, является ли треугольник со сторонами а, b, с равнобедренным. помогите пожалуйста


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru