StartprogrammingusingObjectPascal:RestaurantProgramUsingRepeatLoop

From 흡혈양파의 번역工房
Revision as of 10:00, 21 July 2012 by Onionmixer (talk | contribs) (SPOP repeat순환문을사용한식당프로그램 페이지 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

repeat 순환문을 사용한 식당 프로그램

var
    Selection: Char;
    Price: Integer;
    Total: Integer;
begin
    Total:= 0;
    repeat
        Writeln('Welcome to Pascal Restaurant. Please select your order');
        Writeln('1 – Chicken           (10 Geneh)');
        Writeln('2 – Fish                  (7 Geneh)');
        Writeln('3 – Meat                (8 Geneh)');
        Writeln('4 – Salad                (2 Geneh)');
        Writeln('5 - Orange Juice (1 Geneh)');
        Writeln('6 – Milk                  (1 Geneh)');
        Writeln('X - nothing');
        Writeln;
        Write('Please enter your selection: ');
        Readln(Selection);

        case Selection of
            '1': begin
                Writeln('You have ordered Chicken, this will take 15 minutes');
                Price:= 10;
            end;
            '2': begin
                Writeln('You have ordered Fish, this will take 12 minutes');
                Price:= 7;
            end;
            '3': begin
                Writeln('You have ordered meat, this will take 18 minutes');
                Price:= 8;
            end;
            '4': begin
                Writeln('You have ordered Salad, this will take 5 minutes');
                Price:= 2;
            end;
            '5': begin
                Writeln('You have ordered Orange juice, this will take 2 minutes');
                Price:= 1;
            end;
            '6': begin
                Writeln('You have ordered Milk, this will take 1 minute');
                Price:= 1;
            end;
            else
            begin
                Writeln('Wrong entry');
                Price:= 0;
            end;
        end;

        Total:= Total + Price;

    until (Selection = 'x') or (Selection = 'X');
    Writeln('Total price = ', Total);
    Write('Press enter key to close');
    Readln;
end.

앞의 예제에서 이 기술들을 사용했습니다.

1. case 분기에 begin end 를 더하여 여러개의 구문을 하나의 구문으로 만들었습니다.
2. 주문의 총 가격을 더하기 위해 변수 Total 값을 0(변수에 초기값 위치)으로 초기화했습니다. 그 다음 선택한 가격을 매 순환마다 Total변수에 더했습니다.

Total:= Total + Price;

3. 주문을 끝내기 위해 대문자 ’X’와 소문자 ‘x’ 두가지 옵션을 넣었습니다. 두 문자는 컴퓨터 메모리에서 달리 표현(저장)합니다.

참고

이 줄을

until (Selection = 'x') or (Selection = 'X');

다음처럼 축소한 코드로 대체할 수 있습니다

until UpCase(Selection) = 'X';

이는 Selection 변수의 값이 소문자라면 대문자로 바꿔줄 것이고, (x또는 X) 두 경우에 대해 True를 되돌릴 것입니다.