Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2010, 17:24   #1
AN87
 
Регистрация: 16.12.2010
Сообщений: 8
По умолчанию С#

Подскажите, в чём ошибка: нужно вычислить

int a, b, c, g;
double x;

Console.Write("a = ");
a = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("b = ");
b = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("c = ");
c = Convert.ToInt32(Console.ReadLine()) ;
Console.Write("g = ");
g = Convert.ToInt32(Console.ReadLine()) ;

x = ((Math.Sqrt(Math.Cos(a * 2))) / (b * b * b)) - (21 * g * (c - b));
Console.WriteLine("x = " + x);

if ((Math.Cos(a * 2)) < 0)
{
Console.Write("отрицательное значение под корнем, введите другое значение a!");
}
else
{
Console.WriteLine("Значение под корнем положительное");
}
if ((b * b * b) == 0)
{
Console.WriteLine("Деление на ноль");
}
else
{
return;
Изображения
Тип файла: jpg пример.jpg (4.0 Кб, 73 просмотров)
AN87 вне форума Ответить с цитированием
Старый 20.12.2010, 18:12   #2
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Полный код выложи!

return;

и что ты этим хотил вернуть из функции?

и конкретно что компилятор пишет... во время ошибки

Последний раз редактировалось Lemo; 20.12.2010 в 18:17.
Lemo вне форума Ответить с цитированием
Старый 20.12.2010, 18:45   #3
AN87
 
Регистрация: 16.12.2010
Сообщений: 8
По умолчанию

Это полный код, неправильно считает это выражение - ((Math.Cos(a * 2)) < 0)
AN87 вне форума Ответить с цитированием
Старый 20.12.2010, 21:39   #4
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Попробуй так:


Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double x,a, b, c, g;

            Console.Write("a = ");
            a = Convert.ToDouble(Console.ReadLine());
            Console.Write("b = ");
            b = Convert.ToDouble(Console.ReadLine());
            Console.Write("c = ");
            c = Convert.ToDouble(Console.ReadLine());
            Console.Write("g = ");
            g = Convert.ToDouble(Console.ReadLine());

           

            if ((Math.Cos(a * 2)) < 0)
            {
                Console.WriteLine("отрицательное значение под корнем, введите другое значение 'a'");
            }
            else
            {
                Console.WriteLine("Значение под корнем положительное");
            }

            if (b == 0)
            {
                Console.WriteLine("Деление на ноль");
            }


            x = ((Math.Sqrt(Math.Cos(a * 2))) / (b * b * b)) - (21 * g * (c - b));
            Console.WriteLine("x = " + x);

            Console.ReadLine();

        }
    }
}

Если не?
То сделай скриншот ошибки!
Lemo вне форума Ответить с цитированием
Старый 20.12.2010, 22:06   #5
AN87
 
Регистрация: 16.12.2010
Сообщений: 8
По умолчанию

Почему-то не вычисляется косинус из выражения в скобках ((Math.Sqrt(Math.Cos(a * 2))), а просто из него извлекается корень???? В чём может быть проблема???
AN87 вне форума Ответить с цитированием
Старый 20.12.2010, 22:15   #6
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

1) Какой средой пользуетесь?
2) Скриншот ошибки(что пишет компилятор)!
3) Мой код юзали?
Lemo вне форума Ответить с цитированием
Старый 21.12.2010, 02:28   #7
AN87
 
Регистрация: 16.12.2010
Сообщений: 8
По умолчанию

Пользуюсь я средой Microsoft Visual C# 2008, ошибку никакую он не выдаёт, ответ показывает, но в ответе получается такое число, как будто в формуле нет косинуса, просто из числа в числителе извлекается корень
AN87 вне форума Ответить с цитированием
Старый 21.12.2010, 09:40   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вы шутите? Ну-ка, давайте посчитаем, сколько будет корень из 100? (в моём примере ниже a присваиваем 100)

а соs(2*100) (в радианах, разумеется) чему равен?
А корень из этого числа?
т.к. значение косинуса не может быть больше единицы, то и корень Вы не можете получить БОЛЬШЕ единицы. Для любого a.

иллюстрирую примером:
Код:
            double x1, x2, a;

            /* Console.Write("a = ");
            a = Convert.ToDouble(Console.ReadLine()); */

            a = 100;

            x1 = Math.Cos(a * 2);
            Console.WriteLine("cos(2a) = {0:F8}\n", x1);
            
            x2 = x1 > 0 ? Math.Sqrt(Math.Cos(a * 2)) : 0;
            Console.WriteLine("sqrt(cos(2a)) = {0:F8} \n", x2);

            Console.ReadLine();

Результат
cos(2a) = 0,48718768

sqrt(cos(2a)) = 0,69798831
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц