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

Одновременное выполнение

26.12.2019, 18:28. Показов 1952. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, скажите пожалуйста как можно одновременно выполнить две операции
Например, вот
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
            int a = 5;
            int i = 0;
            int k = 0;
            double f = -1;
            double c = 0;
            string l;
            string v;
            while (a != 0)
            {
                a = Convert.ToInt32(Console.ReadLine());
                l = Console.ReadLine();
                v = ("end");
                if (l == v)
                {
                    Environment.Exit(0);
                }
                k = a;
                while (k > 0)
                {
                    if (k % 2 == 0)
                    {
                        i = k % 10;
                        f = f + 1;
                        c = c + i * Math.Pow(10, f);
                    }
                    k = k / 10;
                }
                Console.WriteLine(c);
            }
            Console.ReadKey();
Т.е. надо, чтобы а и l считывались одновременно, и чтобы l для проверки не оставляла пустую строку
Заранее благодарен
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2019, 18:28
Ответы с готовыми решениями:

Одновременное выполнение оператора if
Здравствуйте, господа. Есть код: if (AreAllAvailable("login.p1.worldoftanks.net")) ...

Одновременное выполнение всех циклов
Доброго времени суток! Имеется цикл, который определенное количесво раз выполняет одни и теже...

Как сделать одновременное выполнение методов/циклов?
Как сделать одновременное выполнение нескольких методов/циклов одновременно, и как сделать, чтобы...

Одновременное вычисление
Как сделать так чтобы 3 переменных обрабатывались в разных потоках(или как это сказать) class...

21
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
26.12.2019, 19:24 2
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
а и l считывались одновременно
C#
1
2
        l = Console.ReadLine();
        a = Convert.ToInt32(l);
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
l для проверки не оставляла пустую строку
C#
1
2
3
4
        do
        {
            l = Console.ReadLine();
        } while (l == "");
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 157
26.12.2019, 20:38  [ТС] 3
Дак l то string, а а int
0
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
26.12.2019, 20:44 4
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
Дак l то string, а а int
согласен, вопрос в другом, как вы себе представляете одновременное считывание не в коде, а со стороны пользователя ?
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 157
26.12.2019, 21:34  [ТС] 5
Цитата Сообщение от Enifan Посмотреть сообщение
со стороны пользователя
В смысле одновременное считывание со стороны пользователя?
0
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
26.12.2019, 21:43 6
CyberAnonim7, представьте что я пользователь, который впервые слышит слово "программирование", что от меня требуется, чтобы программа работала? например
1) ввожу цифру - что то там показывает
2) введу не цифру - программа сломается
3) введу "end" - программа закроется

А теперь представим что я хоть немного знаком с программирование, и хочу понять, что вы имеете ввиду под "выполнить 2 операции одновременно". Конечно как вариант - многопоточность, однако тут вопрос такой: "a (тип int) и l (тип string) считывались одновременно" - вот как это можно представить? Хоть со стороны пользователя, хоть со стороны кода ?
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 157
26.12.2019, 22:06  [ТС] 7
Т
Цитата Сообщение от Enifan Посмотреть сообщение
a (тип int) и l (тип string) считывались одновременно" - вот как это можно представить? Хоть со стороны пользователя, хоть со стороны кода ?
Т.е. одновременная проверка число это или фраза end
0
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
26.12.2019, 22:17 8
CyberAnonim7,
C#
1
2
3
4
5
6
7
        string l;
        int a;
 
        do
        {
            l = Console.ReadLine();
        } while (l != "end" & !int.TryParse(l, out a));
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 157
26.12.2019, 22:51  [ТС] 9
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
            int a = 5;
            int i = 0;
            int k = 0;
            double f = -1;
            double c = 0;
            string l;
            string v;
            while (a != 0)
            {
                do
                {
                    l = Console.ReadLine();
                }
                while (l != "exit" & !int.TryParse(l, out a));
 
                a = Convert.ToInt32(Console.ReadLine());
                v = ("exit");
                if (l == v)
                {
                    Environment.Exit(0);
                }
                k = a;
                while (k > 0)
                {
                    if (k % 2 == 0)
                    {
                        i = k % 10;
                        f = f + 1;
                        c = c + i * Math.Pow(10, f);
                    }
                    k = k / 10;
                }
                Console.WriteLine(c);
                c = 0;
                f = -1;
            }
            Console.ReadKey();
Т.е. вот, что получилось, но при этом результат c выдает только через раз, с остальным фрагментом команды все нормально можете даже не смотреть, т.к. до этого выполнялось все нормально
0
Модератор
Эксперт .NET
15470 / 10714 / 2788
Регистрация: 21.04.2018
Сообщений: 31,544
Записей в блоге: 2
27.12.2019, 11:00 10
Лучший ответ Сообщение было отмечено CyberAnonim7 как решение

Решение

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
            int a = 5;
            int i = 0;
            int k = 0;
            double f = -1;
            double c = 0;
            string l;
            string v = "exit";
            while (a != 0)
            {
                do
                {
                    l = Console.ReadLine();
                    if (l == v)
                   {
                        Environment.Exit(0);
                   }
                }
                while (!int.TryParse(l, out a));
 
              //  a = Convert.ToInt32(Console.ReadLine());
              //  v = ("exit");
 
                k = a;
                while (k > 0)
                {
                    if (k % 2 == 0)
                    {
                        i = k % 10;
                        f = f + 1;
                        c = c + i * Math.Pow(10, f);
                    }
                    k = k / 10;
                }
                Console.WriteLine(c);
                c = 0;
                f = -1;
            }
            Console.ReadKey();
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 157
27.12.2019, 16:48  [ТС] 11
И....... Ничего! Все тоже самое

Добавлено через 2 минуты
Что такое out (не надо скидывать ссылку на другие источники, обьясни сам пж)?
0
Модератор
Эксперт .NET
15470 / 10714 / 2788
Регистрация: 21.04.2018
Сообщений: 31,544
Записей в блоге: 2
27.12.2019, 17:53 12
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
Что такое out
Выходной параметр.
Используется тогда, когда надо вернуть больше одного значения.
Одно возвращает сам метод через return.
Остальные возвращаются через параметры out или ref.

Добавлено через 1 минуту
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
И....... Ничего! Все тоже самое
Объясните толком.
Что вы вводите, какое ожидаете поведение от программы и как она в действительности себя ведёт.
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 157
27.12.2019, 18:46  [ТС] 13
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Что вы вводите, какое ожидаете поведение от программы и как она в действительности себя ведёт.
...
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
Т.е. вот, что получилось, но при этом результат c выдает только через раз, с остальным фрагментом команды все нормально можете даже не смотреть, т.к. до этого выполнялось все нормально
0
Модератор
Эксперт .NET
15470 / 10714 / 2788
Регистрация: 21.04.2018
Сообщений: 31,544
Записей в блоге: 2
27.12.2019, 19:08 14
CyberAnonim7, конкретно покажите скрин консоли!
Я же не телепат, догадываться что вводите, и почему это не срабатывает.
По самому коду - косяков нет.
Поэтому проблема либо в некорректном вводе, либо не в этом участке кода.
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 157
27.12.2019, 20:07  [ТС] 15
https://www.youtube.com/watch?v=eIdVQSwvqxM
Миниатюры
Одновременное выполнение  
0
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
27.12.2019, 20:24 16
CyberAnonim7,
В вашем 1-ом коде вы вводите 2 значения, сперва строку, потом число - после этого программа начинает работать
Я же предложил вам вариант делать ввод данных только 1 раз, либо слово для выхода, либо число
В Посте №10 вам конкретно показали целую программу и закомментрировали 2-ой ввод данных для наглядности (намек на то, что он не нужен)
Вы же опять делаете ввод 2 раза и удивляетесь почему не работает (на вашем скриншоте 33 строка).
Что от нас хотите?
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 157
27.12.2019, 20:54  [ТС] 17
Тогда как а принимает значение?
0
Модератор
Эксперт .NET
15470 / 10714 / 2788
Регистрация: 21.04.2018
Сообщений: 31,544
Записей в блоге: 2
27.12.2019, 20:55 18
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
Тогда как а принимает значение?
C#
18
              while (!int.TryParse(l, out a));
Добавлено через 35 секунд
Пока не примет из цикла не будет выхода.
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 157
27.12.2019, 20:58  [ТС] 19
Цитата Сообщение от Элд Хасп Посмотреть сообщение
while (!int.TryParse
Это понятно: пока введенная строка не int
Цитата Сообщение от Элд Хасп Посмотреть сообщение
(l, out a))
А вот это? записывать в l иначе в a? или по-другому
0
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
27.12.2019, 21:01 20
CyberAnonim7, метод TryParse() пробует из строки сделать число. Если строку возможно спарсить - то в число записывается значение и метод возвращает true, если спарсить невозможно - то число так и остается без изменений а метод возвращает false.
TryParse(l, out a) - Попытка из строки l сделать число a
1
27.12.2019, 21:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2019, 21:01
Помогаю со студенческими работами здесь

Одновременное нажатие клавиш
Доброго времени суток. У меня такой вопрос - возможно ли как - то обрабатывать событие происходящее...

Копирование и одновременное переименование файла
Всем привет! Столкнулся с небольшой проблемкой. У меня на диске C в папке с названием "1" лежит...

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

Одновременное наследование от класса и интерфейса
Как я понял в C# нельзя наследовать от нескольких классов, только от нескольких интерфейсов. Но у...


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

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