Лабораторная работа 3 Программирование
.doc
Задание. Сформировать двумерный статический массив значений вещественного типа, соответствующий таблице значений функции на заданном интервале [a,b] с заданным шагом дискретизации Δx. По сформированным данным найти наибольше и наименьшее значение функции y=f(x) на заданном интервале.
Псевдокод:
Код:
/*******************************************************************************/
/* Функция: Формирование двухмерного массива, нахождение максимального и */
/* минимального значения функции (dx,min_y,max_y,Arr[2][6]: float) */
/* (i: int) */
/* Цель: Сформировать двумерный статический массив значений */
/* вещественного типа, соответствующий таблице значений функции на заданном */
/* интервале [a,b] с заданным шагом дискретизации Δx. По сформированным */
/* данным найти наибольше и наименьшее значение функции y=f(x) на заданном */
/* интервале. */
/* Исходные данные: */
/* dx - Шаг изменения х */
/* min_y - Минимальное Y */
/* max_y - Максимальное Y */
/* i - счетчик в цикле */
/* Arr[2][6] - Двумерный массив */
/* Результат: Вывод значений Y */
/* Вывод минимального и максимального Y */
/* Вызываемые модули: нет */
/* Описание алгоритма: */
/* Объявление переменных, получение от пользователя входных */
/* данных, первоначальные вычисления, цикл с основными */
/* вычислениями */
/* Дата: 2017 / 10 / 25 Версия 16.01 */
/* Автор: Анисмова Е.С. */
/* Исправил: нет */
/*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
char logo[] =
"*********************************************************************\n"
"* *** *** *** ***** *\n"
"* * * * * * Nizhniy Novgorid Technical University *\n"
"* * *** * * Study work number 3. Task number 1. *\n"
"* *** * * *** * Performed student 17-IVT-3 Anisimova E.S *\n"
"* *\n"
"*********************************************************************\n";
int i;
float dx=0.1, min_y, max_y, Arr[2][6];
printf("%s", logo);
printf("Y=(2x-1)/(x-1)^2\n");
Arr[0][0] = -0.5;
for(i=1;i<=5;i++){
Arr[0][i] = Arr[0][i - 1] + dx; /*Задаем значение переменной х*/
}
Arr[1][0] = (2 * Arr[0][0] - 1) / pow((Arr[0][0] - 1), 2);
max_y = Arr[1][0];
min_y = Arr[1][0];
for (i = 1; i <= 5; i++) {
Arr[1][i] = (2 * Arr[0][i] - 1) / pow((Arr[0][i] - 1), 2); /*Вычисление значений Y*/
if (max_y < Arr[1][i])
max_y = Arr[1][i];
if (min_y > Arr[1][i])
min_y = Arr[1][i];
}
for (i = 0; i <= 5; i++) {
printf("Если x = %f Тогда Y = %f\n", Arr[0][i], Arr[1][i]);
}
printf("Минимальное Y = %f\n", min_y);
printf("Максимальное Y = %f", max_y);
return 0;
}
Блок-схема: