Змінюй хід війни! Допомагай ЗСУ!

Вопросы по C шарп

🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
Статус: Offline
Реєстрація: 10.04.2011
Повідом.: 867
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #1
Вопросы по C шарп

Возникло несколько проблем. Правильно ли я использую do While.
И есть ли в C# что-то похожее от функции в getch(); в С++. Я в С++ ставил бесконечный цикл перед выбором варианта меню и getch(); после всего меню и можно было многократно повторять процесс ввода. Например выбрал "пенкт 2" посчитал и дальше могу выбрать другой пункт.
Как это сделать на Шарпе?

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Lab1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Калькулятор");
           

            Console.WriteLine("1.Опервция <->");
            Console.WriteLine("2.Операция <+>");
            Console.WriteLine("3.Операция </>");
            Console.WriteLine("4.Операция <*>");
            Console.WriteLine("5.Exp");
            Console.WriteLine("6.Выход");

            Console.WriteLine("Выберите операцию");
          int s = Convert.ToInt32(Console.ReadLine());

            do
            {
                if(s==1)
                    {
                        Console.WriteLine("Введите A=");
                        int a = Convert.ToInt32(Console.ReadLine());
                        Console.WriteLine("Введите B=");
                        int b = Convert.ToInt32(Console.ReadLine());
                        double c = a - b;
                        Console.WriteLine(a+"-"+b+"="+c);
                        break;

                    }
                if(s==2)
                    {
                        Console.WriteLine("Введите A=");
                        int a = Convert.ToInt32(Console.ReadLine());
                        Console.WriteLine("Введите B=");
                        int b = Convert.ToInt32(Console.ReadLine());
                        double c = a + b;
                        Console.WriteLine(a+"+"+b+"="+c);
                        break;
                    }
                if(s==3)
                    {
                        Console.WriteLine("Введите A=");
                        double a = Convert.ToDouble(Console.ReadLine());
                        Console.WriteLine("Введите B=");
                        int b = Convert.ToInt32(Console.ReadLine());         
                        double c = a / b;
                        Console.WriteLine(a+"/"+b+"="+c);
                        break;
                    }
                if(s==4)
                    {
                        Console.WriteLine("Введите A=");
                        int a = Convert.ToInt32(Console.ReadLine());
                        Console.WriteLine("Введите B=");
                       int b = Convert.ToInt32(Console.ReadLine());
                       double c = a * b;
                        Console.WriteLine(a+"*"+b+"="+c);
                        break;
                    }
               if(s==5)
                    {
                        Console.WriteLine("Операция Exp(x)");
                        Console.WriteLine("Введите X=");
                        double x = Convert.ToDouble(Console.ReadLine());
                        Console.WriteLine("Ответ=" + Math.Exp(x));
                        break;
                    }
               if (s == 6)
               {
                   
               }
            }while(s<7);


        }
    }
}
 
Останнє редагування:
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #2
если ничего не путаю гетч это что-то типа паузы до нажатия клавиши, вместо него можешь использовать Console.ReadKey() а дальше тебя эмоции захлестнули я не понимаю что ты хочешь, похоже что просто в цикл нужно переместить выбор пунта и получится то что хочешь
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #3
если ничего не путаю гетч это что-то типа паузы до нажатия клавиши, вместо него можешь использовать Console.ReadKey() а дальше тебя эмоции захлестнули я не понимаю что ты хочешь, похоже что просто в цикл нужно переместить выбор пунта и получится то что хочешь

Сейчас у меня так: выбрал например операцию "2", все там выполнил и с программы выходит. А мне нужно после выполнения какой-то операции, оно не выходило, а я мог выбрать например операцию "3" или еще что-то, и так выбирать пока не захочу выйти.
Может я не понятно объясняю, вот скопировал с задания:

многократно повторять процесс ввода исходных данных и получения результата вычисления до ввода пользователем определенной строки символов, после чего завершить работу.
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #4
ну перенеси 'do' перед 'Console.WriteLine("Калькулятор");' и будет то что ты хочешь, в с++ тоже самое должно было быть

и вместо 'break;' напиши 'continue;', 'break;' только в 's == 6' добавь
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #5
ну перенеси 'do' перед 'Console.WriteLine("Калькулятор");' и будет то что ты хочешь, в с++ тоже самое должно было быть

и вместо 'break;' напиши 'continue;', 'break;' только в 's == 6' добавь

Спасибо. Просто я раньше Ду Вайл не использовал. И на первом курсе не сильно учил С++, теперь стал стараться, приходится что не знал доучивать.



Еще вопрос как сделать что очищать только прошлую операцию, а меню оставалось? А то я дописал Console.Clear(); Перед "Введите А".
 
Останнє редагування:
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #6
разница между циклами for while и do_while с точки зрения синтаксиса только в том когда проверяется условие нужна ли следующая итерация: понимаешь как работает любой из циклов - понимаешь как работают все

косяк у тебя в брейке вместо континью, почитай тчо значат эти операторы

Еще вопрос как сделать что очищать только прошлую операцию, а меню оставалось? А то я дописал Console.Clear(); Перед "Введите А".
думаю никак, напиши все заново
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #7
думаю ты перепутал "if" со "switch/case" тогда break'и были бы к месту
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #8
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #9
Еще вопрос как сделать что очищать только прошлую операцию, а меню оставалось? А то я дописал Console.Clear(); Перед "Введите А".
Позицией курсора можно произвольно управлять.
Но для лаб это может быть слишком. Наверно, не стоит смущать препода.

Вообще идешь в гугл. Оттуда на мсдн, например. И там всё есть
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


И у тебя половина кода одни и те же 4 строки.
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #10
А если мне после запятой нужно заполнить нулями, как это сделать?
Я использовал Math.Round(c, f); f-кол-во знаков после запятой. с - результат операции.
При умножении например 2*3=ответ 6, а мне нужно писать 6,000 например.
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #11
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #12
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #13
Дабы не плодить темы пишу тут. Дилемма.

1. Есть кнопки (штук 10) на форме (WinForms).

2. В классе формы объявляю массив кнопок.

3. Каждому элементу массива присваиваю кнопку формы (получается ссылка на объект кнопки)

4. При помощи циклов задаю свойства элементам массива, соответственно, на форме тоже воспроизводятся внесенные изменения свойств.

На сколько это неправильно? =)
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #14
Дабы не плодить темы пишу тут. Дилемма.

1. Есть кнопки (штук 10) на форме (WinForms).

2. В классе формы объявляю массив кнопок.

3. Каждому элементу массива присваиваю кнопку формы (получается ссылка на объект кнопки)

4. При помощи циклов задаю свойства элементам массива, соответственно, на форме тоже воспроизводятся внесенные изменения свойств.

На сколько это неправильно? =)

Задаем правильные вопросы - получаем правильные ответы.

Можно я отвечу вопrосом на вопrос? Шо надо шоб получилось?
Если ты хочешь выебать однокурсницу - то такой подход очевидно неправильный. Если что-то другое - то надо знать что именно.
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #15
Можно я отвечу вопrосом на вопrос?

Дерзай.

Шо надо шоб получилось?

Нужно с минимальными усилиями работать с "большим" количеством элементов и хотелось бы сократить количество строк кода.

Если ты хочешь выебать однокурсницу - то такой подход очевидно неправильный.

Угу. Но тут главное о жене не говорить и в институт поступить.
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #16
Нужно с минимальными усилиями работать с "большим" количеством элементов и хотелось бы сократить количество строк кода.

И вот какой ответ ты хочешь получить?
Хочется - сокращай.
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #17
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #18
Попробую перефразировать? Единственно ли верный это способ работы с объектами на форме в коде? :(

А с какой целью кнопки формы создаются в массиве?
Если планируется потом их искать, удалять, добавлять новые - это верный ход.
Но если они статичны - может просто накидать их в дизайнере рукой на форму и пусть валяются? Строк кода не уменьшится, но их будешь генерировать не ты.

P>S. Понимаешь почему тебе постоянно задают вопрос "что ті хочешь сделать"?
Тут же нет гадалок, за гадалками в єзотерику.
Любіе контролы можно хранить в коллекциях, и я слышал мнение, что єто правильно.
 
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #19
  • 🟢 03:08 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #20
Назад
Зверху Знизу