Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 25.09.2012, 19:39   #1
Заблокирован
 Разведчик
Аватар для Awesome kiss
 
Awesome kiss на правильном путиAwesome kiss на правильном пути
Регистрация: 09.07.2012
Сообщений: 8
Популярность: 149
Сказал(а) спасибо: 21
Поблагодарили 42 раз(а) в 37 сообщениях
 
По умолчанию Консольный калькулятор с помощью цикла do - while

Приветствую всех !
Начал я изучать C# , добрался до цикла do - while , и сделал свое первое творение

И так , представляю вашему вниманию консольный калькулятор :

[Ссылки могут видеть только зарегистрированные пользователи. ]
Делал с помощью урока , коментил от себя , прошу строго не судить Если есть ошибки то говорите
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace doWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            bool quit = false; // Объявление переменной и присваивание её значение false
            bool flag = false;
            float first = 0;// Объявление переменной и присваевание ей значения 0
            float second = 0;// Объявление переменной и присваевание ей значения 0
            char operation = '\0'; // Объявление оператора 

            Console.WriteLine(); // Отступ


            Console.ForegroundColor = ConsoleColor.DarkGreen; // Изменение цвета инструкции
            Console.WriteLine("+ : сложение чисел "); // Инструкция
            Console.WriteLine("- : разница чисел "); // Инструкция
            Console.WriteLine("* : умножение чисел "); // Инструкция
            Console.WriteLine("/ : деление чисел "); // Инструкция
            Console.WriteLine("q : выход из программы"); // Инструкция
            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.Green; // Изменение цвета 
        
            do // Действие цикла
            {
               try // Делаем то что в блоке , если же не получаеться то переходим в catch
               {
               Console.Write("Введите первое число : "); // Вывод на консоль
                   first = float.Parse(Console.ReadLine()); // Выбор первого числа
                Console.Write("Введите второе число : ");// Вывод на консоль
                   second = float.Parse(Console.ReadLine());//  Выбор второго числа

                   Console.Write("Укажите операцию : "); // Вывод на консоль

                   operation = char.Parse(Console.ReadLine()); // Выбор операции

                       
               }
                catch
               {
                   flag = true;
                   Console.ForegroundColor = ConsoleColor.Red; // Изменение цвета консоли в данном блоке
                    Console.WriteLine("\aВнимательно читайте инструкцию");//Вывод на консоль
                   Console.ForegroundColor = ConsoleColor.Green; // Возвращаем цвет 
                }
            if(!flag) // значение true
            switch (operation) // Оператор switch

            {
                case '+' : Console.WriteLine ("Сумма чисел составляет : "+ (first   +  second)); break;// Сложение чисел
                case '-' : Console.WriteLine ("Разница числе составляет : "+ (first - second)); break;//  Разность чисел
                case '*' : Console.WriteLine ("Произведение чисел составляет : "+ first * second); break;// Произведение
                case '/' : Console.WriteLine ("Деление числе составляет : "+ first / second); break;// Деление
                case 'q' : quit = true ; break; // Выход из программы
                default:
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("\aВнимательно читайте инструкцию"); 
                        Console.ForegroundColor = ConsoleColor.Green;
                        break; // Если не выполняються выше перечисленные операции то выводиться на консоль предупреждение.
                       
                    
                    }
                }
            flag = false; // Возвращение значения false

            
            
            
            
            }
         while (!quit); // Выход
            
            }
   
    }
}
[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось Awesome kiss; 25.09.2012 в 19:43.
  Ответить с цитированием
Пользователь сказал cпасибо:
R.A.Z.O.R. (25.09.2012)
Старый 25.09.2012, 21:22   #2
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Цитата:
Сообщение от Awesome kissПосмотреть сообщение
case 'q' : quit = true ; break; // Выход из программы

case 'q' : return;
так вроде проще =)
  Ответить с цитированием
Старый 25.09.2012, 21:27   #3
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Цитата:
Сообщение от SinyssПосмотреть сообщение
case 'q' : return;
так вроде проще =)

посмотри внимательно зачем нужен флаг "quit".
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 25.09.2012, 22:29   #4
Заблокирован
 Разведчик
Аватар для Awesome kiss
 
Awesome kiss на правильном путиAwesome kiss на правильном пути
Регистрация: 09.07.2012
Сообщений: 8
Популярность: 149
Сказал(а) спасибо: 21
Поблагодарили 42 раз(а) в 37 сообщениях
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Цитата:
Сообщение от NickiteeПосмотреть сообщение
посмотри внимательно зачем нужен флаг "quit".

А можно как нибудь уменьшить код ?
  Ответить с цитированием
Старый 25.09.2012, 22:40   #5
 Разведчик
Аватар для Буянь
 
Буянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражания
Регистрация: 05.03.2011
Сообщений: 20
Популярность: 1883
Сказал(а) спасибо: 13
Поблагодарили 44 раз(а) в 36 сообщениях
Отправить сообщение для Буянь с помощью Skype™
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Даже в консоль умудряются запихнуть свистелки и перделки D:
  Ответить с цитированием
Старый 26.09.2012, 00:50   #6
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Цитата:
Сообщение от NickiteeПосмотреть сообщение
посмотри внимательно зачем нужен флаг "quit".

А он и не надо... просто использовать
do {...}
while(true);

Добавлено через 20 минут
Переделал код, удалены переменные: flag, quit. А также if. Сохранена работоспособность... Написал коменты в измененных частях...
Код:
            do
            {
                try
                {
                    Console.Write("Введите первое число : ");
                    first = float.Parse(Console.ReadLine());
                    Console.Write("Введите второе число : ");
                    second = float.Parse(Console.ReadLine());
                    Console.Write("Укажите операцию : ");
                    operation = char.Parse(Console.ReadLine());
                }
                catch
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\aВнимательно читайте инструкцию");
                    Console.ForegroundColor = ConsoleColor.Green;
                    continue; // переходит к while(), пропускает весь код до него. 
                }
                switch (operation)
                {
                    case '+': Console.WriteLine("Сумма чисел составляет : " + (first + second)); break;
                    case '-': Console.WriteLine("Разница числе составляет : " + (first - second)); break;
                    case '*': Console.WriteLine("Произведение чисел составляет : " + first * second); break;
                    case '/': Console.WriteLine("Деление числе составляет : " + first / second); break;
                    case 'q': return; // Выход из программы
                    default:
                        {
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("\aВнимательно читайте инструкцию");
                            Console.ForegroundColor = ConsoleColor.Green;
                            break;
                        }
                }

            }
            while (true); // Выход

Последний раз редактировалось Sinyss; 26.09.2012 в 01:11. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 01.10.2012, 19:48   #7
,,,,
 Командор
Аватар для Skilful
 
Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(
Регистрация: 08.05.2011
Сообщений: 752
Популярность: 18860
Золото Zhyk.Ru: 8
Сказал(а) спасибо: 383
Поблагодарили 1,069 раз(а) в 448 сообщениях
Отправить сообщение для Skilful с помощью ICQ Отправить сообщение для Skilful с помощью Skype™
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Sinyss, в вашем коде "калькулятор" закрывается после завершения действия. ( по мойму не удобно). А вот в коде из первого поста он будет закрыт только после нажатия "q".

Вообще не удобные калькуляторы
  Ответить с цитированием
Старый 01.10.2012, 20:05   #8
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 346 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Ну зачем все так усложнять
Можно же написать калкулятор уравнений
[Ссылки могут видеть только зарегистрированные пользователи. ]
Подключаем к проекту библиотеку Microsoft.JScript
[Ссылки могут видеть только зарегистрированные пользователи. ]
А потом пишем 20 строк кода
Код:
using System;
using Microsoft.JScript;
using Microsoft.JScript.Vsa;

class Program
{
    static void Main()
    {
        while (true)
        {
            Console.Write("Введите уравнение: ");
            try
            {
                var res = Eval.JScriptEvaluate(Console.ReadLine(), VsaEngine.CreateEngine());
                Console.WriteLine("Ответ: " + res);
            }
            catch { Console.WriteLine("Ошибка"); }
        }
    }
}
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон

Последний раз редактировалось FreePVP))); 01.10.2012 в 20:19.
  Ответить с цитированием
Старый 01.10.2012, 20:16   #9
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Цитата:
Сообщение от SkilfulПосмотреть сообщение
Sinyss, в вашем коде "калькулятор" закрывается после завершения действия. ( по мойму не удобно). А вот в коде из первого поста он будет закрыт только после нажатия "q".

У вас что то со зрением....
Цитата:
Сообщение от SkilfulПосмотреть сообщение
Вообще не удобные калькуляторы

Потому что они не для этого предназначены...
  Ответить с цитированием
Старый 01.10.2012, 20:25   #10
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 346 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Цитата:
Сообщение от SinyssПосмотреть сообщение
Потому что они не для этого предназначены...

А для чего еще нужны калькуляторы, если не для удобных вычислений?
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Старый 01.10.2012, 20:27   #11
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Цитата:
Сообщение от FreePVP)))Посмотреть сообщение
А для чего еще нужны калькуляторы, если не для удобных вычислений?

для сдачи лабораторной =)
  Ответить с цитированием
Старый 03.10.2012, 15:29   #12
Заблокирован
 Разведчик
Аватар для Awesome kiss
 
Awesome kiss на правильном путиAwesome kiss на правильном пути
Регистрация: 09.07.2012
Сообщений: 8
Популярность: 149
Сказал(а) спасибо: 21
Поблагодарили 42 раз(а) в 37 сообщениях
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Цитата:
Сообщение от FreePVP)))Посмотреть сообщение
Ну зачем все так усложнять
Можно же написать калкулятор уравнений
[Ссылки могут видеть только зарегистрированные пользователи. ]
Подключаем к проекту библиотеку Microsoft.JScript
[Ссылки могут видеть только зарегистрированные пользователи. ]
А потом пишем 20 строк кода
Код:
using System;
using Microsoft.JScript;
using Microsoft.JScript.Vsa;

class Program
{
    static void Main()
    {
        while (true)
        {
            Console.Write("Введите уравнение: ");
            try
            {
                var res = Eval.JScriptEvaluate(Console.ReadLine(), VsaEngine.CreateEngine());
                Console.WriteLine("Ответ: " + res);
            }
            catch { Console.WriteLine("Ошибка"); }
        }
    }
}

Для меня это сложно , я делал с помощью того что понимаю
  Ответить с цитированием
Старый 26.12.2012, 15:12   #13
 Разведчик
Аватар для zheka-zh
 
zheka-zh никому не известный тип
Регистрация: 11.11.2011
Сообщений: 19
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Awesome kiss, ну в принципе да, способ компактней, но я считаю, что не все этого поймут. =)
________________
  Ответить с цитированием
Старый 26.12.2012, 15:43   #14
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Цитата:
Сообщение от zheka-zhПосмотреть сообщение
Awesome kiss, ну в принципе да, способ компактней, но я считаю, что не все этого поймут. =)

Подключаем библиотеку, юзаем оттуда функцию...
Это даже проще чем написать запрос в "тюрягу".
  Ответить с цитированием
Старый 27.12.2012, 17:14   #15
 Разведчик
Аватар для zheka-zh
 
zheka-zh никому не известный тип
Регистрация: 11.11.2011
Сообщений: 19
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Консольный калькулятор с помощью цикла do - while

Sinyss, ахах, ну в принципе да, только вот такие функции не описываются во всех книгах), их надо знать))) Кстати я где-то видел подобное, только не через JScript, по моему еще даже легче =)
________________

Последний раз редактировалось zheka-zh; 27.12.2012 в 17:20.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] {NEW}<<Консольный инжектор от (((FrOcSimO)))>> (((FrOcSimO))) Скрипты и прочий софт для Point Blank 16 04.12.2011 19:14
[Руководство] Дюп с цикла. DRAG1327 Читы, баги и статьи по WoW 5 31.10.2011 06:12
[Помогите!] [C#] Использование цикла FireBlock Вопросы и ответы, обсуждения 2 23.08.2011 19:31
[Помогите!] выход из цикла blad56 Вопросы и ответы, обсуждения 2 12.07.2011 19:00

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 06:04.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net