2024. 11. 5. 16:05ㆍ공학설계프로그래밍
<문제 설명>
1) main 함수의 인수로 정수 값을 받는다
2) 인수 A의 값에 따라 아래와 같은 규칠을 갖는 AxA 숫자판을 생성한다.
<문제 해설>
A=4일 때로 예시를 들어서 설명하자면, 숫자판을 생성하는데 필요한 동작은 총 4가지이다.
첫 번째로 왼쪽에서 오른쪽으로 가면서 숫자를 채우는 동작, 두 번째로 위에서 아래로 가면서 숫자를 채우는 동작, 세 번째로 오른쪽에서 왼쪽으로 가면서 숫자를 채우는 동작, 네 번째로 아래에서 위로 가면서 숫자를 채우는 동작이 있다.
각각의 동작을 mode 0 ~ 3으로 지정한 후 프로그래밍을 한다.
End 변수는 A*A로 값이 끝까지 채워졌는지 확인을 위해 지정한 변수이다.
min_x,min_y,max_x,max_y는 값을 채울 때 x축과 y축이 가질 수 있는 최소값과 최대값을 의미한다.
x와 y는 y축과 x축을 의미하며, mode는 처음에 왼쪽에서 오른쪽으로 값을 채워나가야하기 때문에 0으로 설정한다.
a와b는 좌표를 이동할 때 사용되는 변수이며, (y,x) = (y+b,x+a)로 다음 좌표로 이동할 때 y는 b씩 x는 a씩 이동한다.
num은 배열안에 채워나가는 값이며 A가 4일 경우 0~15까지의 값을 가지게 된다.
mode 0일 경우
mode 1로 넘어갈 때 x축은 고정이고 y축만 1씩 늘어나야하므로 a는 0 b는 1로 바꿔준다.
mode 1일 경우
mode 2일 경우
mode 3일 경우
mode 3이 끝날 때 다시 mode 0부터 시작해야하므로 mode를 0으로 설정해준다.
mode 0 ~ 3 동작을 배열에 모든 값이 채워져 나갈 때 까지 반복해야하므로 while문을 사용하여 반복해준다. 이 때 사용하는 것이 End 변수이다.
값이 채워져 나가는 num이라는 변수가 끝을 의미하는 End에 도달할 때 까지 mode 0 , 1 , 2 , 3 을 반복해준다.
결과는 위와 같이 나온다.
'공학설계프로그래밍' 카테고리의 다른 글
Parity Check Bit Encoding/Decoding (0) | 2024.11.19 |
---|---|
주기가 7인 PN (Pseudo-Noise) sequence generator (1) | 2024.11.11 |
공학설계프로그래밍 (자료4) Program 연습 (0) | 2024.10.15 |
직각 좌표와 극 좌표 변환 (0) | 2024.10.08 |
구분구적분 (Mensulation by parts) (0) | 2024.10.08 |