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

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте, скажите пожалуйста как можно одновременно выполнить две операции
Например, вот
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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.12.2019, 18:28
Ответы с готовыми решениями:

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

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

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

21
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
26.12.2019, 19:24
Цитата Сообщение от 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
Сообщений: 158
26.12.2019, 20:38  [ТС]
Дак l то string, а а int
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
26.12.2019, 20:44
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
Дак l то string, а а int
согласен, вопрос в другом, как вы себе представляете одновременное считывание не в коде, а со стороны пользователя ?
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 158
26.12.2019, 21:34  [ТС]
Цитата Сообщение от Enifan Посмотреть сообщение
со стороны пользователя
В смысле одновременное считывание со стороны пользователя?
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
26.12.2019, 21:43
CyberAnonim7, представьте что я пользователь, который впервые слышит слово "программирование", что от меня требуется, чтобы программа работала? например
1) ввожу цифру - что то там показывает
2) введу не цифру - программа сломается
3) введу "end" - программа закроется

А теперь представим что я хоть немного знаком с программирование, и хочу понять, что вы имеете ввиду под "выполнить 2 операции одновременно". Конечно как вариант - многопоточность, однако тут вопрос такой: "a (тип int) и l (тип string) считывались одновременно" - вот как это можно представить? Хоть со стороны пользователя, хоть со стороны кода ?
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 158
26.12.2019, 22:06  [ТС]
Т
Цитата Сообщение от Enifan Посмотреть сообщение
a (тип int) и l (тип string) считывались одновременно" - вот как это можно представить? Хоть со стороны пользователя, хоть со стороны кода ?
Т.е. одновременная проверка число это или фраза end
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
26.12.2019, 22:17
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
Сообщений: 158
26.12.2019, 22:51  [ТС]
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
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
27.12.2019, 11:00
Лучший ответ Сообщение было отмечено 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
Сообщений: 158
27.12.2019, 16:48  [ТС]
И....... Ничего! Все тоже самое

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

Добавлено через 1 минуту
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
И....... Ничего! Все тоже самое
Объясните толком.
Что вы вводите, какое ожидаете поведение от программы и как она в действительности себя ведёт.
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 158
27.12.2019, 18:46  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Что вы вводите, какое ожидаете поведение от программы и как она в действительности себя ведёт.
...
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
Т.е. вот, что получилось, но при этом результат c выдает только через раз, с остальным фрагментом команды все нормально можете даже не смотреть, т.к. до этого выполнялось все нормально
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
27.12.2019, 19:08
CyberAnonim7, конкретно покажите скрин консоли!
Я же не телепат, догадываться что вводите, и почему это не срабатывает.
По самому коду - косяков нет.
Поэтому проблема либо в некорректном вводе, либо не в этом участке кода.
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 158
27.12.2019, 20:07  [ТС]
https://www.youtube.com/watch?v=eIdVQSwvqxM
Миниатюры
Одновременное выполнение  
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
27.12.2019, 20:24
CyberAnonim7,
В вашем 1-ом коде вы вводите 2 значения, сперва строку, потом число - после этого программа начинает работать
Я же предложил вам вариант делать ввод данных только 1 раз, либо слово для выхода, либо число
В Посте №10 вам конкретно показали целую программу и закомментрировали 2-ой ввод данных для наглядности (намек на то, что он не нужен)
Вы же опять делаете ввод 2 раза и удивляетесь почему не работает (на вашем скриншоте 33 строка).
Что от нас хотите?
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 158
27.12.2019, 20:54  [ТС]
Тогда как а принимает значение?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
27.12.2019, 20:55
Цитата Сообщение от CyberAnonim7 Посмотреть сообщение
Тогда как а принимает значение?
C#
18
              while (!int.TryParse(l, out a));
Добавлено через 35 секунд
Пока не примет из цикла не будет выхода.
0
2 / 2 / 0
Регистрация: 31.05.2019
Сообщений: 158
27.12.2019, 20:58  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
while (!int.TryParse
Это понятно: пока введенная строка не int
Цитата Сообщение от Элд Хасп Посмотреть сообщение
(l, out a))
А вот это? записывать в l иначе в a? или по-другому
0
 Аватар для Enifan
1848 / 1190 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
27.12.2019, 21:01
CyberAnonim7, метод TryParse() пробует из строки сделать число. Если строку возможно спарсить - то в число записывается значение и метод возвращает true, если спарсить невозможно - то число так и остается без изменений а метод возвращает false.
TryParse(l, out a) - Попытка из строки l сделать число a
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.12.2019, 21:01
Помогаю со студенческими работами здесь

Одновременное вычисление
Как сделать так чтобы 3 переменных обрабатывались в разных потоках(или как это сказать) class Program{ public static n1=0; public...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru