1. Главная
  2. Библиотека
  3. Программирование
  4. Проанализируй два кода: 1. #include #include #include namespace...
Разбор задачи

Проанализируй два кода: 1. #include #include #include namespace std; main() { setlocale(LC_ALL, "Russian"); cout

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
Проанализируй два кода: 1. #include #include #include namespace std; main() { setlocale(LC_ALL, "Russian"); cout

Условие:

Проанализируй два кода: 1. #include <iostream>
#include <iomanip>
#include <cmath> \nusing namespace std;\nint main()
{
setlocale(LC_ALL, "Russian");
cout << "Лабораторная работа №1. Задание №1." << endl;
cout << "Вычислить значение выражения: N = 3/((sin(13*ln((cos^2)*(13*p)))/(((x+y)^6)+2))" << endl;
cout << "Введите исходные данные: " << endl;
float p, x, y;
cout << "p = "; cin >> p;
cout << "x = "; cin >> x;
cout << "y = "; cin >> y;
float N;
N = 3 / ((sin(13 * log((pow(cos(p), 2) * (13 * p))))) / (pow((x + y), 6) + 2));
cout << setw(50) << right << "N = " << scientific << setprecision(4) << N << endl;
system("pause");
return 0;
}. и код для того же примера на c#: private void button1_Click(object sender, EventArgs e)
{
double x, y, p;
x = Convert.ToDouble(textBox1.Text);
y = Convert.ToDouble(textBox2.Text);
p = Convert.ToDouble(textBox3.Text);

double N;
N = 3 / ( Math.Sin(13 * Math.Log(Math.Pow(Math.Cos(13 * p), 2))) / (Math.Pow(x + y, 6) + 2 ) );

label4.Text = "N=" + String.Format("{0:E4}", N);
}. оба кода работают, но выводят разный ответ. В чем проблема?

Решение:

Шаг 1. Анализ заданной математической формулы

Необходимо вычислить выражение вида:
  N = 3 / ( sin(13 * ln( … )) / ((x + y)^6 + 2) )
При этом внутри логарифма должна быть расчетная часть, зависящая от косинуса и p.

Шаг 2. Анализ кода на C++

В коде на C++ выражение записано так:
  N = 3 / (( sin(13 * log( (pow(cos(p), 2) * (13 * p)) )) ) / ( pow(x+y, 6) + 2 ));
То есть, сначала вычисляется cos(p), затем его квадрат: pow(cos(p), 2)
После этого результат умножается на (13 * p). От логарифма берется log( pow(cos(p),2) *...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

В чем основная причина различия результатов вычислений между C++ и C# кодами, учитывая, что оба кода используют схожую математическую формулу?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет