С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 24.11.2018
Сообщений: 130

Работа с методами (функции)

19.02.2019, 12:23. Показов 660. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем
Задача таткова

Даны векторы A[10], B[18]. У каждого вектора, компоненты которого не образуют неубывающей последовательности, отрицательные компоненты заменить максимальным элементом.

Нужно написать программу используя функции (как я понял в шарпе это методы, если это не так не бейте)))
Вот мой код
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;
using System.Threading.Tasks;
 
namespace ConsoleApp45
{
    class Program
    {
        static void Main(string[] args)
        {
 
 
            string qq = "";
            Console.WriteLine("Enter number A ");
            int n = 10;
            string c = Vector(ref n, ref qq);
            Console.WriteLine($"Vector A = {c}");
            Console.WriteLine();
 
            n = 18;
            Console.WriteLine("Enter number B ");
            string w = Vector(ref n, ref qq);
            Console.WriteLine($"Vector B = {w}");
            Console.WriteLine();
 
            Res(ref c, ref w);
 
 
        }
        public static string Vector(ref int n,ref string qq)
        {
 
            
            
            int[] array = new int[n];
            for (int i = 0; i < n; i++)
            { array[i] = int.Parse(Console.ReadLine()); }
            foreach (var u in array)
            {
                 
                 qq += u.ToString()+ " "; 
                
            }
            
            return qq;
        }
        public static void Res (ref string _A, ref string _B)
        {
            string[] A = _A.Split();
            string[] B = _B.Split();
            List<int> Num = new List<int>();
            int max=0;
            for(int i=0; i<A.Length;i++)
            {
                int num = Convert.ToInt32(A[i]);
                int num2 = num;
                if(num2>num)
                { max = num2;
 
                }
            }
            Console.WriteLine($"Max element {max}");
        }
       
 
    }
}
Я создал метод который создает одномерные массивы нужной мне длины
Потом была жалкая попытка создать метод который находит максимальный элемент , как вы понимаете ничего из этого не вышло
Помогите разобраться , кому не сложно
Я так полагаю мне сейчас нужно мои две строки сплитануть на подстроки , запихнуть в массив , потом каждую подстроку конвертировать в int и дальше работать с каждым числом ?
Я думаю можно это сделать более грамотно
Кому не сложно хелпаните
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2019, 12:23
Ответы с готовыми решениями:

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

Работа с классами и методами
Доброго времени суток. У меня вот в чем вопрос. Есть 2 класса, Program и MyArray Часть кода класса Programm class Program {...

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

4
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
19.02.2019, 16:43
39ая строка и 43, 47:
C#
1
2
3
4
5
 array[i] = int.Parse(Console.ReadLine());
...
                 qq += u.ToString()+ " "; 
...
            return qq;
я не совсем понимаю зачем хранить результат в виде строки, а не в виде изначально введённого массива.
да и зачем возвращать передаваемый как ref параметр?..

т.е. сделать что-то наподобие этого и ок:

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
        static void Main(string[] args) {
            Console.WriteLine("Enter number A ");
            int n = int.Parse(Console.ReadLine());
            int[] c = Vector(n);
            Console.WriteLine("Vector A = " + ArrayToStr(c));
            Console.WriteLine();
 
            Console.WriteLine("Enter number B ");
            n = int.Parse(Console.ReadLine());
            int[] w = Vector(n);
            Console.WriteLine("Vector B = " + ArrayToStr(w));
            Console.WriteLine();
 
            Res(ref c, ref w); 
        }
        public static int[] Vector(int n) { 
            int[] array = new int[n];
            for (int i = 0; i < n; i++)
                array[i] = int.Parse(Console.ReadLine());
            return array;
        }
        private static string ArrayToStr(int[] value) {
            string result = "";
            foreach (var i in value)
                result += i + " ";
            return result;
        }
        public static void Res(ref int[] _A, ref int[] _B) {
           ...
        }
1
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
19.02.2019, 17:13
Потом была жалкая попытка создать метод который находит максимальный элемент , как вы понимаете ничего из этого не вышло
ну если уж на то пошло, можно максимум найти стандартными методами:
C#
1
2
var arr = new int[] { 1,3,4,5,7,9,5 };
var max = arr.Max();
ну а если хочется, написать свой метод:
C#
1
2
3
4
5
6
7
8
9
10
11
        public static int Max(int[] arr)
        {
            var max = int.MinValue;
 
            for(int i = 0; i < arr.Count(); i++)
            {
                if (arr[i] > max) max = arr[i];
            }
 
            return max;
        }
1
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
19.02.2019, 18:04
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
static void Func(int[] a, int n,int []b,int m, int max,int max2)
        {
            bool g = true;
            bool g2 = true;
            for (int i = 0; i < n - 1; i++)
                for (int j = i + 1; j < n; j++)
                    if (a[i] > a[j])
                    { g = false; }
            for (int i = 0; i < n; i++)
            {
                if (g)
                { Console.WriteLine("Компоненты первого вектора образуют неубывающею последовательность"); break; }
                else if (!g && a[i] < 0)
                { a[i] = max; }
                Console.WriteLine(a[i]);
            }
            for (int i = 0; i < m - 1; i++)
                for (int j = i + 1; j < m; j++)
                    if (b[i] > b[j])
                    { g2 = false; }
            for (int i = 0; i < m; i++)
            {
                if (g2)
                { Console.WriteLine("Компоненты второго вектора образуют неубывающею последовательность"); break; }
                else if (!g2 && b[i] < 0)
                { b[i] = max2; }
                Console.WriteLine(b[i]);
            }
        }
              
        
        static void Main(string[] args)
        {
            int n = 4;
            int m = 4;
            int[] a = new int[n];
            int[] b = new int[m];
            Console.WriteLine("Введите элементы первого вектора");
            for (int i = 0; i < n; i++)
                a[i] = Convert.ToInt32(Console.ReadLine());
            int max = a[0];
            int max2 = b[0];
            for (int i = 0; i < n; i++)
            if (max < a[i]) { max = a[i]; }
            Console.WriteLine("Введите элементы второго вектора");
            for (int i = 0; i < m; i++)
            b[i] = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i < m; i++)
                if (max2 < b[i]) { max2 = b[i]; }
            Func(a,n,b,m,max,max2);
            Console.ReadLine();
1
 Аватар для CiProger
2 / 2 / 0
Регистрация: 19.02.2019
Сообщений: 32
19.02.2019, 23:33
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 public class Function
        {
            public static int Max(int[] mas)
            {
                int max = mas[0];
                for(int i = 0; i < mas.Length; i++)
                {
                    if(max < mas[i])
                    {
                        int temp = mas[i];
                        max = temp;                        
                    }
                }
                return max;
            }
        }
P.S. Самая простая реализация метода поиска максимального элемента, в качестве аргумента метода выступает целочисленный массив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2019, 23:33
Помогаю со студенческими работами здесь

Работа с методами ВК без API
Всем привет! Я пытаюсь вызывать методы вк без использования API по url, однако столкнулся с проблемой: Методы требуют наличия в запросе...

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

Правильно ли я пишу? Работа с интерфейсом и двумя классами с аналогичными методами
Народ подскажите ли правильно я поступаю. У меня в задании по курсовой есть клиенты и обьекты у них есть...

Работа с INI: некорректная работа пользовательской функции
Ранее нашел код для работы с ini-файлами: public class INI { /// &lt;summary&gt; /// Чтение...

Работа с методами!
Доброго времени суток уважаемые эрудиты! Вопрос такой: -У меня есть метод который принимает данные из управляющего класса (например...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru