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

Переменные при использовании шаблонов. Оператор return - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Void http://www.cyberforum.ru/cpp-beginners/thread633124.html
Всем привет, форумчане такой к вам вопрос, как передать параметры в такую функцию: int main(void){ ... } И можно ли поменять main например на funk1(void), но void должен присутствовать обязательно.
C++ Консоль и C++ Допустим у меня есть выражение, значение которого я хочу подсчитать. Я ввожу это выражение, затем ввожу знак равенства нажимаю клавишу Enter и программа выводит значение этого выражения. Все бы хорошо (вообще дело не в вычислениях), но проблема в том, что результат выводится на новой строке, а хотелось бы, чтобы после знака равенства. Это вообще возможно? P.S. Просьба ответить знатоков,... http://www.cyberforum.ru/cpp-beginners/thread633116.html
C++ GDI+ не рисует bitmap из ресурсов
Проблема решена. Здравствуйте! Проблема такая, что по каким-то причинам не происходит отрисовка картинки. Bitmap* bitmap = Bitmap::FromFile(L"picture.bmp"); // работает Bitmap* bitmap = Bitmap::FromResource((HINSTANCE)1, MAKEINTRESOURCEW(IDB_BITMAP1)); // не работает graphics.DrawImage(bitmap, 0, 0); // отрисовка P.S. проблема решена GetModuleHandle(NULL);
C++ Шифрация битов
пyтём смeны мeстaми 0-гo и 1-гo битoв, 2-гo и 3-гo, … , 30-гo и 31-гo битoв. Фyнкция дoлжнa принимaть в кaчeствe пaрaмeтрa пeрeмeннyю типa unsigned int и вoзврaщaть в кaчeствe рeзyльтaтa «зaшифрoвaннoe» числo тoгo же типa. помогите решить вот такую задачу. пробывал писать коды с if не получалось. в цикле тоже не работало. каким образом её можно решить?
C++ Выход на биты в поразрядных операторах http://www.cyberforum.ru/cpp-beginners/thread633033.html
Здравствуйте. Обьясните пожалуйста есть код: #include <iostream.h> #include <conio.h> #pragma argsused void Bits(unsigned); int main() {unsigned x;
C++ Предоставить пользователю возможность выбрать цвет фона и текста в консоле Помогите пожалуйста написать программу, которая бы предоставляла пользователю возможность выбрать цвет фона и текста консоли, с помощью операторов: switch и system ("color"). подробнее

Показать сообщение отдельно
Maithil
0 / 0 / 0
Регистрация: 01.07.2013
Сообщений: 3
09.07.2013, 22:58     Переменные при использовании шаблонов. Оператор return
Тоже прохожу эту тему. Вот что у меня получилось:

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
112
113
//Написать перегруженные шаблоны функций для нахождения корней линейного (a*x + b = 0) и квадратного (a*x2+b*x + c = 0) уравнений. Замечание: в функции передаются коэффициенты уравнений.
 
#include <iostream>
#include<math.h>
using namespace std;
 
double a,b,c,D,x,x1,x2;
 
template <typename T> T funk(T a,T b);
template <typename T> T funk(T a,T b,T c);
 
void main()
{
    setlocale(LC_ALL,"");
 
    int vibor;
    
    cout<<"a*x + b = 0 - линейное ур-ние.\n";
    cout<<"a*x^2+b*x + c = 0 - квадратное ур-ние.\n\n";
 
    do
    {
        cout<<"Линейное или квадратное ур-ние? (1 или 2): ";
        cin>>vibor;
 
        if (vibor==1)
        {
            cout<<"Введите параметры значения a и b:\n";
            cin>>a>>b;
            cout<<endl;
            cout<<"a = "<<a<<endl;
            cout<<"b = "<<b<<endl;
 
            x=funk(a,b);
 
            if (x==100500||x==500100)
            {
                if (x==100500)
                {
                    cout<<"Уравнение имеет бесконечное множество решений."<<endl<<endl;
                }
                if (x==500100)
                {
                    cout<<"Уравнение не имеет решений."<<endl<<endl;
                }
            }
            if (x!=100500&&x!=500100)
            {
                cout<<"Решение линейного уравнения: a*x + b: "<<x<<endl<<endl;
            }
        }
        if (vibor==2)
        {
            cout<<"Введите параметры значения a, b и c:\n";
            cin>>a>>b>>c;
            cout<<endl;
            cout<<"a = "<<a<<endl;
            cout<<"b = "<<b<<endl;
            cout<<"c = "<<c<<endl<<endl;
 
            D=funk(a,b,c);
 
            if (D==0)
            {
                x=(-b)/2*a;
                cout<<"Решение квадратного уравнения: a*x^2+b*x + c = 0: "<<x<<endl<<endl;
            }
 
            if (D>0)
            {
                x1=(-b+(sqrt(D)))/2*a;
                x2=(-b-(sqrt(D)))/(2*a);
                cout<<"Уравнение a*x^2+b*x + c = 0 имеет два корня.\n";
                cout<<"Первый корень: "<<x1<<endl;
                cout<<"Второй корень: "<<x2<<endl<<endl;
            }
 
            if (D<0)
            {
                cout<<"Уравнение a*x^2+b*x + c = 0 вещественных корней не имеет.\n\n";
            }
        }
    }
    while(vibor==1&&vibor==2);
    if (vibor!=1&&vibor!=2)
    {
        cout<<"\nНеверное значение! До свидания!\n\n";
    }
}
 
template <typename T> T funk(T a,T b)
{
    x = -(b/a);
    if (b==0&&a!=0)
    {
        x=0;
    }
    if(a==0&&b==0)
    {
        x=100500;
    }
    if (a==0&&b!=0)
    {
        x=500100;
    }
 
    return x;
}
 
template <typename T> T funk(T a,T b,T c)
{
    return pow(b,2)-4*a*c;
}
Вышло как-то все громоздко. Есть ли варианты сократить код?
 
Текущее время: 18:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru