С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
45 / 45 / 4
Регистрация: 21.03.2013
Сообщений: 262
1

Проверить правильность примера

09.04.2014, 14:52. Показов 1200. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, написал код, а с ответом не сходится!Подскажите правильно ли?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double a, b, c, x, y, z, s;
            Console.Write("Введите x");
            x = Convert.ToDouble(Console.ReadLine());
            a = 2 * Math.Cos(x - 1 / 6);
            Console.Write("Введите y");
            y = Convert.ToDouble(Console.ReadLine());
            b = 1 / 2 + Math.Pow(Math.Sin(y), 2);
            Console.Write("Введите z");
            z = Convert.ToDouble(Console.ReadLine());
            c = 1 + Math.Pow(z, 2) / 3 - (Math.Pow(z, 2) / 5);
            Console.Write("Ваш ответ: ");
            s = a / b * c;
            Console.WriteLine(s);
            Console.ReadKey();
Миниатюры
Проверить правильность примера  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
09.04.2014, 14:52
Ответы с готовыми решениями:

Проверить правильность даты
помогите, пожалуйста 1.Дана дата из трех чисел (день, месяц и год). Вывести yes, если такая дата...

Проверить правильность цикла
Можете проверить правильность составления цикла? цикл For это все таки шаги и куда нужно...

Проверить на правильность расстановки скобок
Дана строка. Проверить правильность расстановки скобок в строке (для каждой открывающей есть...

Проверить правильность написания кода
Приветствую всех.Взялся изучать шарп.Ребят правильно ли я прокоментировал этот код? (Заранее...

15
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
09.04.2014, 15:03 2
C#
1
  c = 1 + Math.Pow(z, 2) / (3 - (Math.Pow(z, 2) / 5));
Добавлено через 7 минут
Цитата Сообщение от Олег126 Посмотреть сообщение
s = a / b * c;
еще тут может быть косяк я приоритет операций не читал но лучше сделать так

C#
1
s = (a / b) * c;
0
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
09.04.2014, 15:09 3
Цитата Сообщение от Олег126 Посмотреть сообщение
C#
1
a = 2 * Math.Cos(x - 1 / 6);
1. 1/6=0
2. По заданию cos принимает градусы? Math.Cos — радианы.

Цитата Сообщение от Олег126 Посмотреть сообщение
C#
1
b = 1 / 2 + Math.Pow(Math.Sin(y), 2);
1. 1/2=0
2. С синусом то же самое, что с косинусом в первом примере.

Цитата Сообщение от Олег126 Посмотреть сообщение
C#
1
c = 1 + Math.Pow(z, 2) / 3 - (Math.Pow(z, 2) / 5);
Запись соответствует такой:
https://www.cyberforum.ru/cgi-bin/latex.cgi?1+\frac{{z}^{2}}{3}-\frac{{z}^{2}}{5}

Сравните с записью в задании.
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
09.04.2014, 15:17 4
3.
Цитата Сообщение от EVG-1980 Посмотреть сообщение
c = 1 + Math.Pow(z, 2) / (3 - (Math.Pow(z, 2) / 5));
надо проверять что бы (3 - Math.Pow(z, 2) / 5) <> 0
0
45 / 45 / 4
Регистрация: 21.03.2013
Сообщений: 262
09.04.2014, 15:32  [ТС] 5
kolorotur, а почему 1/6 = 0 и 1/2 = 0?

Добавлено через 27 секунд
В условии не указаны радианы или градусы!

Добавлено через 1 минуту
EVG-1980 азачем проверять если у нас четко даны x, y, z?
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
09.04.2014, 15:35 6
тебе просто сказали что Math.Cos и Math.Sin на входе принимает радианы т.е. если ты хочешь вычислить Math.Cos (90 градусов) то предварительно надо градусы преобразовать в радианы

Добавлено через 1 минуту
Цитата Сообщение от Олег126 Посмотреть сообщение
EVG-1980 а зачем проверять если у нас четко даны x, y, z?
а то потому что я задание прочитал не до конца
0
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
09.04.2014, 15:36 7
Цитата Сообщение от Олег126 Посмотреть сообщение
а почему 1/6 = 0 и 1/2 = 0?
Потому что производится деление двух целочисленных типов (int/int), потому и результат тоже будет целочисленным типом, то есть нулем.

Цитата Сообщение от Олег126 Посмотреть сообщение
В условии не указаны радианы или градусы!
Исправьте указанные выше ошибки и посмотрите на результат. Если будет отличаться, то переведите значения аргументов из радианов в градусы.
1
45 / 45 / 4
Регистрация: 21.03.2013
Сообщений: 262
09.04.2014, 15:45  [ТС] 8
Вот переделал немного, правильно ли так писать? Правильно ли вообще сделано, ибо ответ все равно не совсем точный!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double a, b, c, x, y, z, s;
            Console.Write("Введите x");
            x = Convert.ToDouble(Console.ReadLine());
            a = Convert.ToDouble(2) * Math.Cos(x - Convert.ToDouble(1) / Convert.ToDouble(6));
            Console.Write("Введите y");
            y = Convert.ToDouble(Console.ReadLine());
            b = Convert.ToDouble(1) / Convert.ToDouble(2) + Math.Pow(Math.Sin(y), 2);
            Console.Write("Введите z");
            z = Convert.ToDouble(Console.ReadLine());
            c = Convert.ToDouble(1) + Math.Pow(z, 2) / Convert.ToDouble(3) - (Math.Pow(z, 2) / Convert.ToDouble(5));
            Console.Write("Ваш ответ: ");
            s = a / b * c;
            Console.WriteLine(s);
            Console.ReadKey();
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
09.04.2014, 15:46 9
Цитата Сообщение от kolorotur Посмотреть сообщение
Потому что производится деление двух целочисленных типов (int/int), потому и результат тоже будет целочисленным типом, то есть нулем.
C#
1
2
3
double d;
            d = 1 + 1 / 3;
            Console.WriteLine(d); // =1
C#
1
2
3
double d;
            d = 1 + (double)1 / 3;
            Console.WriteLine(d); //=1,33
Стыдно, я нуб думал что тип приводится автоматом к присвоенному
0
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
09.04.2014, 15:59 10
Цитата Сообщение от EVG-1980 Посмотреть сообщение
я нуб думал что тип приводится автоматом к присвоенному
Так он и приводится, но уже после того, как будет получен результат арифметической операции.
То есть получается так: поделили два целых, получили целое, привели результат к double, присвоили значение переменной.
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
09.04.2014, 16:12 11
kolorotur,

c = Convert.ToDouble(1) + Math.Pow(z, 2) / Convert.ToDouble(3) - (Math.Pow(z, 2) / Convert.ToDouble(5));


C#
1
c = 1 +(double) Math.Pow(z, 2) / (3 - Math.Pow(z, 2) / 5);
я правильно понимаю?

Добавлено через 2 минуты
Вернее тут даже double не надо
0
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
09.04.2014, 16:12 12
Цитата Сообщение от EVG-1980 Посмотреть сообщение
я правильно понимаю?
в этом случае явное приведение не нужно, т.к. метод Math.Pow уже возвращает тип double, потому и последующее деление будет производиться между вещественными числами.
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
09.04.2014, 16:18 13
C#
1
2
3
 a = 2 * Math.Cos(x - (double) 1 / 6);
 b = (double)1 / 2 + Math.Pow(Math.Sin(y), 2);
 c = 1 + Math.Pow(z, 2) / (3 - Math.Pow(z, 2) / 5);
1
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
09.04.2014, 16:31 14
Цитата Сообщение от EVG-1980 Посмотреть сообщение
C#
1
(double) 1 / 6
Как вариант, можете записать 1.0/6 — легче читается

Цитата Сообщение от EVG-1980 Посмотреть сообщение
C#
1
(double)1 / 2
Тут вообще можно написать 0.5
0
45 / 45 / 4
Регистрация: 21.03.2013
Сообщений: 262
09.04.2014, 16:45  [ТС] 15
Ну первый пример сошелся, во втором я исправил, но все равно у меня знаки после запятой не совпадают что в ответе!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double a,b,c,x,y,z,s;
            Console.Write("Введите x: ");
            x = Convert.ToDouble(Console.ReadLine());
            Console.Write("Введите y: ");
            y = Convert.ToDouble(Console.ReadLine());
            Console.Write("Введите z: ");
            z = Convert.ToDouble(Console.ReadLine());
            a = Math.Pow(9+Math.Pow(x-y,2),(double)1/3);
            b = Math.Pow(x,2)+Math.Pow(y,2)+2;
            c = Math.Exp(Math.Abs(x-y))*Math.Pow(Math.Tan(z),3);
            s = a/b-c;
            Console.Write("Ваш ответ: ");
            Console.WriteLine(s);
            Console.ReadKey();
Миниатюры
Проверить правильность примера  
0
45 / 45 / 4
Регистрация: 21.03.2013
Сообщений: 262
09.04.2014, 18:32  [ТС] 16
Все вопрос решил!
0
09.04.2014, 18:32
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
09.04.2014, 18:32
Помогаю со студенческими работами здесь

Проверить правильность кода переписанного с VB на C#
Добрый день. Помогите пожалуйста разобраться я правильно переписал код с visual basic на c# код...

Проверить правильность хода конем
Шахматы (Время: 1 сек. Память: 16 Мб Сложность: 18%) Шахматы Совсем недавно Вася занялся...

Проверить правильность составления блок-схемы
Здравствуйте, учусь составлять блок-схемы. Проверьте, пожалуйста правильно ли у меня получилось....

Проверить правильность ввода числа в двоичной системе
Дано число в двоичной системе счисления. Проверить правильность ввода этого числа (в его записи...

Проверить правильность расстановки круглых скобок в выражении
Дана последовательность символов длины n (n&gt;=1) Написать метод, который проверяет круглых скобок в...

Проверить правильность убывания элементов в одномерном массиве
дан одномерный массив А={7,2; 5,3; 4,9; 5,4; 4,4; 5,3; 4,2; 9,4; 6,7; 7} проверить правильность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru