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

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

🟡 16:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
Статус: Offline
Реєстрація: 10.04.2011
Повідом.: 867
  • 🟡 16:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #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);


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

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

многократно повторять процесс ввода исходных данных и получения результата вычисления до ввода пользователем определенной строки символов, после чего завершить работу.
 
  • 🟡 16:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #4
ну перенеси 'do' перед 'Console.WriteLine("Калькулятор");' и будет то что ты хочешь, в с++ тоже самое должно было быть

и вместо 'break;' напиши 'continue;', 'break;' только в 's == 6' добавь
 
  • 🟡 16:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #5
ну перенеси 'do' перед 'Console.WriteLine("Калькулятор");' и будет то что ты хочешь, в с++ тоже самое должно было быть

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

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



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

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

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

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


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

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

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

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

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

На сколько это неправильно? =)
 
  • 🟡 16:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #14
Дабы не плодить темы пишу тут. Дилемма.

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

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

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

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

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

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

Можно я отвечу вопrосом на вопrос? Шо надо шоб получилось?
Если ты хочешь выебать однокурсницу - то такой подход очевидно неправильный. Если что-то другое - то надо знать что именно.
 
  • 🟡 16:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #15
Можно я отвечу вопrосом на вопrос?

Дерзай.

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

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

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

Угу. Но тут главное о жене не говорить и в институт поступить.
 
  • 🟡 16:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #16
Нужно с минимальными усилиями работать с "большим" количеством элементов и хотелось бы сократить количество строк кода.

И вот какой ответ ты хочешь получить?
Хочется - сокращай.
 
  • 🟡 16:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #17
  • 🟡 16:18 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #18
Попробую перефразировать? Единственно ли верный это способ работы с объектами на форме в коде? :(

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

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