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

Делегат для методов с двумя аргументами и целочисленным результатом

18.10.2018, 10:12. Показов 7376. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Первую задачу решила, не могу никак понять вторую и третью по реализации. Как я поняла 3я будет продолжением 1 и 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace HW6
{
    class Program
    {
        delegate int Operation(char c, string s);
        delegate void Symbol(char c);
 
        static void Main(string[] args)
        {
            //1.Напишите программу, в которой объявляется делегат для методов с
            //двумя аргументами(символ и текст) и целочисленным результатом.В
            //главном классе необходимо описать два статических метода. Один
            //статический метод результатом возвращает количество вхождений символа
            //(первый аргумент) в текстовую строку(второй аргумент).Другой метод
            //результатом возвращает индекс первого вхождения символа(первый
            //аргумент) в текстовую строку(второй аргумент), или значение -1, если
            //символ в текстовой строке не встречается.В главном методе создать
            //экземпляр делегата и с помощью этого экземпляра вызвать каждый из
            //статических методов.
 
            //char c = 'o';
            //string s = "hello world";
            //Operation del = Entrance;
            //int result = del(c, s);
            //Console.WriteLine(result);
 
            //del = Index; 
            //result = del(c, s); 
            //Console.WriteLine(result);
 
            //Console.Read();
 
            //2.Напишите программу, в которой объявляется делегат для методов с
            //символьным аргументом, не возвращающих результат.Опишите класс, в
            //котором должно быть символьное поле и метод, позволяющий присвоить
            //значение символьному полю объекта. У метода один символьный аргумент и
            //метод не возвращает результат. Создайте массив объектов данного класса.
            //Создайте экземпляр делегата.В список вызовов этого делегата необходимо
            //добавить ссылки на метод (присваивающий значение символьному полю)
            //каждого объекта из массива. Проверить результат вызова такого экземпляра
            //делегата.
            char c = 'o';
            Symbol del = Add;
            del(c);
 
 
            //3.Напишите программу, в которой есть статический метод.Первым
            //аргументом статическому методу передается целочисленный массив.Вторым
            //аргументом статическому методу передается ссылка на другой метод.У
            //метода - аргумента должен быть целочисленный аргумент, и он должен
            //возвращать целочисленный результат.Результатом статический метод
            //возвращает целочисленный массив. Элементы этого массива вычисляются
            //как результат вызова метода-аргумента, если ему передавать значения
            //элементов из массива - аргумента.Предложите механизм проверки
            //функциональности данного статического метода.
 
        }
 
        private static void Add(char c)
        {
            Console.WriteLine(c);
        }
 
        //1
        private static int Entrance(char c, string s)
        {
            int num = 0;
            for(int i=0; i<s.Length; i++)
            {
                if (c == s[i])
                    num++;
            }
            if (num == 0)
                return -1;
            return num;
        }
        private static int Index(char c, string s)
        {
            return s.IndexOf(c);
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2018, 10:12
Ответы с готовыми решениями:

Как создать делегат с аргументами и одновременно без?
Приветики. Есть множество методов, общее у них то, что все они ничего не возвращают, но вот...

Не получается написать исключения для команды с двумя аргументами
не могу написать исключение для команды COPY import sys from core import create_file,...

Объявить прототип функции f1 с 2 аргументами-строками и возвращаемым результатом в виде литерного массива
Здрасте всем), есть такая задачка: Объявить прототип функции f1 с 2 аргументами-строками и...

Структуры, ошибки при работе с аргументами методов
Всем привет!Ошибка вылазит, Точнее две ошибки... Ошибка 1 error C2660: Students::SetStudents:...

2
Эксперт JS
6494 / 3905 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
18.10.2018, 11:07 2
Лучший ответ Сообщение было отмечено LeylaJonova как решение

Решение

Добрый день.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
//1.Напишите программу, в которой объявляется делегат для методов с
//двумя аргументами(символ и текст) и целочисленным результатом.В
//главном классе необходимо описать два статических метода. Один
//статический метод результатом возвращает количество вхождений символа
//(первый аргумент) в текстовую строку(второй аргумент).Другой метод
//результатом возвращает индекс первого вхождения символа(первый
//аргумент) в текстовую строку(второй аргумент), или значение -1, если
//символ в текстовой строке не встречается.В главном методе создать
//экземпляр делегата и с помощью этого экземпляра вызвать каждый из
//статических методов.
 
namespace HW6
{
    delegate int Operation(char c, string s);
 
    class Program
    {
        static void Main(string[] args)
        {
            char c = 'o';
            string s = "hello world";
            Operation del = Entrance;
            int result = del(c, s);
            Console.WriteLine(result);
 
            del = Index;
            result = del(c, s);
            Console.WriteLine(result);
            Console.ReadKey();
        }
 
        // 1
        private static int Entrance(char c, string s)
        {
            int num = 0;
            for (int i = 0; i < s.Length; i++)
            {
                if (c == s[i])
                    num++;
            }
            if (num == 0)
                return -1;
            return num;
        }
        // 2
        private static int Index(char c, string s)
        {
            return s.IndexOf(c);
        }
    }
}
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
using System;
 
//2.Напишите программу, в которой объявляется делегат для методов с
//символьным аргументом, не возвращающих результат.Опишите класс, в
//котором должно быть символьное поле и метод, позволяющий присвоить
//значение символьному полю объекта. У метода один символьный аргумент и
//метод не возвращает результат. Создайте массив объектов данного класса.
//Создайте экземпляр делегата.В список вызовов этого делегата необходимо
//добавить ссылки на метод (присваивающий значение символьному полю)
//каждого объекта из массива. Проверить результат вызова такого экземпляра
//делегата.
namespace HW6
{
    delegate void Symbol(char c);
 
    class MyClass
    {
        public char myField;
 
        public void MyMethod(char c)
        {
            myField = c;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            var array = new MyClass[3] { new MyClass(), new MyClass(), new MyClass() };
            Symbol del = null;
            foreach (var item in array)
            {
                del += item.MyMethod;
            }
            char c = 'o';
            del(c);
            foreach (var item in array)
            {
                Console.WriteLine(item.myField);
            }
            Console.ReadKey();
        }
    }
}
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
using System;
 
//3.Напишите программу, в которой есть статический метод.Первым
//аргументом статическому методу передается целочисленный массив.Вторым
//аргументом статическому методу передается ссылка на другой метод.У
//метода - аргумента должен быть целочисленный аргумент, и он должен
//возвращать целочисленный результат.Результатом статический метод
//возвращает целочисленный массив. Элементы этого массива вычисляются
//как результат вызова метода-аргумента, если ему передавать значения
//элементов из массива - аргумента.Предложите механизм проверки
//функциональности данного статического метода.
namespace HW6
{
    delegate int Operation(int number);
 
    class Program
    {
        static void Main(string[] args)
        {
            var array = new int[] { 1, 2, 3 };
            Operation del = Mult10;
 
            foreach (var item in MyMethod(array, del))
            {
                Console.WriteLine(item);
            }
 
            Console.ReadKey();
        }
 
        static int[] MyMethod(int[] array, Operation del)
        {
            var count = array.Length;
            var result = new int[count];
            for (int i = 0; i < count; i++)
            {
                result[i] = del(array[i]);
            }
            return result;
        }
 
        static int Mult10(int number)
        {
            return number * 10;
        }
    }
}
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 11
18.10.2018, 11:25  [ТС] 3
Большое Вам спасибо)
0
18.10.2018, 11:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2018, 11:25
Помогаю со студенческими работами здесь

Создайте функцию с двумя аргументами
Дорого времени суток, помогите пожалуйста с задачами Создайте функцию с двумя аргументами....

Частная производная от функции с двумя аргументами
Как взять производную от функции только по х , не вводя значения другой переменной? Формула в конце

Определить функцию filter с двумя аргументами
Определить функцию filter с двумя аргументами. Функция работает как фильтр, который применяется для...

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


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

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