StartprogrammingusingObjectPascal:AirConditionProgram

From 흡혈양파의 번역工房
Revision as of 05:38, 4 April 2013 by Onionmixer (talk | contribs) (예제 오류수정)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

에어콘 프로그램

var
    Temp: Single;
begin
    Write('Please enter Temperature of this room :');
    Readln(Temp);

    if Temp > 22 then
        Writeln('Please turn on air-condition')
    else
        Writeln('Please turn off air-condition');

    Write(Press enter key to close);
    Readln;
end.


if then else 구문과 이에 대한 예제를 소개했습니다. 온도가 22보다 크면, 처음 문장을 보여줍니다.

'Please turn on air-condition'


조건을 만나지 못했다면 (22보다 작거나 같다면) else에 의해 아래의 문장을 보여줍니다.

'Please turn off air-condition'


여러 상태에 대해 다음과 같이 작성할 수 있습니다.

var
    Temp: Single;
begin
    Write('Please enter Temperature of this room :');
    Readln(Temp);

    if Temp > 22 then
        Writeln('Please turn on air-conditioner')
    else
    if Temp < 18 then
        Writeln('Please turn off air-conditioner')
    else
        Writeln('Do nothing');

    Write(Press enter key to close);
    Readln;
end.


결과를 보기 위해 다른 온도 값으로 위 예제를 시험해 볼 수 있습니다.


더욱 쓸모있게 만들기 위해 조건을 더욱 복잡하게 만들 수 있습니다.

var
    Temp: Single;
    ACIsOn: Byte;
begin
    Write('Please enter Temperature of this room : ');
    Readln(Temp);
    Write('Is air conditioner on? if it is (On) write 1,',
        ' if it is (Off) write 0 : ');
    Readln(ACIsOn);
    if (ACIsOn = 1) and (Temp > 22) then
        Writeln('Do nothing, we still need cooling')
    else
    if (ACIsOn = 1) and (Temp < 18) then
        Writeln('Please turn off air-conditioner')
    else
    if (ACIsOn = 0) and (Temp < 18) then
        Writeln('Do nothing, it is still cold')
    else
    if (ACIsOn = 0) and (Temp > 22) then
        Writeln('Please turn on air-conditioner')
    else
        Writeln('Please enter a valid values');

    Write('Press enter key to close');
    Readln;
end.


위 예제에서, 첫번째 상태가 True를 되돌리고(ACIsOn = 1), 두번째 상태가 True를 되돌릴 때(Temp > 22), Writeln 구문을 실행하라는 의미의 새로운 키워드( and )를 사용했습니다. 하나 혹은 양 쪽의 상태가 False라면, else 부분으로 진행할 것입니다.


예를 들어, 에어콘이 시리얼 포트를 통해 컴퓨터에 연결했다면, 시리얼 포트 프로시저/컴포넌트를 이용하여 프로그램에서 에어콘을 켜고 끌 수 있습니다. 이 경우 에어콘이 얼마나 오랫동안 동작하고 있었는지와 같은 if 조건문에 대한 추가 인자가 필요합니다. 만약 허용 시간(예를 들어 1시간)을 초과했다면 방 온도와는 상관 없이 에어콘을 꺼야 할 것입니다. 또한 냉기 손실율을 고려할 수 있는데, (밤에) 더워지는 속도가 매우 느리다면, 오랜 시간동안 끌 수 있을 것입니다.