diff --git a/20_Task/M1/10_Variable/VariableForm.pas b/20_Task/M1/10_Variable/VariableForm.pas index ce9d2fe..24626e3 100644 --- a/20_Task/M1/10_Variable/VariableForm.pas +++ b/20_Task/M1/10_Variable/VariableForm.pas @@ -15,13 +15,14 @@ TForm1 = class(TForm) Label2: TLabel; procedure Button1Click(Sender: TObject); private - // () ϴ Լ + // 이 폼(유닛)에서만 사용하는 변수와 함수를 선언 - { TODO : (1) FSum ϼ. } + { TODO : (1) 정수 형 FSum 변수를 선언하세요. } + FSum: Integer; //(1)FSum 변수 선언 function AddNum(ANum: Integer): Integer; public - // ٸ ֿ ִ Լ + // 다른 유닛에서 참조할 수 있는 변수와 함수 선언 end; var @@ -34,14 +35,17 @@ implementation function TForm1.AddNum(ANum: Integer): Integer; begin { TODO : - (2) FSum Ķ ANum մϴ. - FSum ȯ } + (2) FSum 변수에 파라메터 ANum 값을 더합니다. + FSum 변수 반환 } Result := 0; + + FSum := FSum + ANum; //(2)두 값 계산 + 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..983a466 100644 --- a/20_Task/M1/20_Function/FunctionForm.pas +++ b/20_Task/M1/20_Function/FunctionForm.pas @@ -22,18 +22,19 @@ TForm2 = class(TForm) 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; AIsMan: Boolean): string; public - // ٸ ֿ ִ Լ + // 다른 유닛에서 참조할 수 있는 변수와 함수 선언 end; var @@ -47,8 +48,26 @@ function TForm2.GetNameMsg(AName: string): string; var Msg: string; begin - Msg := 'ȳϼ. '; - Msg := Msg + AName + ''; + Msg := '안녕하세요. '; + Msg := Msg + AName + '님'; + + Result := Msg; +end; + +function TForm2.GetUserInfoMsg(AName: string; AAge: Integer; //(2)성별 확인 + AIsMan: Boolean): string; +var + Msg, IsMan: string; +begin + Msg := GetAgeMsg(AName, AAge); + Msg := Msg + #13#10; + + if AIsMan then + IsMan := '남자' + else + IsMan := '여자'; + + Msg := Msg + AName + '님은 ' + IsMan + '입니다.'; Result := Msg; end; @@ -57,16 +76,24 @@ 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; // 한줄 내려쓰기(일명 캐리지리턴) { TODO : - (1) Msg '(AName) (AAge) (/̼)Դϴ.' ޽ ߰ - if ̿ 20 ̻(>=) Ǵ - ڿ (ϱ) ϼ. - ڷ ȯ(IntToStr)ϼ. + (1) Msg 변수에 '(AName)님은 (AAge)세로 (성인/미성년)입니다.' 메시지 추가 + if 문을 이용해 20세 이상(>=)인 경우 성인으로 판단 + 문자열과 변수를 조합(더하기) 하세요. + 정수는 문자로 변환(IntToStr)하세요. } + if AAge >= 20 then //(1)성인여부 확인 + Adult := '성인' + else + Adult := '미성년'; + + Msg := Msg + AName + '님은 ' + IntToStr(AAge) + '세로 ' + Adult + + '입니다.'; + Result := Msg; end; @@ -105,17 +132,18 @@ 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; { TODO : - (2-2) GetUserInfoMsg Լ ο - λ縻 + ο Ȯ + Ȯ ޽ ȯϵ ۼϼ. - ̹ GetNameMsg, GetAgeMsg ϼ. + (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..f250256 100644 --- a/20_Task/M1/30_Array/ArrayForm.pas +++ b/20_Task/M1/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차원 배열 10칸 procedure InitArray; function GetArraySum: Integer; @@ -33,15 +33,15 @@ implementation procedure TForm3.FormCreate(Sender: TObject); begin - InitArray; + 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,26 @@ 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 //(1)배열값 출력 + Memo1.Lines.Add(' - ' + IntToStr(FNumArr[I])); + + + Memo1.Lines.Add('배열의 합은 ' + IntToStr(Sum) + ' 입니다.'); + Memo1.Lines.Add('배열의 최대값은 ' + IntToStr(MaxNum) + ' 입니다.'); end; function TForm3.GetArraySum: Integer; @@ -74,7 +78,10 @@ function TForm3.GetArraySum: Integer; I, Sum: Integer; begin Sum := 0; - { TODO : (2) for ̿ 迭 ȯϵ } + { TODO : (2) for 문을 이용해 배열의 값을 모두 더해 반환하도록 구현 } + + for I := 0 to Length(FNumArr) - 1 do //(2)배열값 더하기 + Sum := Sum + FNumArr[I]; Result := Sum; end; @@ -85,27 +92,40 @@ function TForm3.GetArrayMaxNum: Integer; begin MaxNum := 0; { TODO : - (3) for ̿ 迭 ū ȯϵ - if ̿ ڸ } + (3) for 문을 이용해 배열의 값 중 가장 큰 값을 반환하도록 구현 + if 문을 이용해 숫자를 비교 } + + for I := 0 to Length(FNumArr) - 1 do //(3)큰값 반환 + begin + if MaxNum < FNumArr[I] 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 증가 하도록 구현 } - Memo1.Lines.Add('50 ̻ : ' + IntToStr(CountOver)); - Memo1.Lines.Add('50 ̸ : ' + IntToStr(CountUnder)); + for I := 0 to Length(FNumArr) - 1 do //(4)50이상 확인 + begin + if FNumArr[i] >= 50 then + Inc(CountOver) + else + Inc(CountUnder) + end; + + Memo1.Lines.Add('50 이상인 수의 갯수: ' + IntToStr(CountOver)); + Memo1.Lines.Add('50 미만인 수의 갯수: ' + IntToStr(CountUnder)); end; end.