비록 오래전인지만...
저번에 우리는 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 |