Содержание
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Постановка задания
Задание для всех вариантов звучит так (или, возможно, немного изменено, так как могут быть разные издания учебного пособия):
Для функции из лабораторной работы №1 составить программу построения таблицы значений функции, состоящую из n строк при изменении аргумента от A до B.
В каждой строке таблицы выводить значение аргумента x и соответствующее ему значение функции y в форматированном виде с 4 знаками после запятой. В конце таблицы вывести отдельной строкой среднее арифметическое всех значений функции.
Кроме того, программа должна определить, сколько точек с координатами (x, y) из полученной таблицы попадает внутрь области, ограниченной фигурой, соответствующей индивидуальному заданию.
Варианты заданий (уровень А)
В качестве области выступает прямоугольник со следующими вершинами.
№ | Координаты прямоугольника |
A1 | (-9, -10), (-9, 2), (2, 2), (2, -10) |
A2 | (-6, -7), (-6, 3), (7, 3), (7, -7) |
A3 | (-8, -6), (-8, 4), (6, 4), (6, -6) |
A4 | (-10, -9), (-10, 3), (2, 3), (2, -9) |
A5 | (-7, -8), (-7, 6), (4, 6), (4, -8) |
A6 | (-10, -6), (-10, 7), (0, 7), (0, -6) |
A7 | (-6, -10), (-6, 4), (5, 4), (5, -10) |
A8 | (-9, -10), (-9, 3), (5, 3), (5, -10) |
A9 | (-7, -6), (-7, 5), (3, 5), (3, -6) |
A10 | (-9, -7), (-9, 3), (5, 3), (5, -7) |
A11 | (-10, -7), (-10, 6), (2, 6), (2, -7) |
A12 | (-10, -6), (-10, 4), (0, 4), (0, -6) |
A13 | (-10, -7), (-10, 6), (2, 6), (2, -7) |
A14 | (-9, -9), (-9, 2), (2, 2), (2, -9) |
A15 | (-9, -6), (-9, 8), (3, 8), (3, -6) |
A16 | (-9, -6), (-9, 5), (2, 5), (2, -6) |
A17 | (-6, -10), (-6, 3), (4, 3), (4, -10) |
Варианты заданий (уровень B)



Варианты заданий (уровень С)
Сгенерировать четыре случайные точки на плоскости ($x_1$, $y_1$), ($x_2$, $y_2$), ($x_3$, $y_3$), ($x_4$, $y_4$) с тем условием, что точка ($x_1$, $y_1$) принадлежит первой четверти координатной плоскости, ($x_2$, $y_2$) — второй четверти, ($x_3$, $y_3$) — третьей четверти, ($x_4$, $y_4$) — четвертой четверти. После этого найти количество точек (x, y) из таблицы, принадлежащих полученной области. Сделать это двумя способами — через уравнения прямых и через площади треугольников.
Образец выполнения (задание B9)
Условие задания
Реализация задачи на языке Си
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 | #include <stdio.h> // для консольного вывода #include <math.h> // для математических функций #include <conio.h> // для задержки работы программы #include <locale.h> // для руссификации выводов #define A -5.0 // левая граница табулирования #define B 5.0 // правая граница табулирования #define R 1.0 // радиус единичной окружности // кодируем заданную функцию f(x) в терминах языка Си double F(const double px) { return px * exp(px) + 2 * sin(px) - sqrt(fabs(pow(px, 3) - pow(px, 2))); } // главная функция всей программы (точка входа) int main(void) { double h; // шаг табулирования int n; // количество разбиений отрезка табулирования функции (вводится с клавиатуры) int i; // счетчик цикла (номер итерации) double x; // значение аргумента функции double y; // значение функции f(x) double average = 0; // среднее арифметическое всех значений функции f(x) int count = 0; // кол-во точек с координатами (x, y), попадающих в заданную область // руссификация выводов сообщений на экран setlocale(LC_ALL, "rus"); // запрашиваем количество строк в результирующей таблице printf("Введите количество строк таблицы n (n >= 2): "); scanf("%d", &n); h = (B - A) / (n - 1); // определяем шаг табулирования функции // выводим шапку таблицы printf("\tx\t\tf(x)\n"); printf(" -----------------------------\n"); // начинается процесс табулирования функции f(x) for(i = 0; i < n; i++) { x = A + h * i; // вычисляем значение аргумента функции f(x) y = F(x); // вычисляем значение функции в точке x // выводим на экран значение аргумента и значение функции printf("%12.4lf\t%12.4lf\n", x, y); average += y; // находим сумму всех значений функции, чтобы затем рассчитать их среднее арифметическое // определяем, попадает ли точка с координатами (x, y) в заданную область if((pow(x, 2) + pow(y, 2) <= pow(R, 2)) && !((x < 0) && (y < 0))) count++; } // выводим среднее арифметическое всех значений функции printf("\nСреднее арифметическое всех значений функции: %0.4lf", average/n); // выводим на экран количество точек, попадающих в заданную область printf("\nКоличество точек, попадающих в заданную область: %d", count); getch(); // имитация задержки работы программы, чтобы у пользователя была возможность просмотреть результат return 0; // завершение работы программы и передача управления в ОС } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Добавить комментарий