diff --git a/20_Task/M1/10_Variable/VariableForm.pas b/20_Task/M1/10_Variable/VariableForm.pas index ce9d2fe..9e27a4f 100644 --- a/20_Task/M1/10_Variable/VariableForm.pas +++ b/20_Task/M1/10_Variable/VariableForm.pas @@ -15,13 +15,17 @@ TForm1 = class(TForm) Label2: TLabel; procedure Button1Click(Sender: TObject); private - // () ϴ Լ + // 이 폼(유닛)에서만 사용하는 변수와 함수를 선언 - { TODO : (1) FSum ϼ. } + { TODO : (1) 정수 형 FSum 변수를 선언하세요. } + + var + FSum : Integer; {내가 쓴것} function AddNum(ANum: Integer): Integer; - public - // ٸ ֿ ִ Լ + + public + // 다른 유닛에서 참조할 수 있는 변수와 함수 선언 end; var @@ -34,14 +38,15 @@ implementation function TForm1.AddNum(ANum: Integer): Integer; begin { TODO : - (2) FSum Ķ ANum մϴ. - FSum ȯ } - Result := 0; + (2) FSum 변수에 파라메터 ANum 값을 더합니다. + FSum 변수 반환 } + FSun :=ANum+FSum; {내가 쓴것} + Result := FSum; {내가 쓴것} end; procedure TForm1.Button1Click(Sender: TObject); var - Num, Sum: Integer; // ̰ Լ մϴ. + Num, Sum: Integer; // 이곳에 선언된 변수는 이 함수에서만 사용합니다. begin Num := StrToInt(edtNum.Text); Sum := AddNum(Num); diff --git a/20_Task/M1/20_Function/FunctionForm.pas b/20_Task/M1/20_Function/FunctionForm.pas index f9f7a4d..03dde54 100644 --- a/20_Task/M1/20_Function/FunctionForm.pas +++ b/20_Task/M1/20_Function/FunctionForm.pas @@ -21,19 +21,22 @@ TForm2 = class(TForm) 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 + (2-1) GetUserInfoMsg 함수를 선언 + 파라메터: 이름(문자), 나이(숫자), 남자여부(Boolean) + 반환값: 문자열(메시지) + (2-2) 함수 선언 후 Ctrl + Shift + C를 눌러 구현부 생성 } + function GetUserInfoMsg(AName: string; AAge: Integer; IsMan: Boolean): string; + public - // ٸ ֿ ִ Լ + // 다른 유닛에서 참조할 수 있는 변수와 함수 선언 end; var @@ -47,29 +50,41 @@ function TForm2.GetNameMsg(AName: string): string; var Msg: string; begin - Msg := 'ȳϼ. '; - Msg := Msg + AName + ''; + Msg := '안녕하세요. '; + Msg := Msg + AName + '님'; Result := Msg; end; + + function TForm2.GetAgeMsg(AName: string; AAge: Integer): string; var Msg, Adult: string; begin - Msg := GetNameMsg(AName); // λ縻 ǥô - Msg := Msg + #13#10; // (ϸ ij) + Msg := GetNameMsg(AName); // 인사말 표시는 재사용 + Msg := Msg + #13#10; // 한줄 내려쓰기(일명 캐리지리턴) + + if AAge >= 20 then + Adult:= '성인' + else + Adult :='미성년' ; + + Msg:= Msg + AName+ '님은 '+ IntToStr(AAge)+'세로 '+ Adult +'입니다.'; { TODO : - (1) Msg '(AName) (AAge) (/̼)Դϴ.' ޽ ߰ - if ̿ 20 ̻(>=) Ǵ - ڿ (ϱ) ϼ. - ڷ ȯ(IntToStr)ϼ. + (1) Msg 변수에 '(AName)님은 (AAge)세로 (성인/미성년)입니다.' 메시지 추가 + if 문을 이용해 20세 이상(>=)인 경우 성인으로 판단 + 문자열과 변수를 조합(더하기) 하세요. + 정수는 문자로 변환(IntToStr)하세요. } Result := Msg; + + end; + procedure TForm2.Button1Click(Sender: TObject); var Name, Msg: string; @@ -105,17 +120,50 @@ procedure TForm2.Button3Click(Sender: TObject); IsMan := rdoMan.Checked; { TODO : - (2) λ縻 + ο Ȯ + Ȯ ޽ - ȯϴ Լ(GetUserInfoMsg) ۼϼ + (2) 인사말 + 성인여부 확인 + 성별확인 메시지를 + 반환하는 함수(GetUserInfoMsg)를 작성하세요 Msg := GetUserInfoMsg(Name, Age, IsMan); } + Msg := GetUserInfoMsg(Name, Age, IsMan); ShowMessage(Msg); end; +function TForm2.GetUserInfoMsg(AName: string; AAge: Integer; IsMan: Boolean): string; -{ TODO : - (2-2) GetUserInfoMsg Լ ο - λ縻 + ο Ȯ + Ȯ ޽ ȯϵ ۼϼ. - ̹ GetNameMsg, GetAgeMsg ϼ. +var + Msg,Adult: String; + + begin + Msg := GetNameMsg(AName); + Msg := Msg + #13#10; + + if rdoMan.Checked then + begin + isMan := true; + Msg := Msg + AName + '님은 남자입니다.'; + end + else + begin + isMan := false; + Msg := Msg + AName + '님은 여자입니다.'; + end; + Msg := GetNameMsg(AName); // 인사말 표시는 재사용 + Msg := Msg + #13#10; // 한줄 내려쓰기(일명 캐리지리턴) + + if AAge >= 20 then + Adult:= '성인' + else + Adult :='미성년' ; + + Msg:= Msg + AName+ '님은 '+ IntToStr(AAge)+'세로 '+ Adult +'입니다.'; + Result := Msg; + + end; + { TODO : + (2-2) GetUserInfoMsg 함수의 구현부에는 + 인사말 + 성인여부 확인 + 성별확인 메시지를 반환하도록 작성하세요. + 이미 구현된 GetNameMsg, GetAgeMsg 등을 재사용하세요. } + + end. diff --git a/20_Task/M1/30_Array/ArrayForm.pas b/20_Task/M1/30_Array/ArrayForm.pas index c495570..ec44910 100644 --- a/20_Task/M1/30_Array/ArrayForm.pas +++ b/20_Task/M1/30_Array/ArrayForm.pas @@ -36,12 +36,12 @@ procedure TForm3.FormCreate(Sender: TObject); InitArray; end; -// 迭 ʱⰪ +// 배열에 초기값을 설정 procedure TForm3.InitArray; var I: Integer; begin - // 迭(FNumArr) ̸ŭ ݺϸ (1~100) + // 배열(FNumArr)의 길이만큼 반복하며 임의의 값(1~100)을 설정 for I := 0 to Length(FNumArr) - 1 do FNumArr[I] := Random(100); end; @@ -51,22 +51,28 @@ procedure TForm3.Button1Click(Sender: TObject); I: Integer; Sum, MaxNum: Integer; begin - // 迭 + // 배열의 합 Sum := GetArraySum; - // 迭 ְ + // 배열 중 최고값 MaxNum := GetArrayMaxNum; Memo1.Lines.Clear; - Memo1.Lines.Add('迭 '); + Memo1.Lines.Add('배열 내용'); { TODO : - (1) for ̿ 迭 ϼ. - 迭 ũ ǵ ϵ ݺ Length(FNumArr) - 1 - > for I := 0 to Length(FNumArr) - 1 do } + (1) for 문을 이용해 배열의 내용을 출력하세요. + 배열의 크기 변경되도 동작하도록 반복의 끝은 Length(FNumArr) - 1로 설정 + 예> for I := 0 to Length(FNumArr) - 1 do } - Memo1.Lines.Add('迭 ' + IntToStr(Sum) + ' Դϴ.'); - Memo1.Lines.Add('迭 ִ밪 ' + IntToStr(MaxNum) + ' Դϴ.'); + for I := 0 to Length(FNumArr) - 1 do + begin + Memo1.Lines.Add(' - '+ IntToStr(FNumArr [I])); + + end; + + Memo1.Lines.Add('배열의 합은 ' + IntToStr(Sum) + ' 입니다.'); + Memo1.Lines.Add('배열의 최대값은 ' + IntToStr(MaxNum) + ' 입니다.'); end; function TForm3.GetArraySum: Integer; @@ -74,7 +80,13 @@ function TForm3.GetArraySum: Integer; I, Sum: Integer; begin Sum := 0; - { TODO : (2) for ̿ 迭 ȯϵ } + { TODO : (2) for 문을 이용해 배열의 값을 모두 더해 반환하도록 구현 } + for I := 0 to Length(FNumArr) - 1 do + begin + Sum := Sum+ FNumArr[I]; + + end; + Result := Sum; end; @@ -83,29 +95,52 @@ function TForm3.GetArrayMaxNum: Integer; var I, MaxNum: Integer; begin - MaxNum := 0; + MaxNum := 95; { TODO : - (3) for ̿ 迭 ū ȯϵ - if ̿ ڸ } + (3) for 문을 이용해 배열의 값 중 가장 큰 값을 반환하도록 구현 + if 문을 이용해 숫자를 비교 } + for I := 0 to Length(FNumArr) -1 do + begin + if FNumArr[I]> MaxNum then + + MaxNum := FNumArr[I]; + end; + + Result := MaxNum; end; procedure TForm3.Button2Click(Sender: TObject); var - I, - CountOver, CountUnder: Integer; + I,CountOver, CountUnder: Integer; begin CountOver := 0; CountUnder := 0; { TODO : - (4) for ̿ 迭 - 50 ̻(>=) CountOver 1 - 50 ̸(<) CountUnder 1 ϵ - } + (4) for 문을 이용해 배열의 값이 + 50 이상(>=)인 경우 CountOver 1 증가 + 50 미만(<)인 경우 CountUnder 1 증가 하도록 구현} + +for I := 0 to Length(FNumArr) - 1 do + begin + if FNumArr[I] >= 50 then + begin + Inc(CountOver); + end + else + begin + Inc(CountUnder); + end; + + end; + + + + - Memo1.Lines.Add('50 ̻ : ' + IntToStr(CountOver)); - Memo1.Lines.Add('50 ̸ : ' + IntToStr(CountUnder)); + Memo1.Lines.Add('50 이상인 수의 갯수: ' + IntToStr(CountOver)); + Memo1.Lines.Add('50 미만인 수의 갯수: ' + IntToStr(CountUnder)); end; end.