Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
bufalo
13 / 13 / 4
Регистрация: 02.02.2011
Сообщений: 165
1

Методы: выходные параметры (исправить код)

23.12.2011, 14:58. Просмотров 683. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста исправить ошибку, не могу понять в чем дело
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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();
        }
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 14:58
Ответы с готовыми решениями:

Входные и выходные параметры функции
Здравствуйте! Пытаюсь разобраться в объявлении функции, подскажите пожалуйста, если у меня есть...

Реализовать программу через выходные параметры
Есть программа, реализованная через параметры значений и параметры ссылки, мне нужно реализовать...

Реализовать программу через выходные параметры
Дана программа, ее нужно реализовать через выходные параметры using System; using...

Анонимные методы и их <параметры>
А в чем отличие между анонимным методом и лямбда выражений? Только в том что в случае...

Получить классы, имеющиеся в проекте, их методы и параметры методов
имеется проект с системой классов, про которые вы ничего не знаете Расписать классы, имеющиеся в...

2
kolorotur
Эксперт .NET
11322 / 9212 / 2341
Регистрация: 17.09.2011
Сообщений: 15,834
Завершенные тесты: 1
23.12.2011, 16:56 2
Так как вы не написали, в чем проявляется ошибка, то приходится подрубать телепатию.
Подозреваю, что компилятор ругается на то, что переменной s не присвоено значение.
При использовании оператора out необходимо, чтобы переменной, переданной таким образом, было присвоено значение внутри метода. Если этого не сделать, то компилятор будет ругаться.
У вас значение присваивается, но каждое присвоение происходет в блоке if. Возможно, вы предусмотрели все возможные значения таким образом, что хотя бы одно из условий будет выполнено. Но компилятор-то этого не знает, потому все равно ругается.

Решение: либо поменять условия так, чтобы был блок else, либо присвоить в начале метода какое-нибудь значение переменной s (но так делать не рекомендуется).

Ну и, конечно же, ваш метод имеет тип возвращаемого значения string, но вы ничего не возвращаете.
1
bufalo
13 / 13 / 4
Регистрация: 02.02.2011
Сообщений: 165
23.12.2011, 17:24  [ТС] 3
ясно, а можеш помочь с блоком else?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2011, 17:24

Выходные параметры IBQuery
Добрый вечер. в interbase есть рабочая процедура поиска клиента по фамилии, на выходе адрес его ...

Выходные параметры хранимой процедуры
Почему то не возращаются выходной параметр хранимой процедуры (param2, param1). Set cmd =...

Выходные параметры хранимой процедуры
Народ, подскажите пожайлуста а то ваще запутался. Есть хранимая процедура типа: Create Procedure...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru