티스토리 뷰

C#/C# 강좌 Winform

Doridori C# 강의) 4.연산자 (Operator)

꼬꼬마도리도리 2018. 5. 27. 21:52

======================================================

안녕하세요 Doridori 입니다. 


이번강의는 연산자에 대해서 강의 하도록 하겠습니다. 


연산자 자체가 계산하는 내용이다 보니 예제도 계산기의 형태를 띄게 되었습니다. 


1강부터 반복되는 형태의 구문을 계속 사용하고 있는데 (Textbox에서 글자를 가져와서 변형 해서 사용하는 식) 계속 사용 해서 익숙 해 질 경우 다른 Control 들을 가지고도 자연스럽게 사용 할수 있습니다. 


화이팅!!


※ 항상 적는 내용인데 강의의 중반부 까지는 UI 작성에 대한 내용이니 노가다 작업이 귀찮으시면 Source UI를 받으셔서 UI 부분은 건너띄고 진행 하셔도 됩니다. 

(개인적으로는 UI그리는 방법도 익숙해지면 좋을것 같습니다.)

======================================================


연산자


Source UI) Study_4_Operator(UI).zip

Soruce 전체) Study_4_Operator.zip

교재) 4강 연산자(Operator).pdf




연산자의 경우 수식을 계산하거나 비교를 할때 항상 사용 하게 됨으로 어떤식으로 동작 하는 지 알아 두면 많은 도움이 됩니다. 


이진법, 이산수학을 배웠다면 쉽게 넘어가실수 있습니다. 


모른다고 하더라도 예제를 보면서 동작 하는 형식만 배워두면 필요 할 때 사용 하실 수 있습니다.

UI)

위에 있는 연산자들의 동작을 확인 하는 예제 입니다. 

필요에 의해서 Textbox들이 많아 졌는데 차근차근 따라 해보시면 이해가 될것이라고 생각 합니다.

소스 Code 및 내용)

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
        /// <summary>
        /// 프로그램의 진입점 입니다.
        /// </summary>
        public Form1()
        {
            InitializeComponent();
        }
 
        /// <summary>
        /// tboxResult의 Text가 변경 되었을 때의 Event 입니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tboxResult_TextChanged(object sender, EventArgs e)
        {
            tboxResultBit.Text = Convert.ToString(int.Parse(tboxResult.Text), 2);   // tboxResult에 적힌 문자를 2진수 숫자 형태로 변경 해서 tboxResultBit에 표시 합니다.
        }
 
 
        /// <summary>
        /// 화면에서 "<<" Button을 Click 했을 때 Event를 발생 시킵니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            int iResult = 0;
            int iTemp = int.Parse(tboxResult.Text);
            int iNumber = int.Parse(tboxNumber.Text);
 
            iResult = iTemp << iNumber;  // 해당 숫자를 iNumber 만큼 왼쪽으로 Shift 시킵니다. (숫자가 커짐) (Shift 되는 내용은 2진수 표시 부분으로 확인 합니다.)
            
            tboxResult.Text = iResult.ToString();
        }
 
        /// <summary>
        /// 화면에서 ">>" Button을 Click 했을 때 Event를 발생 시킵니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            int iResult = 0;
            int iTemp = int.Parse(tboxResult.Text);
            int iNumber = int.Parse(tboxNumber.Text);
 
            iResult = iTemp >> iNumber;  // 해당 숫자를 iNumber 만큼 오른쪽으로 Shift 시킵니다. (숫자가 작아짐) (Shift 되는 내용은 2진수 표시 부분으로 확인 합니다.)
 
            tboxResult.Text = iResult.ToString();
        }
 
        /// <summary>
        /// 화면에서 "++a" Button을 Click 했을 때 Event를 발생 시킵니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button8_Click(object sender, EventArgs e)
        {
            int iTemp = int.Parse(tboxResult.Text);
 
            tboxResult.Text = (++iTemp).ToString();   // 실행 되기 전 시점에 값을 +1 시킵니다. (tboxResult 와 tboxResultAfter 부분에서 증가 시점을 확인 합니다.)
            tboxResultAfter.Text = iTemp.ToString();
        }
 
        /// <summary>
        /// 화면에서 "a++" Button을 Click 했을 때 Event를 발생 시킵니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button7_Click(object sender, EventArgs e)
        {
            int iTemp = int.Parse(tboxResult.Text);
            
            //iTempTest++;
 
            tboxResult.Text = (iTemp++).ToString();  // 실행 된 후에 값을 +1 시킵니다. (tboxResult 와 tboxResultAfter 부분에서 증가 시점을 확인 합니다.)
            tboxResultAfter.Text = iTemp.ToString();
        }
 
        /// <summary>
        /// 화면에서 "+=" Button을 Click 했을 때 Event를 발생 시킵니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            int iTemp = int.Parse(tboxResult.Text);
            int iNumber = int.Parse(tboxNumber.Text);
 
            iTemp += iNumber;   // tboxResult 값에 tboxNumber 값을 더합니다. (iTemp = iTemp + iNumber; 와 동일 합니다.)
            
            tboxResult.Text = iTemp.ToString();
        }
 
        /// <summary>
        /// 화면에서 "-=" Button을 Click 했을 때 Event를 발생 시킵니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            int iTemp = int.Parse(tboxResult.Text);
            int iNumber = int.Parse(tboxNumber.Text);
 
            iTemp -= iNumber;   // tboxResult 값에 tboxNumber 값을 뺍니다. (iTemp = iTemp - iNumber; 와 동일 합니다.)
 
            tboxResult.Text = iTemp.ToString();
        }
 
        /// <summary>
        /// 화면에서 "&" Button을 Click 했을 때 Event를 발생 시킵니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button6_Click(object sender, EventArgs e)
        {
            int iTemp1 = int.Parse(tboxResult.Text);
            int iTemp2 = int.Parse(tboxResultAfter.Text);
            int iNumber = int.Parse(tboxNumber.Text);
 
            bool bResult = (iTemp1 > iNumber && iTemp2 > iNumber);   // tboxResult와 tboxResultAfter의의 값 모두 tboxNumber의 값보다 클 경우 True를 반환 합니다. (And 조건)
 
            tboxAndOr.Text = bResult.ToString();
        }
 
        /// <summary>
        /// 화면에서 "||" Button을 Click 했을 때 Event를 발생 시킵니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button5_Click(object sender, EventArgs e)
        {
            int iTemp1 = int.Parse(tboxResult.Text);
            int iTemp2 = int.Parse(tboxResultAfter.Text);
            int iNumber = int.Parse(tboxNumber.Text);
 
            bool bResult = (iTemp1 > iNumber || iTemp2 > iNumber);  // tboxResult와 tboxResultAfter의의 값중 하나라도 tboxNumber의 값보다 클 경우 True를 반환 합니다. (And 조건)
 
            tboxAndOr.Text = bResult.ToString();
        }
cs


강의)


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함