Форум программистов, компьютерный форум 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); подробнее

Показать сообщение отдельно
kuroiryuu
 Аватар для kuroiryuu
311 / 295 / 23
Регистрация: 05.11.2009
Сообщений: 698
Завершенные тесты: 2
05.03.2010, 17:13     Перегружаемые функции
этот блок работает нормально
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if(mv == 49)
{
    x = crAr((int const)m);//вызываем случайное заполнение
    y = crAr((int const)m);
}
if(mv == 50)
{
    x = crAr((float)m);
    y = crAr((float)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)\n");
        af = _getch(); 
        if(af!=49 && af!=50 && af!=51) //здесь должно быть &&, а не ||
            printf("\nEROOR FUCTION! RETRY!\n");
    }
    while(af!=49 && af!=50 && af!=51); //тоже самое что и с if
    x = crAr(m, af); //вызываем ф-цию от 0 до m и передаем ей 'af'
    y = crAr(m, af);          
}
что касается других функций....

вот правильная функция printArray
C++
1
2
3
4
5
void printArray(float *s, int m)
{
    for(int i=0; i<m; i++) 
        printf("mas[%d]=%5f ",i, *(s+i));
}
далее:
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
float perimetr(int x1, int y1, int x2, int y2, int x3, int y3)
{
        float len1, len2, len3;
        len1 = (float)sqrt(pow((double)(x2-x1),2)+pow((double)(y2-y1),2));
        len2 = (float)sqrt(pow((double)(x2-x3),2)+pow((double)(y2-y3),2));
        len3 = (float)sqrt(pow((double)(x1-x3),2)+pow((double)(x1-x3),2));
        return len1 + len2 + len3;
}
 
float func(float x, int formul)
{
        if(formul==49) return (float)pow(cos(x+0.7),3.);
        if(formul==50) return (float)(atan(x-2)*atan(x+0.5)-0.45);
        if(formul==51) return (float)(0.7*(x-1)*log(x+0.001));
        return 0;
}
 
float* crAr(int const m)
{
    srand(500);// у меня нет borland c++
    float *s=new float[m];
    int scale=100;
    for(int i=0;i<m;i++) 
        *(s+i)= (float)(((rand() * scale) + scale)/(double)scale);
    return s;
}
 
float* crAr(float m)
{
    float *s = new float[(int)m];
    for(int i = 0; i < (int)m; i++)
    {
        printf("Set mas[%d] element: ", i+1);
        scanf_s("%f",&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((float)i, formul);
    return s;
}
а вот этот мистический кусок вообще не представляю что делает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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((int)x[i],(int)y[i],(int)x[j],(int)y[j],(int)x[k],(int)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];
            }
        }
    }
}
Добавлено через 4 минуты
Цитата Сообщение от Iworb Посмотреть сообщение
да с этим вроде уже впорядке все (а с perMax у меня проблем и не было)
а чему тогда он равен, когда проверка начинается?

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