Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Умоляю помогите с программированием C++

составьте пожалуйста программу вычисления переменной X от х1 до х2 и Y от y1 до y2 используя вложенную циклическую структуру, где X – переменная внешнего цикла, Y – переменная внутреннего цикла 4cos(xy)+(5x-2y)^-1 ( ^-1 это в -1 степени)

По дате
По рейтингу
Аватар пользователя
Новичок

Мало знать начальное и конечное значение переменной, нужно ещё знать с каким шагом она изменяется. То есть, знать количество точек измерения, которые позволят вычислить такой шаг. Например, задавать их с клавиатуры:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
 #include <cmath> 
#include <iomanip> 
#include <iostream>

using namespace std;

double argument(const char* prompt) { 
    cout << prompt; 
    double value; 
    cin >> value; 
    cin.ignore(0x1000, '\n'); 
    return value; 
}

size_t count(const char* prompt) { 
    size_t value = 0; 
    while (value < 2) { 
        cout << prompt; 
        cin >> value; 
        cin.ignore(0x1000, '\n'); 
    } 
    return value; 
}

int main() { 
    auto x1 = argument("x1: "); 
    double x2; 
    do x2 = argument("x2: "); while (x2 <= x1); 
    size_t nx = count("nx: "); 
    auto dx = (x2 - x1) / (nx - 1); 
    auto ex = x2 + dx / nx; 
    auto y1 = argument("y1: "); 
    double y2; 
    do y2 = argument("y2: "); while (y2 <= y1); 
    size_t ny = count("ny: "); 
    auto dy = (y2 - y1) / (ny - 1); 
    auto ey = y2 + dy / ny; 
    cout.setf(ios::fixed); 
    cout << '\n' << setw(4) << "x" << setw(12) << "y" << setw(22) << "F(x,y)\n\n";
    for (auto x = x1; x < ex; x += dx) { 
        for (auto y = y1; y < ey; y += dy) { 
            auto pa = 5.0 * x - 2.0 * y; 
            cout << setw(7) << setprecision(4) << x 
                 << setw(12) << setprecision(4) << y; 
            if (fabs(pa) < 1e-12) cout << setw(16) << "-\n"; 
            else { 
                auto fxy = 4.0 * cos(x * y) + pow(pa, -1); 
                cout << setw(22) << setprecision(14) << fxy << '\n'; 
            } 
        } 
    } 
} 
Аватар пользователя
Ученик

(Это не точно)

#include <iostream>
#include <cmath>

int main() {
double x1 = 0, x2 = 10, y1 = 0, y2 = 5;

for (double x = x1; x <= x2; x++) {
for (double y = y1; y <= y2; y++) {
double res = 4 * cos(x * y) + pow(5 * x - 2 * y, -1);
std::cout << "x = " << x << ", y = " << y << ": " << res << std::endl;
}
}

return 0;
}
Эта программа вычисляет значение выражения 4cos(xy)+(5x−2y)−1 для всех x от x1 до x2 и всех y от y1 до y2. Выражение pow(a, b) возвращает a в степени b.