책 내용 질문하기
섹션 37에 대해서 질문있습니다
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
조회수
69
작성일
2018-07-12
작성자
탈퇴*원
첨부파일

1. 1권 315페이지에서 PUSH 함수에서 자료의 저장은 STACK[TOP] = ii 에 의해 수행되었다는것은 알겠는데

(PUSH함수는 직접적으로 입력한다는 수식표현이 있는데)

POP 함수에서는 삭제작업 자체를 나타내는 단일의 수식이 아닌

R = STACK[TOP], TOP = TOP -1 이 두개의 수식으로 삭제작업이 수행된다고 보면 되나요?

POP함수는 직접적으로 삭제시킨다는 수식표현이 없는거 같아서 질문드립니다.

2. 1권 317페이지에 main함수 내에 int i가 선언되었으므로

동그라미 9번 수식에서 int i = TOP을 int를 뺀 i = TOP으로 써도 되죠?

3. 1권 316, 317페이지 C언어 코드를 손으로 디버깅했는데

printf("작업을 선택하세요.:"); 와 printf("삽입할 숫자를 입력하세요.:"); 다음에 숫자를 출력하는 구문이 없어서

작업을 선택하세요.: 삽입할 숫자를 입력하세요.: 가 여러번 반복되는데 맞는건가요?

그리고 '제거한 자료는 40입니다' '작업을 선택하세요.:', '제거한 자료는 30입니다'

이후에도 작업을 선택하세요.: 삽입할 숫자를 입력하세요.: 가 여러번 반복됩니다.

답변
2018-07-13 09:43:02

안녕하세요.

1)

해당 알고리즘에서는

삽입은 해당 포인트에 값을 입력하는 방식으로 이뤄지는데,

삭제는 해당 포인트에 값을 제거하는 것이 아니라 새로운 값을 해당 위치에 겹쳐 기록함으로써 삭제되는 효과를 주는 것입니다.

2)

main 함수가 시작되자마자

while(1)을 만나게 되는데 while의 조건이 참이라 무조건 수행을 합니다.

하지만 프로그램으로 코드를 직접 실행할 경우에는 컴파일러가 while(1)을 수행하지 않을 경우도 고려함으로 인해 while문 바깥쪽에서 사용되는 i에 대한 형 선언되지 않았다는 오류를 발생시킬 수 있습니다.

이로 인해 while문 바깥쪽에서 사용되는 변수에 대해서도 임시 형변환을 사용한 것입니다.

3)

작업을 선택하세요.:

을 출력한 후 scanf에 값을 입력받습니다. 값을 입력한 후 enter를 누르기 때문에

다음 추력문은 아래줄에

삽입할 숫자를 입력하세요.:

와 같이 출력됩니다.

코드를 직접 실행한 결과 화면은 아래와 같습니다.

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

  • *
    2018-07-13 09:43:02

    안녕하세요.

    1)

    해당 알고리즘에서는

    삽입은 해당 포인트에 값을 입력하는 방식으로 이뤄지는데,

    삭제는 해당 포인트에 값을 제거하는 것이 아니라 새로운 값을 해당 위치에 겹쳐 기록함으로써 삭제되는 효과를 주는 것입니다.

    2)

    main 함수가 시작되자마자

    while(1)을 만나게 되는데 while의 조건이 참이라 무조건 수행을 합니다.

    하지만 프로그램으로 코드를 직접 실행할 경우에는 컴파일러가 while(1)을 수행하지 않을 경우도 고려함으로 인해 while문 바깥쪽에서 사용되는 i에 대한 형 선언되지 않았다는 오류를 발생시킬 수 있습니다.

    이로 인해 while문 바깥쪽에서 사용되는 변수에 대해서도 임시 형변환을 사용한 것입니다.

    3)

    작업을 선택하세요.:

    을 출력한 후 scanf에 값을 입력받습니다. 값을 입력한 후 enter를 누르기 때문에

    다음 추력문은 아래줄에

    삽입할 숫자를 입력하세요.:

    와 같이 출력됩니다.

    코드를 직접 실행한 결과 화면은 아래와 같습니다.

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

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