Форум программистов, компьютерный форум 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
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413

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

05.03.2010, 09:47. Просмотров 716. Ответов 10
Метки (Все метки)

Помогите привести в рабочее состояние, а то хз че - не компилиться((( Надо создать 3 перегружаемые функции, которые выделяют память в куче и возвращают указатель на созданный массив. Принимать 2 первые должны ТОЛЬКО размер массива, третья еще и формулу. С третьей проблем нет, а вот отличить первые две для компилятора оказалось не под силу, как бы я не пытался. И еще не уверен на счет правильности обращения к элементам массива, потому-что числа вроде получались не такими, какими должны быть. Вобщем вот он - код:
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(int x1, int y1, int x2, int y2, int x3, int 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(float m)
{
    m=(int)m;
    float *s=new float[m];
    for(int i=0;i<m;i++)
    {
        printf("Set mas[%d] element: ", i+1);
        scanf("%d",&(*(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]=%-5d ", *(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((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)");
            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 %10.2f\nEgo to4ki:\nx[1]=%d\ty[1]=%d\nx[2]=%d\ty[2]=%d\nx[3]=%d\ty[3]=%d\n",perMax,xx[0],yy[0],xx[1],yy[1],xx[2],yy[2]);
    delete x;
    delete y;
    getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru