2014-10-24 3 views
4

나는 downvotes를 완전히 기대하지만, 이것은 정말 호기심이 생기고 적어도 누군가가 대답 할 수 있기를 바랍니다. 우리의 이산 수학 교수는 그들이 제공하는 많은 비트 연산자에 대해 오래된 언어를 정말 좋아합니다. 이제 그는 우리에게 다음과 같은 기본 구문의 출력을 결정하는 것이었다 숙제 준 : 나는 그것을 해결했고 나는 그것을 출력 -105에 해야하는 거의 확신어떤 종류의 기본입니까?

PRINT (NOT (15 OR 51) EQV 85) IMP (15 AND 51) 

을,하지만 난 컴파일 원 단지 그것을 확인하는 것입니다. 그런 다음 문제가 발생했음을 알았습니다. 나는 이것이 어떤 종류의 기본인지 전혀 모른다! 원래 BASIC 언어 용 컴파일러가 컴파일하지 못했습니다. QBasic 컴파일러가 컴파일하지 못했습니다.

Console.WriteLine((NOT (15 OR 51) EQV 85) IMP (15 AND 51)) 

질문은 다음과 같습니다하십시오 VB.NET 컴파일러는 내가 이런 VB.NET의 구문해야한다 생각에 수정 후에도, 컴파일하는 데 실패에도 종류 또는 BASIC의 방언이있는 이 문장이있는 프로그램을 컴파일 할 수 있습니까? 그리고 그렇다면 어떤?

답변

3

"원래"Microsoft Visual Basic에서 작동합니다. VB.NET 버전은 완벽하게 호환되지 않습니다.

Microsoft Office에서 찾을 수있는 Visual Basic for Applications를 사용하여 가장 쉽게 시도 할 수 있습니다. 실제로 표현식은 -105으로 평가됩니다. PowerBASIC 그들 중 하나가 될 수도 있지만 난 정말 확인할 수 없습니다 :

를 정확한 확인 -

Cells(1, 1).Value = (Not (15 Or 51) Eqv 85) Imp (15 And 51) 

아마도 잘 작동 줘야 다른 기본 방언있다 :이 코드를 사용하여 Excel을 사용했습니다 사투리는 선생님의 배경을 모른 채 까다 롭습니다. 그 중 많은 것이 있고 많은 것은 매우 유사합니다.

1

내게는 VBA 구문 인 것 같습니다.

MS-Excel 매크로에서 사용해 볼 수도 있습니다.

Sub VBA_Function() 
    Dim x 
    x = (Not (15 Or 51) Eqv 85) Imp (15 And 51) 
    Range("A1").Value = x 
End Sub 
1

아마도 교수님이 질문을 컴파일러에 코드를 입력하는 것이 아니라 분석적으로 해결하기위한 도전 과제로 제공했을 것입니다. 그것은 복잡한 표현이 아닙니다.

어느 EQVIMP 은 더 이상 기본 기능 지원 (MS 항상 호환 것에 대해 너무 많이!).

답을 검증하려면 함수 정의를 사용하고 수동으로 해결해야합니다.

그래도 VBA에서는 여전히 흥미롭게 지원됩니다. 대부분의 MS Office 제품군 앱에 묻혀있는 VBA를 찾을 수 있습니다.