Ada

[ADA]5. Ada 기초(4)

TigerShin 2021. 8. 10. 17:23

비록 오래전인지만...

저번에 우리는 Deractive Regions까지 진행을 해보았습니다.

오늘은 조건문 응용과 부프로그램에 대하여 간단하게 알아보겠습니다!

조건문 응용

Ada에는 조건문으로 할 수 있는 것이 있습니다.
마치 람다처럼 사용할 수 있습니다.

이것이 무슨 소리일까요?
만약 Ada에서 홀-짝을 구별하여 출력하는 프로그램을 구현을 할 경우,

with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

procedure evenodd is
    N : Integer;
begin
    Put("Input> ");
    Get(N);
    for i in 1..N loop
        if i mod 2 = 0 then
            Put_Line(Integer'Image(i) & ": Even");
        else
            Put_Line(Integer'Image(i) & "Odd");
        end if;
    end loop;
end evenodd;

이런 식으로 사용 할 수 있습니다.

그러나, 굳이 'Even', 'Odd'를 작성하기 위해서 저렇게 하기에는 생각외로 양이 많아질 것입니다.
마치 Rust처럼 조건문을 응용하여 사용이 가능합니다.

예를 들어 위에 있는 것을

with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

procedure conditional_expr is
    N : Integer;
begin
    Put("Input> ");
    Get(N);
    for i in 1..N loop
        Put_Line(Integer'Image(i) & (if i mod 2 = 0 then ": Even"
                                    else ": Odd"));
    end loop;
end conditional_expr;

이런식으로 사용이 가능합니다.

그러나, 일반적인 조건문과 달리 end if가 필요로 하지 않습니다.

위에서는 안 나왔으나, elsif도 사용이 가능합니다.

부프로그램(함수)

Ada에서 함수 선언은 function 키워드를 사용하면 됩니다.

function <함수명> return <타입명>

이러한 양식을 지니나, 만약 함수를 외부 파일에서 생성을 할 경우 adb파일에서 함수의 내용을 ads파일에서 함수의 틀을 작성합니다.

예를 들면, 두 함수를 더하는 함수를 외부 파일에 작성할 경우

test.ads라는 파일에 다음과 같이 작성합니다

function <함수명> return <타입명>;

으로 작성합니다.

예시를 들자면

이런식으로 틀을 작성합니다.

이렇게 ads파일에서 작성을 하고, adb에서 함수를 작성합니다.

function <함수명> return <타입명> is
begin
    <함수 내용>
    return <반환할 값>;
end <함수명>;

이런 양식을 지닙니다.

예시를 들어보자면, 아까 위의 ads파일에서 작성한 함수를 adb파일에

이렇게 작성하시면 됩니다.

이후, 주프로그램에서

with <함수명>;

으로 불러와서 이용이 가능합니다

with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Add2num;

procedure mainprogram is
    One, Two, Three : Integer;
begin
    Put("One> ");
    Get(One);
    Put("Two> ");
    Get(Two);
    Three := Add2num(One, Two);
    Put_Line("Result: " & Integer'Image(Three));
end mainprogram;

이런식으로 작성하시면 됩니다.

컴파일과 실행이 잘 됨을 알 수 있습니다

'Ada' 카테고리의 다른 글

[ADA]Ada 기초(5)  (0) 2021.08.19
[ADA]4. ADA 기초(3)  (0) 2021.07.12
[ADA]3.ADA 기초(2)  (0) 2021.07.05
[ADA]2. ADA 기초(1)  (0) 2021.07.04
[ADA]1.시작  (0) 2021.07.03