Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 13 additions & 8 deletions 20_Task/M1/10_Variable/VariableForm.pas
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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);
Expand Down
88 changes: 68 additions & 20 deletions 20_Task/M1/20_Function/FunctionForm.pas
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
Expand Down Expand Up @@ -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.
79 changes: 57 additions & 22 deletions 20_Task/M1/30_Array/ArrayForm.pas
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -51,30 +51,42 @@ 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;
var
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;
Expand All @@ -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.