diff --git a/20_Task/M1/20_Function/FunctionForm.pas b/20_Task/M1/20_Function/FunctionForm.pas
index f9f7a4d..cf210d4 100644
--- a/20_Task/M1/20_Function/FunctionForm.pas
+++ b/20_Task/M1/20_Function/FunctionForm.pas
@@ -32,6 +32,8 @@ TForm2 = class(TForm)
¹Ýȯ°ª: ¹®ÀÚ¿(¸Þ½ÃÁö)
(2-2) ÇÔ¼ö ¼±¾ð ÈÄ Ctrl + Shift + C¸¦ ´·¯ ±¸ÇöºÎ »ý¼º
}
+ function GetUserInfoMsg(AName: string; AAge: Integer; Sex: Boolean): string; // GetUserInfoMsg ÇÔ¼ö ¼±¾ð
+
public
// ´Ù¸¥ À¯´Ö¿¡¼ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â º¯¼ö¿Í ÇÔ¼ö ¼±¾ð
end;
@@ -53,6 +55,12 @@ function TForm2.GetNameMsg(AName: string): string;
Result := Msg;
end;
+function TForm2.GetUserInfoMsg(AName: string; AAge: Integer;
+ Sex: Boolean): string;
+begin
+
+end;
+
function TForm2.GetAgeMsg(AName: string; AAge: Integer): string;
var
Msg, Adult: string;
@@ -66,7 +74,7 @@ function TForm2.GetAgeMsg(AName: string; AAge: Integer): string;
¹®ÀÚ¿°ú º¯¼ö¸¦ Á¶ÇÕ(´õÇϱâ) Çϼ¼¿ä.
Á¤¼ö´Â ¹®ÀÚ·Î º¯È¯(IntToStr)Çϼ¼¿ä.
}
-
+// Msg := (AName)´ÔÀº (AAge)¼¼·Î (¼ºÀÎ/¹Ì¼º³â)ÀÔ´Ï´Ù.
Result := Msg;
end;
diff --git a/20_Task/M1/shinsunghoon/10_Variable/VariableForm.dfm b/20_Task/M1/shinsunghoon/10_Variable/VariableForm.dfm
new file mode 100644
index 0000000..7008051
--- /dev/null
+++ b/20_Task/M1/shinsunghoon/10_Variable/VariableForm.dfm
@@ -0,0 +1,53 @@
+object Form1: TForm1
+ Left = 0
+ Top = 0
+ Caption = #48320#49688#49324#50857' '#49892#49845' '#50696#51228
+ ClientHeight = 144
+ ClientWidth = 267
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ OldCreateOrder = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 24
+ Top = 24
+ Width = 47
+ Height = 13
+ Caption = #49707#51088' '#51077#47141
+ end
+ object Label2: TLabel
+ Left = 24
+ Top = 77
+ Width = 58
+ Height = 13
+ Caption = #49707#51088#46308#51032' '#54633
+ end
+ object edtNum: TEdit
+ Left = 24
+ Top = 43
+ Width = 121
+ Height = 21
+ TabOrder = 0
+ end
+ object Button1: TButton
+ Left = 143
+ Top = 41
+ Width = 75
+ Height = 25
+ Caption = #51077#47141'(*)'
+ TabOrder = 1
+ OnClick = Button1Click
+ end
+ object edtSum: TEdit
+ Left = 24
+ Top = 96
+ Width = 121
+ Height = 21
+ TabOrder = 2
+ end
+end
diff --git a/20_Task/M1/10_Variable/VariableForm.pas b/20_Task/M1/shinsunghoon/10_Variable/VariableForm.pas
similarity index 76%
rename from 20_Task/M1/10_Variable/VariableForm.pas
rename to 20_Task/M1/shinsunghoon/10_Variable/VariableForm.pas
index ce9d2fe..a1631d3 100644
--- a/20_Task/M1/10_Variable/VariableForm.pas
+++ b/20_Task/M1/shinsunghoon/10_Variable/VariableForm.pas
@@ -2,6 +2,8 @@
interface
+// ±êÇã±× Å×½ºÆ®
+
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
@@ -18,6 +20,7 @@ TForm1 = class(TForm)
// ÀÌ Æû(À¯´Ö)¿¡¼¸¸ »ç¿ëÇÏ´Â º¯¼ö¿Í ÇÔ¼ö¸¦ ¼±¾ð
{ TODO : (1) Á¤¼ö Çü FSum º¯¼ö¸¦ ¼±¾ðÇϼ¼¿ä. }
+ FSum : Integer; //Á¤¼öÇü º¯¼ö ¼±¾ð
function AddNum(ANum: Integer): Integer;
public
@@ -36,7 +39,9 @@ function TForm1.AddNum(ANum: Integer): Integer;
{ TODO :
(2) FSum º¯¼ö¿¡ ÆÄ¶ó¸ÞÅÍ ANum °ªÀ» ´õÇÕ´Ï´Ù.
FSum º¯¼ö ¹Ýȯ }
- Result := 0;
+ FSum := FSum + ANum; //FSum º¯¼ö¿¡ ½×±â
+
+ Result := FSum; //¹Ýȯ°ª
end;
procedure TForm1.Button1Click(Sender: TObject);
diff --git a/20_Task/M1/10_Variable/VariableSample.dpr b/20_Task/M1/shinsunghoon/10_Variable/VariableSample.dpr
similarity index 100%
rename from 20_Task/M1/10_Variable/VariableSample.dpr
rename to 20_Task/M1/shinsunghoon/10_Variable/VariableSample.dpr
diff --git a/20_Task/M1/10_Variable/VariableSample.dproj b/20_Task/M1/shinsunghoon/10_Variable/VariableSample.dproj
similarity index 100%
rename from 20_Task/M1/10_Variable/VariableSample.dproj
rename to 20_Task/M1/shinsunghoon/10_Variable/VariableSample.dproj
diff --git a/20_Task/M1/shinsunghoon/10_Variable/VariableSample.res b/20_Task/M1/shinsunghoon/10_Variable/VariableSample.res
new file mode 100644
index 0000000..fba455b
Binary files /dev/null and b/20_Task/M1/shinsunghoon/10_Variable/VariableSample.res differ
diff --git a/20_Task/M1/shinsunghoon/20_Function/FunctionForm.dfm b/20_Task/M1/shinsunghoon/20_Function/FunctionForm.dfm
new file mode 100644
index 0000000..f12ec91
--- /dev/null
+++ b/20_Task/M1/shinsunghoon/20_Function/FunctionForm.dfm
@@ -0,0 +1,96 @@
+object Form2: TForm2
+ Left = 0
+ Top = 0
+ Caption = #54632#49688#49324#50857' '#49892#49845' '#50696#51228
+ ClientHeight = 196
+ ClientWidth = 285
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ OldCreateOrder = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 24
+ Top = 24
+ Width = 22
+ Height = 13
+ Caption = #51060#47492
+ end
+ object Label2: TLabel
+ Left = 24
+ Top = 77
+ Width = 22
+ Height = 13
+ Caption = #45208#51060
+ end
+ object Label3: TLabel
+ Left = 24
+ Top = 133
+ Width = 22
+ Height = 13
+ Caption = #49457#48324
+ end
+ object edtName: TEdit
+ Left = 24
+ Top = 43
+ Width = 121
+ Height = 21
+ TabOrder = 0
+ end
+ object Button1: TButton
+ Left = 151
+ Top = 41
+ Width = 75
+ Height = 25
+ Caption = #51064#49324#47568' '#54364#49884
+ TabOrder = 1
+ OnClick = Button1Click
+ end
+ object edtAge: TEdit
+ Left = 24
+ Top = 96
+ Width = 121
+ Height = 21
+ TabOrder = 2
+ end
+ object Button2: TButton
+ Left = 151
+ Top = 94
+ Width = 90
+ Height = 25
+ Caption = #49457#51064#50668#48512' '#54869#51064
+ TabOrder = 3
+ OnClick = Button2Click
+ end
+ object Button3: TButton
+ Left = 151
+ Top = 148
+ Width = 90
+ Height = 25
+ Caption = #49457#48324' '#54869#51064
+ TabOrder = 4
+ OnClick = Button3Click
+ end
+ object rdoMan: TRadioButton
+ Left = 24
+ Top = 152
+ Width = 49
+ Height = 17
+ Caption = #45224#51088
+ Checked = True
+ TabOrder = 5
+ TabStop = True
+ end
+ object rdoWoman: TRadioButton
+ Left = 79
+ Top = 152
+ Width = 49
+ Height = 17
+ Caption = #50668#51088
+ TabOrder = 6
+ end
+end
diff --git a/20_Task/M1/shinsunghoon/20_Function/FunctionForm.pas b/20_Task/M1/shinsunghoon/20_Function/FunctionForm.pas
new file mode 100644
index 0000000..0ca2a93
--- /dev/null
+++ b/20_Task/M1/shinsunghoon/20_Function/FunctionForm.pas
@@ -0,0 +1,170 @@
+unit FunctionForm;
+/////////////////////////////////// ³ªÀÌ ÀԷ¾ÈÇҽà ¿¡·¯ /////////////////////////////
+interface
+
+uses
+ Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
+ Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
+
+type
+ TForm2 = class(TForm)
+ Label1: TLabel;
+ edtName: TEdit;
+ Button1: TButton;
+ edtAge: TEdit;
+ Label2: TLabel;
+ Button2: TButton;
+ Label3: TLabel;
+ Button3: TButton;
+ rdoMan: TRadioButton;
+ rdoWoman: TRadioButton;
+ procedure Button1Click(Sender: TObject);
+ procedure Button2Click(Sender: TObject);
+ procedure Button3Click(Sender: TObject);
+ private
+ // ÀÌ Æû(À¯´Ö)¿¡¼ »ç¿ëÇÏ´Â º¯¼ö¿Í ÇÔ¼ö¸¦ ¼±¾ð
+ function GetNameMsg(AName: string): string;
+
+ function GetAgeMsg(AName: string; AAge: Integer): string;
+ { TODO :
+ (2-1) GetUserInfoMsg ÇÔ¼ö¸¦ ¼±¾ð
+ ÆÄ¶ó¸ÞÅÍ: À̸§(¹®ÀÚ), ³ªÀÌ(¼ýÀÚ), ³²ÀÚ¿©ºÎ(Boolean)
+ ¹Ýȯ°ª: ¹®ÀÚ¿(¸Þ½ÃÁö)
+ (2-2) ÇÔ¼ö ¼±¾ð ÈÄ Ctrl + Shift + C¸¦ ´·¯ ±¸ÇöºÎ »ý¼º
+ }
+ function GetUserInfoMsg(AName: string; AAge: Integer; AIsMan: Boolean): string; //¼ºº°±¸ºÐ ÇÔ¼ö ¼±¾ð
+
+ public
+ // ´Ù¸¥ À¯´Ö¿¡¼ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â º¯¼ö¿Í ÇÔ¼ö ¼±¾ð
+ end;
+
+var
+ Form2: TForm2;
+
+implementation
+
+{$R *.dfm}
+
+function TForm2.GetNameMsg(AName: string): string; //À̸§ ÇÔ¼ö ±¸ÇöºÎ
+var
+ Msg: string; //¸Þ½ÃÁö º¯¼ö ¼±¾ð
+begin
+ Msg := '¹Ý°©½À´Ï´Ù. '; //Àλ縻 ¸Þ½ÃÁö
+ Msg := Msg + AName + '´Ô'; //
+
+ Result := Msg; //¹Ýȯ°ª
+end;
+
+function TForm2.GetUserInfoMsg(AName: string; AAge: Integer; //¼ºº°È®ÀÎ ÇÔ¼ö ±¸ÇöºÎ
+ AIsMan: Boolean): string;
+var
+ Msg, Gender: string; //¸Þ½ÃÁö, ¼ºº° º¯¼ö ¼±¾ð
+begin
+{ TODO :
+ (2-2) GetUserInfoMsg ÇÔ¼öÀÇ ±¸ÇöºÎ¿¡´Â
+ Àλ縻 + ¼ºÀο©ºÎ È®ÀÎ + ¼ºº°È®ÀÎ ¸Þ½ÃÁö¸¦ ¹ÝȯÇϵµ·Ï ÀÛ¼ºÇϼ¼¿ä.
+ ÀÌ¹Ì ±¸ÇöµÈ GetNameMsg, GetAgeMsg µîÀ» Àç»ç¿ëÇϼ¼¿ä.
+}
+ Msg := GetAgeMsg(AName,AAge); //ÇÔ¼ö È£Ãâ
+ Msg := Msg + #13#10; //ÁٹٲÞ
+
+ if AIsMan then //¼ºº°È®ÀÎ Á¶°Ç¹®
+ Gender := '³²ÀÚ' //
+ else //
+ Gender := '¿©ÀÚ'; //
+
+ Msg := Msg + AName + '´ÔÀº ' + Gender + 'ÀÔ´Ï´Ù.'; //¼ºº°È®ÀÎ ¸Þ½ÃÁö
+
+ Result := Msg; //¹Ýȯ°ª
+end;
+
+function TForm2.GetAgeMsg(AName: string; AAge: Integer): string;
+var
+ Msg, Adult: string;
+begin
+ Msg := GetNameMsg(AName); // Àλ縻 Ç¥½Ã´Â Àç»ç¿ë
+ Msg := Msg + #13#10; // ÇÑÁÙ ³»·Á¾²±â(Àϸí ij¸®Áö¸®ÅÏ)
+
+{ TODO :
+ (1) Msg º¯¼ö¿¡ '(AName)´ÔÀº (AAge)¼¼·Î (¼ºÀÎ/¹Ì¼º³â)ÀÔ´Ï´Ù.' ¸Þ½ÃÁö Ãß°¡
+ if ¹®À» ÀÌ¿ëÇØ 20¼¼ ÀÌ»ó(>=)ÀÎ °æ¿ì ¼ºÀÎÀ¸·Î ÆÇ´Ü
+ ¹®ÀÚ¿°ú º¯¼ö¸¦ Á¶ÇÕ(´õÇϱâ) Çϼ¼¿ä.
+ Á¤¼ö´Â ¹®ÀÚ·Î º¯È¯(IntToStr)Çϼ¼¿ä.
+ }
+ if AAge >= 20 then //¼ºÀο©ºÎ Á¶°Ç¹®
+ Adult := '¼ºÀÎ' //
+ else //
+ Adult := '¹Ì¼º³â'; //
+
+ Msg := Msg + AName + '´ÔÀº ' + IntToStr(AAge) + '¼¼·Î ' + Adult + 'ÀÔ´Ï´Ù.'; //¼ºÀο©ºÎ È®ÀÎ ¸Þ½ÃÁö
+
+ Result := Msg; //¹Ýȯ°ª
+end;
+
+procedure TForm2.Button1Click(Sender: TObject);
+var
+ Name, Msg: string;
+begin
+ Name := edtName.Text;
+
+ Msg := GetNameMsg(Name);
+
+ ShowMessage(Msg);
+end;
+
+procedure TForm2.Button2Click(Sender: TObject);
+var
+ Name, Msg: string;
+ Age: Integer;
+begin
+ Name := edtName.Text;
+
+ if edtAge.Text = '' then //³ªÀÌÈ®ÀÎ Á¶°Ç¹®
+ begin //³ªÀ̾ÈÀûÀ»½Ã ¿¡·¯Ã³¸®
+ showmessage('³ªÀ̸¦ ÀÔ·ÂÇϼ¼¿ä.');
+ exit ;
+ end
+ else
+ begin
+ Age := StrToInt(edtAge.Text);
+
+ Msg := GetAgeMsg(Name, Age);
+
+ ShowMessage(Msg);
+ end;
+end;
+
+procedure TForm2.Button3Click(Sender: TObject);
+var
+ Name, Msg: string;
+ Age: Integer;
+ IsMan: Boolean;
+begin
+ Name := edtName.Text;
+ //³ªÀÌÈ®ÀÎ Á¶°Ç¹®
+ if edtAge.Text = '' then //³ªÀ̾ÈÀûÀ»½Ã ¿¡·¯Ã³¸®
+ begin
+ showmessage('³ªÀ̸¦ ÀÔ·ÂÇϼ¼¿ä.');
+ exit ;
+ end
+ else
+ begin
+ Age := StrToInt(edtAge.Text); //³ªÀÌ ¾øÀ»½Ã ¿¡·¯
+ IsMan := rdoMan.Checked;
+ { TODO :
+ (2) Àλ縻 + ¼ºÀο©ºÎ È®ÀÎ + ¼ºº°È®ÀÎ ¸Þ½ÃÁö¸¦
+ ¹ÝȯÇÏ´Â ÇÔ¼ö(GetUserInfoMsg)¸¦ ÀÛ¼ºÇϼ¼¿ä
+ Msg := GetUserInfoMsg(Name, Age, IsMan);
+ }
+
+ Msg := GetUserInfoMsg(Name, Age, IsMan); //º¯¼ö¿¡ ÇÔ¼ö¸¦ È£ÃâÇØ »ðÀÔ.
+
+ ShowMessage(Msg);
+
+
+ end;
+
+end;
+
+
+end.
diff --git a/20_Task/M1/20_Function/FunctionSample.dpr b/20_Task/M1/shinsunghoon/20_Function/FunctionSample.dpr
similarity index 100%
rename from 20_Task/M1/20_Function/FunctionSample.dpr
rename to 20_Task/M1/shinsunghoon/20_Function/FunctionSample.dpr
diff --git a/20_Task/M1/20_Function/FunctionSample.dproj b/20_Task/M1/shinsunghoon/20_Function/FunctionSample.dproj
similarity index 100%
rename from 20_Task/M1/20_Function/FunctionSample.dproj
rename to 20_Task/M1/shinsunghoon/20_Function/FunctionSample.dproj
diff --git a/20_Task/M1/20_Function/FunctionSample.res b/20_Task/M1/shinsunghoon/20_Function/FunctionSample.res
similarity index 100%
rename from 20_Task/M1/20_Function/FunctionSample.res
rename to 20_Task/M1/shinsunghoon/20_Function/FunctionSample.res
diff --git a/20_Task/M1/30_Array/ArrayForm.dfm b/20_Task/M1/shinsunghoon/30_Array/ArrayForm.dfm
similarity index 100%
rename from 20_Task/M1/30_Array/ArrayForm.dfm
rename to 20_Task/M1/shinsunghoon/30_Array/ArrayForm.dfm
diff --git a/20_Task/M1/30_Array/ArrayForm.pas b/20_Task/M1/shinsunghoon/30_Array/ArrayForm.pas
similarity index 56%
rename from 20_Task/M1/30_Array/ArrayForm.pas
rename to 20_Task/M1/shinsunghoon/30_Array/ArrayForm.pas
index c495570..0eeeda0 100644
--- a/20_Task/M1/30_Array/ArrayForm.pas
+++ b/20_Task/M1/shinsunghoon/30_Array/ArrayForm.pas
@@ -15,7 +15,7 @@ TForm3 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
- FNumArr: array[0..9] of Integer;
+ FNumArr: array[0..9] of Integer; //[1,2,3,4,5,6,7,8,9,10] ÃÑ 10°³ÀÇ ¹è¿ »ý¼º
procedure InitArray;
function GetArraySum: Integer;
@@ -42,8 +42,8 @@ procedure TForm3.InitArray;
I: Integer;
begin
// ¹è¿(FNumArr)ÀÇ ±æÀ̸¸Å ¹Ýº¹Çϸç ÀÓÀÇÀÇ °ª(1~100)À» ¼³Á¤
- for I := 0 to Length(FNumArr) - 1 do
- FNumArr[I] := Random(100);
+ for I := 0 to Length(FNumArr) - 1 do //º¯¼ö := (ÃʱⰪ) to ¹è¿ - 1
+ FNumArr[I] := Random(100); //For¹®À» ÅëÇØ ¹è¿¿¡ 0~100Áß 1°³¾¿ »ðÀÔ
end;
procedure TForm3.Button1Click(Sender: TObject);
@@ -64,6 +64,8 @@ procedure TForm3.Button1Click(Sender: TObject);
(1) for ¹®À» ÀÌ¿ëÇØ ¹è¿ÀÇ ³»¿ëÀ» Ãâ·ÂÇϼ¼¿ä.
¹è¿ÀÇ Å©±â º¯°æµÇµµ µ¿ÀÛÇϵµ·Ï ¹Ýº¹ÀÇ ³¡Àº Length(FNumArr) - 1·Î ¼³Á¤
¿¹> for I := 0 to Length(FNumArr) - 1 do }
+ for I := 0 to Length(FNumArr) - 1 do //
+ Memo1.Lines.Add('- ' + IntToStr(FNumArr[I])); //For¹®À» ÅëÇØ ¹è¿À» ¸Þ¸ð¿¡ 1°³¾¿ Ãâ·Â
Memo1.Lines.Add('¹è¿ÀÇ ÇÕÀº ' + IntToStr(Sum) + ' ÀÔ´Ï´Ù.');
Memo1.Lines.Add('¹è¿ÀÇ ÃÖ´ë°ªÀº ' + IntToStr(MaxNum) + ' ÀÔ´Ï´Ù.');
@@ -75,8 +77,10 @@ function TForm3.GetArraySum: Integer;
begin
Sum := 0;
{ TODO : (2) for ¹®À» ÀÌ¿ëÇØ ¹è¿ÀÇ °ªÀ» ¸ðµÎ ´õÇØ ¹ÝȯÇϵµ·Ï ±¸Çö }
+ for I := 0 to Length(FNumArr) -1 do //
+ Sum := Sum + (FNumArr[I]); //For¹®À» ÅëÇØ Sumº¯¼ö¿¡ ¹è¿À» ´õÇÏ¸ç ½×±â
- Result := Sum;
+ Result := Sum; //¹Ýȯ°ª
end;
function TForm3.GetArrayMaxNum: Integer;
@@ -87,14 +91,16 @@ function TForm3.GetArrayMaxNum: Integer;
{ TODO :
(3) for ¹®À» ÀÌ¿ëÇØ ¹è¿ÀÇ °ª Áß °¡Àå Å« °ªÀ» ¹ÝȯÇϵµ·Ï ±¸Çö
if ¹®À» ÀÌ¿ëÇØ ¼ýÀÚ¸¦ ºñ±³ }
+ for I := 0 to Length(FNumArr) -1 do //¹è¿¾ÈÀÇ ¼ýÀÚ¸¦ Çϳª¾¿ ºñ±³
+ if MaxNum <= FNumArr[I] then //ÃÖ´ë°ª Á¶°Ç¹®
+ MaxNum := FNumArr[I]; //
Result := MaxNum;
end;
procedure TForm3.Button2Click(Sender: TObject);
var
- I,
- CountOver, CountUnder: Integer;
+ I, CountOver, CountUnder: Integer;
begin
CountOver := 0;
CountUnder := 0;
@@ -103,9 +109,13 @@ procedure TForm3.Button2Click(Sender: TObject);
50 ÀÌ»ó(>=)ÀÎ °æ¿ì CountOver 1 Áõ°¡
50 ¹Ì¸¸(<)ÀÎ °æ¿ì CountUnder 1 Áõ°¡ Çϵµ·Ï ±¸Çö
}
-
+ for I := 0 to Length(FNumArr) -1 do //
+ if FNumArr[I] >= 50 then //50ÀÌ»ó ¹Ì¸¸ Á¶°Ç¹®
+ Inc(CountOver) //Inc(º¯¼ö) = 1¾¿ Áõ°¡ÇÑ´Ù.
+ else //
+ Inc(CountUnder); //
+
Memo1.Lines.Add('50 ÀÌ»óÀÎ ¼öÀÇ °¹¼ö: ' + IntToStr(CountOver));
Memo1.Lines.Add('50 ¹Ì¸¸ÀÎ ¼öÀÇ °¹¼ö: ' + IntToStr(CountUnder));
end;
-
end.
diff --git a/20_Task/M1/30_Array/ArraySample.dpr b/20_Task/M1/shinsunghoon/30_Array/ArraySample.dpr
similarity index 100%
rename from 20_Task/M1/30_Array/ArraySample.dpr
rename to 20_Task/M1/shinsunghoon/30_Array/ArraySample.dpr
diff --git a/20_Task/M1/30_Array/ArraySample.dproj b/20_Task/M1/shinsunghoon/30_Array/ArraySample.dproj
similarity index 100%
rename from 20_Task/M1/30_Array/ArraySample.dproj
rename to 20_Task/M1/shinsunghoon/30_Array/ArraySample.dproj
diff --git a/20_Task/M1/30_Array/ArraySample.res b/20_Task/M1/shinsunghoon/30_Array/ArraySample.res
similarity index 100%
rename from 20_Task/M1/30_Array/ArraySample.res
rename to 20_Task/M1/shinsunghoon/30_Array/ArraySample.res
diff --git a/20_Task/M1/DelphiStudyGroup.groupproj b/20_Task/M1/shinsunghoon/DelphiStudyGroup.groupproj
similarity index 100%
rename from 20_Task/M1/DelphiStudyGroup.groupproj
rename to 20_Task/M1/shinsunghoon/DelphiStudyGroup.groupproj
diff --git a/20_Task/M2/Calculator.dpr b/20_Task/M2/Calculator.dpr
new file mode 100644
index 0000000..d5a8f48
--- /dev/null
+++ b/20_Task/M2/Calculator.dpr
@@ -0,0 +1,17 @@
+program Calculator;
+
+uses
+ Vcl.Forms,
+ UCalculator in 'UCalculator.pas' {Form1},
+ Vcl.Themes,
+ Vcl.Styles;
+
+{$R *.res}
+
+begin
+ Application.Initialize;
+ Application.MainFormOnTaskbar := True;
+ TStyleManager.TrySetStyle('Auric');
+ Application.CreateForm(TForm1, Form1);
+ Application.Run;
+end.
diff --git a/20_Task/M2/Calculator.dproj b/20_Task/M2/Calculator.dproj
new file mode 100644
index 0000000..35841ba
--- /dev/null
+++ b/20_Task/M2/Calculator.dproj
@@ -0,0 +1,621 @@
+
+
+ {3E7FF7F4-93EB-4625-911F-43C8A056852D}
+ 18.6
+ VCL
+ Calculator.dpr
+ True
+ Release
+ Win32
+ 1
+ Application
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Cfg_1
+ true
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Cfg_2
+ true
+ true
+
+
+ .\$(Platform)\$(Config)
+ .\$(Platform)\$(Config)
+ false
+ false
+ false
+ false
+ false
+ System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)
+ $(BDS)\bin\delphi_PROJECTICON.ico
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
+ Calculator
+ Amakrits|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Amakrits.vsf;"Amethyst Kamri|VCLSTYLE|$(BDSCOMMONDIR)\Styles\AmethystKamri.vsf";"Aqua Graphite|VCLSTYLE|$(BDSCOMMONDIR)\Styles\AquaGraphite.vsf";"Aqua Light Slate|VCLSTYLE|$(BDSCOMMONDIR)\Styles\AquaLightSlate.vsf";Auric|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Auric.vsf;Carbon|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Carbon.vsf;"Charcoal Dark Slate|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CharcoalDarkSlate.vsf";"Cobalt XEMedia|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CobaltXEMedia.vsf";"Cyan Dusk|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CyanDusk.vsf";"Cyan Night|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CyanNight.vsf";"Emerald Light Slate|VCLSTYLE|$(BDSCOMMONDIR)\Styles\EmeraldLightSlate.vsf";Glossy|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Glossy.vsf;Glow|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Glow.vsf;"Golden Graphite|VCLSTYLE|$(BDSCOMMONDIR)\Styles\GoldenGraphite.vsf";"Iceberg Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\IcebergClassico.vsf";"Lavender Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\LavenderClassico.vsf";Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Light.vsf;Luna|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Luna.vsf;"Metropolis UI Black|VCLSTYLE|$(BDSCOMMONDIR)\Styles\MetropolisUIBlack.vsf";"Metropolis UI Blue|VCLSTYLE|$(BDSCOMMONDIR)\Styles\MetropolisUIBlue.vsf";"Metropolis UI Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\MetropolisUIDark.vsf";"Metropolis UI Green|VCLSTYLE|$(BDSCOMMONDIR)\Styles\MetropolisUIGreen.vsf";Obsidian|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Obsidian.vsf;"Onyx Blue|VCLSTYLE|$(BDSCOMMONDIR)\Styles\OnyxBlue.vsf";"Ruby Graphite|VCLSTYLE|$(BDSCOMMONDIR)\Styles\RubyGraphite.vsf";"Sapphire Kamri|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SapphireKamri.vsf";Silver|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Silver.vsf;Sky|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Sky.vsf;"Slate Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SlateClassico.vsf";"Smokey Quartz Kamri|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SmokeyQuartzKamri.vsf";"Tablet Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TabletLight.vsf";TabletDark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TabletDark.vsf;"Turquoise Gray|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TurquoiseGray.vsf";Windows10|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10.vsf;"Windows10 Blue|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Blue.vsf";"Windows10 Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Dark.vsf";"Windows10 Green|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Green.vsf";"Windows10 Purple|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Purple.vsf";"Windows10 SlateGray|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10SlateGray.vsf"
+
+
+ DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;ibxbindings;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
+ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
+ Debug
+ true
+ CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
+ 1033
+ $(BDS)\bin\default_app.manifest
+
+
+ DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;ibxbindings;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
+
+
+ DEBUG;$(DCC_Define)
+ true
+ false
+ true
+ true
+ true
+
+
+ false
+ true
+ PerMonitorV2
+ true
+ 1033
+
+
+ false
+ RELEASE;$(DCC_Define)
+ 0
+ 0
+
+
+ true
+ PerMonitorV2
+
+
+
+ MainSource
+
+
+
+ dfm
+
+
+ Cfg_2
+ Base
+
+
+ Base
+
+
+ Cfg_1
+ Base
+
+
+
+ Delphi.Personality.12
+ Application
+
+
+
+ Calculator.dpr
+
+
+ Embarcadero C++Builder Office 2000 Servers Package
+ Embarcadero C++Builder Office XP Servers Package
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+
+
+
+
+
+ Calculator.exe
+ true
+
+
+
+
+ 1
+
+
+ Contents\MacOS
+ 1
+
+
+ 0
+
+
+
+
+ classes
+ 1
+
+
+
+
+ res\xml
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ library\lib\armeabi
+ 1
+
+
+
+
+ library\lib\mips
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ res\drawable
+ 1
+
+
+
+
+ res\values
+ 1
+
+
+
+
+ res\values-v21
+ 1
+
+
+
+
+ res\drawable
+ 1
+
+
+
+
+ res\drawable-xxhdpi
+ 1
+
+
+
+
+ res\drawable-ldpi
+ 1
+
+
+
+
+ res\drawable-mdpi
+ 1
+
+
+
+
+ res\drawable-hdpi
+ 1
+
+
+
+
+ res\drawable-xhdpi
+ 1
+
+
+
+
+ res\drawable-small
+ 1
+
+
+
+
+ res\drawable-normal
+ 1
+
+
+
+
+ res\drawable-large
+ 1
+
+
+
+
+ res\drawable-xlarge
+ 1
+
+
+
+
+ 1
+
+
+ Contents\MacOS
+ 1
+
+
+ 0
+
+
+
+
+ Contents\MacOS
+ 1
+ .framework
+
+
+ Contents\MacOS
+ 1
+ .framework
+
+
+ 0
+
+
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ 0
+ .dll;.bpl
+
+
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ 0
+ .bpl
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ Contents\Resources\StartUp\
+ 0
+
+
+ Contents\Resources\StartUp\
+ 0
+
+
+ 0
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\
+ 1
+
+
+ ..\
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+
+
+ ..\
+ 1
+
+
+ ..\
+ 1
+
+
+
+
+ Contents
+ 1
+
+
+ Contents
+ 1
+
+
+
+
+ Contents\Resources
+ 1
+
+
+ Contents\Resources
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ Contents\MacOS
+ 1
+
+
+ Contents\MacOS
+ 1
+
+
+ 0
+
+
+
+
+ 1
+
+
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ False
+
+
+ 12
+
+
+
+
+
diff --git a/20_Task/M2/Calculator.dproj.local b/20_Task/M2/Calculator.dproj.local
new file mode 100644
index 0000000..5df0110
--- /dev/null
+++ b/20_Task/M2/Calculator.dproj.local
@@ -0,0 +1,13 @@
+
+
+
+ 1899-12-30 00:00:00.000.545,C:\Users\sinwn\OneDrive\바탕 화면\계산기\UCalculator.dfm=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Unit1.dfm
+ 1899-12-30 00:00:00.000.873,=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Unit1.pas
+ 1899-12-30 00:00:00.000.689,=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Unit1.pas
+ 1899-12-30 00:00:00.000.545,C:\Users\sinwn\OneDrive\바탕 화면\계산기\UCalculator.pas=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Unit1.pas
+ 1899-12-30 00:00:00.000.197,C:\Users\sinwn\OneDrive\바탕 화면\계산기\Calculator.dproj=C:\Users\sinwn\OneDrive\문서\Embarcadero\Studio\Projects\Project1.dproj
+
+
+
+
+
diff --git a/20_Task/M2/Calculator.identcache b/20_Task/M2/Calculator.identcache
new file mode 100644
index 0000000..54c7889
Binary files /dev/null and b/20_Task/M2/Calculator.identcache differ
diff --git a/20_Task/M2/Calculator.res b/20_Task/M2/Calculator.res
new file mode 100644
index 0000000..8d40fec
Binary files /dev/null and b/20_Task/M2/Calculator.res differ
diff --git a/20_Task/M2/Calculator.stat b/20_Task/M2/Calculator.stat
new file mode 100644
index 0000000..511d204
--- /dev/null
+++ b/20_Task/M2/Calculator.stat
@@ -0,0 +1,10 @@
+[Stats]
+EditorSecs=38257
+DesignerSecs=1470
+InspectorSecs=680
+CompileSecs=275333
+OtherSecs=861
+StartTime=2019-07-02 ¿ÀÈÄ 10:37:54
+RealKeys=0
+EffectiveKeys=0
+DebugSecs=17265
diff --git a/20_Task/M2/UCalculator.dfm b/20_Task/M2/UCalculator.dfm
new file mode 100644
index 0000000..3903268
--- /dev/null
+++ b/20_Task/M2/UCalculator.dfm
@@ -0,0 +1,334 @@
+object Form1: TForm1
+ Left = 0
+ Top = 0
+ BorderStyle = bsSingle
+ Caption = #44228#49328#44592
+ ClientHeight = 444
+ ClientWidth = 260
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel: TPanel
+ Left = 0
+ Top = 0
+ Width = 260
+ Height = 444
+ Align = alClient
+ Color = clWhite
+ ParentBackground = False
+ TabOrder = 0
+ object Btn_Num1: TButton
+ Tag = 1
+ Left = 3
+ Top = 153
+ Width = 60
+ Height = 70
+ Caption = '1'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 0
+ OnClick = Btn_Num1Click
+ end
+ object Edit1: TEdit
+ Left = 3
+ Top = 5
+ Width = 246
+ Height = 70
+ BiDiMode = bdLeftToRight
+ BorderStyle = bsNone
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -27
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ MaxLength = 10
+ NumbersOnly = True
+ ParentBiDiMode = False
+ ParentFont = False
+ TabOrder = 1
+ OnKeyDown = Edit1KeyDown
+ end
+ object Btn_Num2: TButton
+ Tag = 2
+ Left = 65
+ Top = 153
+ Width = 60
+ Height = 70
+ Caption = '2'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 2
+ OnClick = Btn_Num1Click
+ end
+ object Btn_Num3: TButton
+ Tag = 3
+ Left = 126
+ Top = 153
+ Width = 60
+ Height = 70
+ Caption = '3'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ OnClick = Btn_Num1Click
+ end
+ object Btn_Num4: TButton
+ Tag = 4
+ Left = 3
+ Top = 225
+ Width = 60
+ Height = 70
+ Caption = '4'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 4
+ OnClick = Btn_Num1Click
+ end
+ object Btn_Num5: TButton
+ Tag = 5
+ Left = 65
+ Top = 225
+ Width = 60
+ Height = 70
+ Caption = '5'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 5
+ OnClick = Btn_Num1Click
+ end
+ object Btn_Num6: TButton
+ Tag = 6
+ Left = 127
+ Top = 225
+ Width = 60
+ Height = 70
+ Caption = '6'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 6
+ OnClick = Btn_Num1Click
+ end
+ object Btn_Num7: TButton
+ Tag = 7
+ Left = 3
+ Top = 297
+ Width = 60
+ Height = 70
+ Caption = '7'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 7
+ OnClick = Btn_Num1Click
+ end
+ object Btn_Num8: TButton
+ Tag = 8
+ Left = 65
+ Top = 297
+ Width = 60
+ Height = 70
+ Caption = '8'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clAqua
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 8
+ OnClick = Btn_Num1Click
+ end
+ object Btn_Num9: TButton
+ Tag = 9
+ Left = 127
+ Top = 297
+ Width = 60
+ Height = 70
+ Caption = '9'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 9
+ OnClick = Btn_Num1Click
+ end
+ object Btn_Num0: TButton
+ Tag = 10
+ Left = 3
+ Top = 369
+ Width = 60
+ Height = 70
+ Caption = '0'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 10
+ OnClick = Btn_Num1Click
+ end
+ object Btn_Dot: TButton
+ Left = 65
+ Top = 369
+ Width = 60
+ Height = 70
+ Caption = '.'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 11
+ OnClick = Btn_DotClick
+ end
+ object Btn_Result: TButton
+ Left = 127
+ Top = 369
+ Width = 60
+ Height = 70
+ Caption = '='
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 12
+ OnClick = Btn_ResultClick
+ end
+ object Btn_Sum: TButton
+ Tag = 11
+ Left = 189
+ Top = 153
+ Width = 60
+ Height = 70
+ Caption = '+'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 13
+ OnClick = Btn_SumClick
+ end
+ object Btn_Sub: TButton
+ Tag = 12
+ Left = 189
+ Top = 225
+ Width = 60
+ Height = 70
+ Caption = '-'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 14
+ OnClick = Btn_SubClick
+ end
+ object Btn_Mul: TButton
+ Tag = 13
+ Left = 189
+ Top = 297
+ Width = 60
+ Height = 70
+ Caption = '*'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 15
+ OnClick = Btn_SumClick
+ end
+ object Btn_Div: TButton
+ Tag = 14
+ Left = 189
+ Top = 369
+ Width = 60
+ Height = 70
+ Caption = '/'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 16
+ OnClick = Btn_SumClick
+ end
+ object Btn_CE: TButton
+ Left = 189
+ Top = 81
+ Width = 60
+ Height = 70
+ Caption = 'CE'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 17
+ OnClick = Btn_CEClick
+ end
+ object Btn_BackSpace: TButton
+ Left = 127
+ Top = 81
+ Width = 60
+ Height = 70
+ BiDiMode = bdLeftToRight
+ Caption = 'C'
+ DoubleBuffered = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWhite
+ Font.Height = -20
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentBiDiMode = False
+ ParentDoubleBuffered = False
+ ParentFont = False
+ TabOrder = 18
+ end
+ end
+end
diff --git a/20_Task/M2/UCalculator.pas b/20_Task/M2/UCalculator.pas
new file mode 100644
index 0000000..5291c56
--- /dev/null
+++ b/20_Task/M2/UCalculator.pas
@@ -0,0 +1,249 @@
+unit UCalculator;
+
+interface
+
+uses
+ Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
+ Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
+
+type
+ TForm1 = class(TForm)
+ Btn_Num1: TButton;
+ Btn_Num2: TButton;
+ Btn_Num3: TButton;
+ Btn_Num4: TButton;
+ Btn_Num5: TButton;
+ Btn_Num6: TButton;
+ Btn_Num7: TButton;
+ Btn_Num8: TButton;
+ Btn_Num9: TButton;
+ Btn_Num0: TButton;
+ Btn_Dot: TButton;
+ Btn_Result: TButton;
+ Btn_Sum: TButton;
+ Btn_Sub: TButton;
+ Btn_Mul: TButton;
+ Btn_Div: TButton;
+ Btn_CE: TButton;
+ Btn_BackSpace: TButton;
+ Edit1: TEdit;
+ Panel: TPanel;
+ procedure Btn_Num1Click(Sender: TObject);
+ procedure Btn_SumClick(Sender: TObject);
+ procedure Btn_ResultClick(Sender: TObject);
+ procedure Btn_CEClick(Sender: TObject);
+ procedure Btn_DotClick(Sender: TObject);
+ procedure Btn_SubClick(Sender: TObject);
+ function Add( Num1 , Num2 : Real) : Extended; Overload;
+ procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); //°è»ê½Ä
+
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ Form1: TForm1;
+ Num1, Num2 : Real;
+ Str : Integer;
+ //Str(¿¬»êÀÚ)
+ Dot_Check, Sub_Check, Oper_Check, Cal_Check: Boolean;
+ //Dot_Check(.ÀÌÁßŬ¸¯ È®ÀÎ), Oper_Check(¿¬»êÀÚ ÀÌÁßŬ¸¯), Sub_Check(À½¼ö È®ÀÎ)
+ Max : String;
+ //Edit1.MaxLength
+
+implementation
+
+{$R *.dfm}
+procedure TForm1.Btn_CEClick(Sender: TObject); //¸ðµÎ ¸®¼Â
+begin
+ Edit1.Text := '';
+ Num1 := 0;
+ Num2 := 0;
+ Str := 0;
+ Dot_Check := False;
+ Sub_Check := False;
+ Max := '';
+end;
+
+procedure TForm1.Btn_DotClick(Sender: TObject);
+begin
+ if (Edit1.Text = '') Or (Edit1.Text = '-') then //(Erroró¸®) ¼ýÀÚ ¾øÀÌ "." Ŭ¸¯
+ begin
+ ShowMessage('¼ýÀÚ¸¦ ¸ÕÀú ÀÔ·ÂÇϼ¼¿ä.');
+ Exit;
+ end;
+ if Dot_Check = False then //(Erroró¸®) "." ÀÌÁßŬ¸¯
+ begin
+ Edit1.Text := Edit1.Text + (Sender as TButton).Caption;
+ Dot_Check := True;
+ end
+ else
+ Showmessage('. ´Â 1¹ø¸¸ ÀÔ·ÂÇϼ¼¿ä.');
+end;
+
+procedure TForm1.Btn_Num1Click(Sender: TObject);
+begin
+ if Max = '1111111111' then //Edit1.MaxLength
+ begin
+ ShowMessage('ÀԷ¹üÀ§¸¦ ÃʰúÇÏ¿´½À´Ï´Ù.');
+ Exit;
+ end;
+
+ if Cal_Check then // " = " ÀÌÈÄ ¼ýÀÚ ÀÔ·Â
+ begin
+ Edit1.Text := '';
+ Cal_Check := False;
+ end;
+ Edit1.Text := Edit1.Text + (Sender as TButton).Caption; //¼ýÀÚ ÀÔ·Â
+ Oper_Check := False; //(Erroró¸®)¿¬»êÀÚ 2¹øÅ¬¸¯½Ã
+
+ Max := Max + '1'; //Edit1.MaxLength
+ Edit1.SetFocus;
+end;
+
+procedure TForm1.Btn_ResultClick(Sender: TObject); //°á°ú
+begin
+ try
+ Num1 := StrToFloat(Edit1.Text); //ù¼ýÀÚ ÀúÀå
+ if Str <> 0 then
+ begin
+ Num2 := (Add(Num1, Num2)); //°è»ê ÇÔ¼ö È£Ãâ
+ Edit1.Text := FloatToStr(Num2);
+ Num1 := 0;
+ Str := 0;
+ Cal_Check := True;
+ end;
+
+ Dot_Check := False; //¼Ò¼öÁ¡ È®ÀÎ
+ Sub_Check := False; //À½¼ö È®ÀÎ
+ Max := ''; //Edit1.MaxLength
+ except
+ if (Edit1.Text = '') And (Num1 = 0) And (Num2 = 0) then //(Erroró¸®) ¼ýÀÚ ¾øÀÌ = ÀԷ½Ã
+ begin
+ Showmessage('¼ýÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.');
+ Exit;
+ end;
+
+ if (Num1 = 0) And (Str = 99) then //(Erroró¸®) 12 / 0 =
+ begin
+ ShowMessage('0Àº ³ª´¼ö ¾ø½À´Ï´Ù.');
+ Btn_CEClick(Sender);
+ Exit;
+ end;
+
+ end;
+
+end;
+
+procedure TForm1.Btn_SubClick(Sender: TObject);
+begin
+ if Edit1.Text = '-' then //"-" ¿¬¼Ó 2¹ø ÀԷ½Ã
+ begin
+ ShowMessage('¼ýÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä');
+ Exit;
+ end;
+
+ if (Edit1.Text <> '')then //»©±â ÀÔ·Â
+ begin
+ Btn_SumClick(Sender);
+ Exit;
+ end;
+
+ if Sub_Check = False then //À½¼ö ÀÔ·Â
+ begin
+ Edit1.Text := Edit1.Text + (Sender as TButton).Caption;
+ Sub_Check := True;
+ end
+ else
+ begin
+ Showmessage('- ´Â 1¹ø¸¸ ÀÔ·ÂÇϼ¼¿ä.'); //(Erroró¸®) "-" ÀÌÁßŬ¸¯
+ Exit;
+ end
+end;
+
+procedure TForm1.Btn_SumClick(Sender: TObject); //¿¬»êÀÚ Å¬¸¯
+begin
+ try
+ if Oper_Check then //(Erroró¸®) ¿¬»êÀÚ ÀÌÁßŬ¸¯
+ begin
+ ShowMessage('¿¬»êÀÚ´Â Çѹø¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù.');
+ Num2 := 0;
+ Exit;
+ end;
+
+ if Num1 = 0 then
+ begin
+ Btn_ResultClick(Sender); //Btn_Result.Click <> Btn_ResultClick(Sender) ´Ù¸§!!!
+ case (Sender as TButton).tag of //¿¬»êÀÚ ±âÈ£ÁöÁ¤ ////////////////////////////////////////
+ 11 : Str := 96;
+ 12 : Str := 97;
+ 13 : Str := 98;
+ 14 : Str := 99;
+ end;
+
+ end;
+ Num1 := StrToFloat(Edit1.Text);
+ Num2 := Num1; //óÀ½ º¯¼ö°ªÀ» µÎ¹øÂ° º¯¼ö·Î À̵¿
+ Num1 := 0; //óÀ½ º¯¼ö°ª ¸®¼Â
+ Edit1.Text := ''; //´ÙÀ½ ¼ýÀÚ ÀÔ·Â À§ÇØ
+
+ Dot_Check := False; //¼Ò¼öÁ¡
+ Sub_Check := False; //À½¼ö
+ Oper_Check := True; //¿¬»êÀÚ 2¹øÅ¬¸¯
+ Max := ''; //Edit1.MaxLength
+ except
+ On E : Exception Do //¾Ë¼ö ¾ø´Â ¿¡·¯¸¦ À§ÇØ
+ ShowMessage(E.Message+'°ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇϼ¼¿ä.');
+ end;
+
+end;
+
+procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
+ Shift: TShiftState);
+begin
+// if (Key < #96) or (Key > #111) or (Key = #8)
+// or (Key = #13) then //¼ýÀÚ¸¸ ÀÔ·Â °¡´É
+// begin
+ case Key of
+// vk_Back : Btn_CE.OnClick( Sender as TWincontrol);
+ vk_Return : Btn_Result.OnClick( Sender as TWincontrol);
+// vk_32 : Btn_Num0.OnClick( Sender as TWincontrol);
+// vk_1 : Btn_Num1.OnClick( Sender as TWincontrol);
+// vk_32 : Btn_Num2.OnClick( Sender as TWincontrol);
+// 33 : Btn_Num3.OnClick( Sender as TWincontrol);
+// 34 : Btn_Num4.OnClick( Sender as TWincontrol);
+// 35 : Btn_Num5.OnClick( Sender as TWincontrol);
+// 36 : Btn_Num6.OnClick( Sender as TWincontrol);
+// 37 : Btn_Num7.OnClick( Sender as TWincontrol);
+// 38 : Btn_Num8.OnClick( Sender as TWincontrol);
+// 39 : Btn_Num9.OnClick( Sender as TWincontrol);
+// VK_ADD : Btn_Sum.OnClick( Sender as TWincontrol);
+// VK_SUBTRACT : Btn_Sub.OnClick( Sender as TWincontrol);
+// VK_MULTIPLY : Btn_Mul.OnClick( Sender as TWincontrol);
+// VK_DECIMAL : Btn_Dot.OnClick( Sender as TWincontrol);
+// VK_DIVIDE : Btn_Div.OnClick( Sender as TWincontrol);
+ end;
+end;
+
+function TForm1.Add(Num1, Num2: Real ) : Extended; //°è»ê ÇÔ¼ö
+begin
+Try
+ case Str of
+ 96 : result := Num2 + Num1; //Á¤¼öÇü ´õÇϱâ
+ 97 : result := Num2 - Num1; //Á¤¼öÇü »©±â±â
+ 98 : result := Num2 * Num1; //Á¤¼öÇü °öÇϱâ
+ 99 : result := Num2 / Num1; //½Ç¼öÇü ³ª´©±â
+ end;
+Except
+ On E : Exception do
+ begin
+ ShowMessage (E.Message+'°ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇϼ¼¿ä.'); //¾Ë¼ö ¾ø´Â ¿¡·¯¸¦ À§ÇØ
+ Btn_CE.Click;
+ end;
+End;
+
+end;
+
+end.
diff --git "a/40_ \355\224\204\353\241\234\354\240\235\355\212\270/shinsunghoon" "b/40_ \355\224\204\353\241\234\354\240\235\355\212\270/shinsunghoon"
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ "b/40_ \355\224\204\353\241\234\354\240\235\355\212\270/shinsunghoon"
@@ -0,0 +1 @@
+
diff --git a/40_Project/ProjectGroup1.groupproj b/40_Project/ProjectGroup1.groupproj
new file mode 100644
index 0000000..17188cb
--- /dev/null
+++ b/40_Project/ProjectGroup1.groupproj
@@ -0,0 +1,72 @@
+
+
+ {0E30C847-3B29-48BE-B826-8E3C19B96F05}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default.Personality.12
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/40_Project/ProjectGroup1.groupproj.local b/40_Project/ProjectGroup1.groupproj.local
new file mode 100644
index 0000000..1d1950b
--- /dev/null
+++ b/40_Project/ProjectGroup1.groupproj.local
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/40_Project/ProjectGroup1_prjgroup.tvsconfig b/40_Project/ProjectGroup1_prjgroup.tvsconfig
new file mode 100644
index 0000000..c8f2834
--- /dev/null
+++ b/40_Project/ProjectGroup1_prjgroup.tvsconfig
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file