파스칼
- PASCAL 코드 -
{ Pascal 평균 성적보다 높은 학생 구하기 }
program pasex (input, output);
type intlisttype = array [1..99] of integer;
var
intlist : intlisttype ;
listlen, counter, sum, average, result : integer;
begin
result = 0;
sum = 0;
readln (listlen);
if ((listlen > 0) and (listlen < 100)) then
begin
{ 학생 성적 읽기 }
for counter = 1 to listlen do
begin
readln (intlist[counter]);
sum = sum + intlist[counter];
end;
{ 평균값 계산 }
average = sum / listen;
{ 평균 보다 높은 성적을 받은 학생 수 세기 }
for counter = 1 to listlen do
if (intlist[counter] > average)
then result = result + 1;
{ 결과 출력 }
writeln(‘평균 보다 높은 성적을 받은 학생 수:’, result)
end
else
writeln(‘Error – 리스트의 길이가 너무 크거나 작음’)
end.
- C언어 코드 -
#include <stdio.h>
int main() {
int intlist[100];
int listlen, counter, sum, average, result;
result = 0;
sum = 0;
scanf("%d", &listlen);
if (listlen > 0 && listlen < 100) {
// 학생 성적 읽기
for (counter = 0; counter < listlen; ++counter) {
scanf("%d", &intlist[counter]);
sum += intlist[counter];
}
// 평균값 계산
average = sum / listlen;
// 평균 보다 높은 성적을 받은 학생 수 세기
for (counter = 0; counter < listlen; ++counter) {
if (average < intlist[counter]) {
++result;
}
}
// 결과 출력
printf("평균 보다 높은 성적을 받은 학생 수 : %d\n", result);
}
else {
printf("Error - 리스트의 길이가 너무 크거나 작음\n");
}
return 0;
}
- PASCAL 코드 해석 -
{ Pascal 평균 보다 높은 학생 구하기 } { }는 c언어에서 //와 같은 주석처리입니다.
program pasex (input, output); program – 프로그램을 선언하며, pasex라는 명으로 만듭니다. input, output는 사용될 입출력 장치를 기술합니다.
type intlisttype = array [1..99] of integer; 99크기의 integer형식의 배열을 만들어 intlisttype의 타입을 지정합니다.
var 변수 선언 부분입니다.
intlist : intlisttype ; intlist를 intlisttype으로 설정합니다. 이는 위에서 설정했던 99크기의 integer형식의 배열입니다.
listlen, counter, sum, average, result : integer; listlen, counter, sum, average, result를 integer형식으로 선언합니다.
begin begin과 end는 C언어에서 { }와 같은 내용입니다.
result = 0; result에 0을 대입합니다.
sum = 0; sum에 0을 대입합니다.
readln (listlen); C언어에서 scanf와 비슷한 구문으로 입력받은 값을 listlen에 넣습니다.
if ((listlen > 0) and (listlen < 100)) then if문으로 listlen이 0보다 크고 100보다 작으면 실행되며, then을 통해 조건에 대해서 마칩니다.
begin if문의 시작점입니다.
{ 학생 성적 읽기 }
for counter = 1 to listlen do for문으로 counter 변수에 1을 넣고, listlen이 될 때까지 반복합니다. 반복될때마다 counter는 1씩 증가합니다.
begin for문의 시작점입니다. do를 통해서 조건에 대해서 마칩니다.
readln (intlist[counter]); scanf와 비슷한 구절로 intlist배열에 index가 counter인 곳에 입력받은 값을 입력합니다.
sum = sum + intlist[counter]; sum에 각 학생의 모든 점수를 넣어줍니다.
end; for문의 종료지점입니다.
{ 평균값 계산 }
average = sum / listen; 평균값을 계산하기 위해 학생의 점수들의 합에서 학생 수를 나눠줍니다.
{ 평균 보다 높은 성적을 받은 학생 수 세기 }
for counter = 1 to listlen do counter에 1이 들어가며, listlen이 될 때까지 반복합니다. counter는 반복될때마다 1씩 증가합니다.
if (intlist[counter] > average) if문으로 학생의 점수와 평균을 비교하며, 학생의 점수가 평균보다 높으면 조건에 만족합니다.
then result = result + 1; 조건이 만족하면 result에 +1을 해줍니다. 이는 조건이 만족하는 학생으 수를 나타냅니다.
{ 결과 출력 }
writeln(‘평균 보다 높은 성적을 받은 학생 수:’, result) writeln는 C언어에 printf와 비슷하며, 출력을 합니다. 작은 따옴표에 문장을 넣어서 출력할 수 있으며 ‘,’를 이용해서 여러 가지를 한번에 출력할 수 있습니다. 변수를 출력할 경우 따옴표 없이 변수만 적으면 됩니다.
end
else if문이 만족하지 않을 경우입니다.
writeln(‘Error – 리스트의 길이가 너무 크거나 작음’) printf와 비슷한 구문으로 에러 메시지를 출력합니다.
end. end.는 프로그램의 끝부분을 나타냅니다.
# 학습에 대한 기록이므로, 틀린 부분이 있을 수 있습니다. #
'프로그래밍 언어론' 카테고리의 다른 글
[프로그래밍 언어론] 문법 (4) (0) | 2019.10.23 |
---|---|
[프로그래밍 언어론] 프로그래밍 언어들의 특징 (3) (0) | 2019.10.23 |
[프로그래밍 언어론] 언어 부류와 컴파일러 (2) (0) | 2019.10.23 |
[프로그래밍 언어론] 프로그래밍 언어론 (1) (0) | 2019.10.23 |