게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

2-4 질문입니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2017)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김재윤



가입: 2017년 9월 13일
올린 글: 10

올리기올려짐: 2017년9월25일 14:29    주제: 2-4 질문입니다. 인용과 함께 답변

2-4에서 예시로 들어주신 두 케이스에 대해 질문드립니다. 아래에 비슷한 질문을 해 주신 분과 답변이 있는데, 읽어 봐도 잘 이해가 되지 않아서 다시 한번 질문드립니다.

1) 맞는 것
AREA("a", CONNECT(STATION "a", AREA("b", STATION "a")))

2) 틀린 것
AREA("a", CONNECT(STATION "a", AREA("b", STATION "c")))

AREA("b", STATION "a") 와 AREA("b", STATION "c")는 둘 다 틀린 metro인데
왜 1)은 맞고 2)는 틀린가요?

2-4 문제가 직관적으로 와 닿지 않는데, 예시로 들어주신 두 케이스를 비교해 보면 이해가 될 것 같습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
하비홍



가입: 2017년 9월 7일
올린 글: 8

올리기올려짐: 2017년9월25일 15:05    주제: 인용과 함께 답변

역이 제대로 생겼는지는 해당 역을 감싸는 바깥쪽 AREA에 따라 결정되기 때문입니다.
주어진 예시에서 metro가 제대로 생겼는지는 다음처럼 확인됩니다.

1) 역이 2개가 있습니다.
왼쪽 역 "a"은 역을 감싸는 CONNECT 바깥쪽 AREA "a"가 존재하니 괜찮습니다.
오른쪽 역 "a" 바로 바깥쪽 AREA는 "b"이지만 그 역을 감싸는 CONNECT 바깥쪽 AREA는 "a"이니 괜찮습니다.

2) 역이 2개가 있습니다.
왼쪽 역 "a"은 역을 감싸는 CONNECT 바깥쪽에 AREA "a"가 존재하니 괜찮습니다.
오른쪽 역 "c" 바로 바깥쪽 AREA는 "b"이고 그 역을 감싸는 CONNECT 바깥쪽 AREA는 "a"입니다. 바깥에는 아무 것도 없습니다. 따라서 역 바깥에 AREA "c"가 존재하지 않으므로 잘못된 metro입니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김재윤



가입: 2017년 9월 13일
올린 글: 10

올리기올려짐: 2017년9월25일 16:09    주제: 인용과 함께 답변

문제의 spec에 따르면 AREA(역 이름, 지역)으로 되어 있는데 AREA(지역, 역 이름)으로 설명해주신 걸로 이해됩니다. 제가 아직 이해를 잘못 한 건 가요, 아니면 프로젝트 스펙이 이상한건가요?
위로
사용자 정보 보기 비밀 메시지 보내기
김성국17



가입: 2017년 9월 15일
올린 글: 16

올리기올려짐: 2017년9월25일 22:52    주제: 인용과 함께 답변

Station "x"는 Area "x"에 enclose 되어있어야 한다는 의미입니다.

Enclose 되어 있다는건 꼭 AREA("a", STATION "a") 처럼 직접적인 포함관계만을 의미하는 것이 아니라,

AREA("a", ( ... (STATION "a")... )) 처럼 그 안 어딘가에만 포함되어 있으면 됩니다.


이는 마치 아래와 같은 C프로그램에서 x + 1의 x가 자유변수가 아닌 것과 같은 이치입니다. x가 사용되는 블락에서 x가 직접적으로 선언된 것은 아니지만, 이를 포함하는 상위 블락 어딘가에서 x가 선언이 되어있으니 자유 변수가 아니겠죠?
코드:

{
    int x = 1;
    ...
    {
        ...
        {
            int y = x + 1;
        }
    }
}
위로
사용자 정보 보기 비밀 메시지 보내기
김성국17



가입: 2017년 9월 15일
올린 글: 16

올리기올려짐: 2017년9월25일 23:06    주제: 인용과 함께 답변

C프로그램의 비유에서 착안해보았는데, 예들을 뭔가 다음과 같이 표현할 수 있겠네요.

1) AREA("a", CONNECT(STATION "a", AREA("b", STATION "a")))
코드:

a {
    {
        a;
    }
    {
        b {
            a;
        }
    }
}

a; 둘다 a라는 지역({})안에 포함되어 있습니다.

2) AREA("a", CONNECT(STATION "a", AREA("b", STATION "c")))
코드:

a {
    {
        a;
    }
    {
        b {
            c;
        }
    }
}

이 경우 c;를 감싸는 c {...}가 없습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김재윤



가입: 2017년 9월 13일
올린 글: 10

올리기올려짐: 2017년9월26일 17:43    주제: 인용과 함께 답변

덕분에 이해 되었습니다, 감사합니다!
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2017) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay