Вычислить все значения функции в интервале от -5 до 5 с шагом 0.1 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! При выполнении первой лабораторной работы по Си возник вопрос по присвоению функции переменной. Дана программа: "Вычислить все значения функции в интервале от -5 до 5 с шагом 0.1". Программу я написал, вот она:

Работающая программа:

#include <math.h>
#include <stdio.h>
#define A -5
#define B 5
#define H 0.1
 
int main(void)
{
double x = A;
while (x <= B)
{
double y=x * exp(x) + 2 * sin(x) - sqrt(fabs(pow(x, 3) - pow(x, 2)));
printf("x = %.1f | y = %.4f\n", x, y);
x += H;
}
return 0;
}

И проблема: Почему если строку double y=x * exp(x) + 2 * sin(x) - sqrt(fabs(pow(x, 3) - pow(x, 2))); переместить в начало программы, где объявлена переменная x, то программа выводит повторяющееся число в значениях функции?

:

Программа после перемещения строки в начало:

int main(void)
{
double x = A;
double y=x * exp(x) + 2 * sin(x) - sqrt(fabs(pow(x, 3) - pow(x, 2)));
while (x <= B)
{
printf("x = %.1f | y = %.4f\n", x, y);
x += H;
}
return 0;
}

Отрывок из результата работы программы:

x = -5.0 | y = -10.3633
x = -4.9 | y = -10.3633
x = -4.8 | y = -10.3633
x = -4.7 | y = -10.3633
x = -4.6 | y = -10.3633
x = -4.5 | y = -10.3633

Если же данная строка находится внутри цикла "while" - программа работает нормально:

Результат работы программы:

x = -5.0 | y = -10.3633
x = -4.9 | y = -9.9736
x = -4.8 | y = -9.6071
x = -4.7 | y = -9.2640
x = -4.6 | y = -8.9444
Заранее спасибо за ответ! Пожалуйста, помогите разобраться.

Решение задачи: «Вычислить все значения функции в интервале от -5 до 5 с шагом 0.1»

textual
Листинг программы
#include <math.h>
#include <stdio.h>
 
#define A -5
#define B 5
#define H 0.1
 
int main(void)
{
  double x = A;
  double y;
 
  while (x <= B)
  {
      y=x * exp(x) + 2 * sin(x) - sqrt(fabs(pow(x, 3) - pow(x, 2)));
      printf("x = %.1f | y = %.4f\n", x, y);
      x += H;
  }
  return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: math.h и printf.h
  2. Определение границ интервала: A = -5, B = 5, H = 0.1
  3. Объявление переменных: x = A, y = ?
  4. Цикл while: выполнение до тех пор, пока x <= B
  5. Внутри цикла вычисление значения y по формуле: y = x exp(x) + 2 sin(x) - sqrt(fabs(pow(x, 3) - pow(x, 2)))
  6. Вывод значения x и y с шагом 0.1
  7. Увеличение значения x на H после каждой итерации цикла
  8. Возврат 0 в конце программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы