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

Доработать программу

15.12.2017, 15:17. Просмотров 98. Ответов 0
Метки нет (Все метки)

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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include "math.h"
#include "conio.h"
 
#include <locale.h>
 
using namespace std;
 
float f, g, fprom, a, amin, amax, b, bmin, bmax;
int n, i, da, db;
 
float function(float, float, int);  //функция подсчёта функции f (Yi)
float gfunction(float, float, float, float, float, float, int); //функция подсчёта функции g (U)
 
 
int main()
{
    setlocale(LC_ALL, "Rus");
 
    int prov;  //переменная для проверки окончания программы
 
    do {  //цикл do while для перезапуска программы
 
          //просим ввести amin, amax, поточно записываем
        cout << "Введите значения amin, amax\n";
        cin >> amin >> amax;
        //просим ввести da, поточно записываем
        cout << "Введите значения da\n";
        cin >> da;
        //просим ввести bmin, bmax, поточно записываем их
        cout << "Введите значения bmin, bmax\n";
        cin >> bmin >> bmax;
        //просим ввести db, поточно записываем
        cout << "Введите значения db\n";
        cin >> db;
        //просим ввести n, поточно записываем
        cout << "Введите значения n\n";
        cin >> n;
 
        //проверка на количество значений функции
        if ((amin + da*(n - 1) > amax) || (bmin + db*(n - 1) > bmax)) {
            cout << "Количество значений функций превышает допустимое. Программа закончит свою работу" << endl;
            system("pause");
            exit(1); //окончание работы программы
        }
 
        //проверка на интервал (не равно 0)
        if (n == 0) {
            cout << "Интервал не может быть равен 0. Программа закончит свою работу" << endl;
            system("pause");
            exit(1);
        }
 
        //проверка на кол-во шагов хода (не равно 0)
        if ((da == 0) || (db == 0)) {
            cout << "Шаг хода не может быть равен 0. Программа закончит свою работу" << endl;
            system("pause");
            exit(1);
        }
 
        //вывод строки наименовнаий
        cout.width(6);
        cout << "a";
        cout.width(6);
        cout << "b";
        cout.width(6);
        cout << "i";
        cout.width(6);
        cout << "Yi" << endl;
 
        //вычисление и вывод функций и их пременных
        for (a = amin; a <= amax; a = a + da) {
            for (b = bmin; b <= bmax; b = b + db) {
                for (int i = 0; i <= (n - 1); i++) {
 
                    f = function(a, b, i + 1);
 
                    printf("%6.2f %6.2f %6.0i %6.2f\n", a, b, i + 1, f);
 
                    g = gfunction(amin, amax, bmin, bmax, da, db, i + 1);
                }
                cout << "U = " << g << endl;
            }
        }
 
        cout << "Продолжить с новыми данными? Наберите цифру 1 - для ввода новых значений, любую другую для окончания" << endl;
        cin >> prov;
 
    } while (prov == 1);
    system("pause");
 
 
}
 
//функция f(Yi)
float function(float a, float b, int i) {
    float funct;
    if (a <2 * b) {
        funct = pow((2 * a + 3 * i), 2) - pow((3 * a - 2 * i), 2) / sqrt(pow(a, 2) + pow(-1.0, i)*a*i + pow(b, 2) + pow(i, 2));
    }
    else {
        funct = pow((3 * i - 2 * a), 2) + pow((2 * i - 3 * a), 2) / sqrt(pow(a, 2)*pow(i, 2) - 2 * a*b*i + pow(b, 2) + 1);
    }
    return funct;
}
 
//функция g(U)
float gfunction(float amin, float amax, float bmin, float bmax, float da, float db, int n) {
 
    float sum = 0;
    float a = 0;
    float b = 0;
 
    for (int j = 1; j <= n; j++) {
        a = amin + da*(j - 1);
        b = bmin + db*(j - 1);
 
        if (function(a, b, j) <= 1) { //проверка на принадлежность заданным интервалам
            sum = sum + function(a, b, j)*function(a, b, j);
        }
        else {
            sum = sum + (1 / function(a, b, j))*(1 / function(a, b, j));
        }
    }
    system("pause");
    return sum;
 
}
Нужно переделать функцию G под мой вариант (т.к она тут сделана под другой).

Вот сама функция G: Название: GGGGGGGGGGGGGGG.JPG
Просмотров: 7

Размер: 9.9 Кб
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2017, 15:17
Ответы с готовыми решениями:

Доработать программу
Как сюда добавить учет табуляции и переноса строки #include &quot;stdafx.h&quot;...

Доработать программу
Помогите доработать программу-Даны натуральное n, целые числа a1, ..., an....

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

Доработать программу
Найти сумму ряда с точностью е=10^-3 ,общий член которого An = (-1)^n-1/n^n...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2017, 15:17

Доработать программу
Ниже рабочая программа, но надо сделать без использования циклов (кроме уже...

доработать программу
что изменить в коде, чтобы значения вводились не с клавиатуры, а читались из...

как доработать программу?
вообщем программа на С++ там квадрат движется, и когда он доходит до края...


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

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

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