Добавил:
vk.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
17.11.2024
Размер:
1.82 Mб
Скачать
  1. Блок-схема (1 do while) 1) Вспомогательная блок-схема для пользовательской функции fU(x,y) для вычисления U(x,y): 2) Основная блок-схема:

  2. Листинг программы на С++ (1 do while) #include “stdafx.h” #include <math.h> #include <iostream> #include <conio.h> using namespace std; double fU(double x, double y) { double a, U; a = x - y; if (a <= -1) U = y * exp(x); else { if (a < 1) U = log(pow(x,4) + 1); else U = pow(x,2) – y; } return U; } void main() { double x, xn, xk, hx, y; setlocale(LC_ALL, “Russian”); printf(“Введите xn, xk, hx, y: \n”); cin >> xn >> xk >> hx >> y; printf("\n Исходные данные: \n\n xn = %5.3f xk = %5.3f hx = %5.3f y = %5.3f \n", xn, xk, hx, y); printf("\n Таблица результатов: \n\n x y U \n"); x = xn; do { U = fU(x,y); printf("\n %8.3f %8.3f %8.3f ", x, y, U); x = x + hx; } while (x <= xk + hx / 10.0); getchar(); }

  3. Р езультаты программы на C++ (1 do while)

  4. П рограмма в Excel (1)

  5. Постановка задачи (2) Составить блок-схему и программу для вычисления таблицы значений функции U(x,y) для всех сочетаний x и y, каждый из которых меняется в своём заданном интервале со своим заданным шагом. Расчёт функции U(x,y) производить в главной функции (без использования пользовательской функции), для вывода таблицы в С++ использовать функцию setw(). -1 ≤ x ≤ 1 с шагом hx = 0.6 и -1 ≤ y ≤ 1 с шагом hy = 0.5

    x ≤ xk

    x = xn

    «Таблица результатов: x y U»

    «Исходные данные:» xn = xk = hx = yn = yk = hy =

    Ввод xn, xk, hx, yn, yk, hy

    «Введите xn, xk, hx, yn, yk, hy :»

    Описание переменных xn, xk, hx, yn, yk, hy

    Начало

    y = yn

    y ≤ xk

    a = x - y

    a ≤ -1

    a < 1

    x y U

    y = y + hy

    x = x + hx

    Конец

  6. Блок-схема (2 for/while)

  7. Листинг программы на C++ (2 while) #include “stdafx.h” #include <math.h> #include <iostream> #include <conio.h> #include <iomanip> using namespace std; void main() { double x, xn, xk, hx, y, yn, yk, hy, a, U; setlocale(LC_ALL, “Russian”); cout << “ Введите xn, xk, hx: \n”); cin >> xn >> xk >> hx; cout << “ Введите yn, yk, hy: \n”); cin >> yn >> yk >> hy; cout << "\n Исходные данные: \n" << endl; cout << " xn = " << xn << " xk = " << xk << " hx = " << hx << endl; cout << "\n yn = " << yn << " yk = " << yk << " hy = " << hy << endl; cout << "\n Таблица результатов: \n" << endl; cout << setw(12) << "x" << setw(12) << "y" << setw(12) << "U" << endl; x = xn; while (x <= xk + hx/10.0) { y = yn; while (y <= yk + hy/10.0) { a = x – y; if (a <= -1) U = y * exp(x); else { if (a < 1) U = log(pow(x,4) + 1); else U = pow(x,2) – y; } cout << setw(12) << x << setw(12) << y << setw(12) << U << endl; y = y + hy; } x = x + hx; } getchar(); }

  8. Результаты программы на С++ (2 while)

  9. Листинг программы на С++ (2 for) #include “stdafx.h” #include <math.h> #include <iostream> #include <conio.h> #include <iomanip> using namespace std; void main() { double x, xn, xk, hx, y, yn, yk, hy, a, U; setlocale(LC_ALL, “Russian”); cout << “ Введите xn, xk, hx: \n”); cin >> xn >> xk >> hx; cout << “ Введите yn, yk, hy: \n”); cin >> yn >> yk >> hy; cout << "\n Исходные данные: \n" << endl; cout << " xn = " << xn << " xk = " << xk << " hx = " << hx << endl; cout << "\n yn = " << yn << " yk = " << yk << " hy = " << hy << endl; cout << "\n Таблица результатов: \n" << endl; cout << setw(12) << "x" << setw(12) << "y" << setw(12) << "U" << endl; for (x = xn; x <= xk + hx/10.0; x = x + hx) { for (y = yn; y <= yk + hy/10.0; y = y + hy) { a = x – y; if (a <= -1) U = y * exp(x); else { if (a < 1) U = log(pow(x,4) + 1); else U = pow(x,2) – y; } cout << setw(12) << x << setw(12) << y << setw(12) << U << endl; } } getchar(); }

  10. Результаты программы на С++ (2 for)

  11. Программа в Mathcad (2 while)

  12. Программа в Mathcad (2 for)

    a < 1

    a ≤ -1

    a = x - y

    y = yn

    Начало

    Описание переменных xn, xk, hx, yn, yk, hy

    «Введите xn, xk, hx, yn, yk, hy :»

    Ввод xn, xk, hx, yn, yk, hy

    «Исходные данные:» xn = xk = hx = yn = yk = hy =

    «Таблица результатов: x y U»

    x = xn

    x y U

    y = y + hy

    y ≤ yk

    x = x + hx

    x ≤ xk

    Конец

  13. Блок-схема (2 do while)

  14. Листинг программы на С++ (2 do while) #include “stdafx.h” #include <math.h> #include <iostream> #include <conio.h> #include <iomanip> using namespace std; void main() { double x, xn, xk, hx, y, yn, yk, hy, a, U; setlocale(LC_ALL, “Russian”); cout << “ Введите xn, xk, hx: \n”); cin >> xn >> xk >> hx; cout << “ Введите yn, yk, hy: \n”); cin >> yn >> yk >> hy; cout << "\n Исходные данные: \n" << endl; cout << " xn = " << xn << " xk = " << xk << " hx = " << hx << endl; cout << "\n yn = " << yn << " yk = " << yk << " hy = " << hy << endl; cout << "\n Таблица результатов: \n" << endl; cout << setw(12) << "x" << setw(12) << "y" << setw(12) << "U" << endl; x = xn; do { y = yn; do { a = x – y; if (a <= -1) U = y * exp(x); else { if (a < 1) U = log(pow(x,4) + 1); else U = pow(x,2) – y; } cout << setw(12) << x << setw(12) << y << setw(12) << U << endl; y = y + hy; } while (y <= yk + hy/10.0); x = x + hx; } while (x <= xk + hx/10.0); getchar(); }

  15. Результаты программы на С++ (2 do while)

  16. П рограмма в Excel (2)

  17. Постановка задачи (3) а) Вычислить и распечатать таблицу всех значений функции U(x,y) с координатами расчётных точек. б) Найти минимум среди всех положительных значений функции U и координаты точек в которой он достигается. в) Найти количество расчётных точек, попадающих в область: Для вывода таблицы в С++ использовать функцию printf(). -1 ≤ x ≤ 1 с шагом hx = 0.6 и -1 ≤ y ≤ 1 с шагом hy = 0.5

    a ≤ -1

    a = x - y

    Описание переменных a, u

    Вход в fU(X,y)

    a ≤ -1

    Return U

    Начало

    Описание переменных x, xn, xk, hx, y, yn, yk, hy, a, U, mp, mpx, mpy, k

    k = 0 mp = mpx = 0 mpy = 0

    «Введите xn, xk, hx, yn, yk, hy :»

    x = xn

    «Таблица результатов: x y U»

    «Исходные данные:» xn = xk = hx = yn = yk = hy =

    Ввод xn, xk, hx, yn, yk, hy

    x ≤ xk

  18. Блок-схема (3) 1) Вспомогательная блок-схема для пользовательской функции fU(x,y) для вычисления U(x,y): 2) Основная блок-схема:

y = yn

U = fU(x,y)

x y U

y ≤ yk

k = k + 1

mp = U mpx = x mpy = y

y = y + hy

x = x + hx

«МПЗ и его координаты: » mp, mpx, mpy «Кол-во точек, попавших в область: » k

Конец

Соседние файлы в папке 3 ЛР