Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 1
Регистрация: 29.10.2015
Сообщений: 252
1

Как передать аргументы в метод с params аргументом?

21.11.2016, 17:56. Показов 2519. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго вечера, форумчане
Нужна помощь с задачей с применением метода params. Даны натуральные числа N, M. Разработать метод, который возвращает массив, состоящий из всех натуральных чисел, меньших N, квадрат суммы цифр которых равен M, а также их количество.
В отдельном файле кода создал метод params для массива, но что-то не могу понять, как в него передать числа из основной программы ? Так же в правильности самого метода не совсем уверен
Есть подозрение, что здесь нужен метод out ?
C#
1
2
3
4
5
6
7
8
9
10
11
public int lab5z1(int N, int M, params int []mas)
        {
            int i = 0;
            for (i=N;i<M;i++)
            {
                mas[i] = Int32.Parse(Console.ReadLine());
                
            }
                
            int rez = mas[i];
            return rez;
В основном файле кода объявил переменные N и M. Тут к файлу с методом обращаемся так ?
C#
1
int rez = Ob1.lab5z1(N, M);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2016, 17:56
Ответы с готовыми решениями:

Как правильно передать аргументы в нужный метод?
Многопоточность xNet по инструкции как бе: MultiThreading rst = new MultiThreading(); ...

Строку с методом подчеркивает и говорит о том, что не переданы аргументы. Как их передать в метод?
метод таков: void Fraction :: Control(int &amp;denominator, int &amp;numerator) { if (denominator ==...

Нужно передать вторым аргументом char, а не int в метод ignore()
Здравствуйте, в общем пытаюсь записывать и считать из файла. Записывается все как надо и сейчас...

Какие аргументы стоит передать в метод?
У нас есть метод, срабатывающий на нажатие кнопки public static void Play(object sender, EventArgs...

6
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
21.11.2016, 18:38 2
Namatrasnik, params тут вообще непричем: создаете метод, возвращающий массив, и принимающий 2 числа - N и M
для количества, я полагаю, достаточно будет подсчитать количество элементов в возвращаемом массиве. но если очень надо, чтобы метод возвращал и количество - добавляйте выходной параметр
имхо конечно
0
43 / 15 / 2
Регистрация: 27.02.2016
Сообщений: 36
21.11.2016, 18:56 3
params позволяет принимать методу переменное число аргументов, у вас по условию задачи аргументов должно быть 2, т.е. строго определённое число.
0
0 / 0 / 1
Регистрация: 29.10.2015
Сообщений: 252
02.12.2016, 15:42  [ТС] 4
Хорошо. Вот у меня есть массив:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void lab5z1(int N, int M)
        {
            uint i = 0;
            uint[] mas = new uint[N];
            for (i = 0; i < N; i++)
            {
                mas[i] = i;
 
            }
            Console.WriteLine("Содержимое массива: ");
            for (i = 0; i < N; i++)
            {
                Console.WriteLine(mas[i]);
 
            }
        }
Как мне в нём найти числа, меньшин N, квадрат суммы цифр которых равен M (M задаётся в основном файле кода)
0
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
02.12.2016, 16:19 5
Очевидно, не самый короткий вариант, но работает.
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
        public void lab5z1(int N, int M)
        {
            uint[] mas = new uint[N];
            for (uint i = 0; i < N; i++)
            {
                mas[i] = i;
 
            }
            Console.WriteLine("Содержимое массива: ");
            for (uint i = 0; i < N; i++)
                Console.WriteLine(mas[i]);
 
            Console.WriteLine("Соответствующие условию: ");
            for (uint i = 0; i < N; i++)
                if (mas[i] < N && Sum(mas[i]) == M)
                    Console.WriteLine(mas[i]);
        }
 
        private int Sum(uint x)
        {
            int sum = 0;
            string sx = x.ToString();
            for (int i = 0; i < sx.Length; i++)
                sum += (int)Char.GetNumericValue(sx[i]);
            return sum * sum;
        }
0
0 / 0 / 1
Регистрация: 29.10.2015
Сообщений: 252
06.12.2016, 17:34  [ТС] 6
Pikemaster, а можно ли проще (на начальном уровне) написать метод Sum ? Просто такой способ пока не изучаем, весьма трудно разобраться
0
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
06.12.2016, 17:51 7
Такой вариант еще есть.
C#
1
2
3
4
5
6
7
8
9
10
11
private int Sum(uint x)
{
    int sum = 0;
    while (x / 10 > 0)      // пока число не стало одноразрядным
    {
        sum += (int)x % 10; // прибавляем цифру последнего разряда
        x = x / 10;         // уменьшаем число на 1 разряд
    }
    sum += (int)x;          // прибавляем последнюю оставшуюся цифру
    return sum * sum;
}
1
06.12.2016, 17:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2016, 17:51
Помогаю со студенческими работами здесь

Необязательные параметры и params - как в params ввести несколько аргументов
Интересует такой вопрос, если у меня есть набор необязательных параметров в методе, для примера: ...

Как передать аргументы?
Подскажите как передать аргументы чтобы калькулятор заработал? #include &quot;stdafx.h&quot; #include...

Как передать аргументы в поток?
Здравствуйте, как ни стараюсь разобраться, никак не получается. Помогите пожалуйста. main.cpp ...

Как передать аргументы функции
Доброго времени суток! Знаю вопрос банальный, но я не особо шарю в MatLab. Я так понял здесь:...

Как правильно передать аргументы в функцию?
Подскажите пожалуйста, как правильно сделать из этого функцию Node *p = new Node;...

Простой шифровальщик. Как передать аргументы в Main()
Начал изучать программирование на языке c# по книге Г. Шилдта &quot;с# для начинающих&quot; Книга очень...


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

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