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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2011, 18:58   #1
bufalo
Пользователь
 
Регистрация: 19.09.2011
Сообщений: 32
По умолчанию Методы:выходные параметры (исправить код)

Помогите пожалуйста исправить ошибку
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication10
{
    class Program
    {
       public static string g(out string s)
        {
          
            double Q;
            Console.WriteLine("Введите значение х");
            double x = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("__________________");
            Console.WriteLine("Введите значение y");
            double y = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("__________________");
            Console.WriteLine("Введите координаты центра окружности(x0=y0)");
            double x0 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("__________________");
            Console.WriteLine("Введите значение R<=" + x0);
            double R = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("__________________");
            if ((R < 0) || (R > x0))
                 s = "Ошибка";
            if (R == 0)
            {
                if (x >= -x0) if (x <= x0) if (y <= x0) if (y >= -x0)
                                 s = "Точка ВХОДИТ в указанную область";
            }
            if (R <= x0)
            {
                if (x >= -x0) if (x < 0) if (y < 0) if (y >= -x0)
                                 s = "Точка ВХОДИТ в указанную область";
                if (x > 0) if (x <= x0) if (y <= x0) if (y > 0)
                                s = "Точка ВХОДИТ в указанную область";
                if (x >= -x0) if (x < 0) if (y <= x0) if (y > 0)
                            {
                                Q = Math.Abs(Math.Sqrt(Math.Pow(R, 2) - Math.Pow(x + x0, 2)) - x0);
                                if (Q < y)
                                     s = "Точка НЕ ВХОДИТ в указанную область";
                                else  s = "Точка ВХОДИТ в указанную область";
                            }
                if (x > 0) if (x <= x0) if (y < 0) if (y >= -x0)
                            {
                                Q = Math.Sqrt(Math.Pow(R, 2) - Math.Pow(x - x0, 2)) - x0;
 
                                if (Q > y)
                                   s="Точка НЕ ВХОДИТ в указанную область";
                                else  s = "Точка ВХОДИТ в указанную область";
                            }
            }
            if (x == 0) if (y == 0) s = "Точка ВХОДИТ в указанную область";
            if ((x < -x0) || (x > x0) || (y > x0) || (y < -x0))
                s = "Точка НЕ ВХОДИТ в указанную область";
           
        }
        static void Main(string[] args)
        {
            string s = "";
            string p= g(out s);
            Console.WriteLine(s);
            Console.WriteLine("Press Key...");
            Console.ReadLine();
        }
    }
}
bufalo вне форума Ответить с цитированием
Старый 23.12.2011, 20:07   #2
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

Какая ошибка?
ЗЫ. Вместо дохрена if-ов используют оператор &&.
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 23.12.2011, 21:11   #3
bufalo
Пользователь
 
Регистрация: 19.09.2011
Сообщений: 32
По умолчанию

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

namespace ConsoleApplication10
{
    class Program
    {
        public static string p(out string s)
        {

            double Q;
            Console.WriteLine("Введите значение х");
            double x = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("__________________");
            Console.WriteLine("Введите значение y");
            double y = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("__________________");
            Console.WriteLine("Введите координаты центра окружности(x0=y0)");
            double x0 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("__________________");
            Console.WriteLine("Введите значение R<=" + x0);
            double R = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("__________________");
            if ((R < 0) || (R > x0))
                s = "Ошибка";
            if (R == 0)
            {
                if (x >= -x0) if (x <= x0) if (y <= x0) if (y >= -x0)
                                s = "Точка ВХОДИТ в указанную область";
            }
            if (R <= x0)
            {
                if (x >= -x0) if (x < 0) if (y < 0) if (y >= -x0)
                                s = "Точка ВХОДИТ в указанную область";
                if (x > 0) if (x <= x0) if (y <= x0) if (y > 0)
                                s = "Точка ВХОДИТ в указанную область";
                if (x >= -x0) if (x < 0) if (y <= x0) if (y > 0)
                            {
                                Q = Math.Abs(Math.Sqrt(Math.Pow(R, 2) - Math.Pow(x + x0, 2)) - x0);
                                if (Q < y)
                                    s = "Точка НЕ ВХОДИТ в указанную область";
                                else s = "Точка ВХОДИТ в указанную область";
                            }
                if (x > 0) if (x <= x0) if (y < 0) if (y >= -x0)
                            {
                                Q = Math.Sqrt(Math.Pow(R, 2) - Math.Pow(x - x0, 2)) - x0;

                                if (Q > y)
                                    s = "Точка НЕ ВХОДИТ в указанную область";
                                else s = "Точка ВХОДИТ в указанную область";
                            }
            }
            if (x == 0) if (y == 0) s = "Точка ВХОДИТ в указанную область";
            if ((x < -x0) || (x > x0) || (y > x0) || (y < -x0))
                s = "Точка НЕ ВХОДИТ в указанную область";

        }
        static void Main(string[] args)
        {
            string s = "";
            string g = p(out s);
            Console.WriteLine(s);
            Console.WriteLine("Press Key...");
            Console.ReadLine();
        }
    }
}
извиняюсь за ифы.
исправил кое какие иные ошибки, но прежняя осталась:
'ConsoleApplication10.Program.p(out string)': not all code paths return a value

Последний раз редактировалось bufalo; 23.12.2011 в 21:13.
bufalo вне форума Ответить с цитированием
Старый 23.12.2011, 21:34   #4
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Код:
not all code paths return a value
это ответ на вопрос что за ошибка. То есть существует теоретический вариант в котором переменной s, не будет присвоино значение.
rUs_LAN вне форума Ответить с цитированием
Старый 23.12.2011, 21:49   #5
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Код:
 public static void p(out string s)
Guy вне форума Ответить с цитированием
Старый 23.12.2011, 21:50   #6
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Но у тебя бредовый стиль, зачем ты этот метод сделал вообще не ясна. За такое нас в универе слали переделывать когда в задании требовалось сделать под логику задачи отдельную функцию
Guy вне форума Ответить с цитированием
Старый 24.12.2011, 02:32   #7
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

rUs_Lan не совсем прав. Ошибка в том что метод у тебя не возвращает значение. По своей сигнатуре (непонятно зачем) метод должен возвращать string. Замени string на void или напиши return [то что хочешь вернуть] в конце метода.
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.

Последний раз редактировалось Lasur; 24.12.2011 в 02:37.
Lasur вне форума Ответить с цитированием
Старый 26.12.2011, 11:02   #8
bufalo
Пользователь
 
Регистрация: 19.09.2011
Сообщений: 32
По умолчанию

Я переделал эту программу, она теперь реализована через параметры значений и параметры ссылки, нужно реализовать через выходные параметры.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double x, y;
            x = 7.0;
            y = 7.0;
            if (CalculateY(x, ref y))
                Console.WriteLine("Полученное значение y= " + y.ToString());
            else
                Console.WriteLine("уравнение не имеет решений");
            Console.ReadLine();
        }
        static bool CalculateY(double x, ref double y)
        {
            if ((x >= -6) && (x <= -4))
            {
                y = -2.0;
                return true;
            }
            if ((x>-4) && (x<0))
            {
                y =(((0-1)*(x+4))/(0-4))-1;
                return true;
            }
            if ((x > 0) && (x < 2))
            {
                y = Math.Sqrt(2 * Math.PI * x);
                return true;
            }
            if ((x > 2) && (x < 12))
            {
                y = (((-1 - 4) * (x - 2)) / (12 - 2))+4;
                return true;
            }
            y = 0.0;
            return false;
        }
        }
    }
bufalo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить ошибки в Паскале, по теме: " Методы решения алгебраических и трансцендентных уравнений" Anton94.by Помощь студентам 0 04.12.2011 15:31
Исправить ошибки в Паскале, по теме: " Методы решения алгебраических и трансцендентных уравнений" Anton94.by Помощь студентам 1 02.12.2011 17:26
исправить код seed92 Помощь студентам 0 21.02.2011 16:02
Исправить код DirtyBASS Помощь студентам 2 22.09.2009 10:20
Исправить код IndividBezLica Помощь студентам 0 02.06.2009 09:41