레코드
Posted on 2008/07/03 15:48
Filed Under Delphi
정수형 : Integer
문자형 : String
실수형 : Single
논리형 : Boolean
이외에도 여러가지가 있지만 위에 4개가 자주 사용된다고 한다.
하지만 오늘 알아볼 레코드는 서로 다른 유형의 데이터를 하나의 변수에 저장시킬 수 있다고 한다.
이것 참 유용한 기능이 아닌가.. 123 과 '가나다'라는 서로 다른 타입의 변수들을 하나의 변수로 묶을 수 있다니..
구체적으로 한번 봐보자.
TJumsu = record
irum : String;
guk : Integer;
yung : Integer;
su : Integer;
sum : Integer;
avg : Single;
end;
Tjumsu 란 레코드를 만들었습니다. 이 레코드의 모습은 아래와 같습니다.
2. irum : String;
Irum은 String 의 형태다.
나머지들도 각각 뒤에 가지는 값의 형태다.
이 얼마나 편한 기능인가..
이 기능을 가지고 전에 만들었던 점수 평균별 오름차순을 StringGrid에 옮겨보겠다.
Unit1
implementation
uses Unit2;
{$R *.DFM}
type
TJumsu = record
irum : String;
guk : Integer;
yung : Integer;
su : Integer;
sum : Integer;
avg : Single;
end;
Var
be : Array of TJumsu;
n : Integer;
procedure TForm1.btJeJangClick(Sender: TObject);
begin
n := n + 1;
setlength(be, n+1 );
be[n].irum := edIrum.Text;
be[n].guk := StrToInt(edGuk.Text);
be[n].yung := StrToInt(edYung.Text);
be[n].su := StrToInt(edSu.Text);
be[n].sum := be[n].guk + be[n].yung + be[n].su;
be[n].avg := be[n].sum / 3;
edIrum.Text := '';
edGuk.Text := '';
edYung.Text := '';
edSu.Text := '';
edIrum.SetFocus;
end;
procedure TForm1.btBoGiClick(Sender: TObject);
var
i, j, s, r : Integer;
temp : Tjumsu;
begin
Form2.StringGrid1.RowCount := n + 1;
for i:= 1 to n - 1 do
for j := i + 1 to n do
if be[i].avg < be[j].avg then
begin
temp := be[i];
be[i] := be[j];
be[j] := temp;
end;
for i:= 1 to n do
begin
form2.StringGrid1.Cells[0, i] := be[i].irum;
form2.StringGrid1.Cells[1, i] := IntToStr(be[i].guk);
form2.StringGrid1.Cells[2, i] := IntToStr(be[i].yung);
form2.StringGrid1.Cells[3, i] := IntToStr(be[i].su);
form2.StringGrid1.Cells[4, i] := IntToStr(be[i].sum);
form2.StringGrid1.Cells[5, i] := format('%.2f', [be[i].avg] );
r:=1;
for j:=1 to n do
if be[j].avg>be[i].avg then
r:=r+1;
form2.StringGrid1.Cells[6, i] := IntToStr(r);
end;
form2.ShowModal();
end;
end.
Unit2
begin
StringGrid1.Cells[0, 0] := '이름';
StringGrid1.Cells[1, 0] := '국어';
StringGrid1.Cells[2, 0] := '영어';
StringGrid1.Cells[3, 0] := '수학';
StringGrid1.Cells[4, 0] := '총점';
StringGrid1.Cells[5, 0] := '평균';
StringGrid1.Cells[6, 0] := '석차';
end;
begin
close();
end;
Project1.exe실행파일
'Delphi' 카테고리의 다른 글
| [델파이]StringGrid의 셀에 색칠하기 예제 (0) | 2008/07/09 |
|---|---|
| [델파이]Edit에 수치값만 입력 가능하게(소수, 음수입력 가능) 자리수 제한 (0) | 2008/07/09 |
| [델파이] TIdFTP로 FTP 클라이언트 만들기 (0) | 2008/07/09 |
| 델파이에서 Format 사용례 (0) | 2008/07/09 |
| 레코드 (0) | 2008/07/03 |
| SetLength (동적배열) (2) | 2008/07/01 |


점수별 석차 기술총망라본.zip

댓글을 달아 주세요