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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Silencest
1 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 21
07.10.2012, 18:19     Описать класс "треугольник" (перевести код с C#) #1
надо переделать прогу с с# на 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();
        }      }  }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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#)
Ответ Создать тему
Опции темы

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