Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Vanko
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 41
#1

Какие математические формулы используются в приведенных программах? - C++

02.06.2015, 22:01. Просмотров 420. Ответов 4
Метки нет (Все метки)

Учусь, студент , написали со знакомым две программы к курсовой, а преподавателдь требует еще и математические формулы . Вот программы может подскажите что нибудь дельное.

Первая программа .

C++ (Qt)
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
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
#include <iomanip.h>
#include <stdio.h>
#include <values.h>
 
int main()
{
    double m [100];
    int ke, i, koe = 0, n_min = 0, min, summa = 0, ykaz = 1;
    randomize();
    while (ykaz > 0)
    {
        cout<<"Укажите действие, которое необходимо сделать с массивом:"<<"\n"<<"1 - Заполнить массив в ручную. "<<endl;
                cout<<"2 - Заполниь массив в автоматическом режиме."<<endl;
        cout<<"3 - Количество отрицательных элементов. "<<endl;
        cout<<"4 - Сумма модулей элементов после минимального по модулю. "<<endl;
    cout<<"5 - Замена отрицательных элементов их квадратами. "<<endl;
    cout<<"6 - Сортировка массива по возрастанию."<<endl;
                cout<<"0 - Выход."<<endl;
                cin>>ykaz;
        switch(ykaz)
        {
            case 1:
                cout <<"Введите размер массива: ";
                cin >> ke;
                cout<<endl;
                for ( i = 0; i < ke; i++)
                {
                    cout << " m [" << i << "] = ";
                    cin >> m [i];
                }
                cout<<"\n======================================================\n";
                break;
            case 2:
                cout<<"Введите размер массива : ";
                cin>>ke;
                for (int i=0; i<ke; i++)
                                  {
                    m[i] = random(100) + 1;
                    cout<<"m["<<i<<"] = "<<m[i]<<endl;
                                   }
        cout<<"\n======================================================\n";
        break;
            case 3:            
 
                for ( i=0; i<ke; i++)
                    if (m[i]<0) 
                        koe++;
                        
                cout<<"Количество отрицательных элементов массива : "<<koe<<".\n";
                cout<<"\n======================================================\n";
                break;
            case 4:
                n_min = 0;
                for ( i=0; i<ke; i++) 
                if (fabs(m[i]) < fabs(m[n_min]))
                    n_min=i;
                if (n_min==ke-1)
                    cout<<"Минимальный по модулю элемент последний.\n";
                else
                {
                    for ( i=(n_min+1); i<ke; i++) 
                    summa+=fabs(m[i]);
                    cout<<"Сумма модулей элементов после минимального по модулю : "<<summa<<".\n";
                }
                cout<<"\n======================================================\n";
                break;
            case 5:
                for (i=0; i<ke; i++)
                    if (m[i]<0) 
                        m[i]=pow(m[i],2);
                    cout<<"Замена отрицательных элементов их квадратами:\n";
                for (i = 0; i < ke; i ++)
                    cout<<m[i]<<" ";
                cout<<"\n======================================================\n";
                break;
            case 6:
                double k;
            for ( i=0; i<(ke-1); i++) 
            {
                for (int j=i+1; j<ke; j++)
                {
                    if (m[i] > m[j])
                    {
                        k=m[i];
                        m[i]=m[j];
                        m[j]=k;
                    }
                }
            }
            cout<<"Отсортированный массив:\n";
            for ( i=0; i<ke; i++)
                cout << m[i] << ' ';
            cout<<"\n======================================================\n";
                break;
            default:
                            ykaz = 0;
                            break;
                }
    }
    return 0;
}
Вторая программа.

C++ (Qt)
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <values.h>
 
int _schet(int **, int, int);       //функция подсчета одинаковых чисел в строках матрицы
int *_sort(int *, int);                 //функция сортировки одномерного массива
int *_revers(int *, int);               //функция реверса массива 
int _otric(int **, int, int);           //функция подсчета отрицатеьных элементов в столбцах матрицы
 
int main()
{
    randomize();// случайный набор чисел                                                            
    int n = 0, m = 0, **mas = 0, i = 0, j = 0, s = 0, a = 0, b = 0, k = 0, *rez = 0, *rez2, zn = 0, *znak = 0;//описание необходимых переменных              
    cout<<"Укажите размерность матрицы(n*m): ";                                                                             
    cin>>n>>m;                                                                                                              
    rez = (int *)malloc(n * sizeof(int));       //                                                                             
        znak = (int *)malloc(m * sizeof(int));    //                                                                              
    mas = (int **)malloc(n * sizeof(int *));      //                                                                          
    for (i = 0; i < n; i ++)                                                          // цикл ввода массива чеез функцию                                      
            mas[i] = (int *)malloc(m * sizeof(int));                                                                        
    cout<<"Укажите способ заполнения(1 - вручную, 2 - автоматически): ";                                                    
    cin>>s;
    if (s == 1)                                                    //выбор 1-ого варианта
    {
        for (i = 0; i < n; i ++)
            for (j = 0; j < m; j ++)
                            cin>>mas[i][j];
    }
    if (s == 2)                                                  //выбор 2-ого варианта
    {
        cout<<"Введите интервал значений(a..b): ";
                cin>>a>>b;
        for (i = 0; i < n; i ++)
            for (j = 0; j < m; j ++)
            {
                while (1)
                {
                    zn = random(2);
                    k = random(b + 1);
                    if (zn == 1)
                        k = -random(b + 1);
                    if (zn == 0)
                                            k = random(b + 1);
                    if ((k >= a) && (k <= b))
                                        {
                        mas[i][j] = k;
                        break;
                    }
                                }
                        }
    }
        
    for (i = 0; i < n; i ++) //Выводим получившуюся матрицу
        {
        for (j = 0; j < m; j ++)
            cout<<mas[i][j]<<"\t";
        cout<<endl;
    }
 
    for (i = 0; i < n; i ++)     //Применяем функцию INT _SCHET(INT **MAS,INT M, INT POS). 
    {                            //Сортируем полученный при помощи функции INT _SCHET(INT **MAS,INT M, INT POS) массив по возрастанию.  
        rez[i] = 0;
        rez[i] = _schet(mas, m, i);
                //cout<<rez[i]<<" ";
    }
    //cout<<endl;
    rez2 = _sort(rez, n);
        cout<<"Задание 1:\n";
    for (i = 0; i < n; i ++)       //Выводим результат выполнения 1 задания.
        {
        for (j = 0; j < m; j ++)
        {
                    cout<<mas[rez2[i]][j]<<"\t";
        }
        cout<<endl;
    }
    cout<<"Задание 2:\n"; //Применяем функцию INT _OTRIC(INT **MAS, INT N, INT POS).
    for (j = 0; j < m; j ++)  //Выводим результат выполнения 2 задания.
    {
            znak[j] = 0;
        znak[j] = _otric(mas, n, j);
        //cout<<znak[j]<<" ";
    }
        cout<<endl;
        i = 0;
    while (1)
    {
        if (znak[i ++] == 0)
        {
            cout<<"Номер первого из столбцов, не содержащего ни одного отрицательного числа - №"<<i<<endl;
            break;
                }
        }
    return 0;
}
 
int _schet(int **mas, int m, int pos)           //в функцию передается матрица, количество столбцов и номер текущей строки для подсчета количества одинаковых чисел
{
    int *rez = 0, i = 0, now = 0, j = 0, max = 0, max_i = 0;
    rez = (int *)malloc(m * sizeof(int));
    for (i = 0; i < m; i ++)
        rez[i] = 0;
    for (i = 0; i < m; i ++)
    {
        now = mas[pos][i];
        for (j = 0; j < m; j ++)
            if (mas[pos][j] == now)
                rez[i] ++;
    }
    for (i = 0; i < m; i ++)
    {
        if (rez[i] > max)
        {
            max = rez[i];
                        max_i = i;
                }
    }
        return rez[max_i];
}
 
int *_sort(int *mas, int n)             //в функцию передается массив mas, который нужно отсортировать и количество элементов в нем
{
    int *rez = 0, *rez2 = 0, i = 0, j = 0, max = -MAXINT, max_i = 0;
    rez = (int *)malloc(n * sizeof(int));
    for (i = 0; i < n; i ++)
    {
        for (j = n - 1; j > -1; j --)
        {
            if (mas[j] > max)
            {
                max = mas[j];
                                max_i = j;
                        }
        }
                max = -MAXINT;
        mas[max_i] = -MAXINT;
                rez[i] = max_i;
    }
        rez2 = _revers(rez, n);
        return rez2;
}
 
int *_revers(int *mas, int n)                           //в функцию передается массив mas, который нужно "развернуть" и количество элементов в нем
{
    int *rez = 0, i = 0;
    rez = (int *)malloc(n * sizeof(int));
    for (i = 0; i < n; i ++)
        rez[i] = mas[n - i - 1];
    return rez;
}
 
int _otric(int **mas, int n, int pos)                   //в функцию передается матрица, количество строк и номер столбца, в котоом необходимо поститать количество отрацительных элементов
{
    int i = 0, sum_otric = 0;
    for (i = 0; i < n; i ++)
        if (mas[i][pos] < 0)
            sum_otric ++;
    return sum_otric;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2015, 22:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Какие математические формулы используются в приведенных программах? (C++):

Какие из приведенных конструкций являются выражениями?
Определите, какие из приведенных ниже конструкций являются выражениями. 1) x...

Записать математические формулы
Пожалуйста П.5.18.Правил Запрещено размещать задания и решения в виде...

Записать математические формулы
Полный код в С++ если знаете паскаль то в паскале тож.. спс

Как математические формулы записать
Первую формулу записал,а дальше не пойму. // zadanie_3.cpp: определяет точку...

Как запрограммировать математические многочлены, формулы?
Каким образом запрограммировать математические вычисления вида: (a1+a2+… +...

Зафиксировать какие символы используются в строке
Многоуважаемые форумчане с большими и чистыми сердцами, как вывести в...

4
Kapex
15 / 15 / 4
Регистрация: 11.11.2014
Сообщений: 122
02.06.2015, 23:01 #2
Математические формулы чего, простите?
0
Supernatural
604 / 203 / 47
Регистрация: 22.11.2010
Сообщений: 1,587
Записей в блоге: 1
02.06.2015, 23:08 #3
Vanko, открываете список функций из math.h и начинаете фантазировать с элементами матриц. Вообще всякое можно напридумывать.
0
Vanko
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 41
03.06.2015, 01:25  [ТС] #4
Формулы по которым написана программа, т.е. какие математические операции применялись в ней
0
Kapex
15 / 15 / 4
Регистрация: 11.11.2014
Сообщений: 122
03.06.2015, 07:58 #5
Vanko, закомментируйте math.h и скомпилируйте программу. Везде, где заругается с отсылки на этот заголовочный файлфайл, будет ваш ответ. А там гуглите, что эти функции делают
0
03.06.2015, 07:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2015, 07:58
Привет! Вот еще темы с решениями:

Какие модули (библиотеки) используются программами ОС Windows
Интересует каким способом делаются различные визуальные эффекты, например, как...

Какие паттерны используются в программе и для чего?
Помогите, пожалуйста, разобраться. Определите какие паттерны в программе. для...

Какие параметры используются для контроля формата строк?
Всем привет. Например я использую функцию sprintf_s и в ней есть 3-й...

Какие математические библиотеки вы используете?
Товарищи, а какие матлибы вы используете? (если используете). Особенно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru