책 내용 질문하기
2017 정보처리기사 실기 1권 질문
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
276
조회수
80
작성일
2017-09-26
작성자
탈퇴*원
첨부파일

알고리즘 질문입니다

276p

버블정렬(인접한 것끼리의 비교)에서

좌우로 번갈아 정렬인데

순서도를 보면 왜 이 순서대로 진행하면 좌우로 번갈아 정렬인지 이해가 안됩니다

반복문이 두 개가 쓰였는데

첫번째 반복문은 왼쪽에서 오른쪽으로 진행하는건데요,

왼쪽에서 오른쪽으로 한 번 진행하고

오른쪽에서 왼쪽으로 한 번 진행하고

이것이 반복되어야 하는것인데

순서도에서는 첫번째 반복문을 정렬이 끝나서 종료될때까지 계속 진행하게 되는 것 아닌가요?

354p

c언어 코드에서

9번 10번 줄 질문입니다

else일 경우 L =i+1;을 하는데

for문에서 j<=L-1;이 조건식으로 걸려있잖아요

굳이 i에 1을 더해서 대입하고

조건문에서 -1을 넣어서 빼는 것이라면

그냥 +1과 -1 둘 다 빼서

L=i;

j<=L;

로 하는 것이랑 차이점이 있나요?

362p

c언어 코드 1번 줄에서

int a[5][5] = {0}, b[5][5] = {0};

로 되어있는데요

우선 가변길이 배열이 아니므로 배열 선언하면서 동시에 값 초기화 가능하다는 것은 알겠는데

{ 0 }으로 쓰는것은

0을 한번만 썼지만 배열의 방 전체가 값 0 으로 초기화되는 것인가요?

426p

c언어 코드에서

처음에 구조체를 정의할때 char ban[4];로 정의하는데요

이 부분에서 반으로 입력받는 데이터는

1반 2반 3반 4반 이런식으로 입력받는데

문자열의 종료를 알리는 \0 널문자 포함해서

1반\0라면 배열의 방이 3개씩만 필요한것 아닌가요?

->1 과 반이 문자 하나씩 차지하고 널문자 포함 방 3개

왜 방 4개로 선언했는지 이해가 안됩니다

답변
2017-09-26 10:27:53

안녕하세요.

1)
순서도의 개념적인 내용을 어느 정도 파악했으면 반드시 직접 값들을 넣어서 디버깅을 수행해 보세요.
그래야 순서도의 흐름을 이해한 내용과 연관지을 수 있습니다.
우선 디버깅을 수행하면서 각 변수의 값 변화를 통해 버블정렬이 수행되는 과정을 살펴보세요.
그 과정에서 이해되지 않는 부분이 있다면 질문 주세요. 자세히 설명드리도록 하겠습니다.

2)
배열이 0부터 시작하는 것으로 인해 중간값 이전의 열에 저장될 값들이 하나씩 밀려출력됩니다.
디버깅을 수행해 보면
1 2 3 4 5 6 7
9 10 11 12 13 14 15
16 17 18 19 20 21 0
22 23 24 25 0 0 0
26 27 28 29 30 0 0
31 32 33 34 35 36 0
37 38 39 40 41 42 43
과 같이 출력됩니다.


3)
{ 0 } 을 이용해 배열의 값들 전체를 0으로 초기화합니다.

4)
숫자 1byte, 한글 2byte 로 최소한 3byte 이상으로 선언을 해야 합니다.
일반적으로 문자열 인식자인 널문자를 감안하여 선언할 크기에 +1하므로
여기서는 4로 크기를 선언하였습니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-09-26 10:27:53

    안녕하세요.

    1)
    순서도의 개념적인 내용을 어느 정도 파악했으면 반드시 직접 값들을 넣어서 디버깅을 수행해 보세요.
    그래야 순서도의 흐름을 이해한 내용과 연관지을 수 있습니다.
    우선 디버깅을 수행하면서 각 변수의 값 변화를 통해 버블정렬이 수행되는 과정을 살펴보세요.
    그 과정에서 이해되지 않는 부분이 있다면 질문 주세요. 자세히 설명드리도록 하겠습니다.

    2)
    배열이 0부터 시작하는 것으로 인해 중간값 이전의 열에 저장될 값들이 하나씩 밀려출력됩니다.
    디버깅을 수행해 보면
    1 2 3 4 5 6 7
    9 10 11 12 13 14 15
    16 17 18 19 20 21 0
    22 23 24 25 0 0 0
    26 27 28 29 30 0 0
    31 32 33 34 35 36 0
    37 38 39 40 41 42 43
    과 같이 출력됩니다.


    3)
    { 0 } 을 이용해 배열의 값들 전체를 0으로 초기화합니다.

    4)
    숫자 1byte, 한글 2byte 로 최소한 3byte 이상으로 선언을 해야 합니다.
    일반적으로 문자열 인식자인 널문자를 감안하여 선언할 크기에 +1하므로
    여기서는 4로 크기를 선언하였습니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.