StartprogrammingusingObjectPascal:Records

From 흡혈양파의 번역工房
Revision as of 05:13, 26 July 2012 by Onionmixer (talk | contribs) (SPOP 레코드 페이지 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

레코드

배열은 같은 형식의 많은 변수들을 지닐 수 있지만, 레코드는 제각기 다른 형식의 변수를 지닐 수 있으며, 이 변수들을 ‘필드’라고 부릅니다.

이 변수/필드의 모임은 단일 단위나 변수처럼 취급합니다. 예를 들어 자동차 정보와 같은 것들을 하나의 객체에 주려 할 때 레코드를 사용할 수 있습니다.

  1. 차 형식: 문자열 변수
  2. 엔진 크기: 실수
  3. 생산 연도: 정수 값


다음 예제에서는 제각각 다른 이들 형식을 자동차를 나타내는 레코드에 모을 수 있습니다.

program Cars;

{$mode objfpc}{$H+}

uses
    {$IFDEF UNIX}{$IFDEF UseCThreads}
    cthreads,
    {$ENDIF}{$ENDIF}
    Classes
    { you can add units after this };

type
    TCar = record
        ModelName: string;
        Engine: Single;
        ModelYear: Integer;
    end;
var
    Car: Tcar;
begin
    Write('Input car Model Name: ');
    Readln(Car.ModelName);
    Write('Input car Engine size: ');
    Readln(Car.Engine);
    Write('Input car Model year: ');
    Readln(Car.ModelYear);
    Writeln;

    Writeln('Car information: ');
    Writeln('Model Name : ', Car.ModelName);
    Writeln('Engine size : ', Car.Engine);
    Writeln('Model Year : ', Car.ModelYear);
    Write('Press enter key to close..');
    Readln;
end.

이 예제에서는 ‘type’ 키워드를 사용하여 새 형식(record)을 정의했습니다.

type
    TCar = record
        ModelName: string;
        Engine: Single;
        ModelYear: Integer;
    end;

변수가 아니라 형식이라는 것을 표시하기 위해 Car에 문자(T)를 더했습니다. 변수 이름은 Car, Hour, UserName처럼 될 수 있지만, 형식 이름은 Tcar, Thour, TuserName과 같이 되어야 합니다. 이것은 파스칼 언어의 표준입니다.

이 새로운 형식을 사용하려면, 이 형식의 변수를 예제와 같이 선언할 것입니다.

var
    Car: TCar;

이 변수/필드들 중 하나에 값을 저장하려면 다음과 같이 접근합니다.

    Car.ModelName;

레코드는 이 책의 임의 접근 파일 에서 사용할 것입니다.