Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2012, 20:38   #1
alexander1994
 
Регистрация: 17.05.2012
Сообщений: 9
По умолчанию Расставить прослушиватели трассировки по тексту программы

Код:
namespace variant1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int op = 0;
        int res, i = 0, cond = 0;
        ArrayList summand = new ArrayList();
        private void button1_Click(object sender, EventArgs e)
        {
            cond = 1;//сложение
            condition(op, cond);
            op = 1;
        }
        private void button3_Click(object sender, EventArgs e)
        {
            cond = 2;//вычитание
            condition(op, cond);
            op = 2;
        }
        private void button6_Click(object sender, EventArgs e)
        {
            cond = 3;//умножение
            condition(op, cond);
            op = 3;
        }
        private void button7_Click(object sender, EventArgs e)
        {
            cond = 4;//деление
            condition(op, cond);
            op = 4;

        }
        private void button8_Click(object sender, EventArgs e)
        {
            //очистка
            summand.Clear();
            op = 0;
            textBox1.Text = "";
        }
        private void button4_Click(object sender, EventArgs e)
        {
            textBox1.Text = textBox1.Text + "0";//кнопка 0
        }
        private void button5_Click(object sender, EventArgs e)
        {
            textBox1.Text = textBox1.Text + "1";//кнопка 1
        }
        private void button2_Click(object sender, EventArgs e)
        {
            //знак равно
            result();
            count();
            summand.Add(Convert.ToInt32(textBox1.Text, 2));
        }
        void condition(int x, int y)//проверка условий
        {
            if (textBox1.Text != "")//не нажат ли знак операции при пустом значении поля ввода
            {
                result();
                if (x != 0 & x != y)//изменился ли знак операции
                {
                    count();
                    result();
                }
            }
        }
        
          void count()//вычисление
        {
            int[] arr = (int[])summand.ToArray(typeof(int));
            if (op == 1)
            {
                res = 0;
                for (i = summand.Count - 1; i > -1; i--)
                {
                    res = res + arr[i];
                }
            }
            if (op == 2)
            {
                res = arr[0];
                for (i = 1; i < summand.Count; i++)
                {
                    res = res - arr[i];
                }
            }
            if (op == 3)
            {
                for (i = 0; i < summand.Count - 1; i = i + 2)
                {
                    res = arr[i] / arr[i + 1];
                }
            }
            try
            {
                if (op == 4)
                {
                    res = arr[0];
                    for (i = 1; i < summand.Count; i++)
                    {
                        res = res / arr[i];
                    }
                }
                textBox1.Text = Convert.ToString(res, 2);
            }
            catch (OverflowException)
            {
                textBox1.Text = "";
                summand.Clear();
                MessageBox.Show("слишком большое значение");
            }
            summand.Clear();
            textBox1.Text = Convert.ToString(res, 2);
            op = 0;
        }


        void result()//запоминание значений
        {
            try
            {
                summand.Add(Convert.ToInt32(textBox1.Text, 2));
                textBox1.Text = "";
                
            }
            catch (OverflowException)
            {
                textBox1.Text = "";
                summand.Clear();
                MessageBox.Show("слишком большое значение");
            }
        }
            }

Последний раз редактировалось Stilet; 19.09.2012 в 20:45.
alexander1994 вне форума Ответить с цитированием
Старый 19.09.2012, 20:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Для чего?
Что прослушивать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод трассировки лучей обратный Rio309 Помощь студентам 0 13.12.2011 19:27
составить блок-схему по тексту программы Маюха Чайковская Помощь студентам 0 16.06.2011 00:37
Программа для просмотра логов трассировки xdebug Виталий Желтяков PHP 0 08.07.2010 22:43
Расставить пробелы dukesoteg Помощь студентам 0 10.06.2010 18:30
не получается скрин протокола трассировки готового кода серг Помощь студентам 0 19.02.2010 12:15