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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Silencest
1 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 21
#1

Описать класс "треугольник" (перевести код с C#) - C++

07.10.2012, 18:19. Просмотров 1164. Ответов 5
Метки нет (Все метки)

надо переделать прогу с с# на c++. мне написать ее заново не легче будет, так как с++ я напрочь забыла. поэтому пишу сюда, в надежде на помощь. программа достаточно громосткая, но надеюсь кто-нибудь мне поможет.
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
using System;
using System.Collections.Generic;
using System.Text;
 
namespace z15_b
{  class Triangle
    { static void Main(string[] args)
{Console.WriteLine("Введите стороны и углы треугольника:");  input();
        One:
Console.WriteLine();
Console.WriteLine("Выберете операцию:");
Console.WriteLine("1. Периметр треугольника");
Console.WriteLine("2. Площадь треугольника");
Console.WriteLine("3. Вычисление высоты треугольника");
Console.WriteLine("4. Вид треугольника");
Console.WriteLine("5. Описание треугольника");
 
        int num = Convert.ToInt32(Console.ReadLine());
        double output = 0;
        double pp = (arr[0] + arr[1] + arr[2])/2;
        Console.Clear();
        switch (num)           
                   
{   case 1:
     Console.WriteLine("Периметр : {0}см", arr[0] + arr[1] + arr[2]);
   break;
    case 2:
     Console.WriteLine("Площадь : {0}см", Math.Sqrt(pp * (pp - arr[0]) * (pp - arr[1]) * (pp - arr[2])));
   break;
    case 3:
                    for (int i = 0; i < 3; i++)
                    {
                        output = 2 * (Math.Sqrt(pp * (pp - arr[0]) * (pp - arr[1]) * (pp - arr[2]))) / arr[i];
                        Console.WriteLine("Высота опущенна на сторону №{0} равняется {1}см",i+1,output);
                    }                    
                    break;
                case 4:
                    type();
                    break;
                case 5:
                    Console.WriteLine("Полное описание треугольника:");
                    Console.WriteLine("Периметр : {0}см", arr[0] + arr[1] + arr[2]);
                    Console.WriteLine("Площадь : {0:F4}см", Math.Sqrt(pp * (pp - arr[0]) * (pp - arr[1]) * (pp - arr[2])));
                    for (int i = 0; i < 3; i++)
                    {
                        output = 2 * (Math.Sqrt(pp * (pp - arr[0]) * (pp - arr[1]) * (pp - arr[2]))) / arr[i];
                        Console.WriteLine("Высота опущенна на сторону №{0} равняется {1:F4}см", i + 1, output);
                    }
                    type();
                    break;                 
                  }
             goto One;
               
               
            Console.ReadLine();
        }
        public static void type()
        {
            int[] a = new int[6];
            for (int i = 0; i < 6; i++)
            {
                a[i] = Convert.ToInt32(arr[i]);
            }
            if (a[0] == a[1] && a[1] == a[2])
            {
                Console.WriteLine("Треугольник равносторонний");
                return;
            }
            if (a[0] == a[1] || a[1] == a[2] || a[2] == a[0])
            {
                Console.WriteLine("Треугольник равноберенный");
            }
            if (a[0] != a[1] && a[1] != a[2])
            {
                Console.WriteLine("Треугольник разносторонний");
            }    }
        public static double[] arr = new double[6];
        public static void input()
        {
            beg_input:
            for (int i = 1; i < 7; i++)
            {
                if (i < 4)
                {
                    Console.WriteLine("Введите сторону №" + i);
                    arr[i-1] = Convert.ToInt32(Console.ReadLine());                                     
                }
                else
                {
                    Console.WriteLine("Введите угол  №" + i);
                    arr[i-1] = Convert.ToInt32(Console.ReadLine());
                }  }
            
                if (arr[3] + arr[4] + arr[5] != 180)
                {
                    Console.Clear();
                    Console.WriteLine("Сумма углов не равна 180. Повторите ввод");
                    goto beg_input;
                }
                if (((arr[0] + arr[1]) > arr[2]) && ((arr[1] + arr[2]) > arr[0]) && ((arr[0] + arr[2]) > arr[1]))
                {
                    Console.WriteLine("треугольник  существует. можете продолжить.");
                }
                else
                {
                    Console.Clear();
                    Console.WriteLine("треугольник не существует. повторите ввод");
                    goto beg_input;
                }
             Console.Clear();
        }      }  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 18:19     Описать класс "треугольник" (перевести код с C#)
Посмотрите здесь:

Описать класс "Треугольник" - C++
Описать класс &quot;Треугольник&quot;, который определяет эту геометрическую фигуру посредством задания длин трех его сторон. Класс должен содержать...

Класс "Треугольник", хранящий вершины и производящий вычисление длин его сторон - C++
Класс, хранящий вершины треугольника (x1, y1; x2, y2 и x3, y3) и производящий вычисление длин его сторон, а также определяющий...

Класс "Треугольник в двумерном пространстве" - C++
Нужно написать такой класс. Буду очень благодарен. Данные класса: длины сторон треугольника Функции класса: сравнение двух...

Описать класс "множество", позваляющий выполнять основные операции - C++
Описать класс &quot;множество&quot;, позваляющий выполнять основные операции: добавление и удаление элемента, перечисление,обьединение и разность...

Описать класс "вещь", описывающий габариты и вес предмета - C++
Описать класс &quot;вещь&quot;, описывающий габариты и все предмета. Опишите класс &quot;багаж&quot; как совокупность вещей с операциями добавления элемента,...

Описать класс "полином" - Для чего нужен конструктор по умолчанию? - C++
неоюходимо написать класс для работы с полиномами в нете нашел что-то поожее может кто-нибудь объяснить для чего нужен конструктор по...

Класс "Равносторонний треугольник" - C++
Создать класс равносторонний треугольник, член класса – длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о...

Описать класс "множество" вещественных чисел, позволяющий выполнять основные операции - C++
# include &lt;iostream&gt; # include &lt;conio.h&gt; # include &lt;string&gt; # include &lt;stdio.h&gt; #include &lt;cstdlib&gt; const int CHUNK_SIZE=10; ...

Описать класс "Массив" с соответствующими методами - C++
Класс «Массив». Методы: объединение двух массивов, перестроение порядка следования элементов на противоположный, вывод элементов массива на...

Описать класс "студенческая группа" - C++
Описать класс &quot;студенческая группа&quot;. Предусмотреть возможность работы с переменным числом студентов, поиска студента по какому-либо...

Описать класс "двухсторонняя очередь" - C++
Элементы в очереди - одномерные динамические массивы. Если честно, совершенно не понимаю, как это написать, поэтому остановилась на таком...

Описать базовый класс "книга" - C++
Помогите пожалуйста описать базовый класс &quot;книга&quot;. Написать поиск по автору и году выпуска


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Almaz_KG
6 / 6 / 0
Регистрация: 15.05.2012
Сообщений: 105
07.10.2012, 20:40     Описать класс "треугольник" (перевести код с C#) #2
А можно условие - просто разбираться в коде не хочу!
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
07.10.2012, 21:04     Описать класс "треугольник" (перевести код с C#) #3
Цитата Сообщение от Silencest Посмотреть сообщение
так как с++ я напрочь забыла
вспомнить дело 5 минут, давайте условие задачи. Да и где у вас в c# класс треугольник, нигде не нашел Triangle tr = new Triangle(); Может плохо смотрю
Silencest
1 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 21
08.10.2012, 12:04  [ТС]     Описать класс "треугольник" (перевести код с C#) #4
вот условие.)


Создать класс Triangle для представления треугольника. Поля данных должны включать углы и стороны. Требуется реализовать операции: получения и изменения полей данных,вычисления площади, вычисления периметра, вычисления высот,а также определения вида прямоугольника (равносторонний, равнобедренный или прямоугольный).

Добавлено через 5 часов 38 минут
ребят, согласны мне помочь?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
08.10.2012, 12:45     Описать класс "треугольник" (перевести код с C#) #5
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream> 
 
class Triangle 
{ 
private: 
    int angle[3]; 
    int side[3];
    
public: 
    Triangle() { angle[0] = 0; angle[1] = 0; angle[0]; 
                  side[0] = 0; side[1] = 0; side[2]; }
    void enter(); 
    void area(); 
    void perimetr(); 
    void height(); 
    void type(); 
}; 
 
void Triangle :: enter() 
{  
    int i; 
    start:
    for ( i = 0; i < 3; i++) 
    {
        std::cout << "Введите угол " << i + 1 << std::endl; 
        std::cin >> angle[i]; 
    } 
    if( angle[0] + angle[1] + angle[2] != 180) 
    {
        std::cout << "Сумма углов не равна 180 градусам " << std::endl;  
        std::cout << "Повторите ввод углов " << std::endl;  
        goto start;
    } 
 
    start2:
    for ( i = 0; i < 3; i++) 
    { 
        std::cout << "Введите сторону " << i + 1 << std::endl; 
        std::cin >> side[i]; 
    } 
 
    if(side[0] + side[1] > side[2] || side[0] + side[2] > side[1] || side[1]+ side[2] > side[0])   
        std::cout << "Данный треугольник существует " << std::endl;  
    else   
    {
        std::cout << "Треугольник не существует, повторите ввод сторон  "<< std::endl; 
        goto start2; 
    }
} 
 
void Triangle ::area() // считаем по формуле Герона (p(p-a)(p-b)(p-c))^(1/2) 
{ 
    double p = (side[0] + side[1] + side[2]) / 2; // p полупериметр
    std::cout << "Площадь треугольника равна " << sqrt( p * ( p - side[0]) * (p - side[1]) * (p - side[2])); 
    std::cout << std::endl;
} 
 
void Triangle::perimetr() 
{ 
    std::cout << "Периметр треугольник равен " << side[0] + side[1] + side[2] << std::endl;  
} 
 
void::Triangle::height() 
{ 
    double p = ( side[0] + side[1] + side[2]) / 2; 
    std::cout << "Высота треугольника равна  " << 2*(sqrt( p * ( p - side[0]) * (p - side[1]) * (p - side[2]))) / side[0] << std::endl;
} 
 
void :: Triangle::type() 
{ 
    if(angle[0] == angle[1] && angle[1] == angle[2]) 
        std::cout << "Данный треугольник равносторонний " << std::endl; 
    if(angle[0] == angle[1] || angle[1] == angle[2] || angle[0] == angle[2]) 
        std::cout << "Данный треугольник равнобедренный " << std::endl; 
    if(angle[0] != angle[1] && angle[1] != angle[2]) 
        std::cout << "Данный треугольник разносторонний " << std::endl; 
}
 
int main() 
{   
    setlocale(0, "rus"); 
    Triangle tr;
    int number; 
    std::cout << "Введите данные треугольника " << std::endl;
    tr.enter();  
    std::cout << std::endl;
    std::cout << "1 Площадь треугольника " << std::endl;
    std::cout << "2 Периметр треугольника " << std::endl;
    std::cout << "3 Высота треугольника " << std::endl;
    std::cout << "4 Вид треугольника " << std::endl;
    std::cout << "5 Полное описание треугольника " << std::endl; 
    std::cout << "Введите ваш вариант " << std::endl; 
    std::cin >> number; 
 
    switch(number) 
    { 
    case 1: tr.area(); break; 
    case 2: tr.perimetr(); break; 
    case 3: tr.height(); break; 
    case 4: tr.type(); break;  
    case 5: tr.area(); tr.perimetr(); tr.height(); tr.type();break; 
    default: std::cout << "Не коретный ввод данных " << std::endl; break;
    }
    
}
Silencest
1 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 21
08.10.2012, 19:11  [ТС]     Описать класс "треугольник" (перевести код с C#) #6
спасибо огромное) спасли меня от " не зачета" по инфе)))
Yandex
Объявления
08.10.2012, 19:11     Описать класс "треугольник" (перевести код с C#)
Ответ Создать тему
Опции темы

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