Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 19.11.2020
Сообщений: 14

Перегрузка методов

19.11.2020, 11:32. Показов 1499. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста!

"Перегрузите метод Mini1 так, чтобы его сигнатура (заголовок) соответствовала виду static void f (double x, out double y). Продемонстрируйте работу перегруженных методов"

Всё что я написал:
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
using System;
 
namespace lab5._2
{
    class Program
    {
        static double Mini1(double first, double second)
        {
            double bb;
            if (first < second)
            {
                bb = 0;
            }
            else if (second< first)
            {
                bb = (first - second) / (first + second);
            }
            else
            {
                bb = 1;
            }
            return bb;
        }
        static void Mini1(double first, double second, out double bb)
        {
            if (first < second)
            {
                bb = 0;
            }
            else if (second< first)
            {
                bb = (first - second) / (first + second);
            }
            else
            {
                bb = 1;
            }
        }
        static void Main(string[] args)
        {
            //Постройте таблицу значений функции y=f(x) для  х принадлежащему [a, b]  с шагом h.
            Console.Write("a = ");
            double a = double.Parse(Console.ReadLine());
            Console.Write("b = ");
            double b = double.Parse(Console.ReadLine());
            Console.Write("h = ");
            double h = double.Parse(Console.ReadLine());
            Console.WriteLine("Первый вариант метода");
            for (double i = a; i <= b; i += h)
            {
                Console.WriteLine($" y = f({i}) = {Mini1(i, a):f2}");
            }
            Console.WriteLine("Второй вариант метода");
            double zz;
            for (double i = a; i <= b; i += h)
            {
                Console.WriteLine($" y = f({i}) = {Mini1(i, a, out zz)}");
            }
            Console.ReadKey();
        }
 
    }
}
Как я понимаю нужно просто как-то по другому обратится к перегруженному методу, но я не знаю как
Миниатюры
Перегрузка методов  
Изображения
 
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2020, 11:32
Ответы с готовыми решениями:

Перегрузка методов
Объясните простым русским языком, почему это так работает. class Program { static void Main(string args) ...

Перегрузка методов
помогите сделать перегрузку,вот программа using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Перегрузка методов и операций
Создайте проект, в котором опишите класс для решения задачи Вашего варианта. Разрабатываемый класс должен содержать следующие элементы:...

5
1 / 1 / 1
Регистрация: 19.11.2020
Сообщений: 14
19.11.2020, 11:41  [ТС]
Видимо будет правильно так: "соответствовала виду static void Mini1 (double first, out double second) "
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
19.11.2020, 12:09
C#
1
2
3
4
5
6
7
8
9
10
        static double Mini1(double first, double second)
        {
            if (first < second)
                return 0;
            if (second < first)
                return (first - second) / (first + second);
            return 1;
        }
        static void Mini1(double first, double second, out double bb) 
            => bb = Mini1(first, second);
C#
55
56
57
58
            for (double i = a; i <= b; i += h)
            {
                Console.WriteLine($" y = f({i}) = {Mini1(i, a)}");
            }
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
19.11.2020, 15:11
Здравствуйте.
Условие задачи абсолютно непонятное.
У меня получилось так при неполном соответствии условию:
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
using System;
 
namespace lab5._2
{
    class Program
    {
        static double Mini1(double x, double a)
        {
            double bb;
            if (x < a)
            {
                bb = 0;
            }
            else if (x > a)
            {
                bb = (x - a) / (x + a);
            }
            else
            {
                bb = 1;
            }
            return bb;
        }
        static void Mini1(double x, double a, out double y)
        {
            double bb;
            if (x < a)
            {
                bb = 0;
            }
            else if (x > a)
            {
                bb = (x - a) / (x + a);
            }
            else
            {
                bb = 1;
            }
            y = bb;
        }
        static void Main(string[] args)
        {
 
            //Постройте таблицу значений функции y=f(x) для  х принадлежащему [a, b]  с шагом h.
            Console.Write("a = ");
            double a = -10; //double.Parse(Console.ReadLine());
            Console.Write("b = ");
            double b = 10; // double.Parse(Console.ReadLine());
            Console.Write("h = ");
            double h = 1; // double.Parse(Console.ReadLine());
            Console.WriteLine("Первый вариант метода");
            for (double i = a; i <= b; i += h)
            {
                Console.WriteLine($" y = f({i}) = {Mini1(i, 1):f2}");
            }
            Console.WriteLine("Второй вариант метода");
            for (double i = a; i <= b; i += h)
            {
                Mini1(i, 1, out double zz);
                Console.WriteLine($" y = f({i}) = {zz:f2}");
            }
            Console.ReadKey();
        }
 
    }
}
Откуда берется константа a в формуле?
Как функция void f (double x, out double y) использует константу a?

Без нормального описания задачи нормальный ответ дать трудно.
0
1 / 1 / 1
Регистрация: 19.11.2020
Сообщений: 14
19.11.2020, 15:25  [ТС]
Изначальное задание звучит так:
"II. Постройте таблицу значений функции y=f(x) для х∈[a, b] с шагом h.
Замечание. Для решения задачи использовать вспомогательный метод."
(во вложении сама функция)

Моё решение:
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
using System;
 
namespace lab5._2
{
    class Program
    {
        static double Mini1(double first, double secend)
        {
            double bb;
            if (first < secend)
            {
                bb = 0;
            }
            else if (secend < first)
            {
                bb = (first - secend) / (first + secend);
            }
            else
            {
                bb = 1;
            }
            return bb;
        }
 
        static void Main(string[] args)
        {
            //Постройте таблицу значений функции y=f(x) для  х[a, b]  с шагом h.
            Console.Write("a = ");
            double a = double.Parse(Console.ReadLine());
            Console.Write("b = ");
            double b = double.Parse(Console.ReadLine());
            Console.Write("h = ");
            double h = double.Parse(Console.ReadLine());
 
            for (double i = a; i <= b; i += h)
            {
                Console.WriteLine($" y = f({i}) = {Mini1(i, a):f2}");
            }
            Console.ReadKey();
        }
 
    }
}
А уже дальше идёт задание:
"III. Перегрузите метод f из предыдущего раздела так, чтобы его сигнатура (заголовок) соответствовала виду static void f (double x, out double y). Продемонстрируйте работу перегруженных методов."

И я написал это:
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
using System;
 
namespace lab5._2
{
    class Program
    {
        static double Mini1(double first, double second)
        {
            double bb;
            if (first < second)
            {
                bb = 0;
            }
            else if (second < first)
            {
                bb = (first - second) / (first + second);
            }
            else
            {
                bb = 1;
            }
            return bb;
        }
        static void Mini1(double first, double second, out double bb)
        {
            if (first < second)
            {
                bb = 0;
            }
            else if (second < first)
            {
                bb = (first - second) / (first + second);
            }
            else
            {
                bb = 1;
            }
        }
        static void Main(string[] args)
        {
            //Постройте таблицу значений функции y=f(x) для  х[a, b]  с шагом h.
            Console.Write("a = ");
            double a = double.Parse(Console.ReadLine());
            Console.Write("b = ");
            double b = double.Parse(Console.ReadLine());
            Console.Write("h = ");
            double h = double.Parse(Console.ReadLine());
            Console.WriteLine("Первый вариант метода");
            for (double i = a; i <= b; i += h)
            {
                Console.WriteLine($" y = f({i}) = {Mini1(i, a):f2}");
            }
            Console.WriteLine("Второй вариант метода");
            double zz;
            for (double i = a; i <= b; i += h)
            {
                Console.WriteLine($" y = f({i}) = {Mini1(i, a, out zz)}");
            }
            Console.ReadKey();
        }
 
    }
}
Но данная программа не работает, так как, видимо, я не правильно обращаюсь к перегруженному методу.
Изображения
 
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
19.11.2020, 15:51
Лучший ответ Сообщение было отмечено loveyou как решение

Решение

loveyou, и как Вы собираетесь передать a в функцию, если её среди параметров функции нет?

Добавлено через 5 минут
(Можно использовать статическое поле класса, но так ни один математик делать не будет. Абсурд с точки зрения математики.)

Добавлено через 18 минут
----
loveyou, ещё есть способ просто тупо задать константу a внутри функции:
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
        static double Mini1(double x)
        {
            const double a = 1;
            double bb;
            if (x < a)
            {
                bb = 0;
            }
            else if (x > a)
            {
                bb = (x - a) / (x + a);
            }
            else
            {
                bb = 1;
            }
            return bb;
        }
        static void Mini1(double x, out double y)
        {
            const double a = 1;
            double bb;
            if (x < a)
            {
                bb = 0;
            }
            else if (x > a)
            {
                bb = (x - a) / (x + a);
            }
            else
            {
                bb = 1;
            }
            y = bb;
        }
Получим смысл в виде f(x), где a = 1.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2020, 15:51
Помогаю со студенческими работами здесь

Перегрузка методов и операций.
:wall: Задание:Создайте проект, в котором опишите класс для решения задачи Вашего варианта. Каждый разрабатываемый класс должен,...

Перегрузка методов и операторов
Кто может написать класс с помощью которого можно выполнять операции с комплексными числами : (a + bi) − (c + di) = (a − c)...

Является ли перегрузка методов полиморфизмом
День добрый. Вчера перечитывал Троелсена и задался вопросом: Переопределение методов в дочернем классе это полиморфизм, а вот является ли...

Перегрузка методов по модификатору параметров
using System; namespace Test1 { class Program { public static void M1(ref int x) =&gt; Console.WriteLine(); public...

Перегрузка функций (методов) и операций
Добрый день. Мне тут помогли написать код... нужно пояснение полное в коде что тут и как происходит. Само условие выглядит так: Создать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru