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

Перегружаемые функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Метод Гаусса!!! http://www.cyberforum.ru/cpp-beginners/thread101569.html
Всем привет! )) У меня вот такая проблемка! Нужно решить СЛАУ методом Гаусса с выбором главного элемента по столбцу!! Теоретически знаю, а практически не понимаю как записывать!!! (((( Помогите пожалуйста!!! ))) Добавлено через 56 минут Помогите, пожалуйста!! :help:
C++ Как определить целое число или нет Можно как то определить какое число записано в переменной? скажем есть переменная double X; можно как то программно определить целое число там записано или у него есть знаки после запятой? http://www.cyberforum.ru/cpp-beginners/thread101564.html
C++ Массивы
Покажите на примере как упорядочить массив по возврастанию, без сортировки. Очень нужно, срочно! В С++
C++ Ряд вопросов?
Покажите плз как работать вот с этими(skipws,endl,ws) манипулятоми простым кодом ато чот не получается у меня. И еще манипулятор endl выводит символ новой строки и очищает поток как он очищает поток я не понял никаких изменений при выводе не увидел ток работает как символ новой строки. Обьясните плз.
C++ настройка компилятора http://www.cyberforum.ru/cpp-beginners/thread101526.html
ребят как настроить компилятор чтобы работать с графикой ? вроде бы нужно чтото прописать в derectories ... помогите плиз (компилятор turbo c++)
C++ Определить силу притяжения F между телами массы m1 и m2 , находящимися на расстоянии r друг от друга проверте программу Текст задачи:Определить силу притяжения F между телами массы m1 и m2 , находящимися на расстоянии r друг от друга. #include <stdfx.h> #include <iostream> #include <math.h> int main( ) { double m1,m2,r,F; double const G=6.61*pow(10,-11); подробнее

Показать сообщение отдельно
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
05.03.2010, 16:53  [ТС]     Перегружаемые функции
вот правильней
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
114
115
116
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
 
float perimetr(float x1, float y1, float x2, float y2, float x3, float y3)
{
    float len1, len2, len3;
    len1=sqrt(pow(x2-x1,2.)+pow(y2-y1,2.));
    len2=sqrt(pow(x2-x3,2.)+pow(y2-y3,2.));
    len3=sqrt(pow(x1-x3,2.)+pow(x1-x3,2.));
    return len1+len2+len3;
}
 
float func(float x, int formul)
{
    if(formul==49) return pow(cos(x+0.7),3.);
    if(formul==50) return atan(x-2)*atan(x+0.5)-0.45;
    if(formul==51) return 0.7*(x-1)*log(x+0.001);
    return 0;
}
 
float *crAr(int const m)
{
    float *s=new float[m];
    int scale=100;
    for(int i=0;i<m;i++) *(s+i)=((random(500)*scale)+scale)/(double)scale;
    return s;
}
 
float *crAr(unsigned m)
{
    float *s=new float[m];
    for(int i=0;i<m;i++)
    {
        printf("Set mas[%d] element: ", i+1);
        scanf("%10.2f",&*(s+i));
    }
    return s;
}
 
float *crAr(int const m, int formul)
{
    float *s=new float[m];
    for(int i=0;i<m;i++) *(s+i)=func(i,formul);
    return s;
}
 
void printArray(float *s, int m)
{
    for(int i=0; i<m; i++) printf("mas[%d]=%-10.2f\t",i+1, *(s+i));
}
 
void main()
{
    int mv, pf, m, da, db, af; //mv - метод ввода; af - выбор функции; m - длинна массива; *s - указатель на массив; da, db - диапазон от a до b
    float *x,*y,xx[3],yy[3];
    float per, perMax;
    clrscr();
    randomize();
    printf("Dlinna massiva:");
    scanf("%d", &m);
    printf("Vyberite metod vvoda:\n\n");
    printf("1 - zapolnenie slu4ainymi 4islami\n2 - vvod s klaviatury\n3 - vy4islit` po formule\n");
    mv=getch();
    if(mv==49)
    {
        x=crAr((int const)m);//вызываем случайное заполнение
        y=crAr((int const)m);
    }
    if(mv==50)
    {
        x=crAr((unsigned)m);
        y=crAr((unsigned)m); //вызываем ввод с клавиатуры
    }
    if(mv==51)
    {
        do
        {
            printf("\nChoose a function:\n1) (cos(x+0.7))^3+1\n2) arctg(x-2)*arctg(x+0.5)-0.45\n3) 0.7(x-1)*ln(x+0.001)");
            af=getch(); 
            if(af!=49||af!=50||af!=51) printf("\nEROOR FUCTION! RETRY!\n");
        }
        while((af!=49)||(af!=50)||(af!=51));
        x=crAr(m,af); //вызываем ф-цию от 0 до m и передаем ей 'af'
        y=crAr(m,af);       
    }
    printArray(x,m);
    printArray(y,m);
    printf("\n");
    for(int i=0;i<m-2;i++)
    {
        for(int j=i+1;j<m-1;j++)
        {
            for(int k=j+1;k<m;k++)
            {
                per=perimetr(x[i],y[i],x[j],y[j],x[k],y[k]);
                if(per>perMax)
                {
                    perMax=per;
                    xx[0]=x[i];
                    xx[1]=x[j];
                    xx[2]=x[k];
                    yy[0]=y[i];
                    yy[1]=y[j];
                    yy[2]=y[k];
                }
            }
        }
    }
    printf("\nSamyi bol`shoi treugol`nik imeet perimet %8.2f\nEgo to4ki:\nx[1]=%8.2f\ty[1]=%8.2f\nx[2]=%8.2f\ty[2]=%8.2f\nx[3]=%8.2f\ty[3]=%8.2f\n",perMax,xx[0],yy[0],xx[1],yy[1],xx[2],yy[2]);
    delete x;
    delete y;
    getch();
}
Добавлено через 1 минуту
Цитата Сообщение от kuroiryuu Посмотреть сообщение
а переменную perMax чем инициализируете?
советую пройтись по варнингам, и довести их число до 0
да с этим вроде уже впорядке все (а с perMax у меня проблем и не было)
нужно подравнять ввод с клавиатуры и по формуле, а то он крутит цикл do while (при выборе формулы), хотя он должен из него выходить...
 
Текущее время: 20:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru