- TI nspire
[TI-Nspire] 프로그래밍 If, Lbl, and Goto to Control Program Flow
원본 출처 :
https://education.ti.com/html/webhelp/nspire/4.2/NAVHH/TI-NspireNavigatorHelp_EN/Content/M_Programming/PR_Using_If_Lbl_and_Goto.htm
You are here: Programming > Using If, Lbl, and Goto to Control Program Flow
Using If, Lbl, and Goto to Control Program Flow
If 명령어와 여러 If...EndIf 구조는 조건부로 명령문이나 명령문 블록을 실행할 수 있게 해 줍니다. 즉, (예: `x>5`)와 같은 테스트 결과에 따라 실행됩니다. Lbl(레이블)과 Goto 명령어는 함수나 프로그램 내에서 한 위치에서 다른 위치로 분기하거나 점프할 수 있게 합니다.
If 명령어와 여러 If...EndIf 구조는 Program Editor의 Control 메뉴에 있습니다.
`If...Then...EndIf`와 같은 구조를 삽입하면 템플릿이 커서 위치에 삽입됩니다. 커서는 조건부 테스트를 입력할 수 있는 위치로 이동됩니다.
If Command
조건부 테스트가 참일 때 단일 명령을 실행하려면 일반 형식을 사용하십시오:
If x>5 Disp "x is greater than 5" À Disp x Á |
À |
Executed only if x>5; otherwise, skipped. |
Á |
Always displays the value of x. |
In this example, you must store a value to x before executing the If command.
If...Then...EndIf Structures
조건부 테스트가 참일 경우 하나의 명령 그룹을 실행하려면 다음 구조를 사용하십시오:
If x>5 Then Disp "x is greater than 5" À 2¦x&x À EndIf Disp x Á |
À |
Executed only if x>5. |
Á |
Displays the value of: 2x if x>5 x if x{5 |
Note: EndIf marks the end of the Then block that is executed if the condition is true.
If...Then...Else...EndIf Structures
조건부 테스트가 참일 경우 하나의 명령 그룹을 실행하고, 조건이 거짓일 경우 다른 명령 그룹을 실행하려면 다음 구조를 사용하십시오:
If x>5 Then Disp "x is greater than 5" À 2¦x&x À Else Disp "x is less than or equal to 5" Á 5¦x&x Á EndIf Disp x  |
À |
Executed only if x>5. |
Á |
Executed only if x{5. |
 |
Displays value of: |
If...Then...ElseIf... EndIf Structures
더 복잡한 형태의 If 명령어를 사용하면 여러 조건을 테스트할 수 있습니다. 예를 들어, 사용자로부터 제공된 인수가 네 가지 옵션 중 하나를 나타내는지 테스트하려고 한다고 가정해 보세요.
각 옵션을 테스트하려면(예: `If Choice=1`, `If Choice=2` 등), If...Then...ElseIf...EndIf 구조를 사용하십시오.
Lbl and Goto Commands
Lbl(레이블)과 Goto 명령어를 사용하여 흐름을 제어할 수도 있습니다. 이러한 명령어는 Program Editor의 Transfers 메뉴에 있습니다.
Lbl 명령어를 사용하여 함수나 프로그램 내 특정 위치에 레이블(이름)을 지정할 수 있습니다.
Lbl labelName |
name to assign to this location (use the same naming convention as a variable name) |
그런 다음, Goto 명령어를 함수나 프로그램의 원하는 지점에서 사용하여 지정된 레이블에 해당하는 위치로 분기할 수 있습니다.
Goto labelName |
specifies which Lbl command to branch to |
Goto 명령어는 무조건적이기 때문에(항상 지정된 레이블로 분기), 종종 If 명령어와 함께 사용되어 조건부 테스트를 지정할 수 있습니다. 예를 들어:
If x>5 Goto GT5 À Disp x -------- -------- Á Lbl GT5 Disp "The number was > 5" |
À |
If x>5, branches directly to label GT5. |
Á |
For this example, the program must include commands (such as Stop) that prevent Lbl GT5 from being executed if x{5. |
세상의모든계산기 님의 최근 댓글
다항식 나눗셈 (가장 정석적인 방법) (피제수, 나뉠 식) r1*r3 를 (제수, 나누는 식) r1+r3 로 직접 나누며, 여기서 r1을 변수로 취급합니다. 1. 몫 구하기: r1*r3 (나뉠 식)의 최고차항을 r1+r3 (나누는 식)의 최고차항 r1로 나눕니다. (r1*r3) / r1 = r3 <-- 이것이 몫(Quotient)이 됩니다. 2. 나머지 구하기: (원래 분자) - (몫 × 분모) 를 계산합니다. (r1*r3) - (r3 × (r1+r3)) = r1*r3 - (r1*r3 + r3^2) = -r3^2 <-- 이것이 나머지(Remainder)가 됩니다. 3. 결과 조합: 최종 결과는 `몫 + (나머지 / 나누는 식)` 형태로 씁니다. r3 + (-r3^2 / (r1+r3)) \[ \begin{array}{l} \phantom{r_1+r_3 \overline{) r_1 r_3}} r_3 \\ r_1+r_3 \overline{) \begin{array}[t]{@{}r@{}} r_1 r_3 \phantom{+r_3^2} \\ - (r_1 r_3 + r_3^2) \\ \hline -r_3^2 \\ \end{array}} \end{array} \] 2025 10.14 부분적 과정으로 분자(변수의 곱)를 다른 변수로 치환할 수 있다면 (r1*r3=a, r2*r4=b) 다항식에서도 강제 나눗셈 과정을 막을 수 있겠습니다만, 원래의 식에 적용시킬 수는 없어 의미가 없겠습니다. 2025 10.14 (r1*r3) / (r1+r3) 에서 원래라면 분자(r1*r3)에서 하나의 변수를 선택하여 그것을 기준으로 분모를 나누고 몫과 나머지로 분리하여 표현하는 것이 기본 원칙입니다만, 결과가 단항인 분수식일 경우 분자가 두 변수의 곱으로 표현되더라도 그것이 더 간단한 표현인 것으로 보고 그대로 두는 듯 합니다. 하지만 마지막 예시에서 보이는 것처럼 +1만 붙는 간단한 형식일지라도 다항식이 되는 순간 원래의 기본 원칙대로 대수의 나눗셈(r1*r3를 (r1+r3)로 나눔)이 강제 진행되어버리고 이를 막을 수 없는 듯 합니다. 2025 10.14 낮에 TV에서 영화 '말모이' 해주더라구요. 그래서 한번 물어 봤습니다. 2025 10.10 마지막 발언이 마지막 힌트이자 문제의 핵심이군요. 처음 들은 달이 8월이었다면 (15일인지 17일인지 확신할 수 없어서) 마지막 대사를 할 수 없지만, 처음 들은 달이 7월이었다면 (선택지가 16일 하나라서 확신이 가능하므로) 마지막 대사를 할 수 있다. 대사를 했으니 7월이다. 이제 이해되었습니다. 지금 보니까 이해가 되는데, 당시에는 왜 이해가 안됐을까요? 세가지 전제 하에 문제를 풀면 A는 마지막 대화 2줄만으로 C의 생일을 알 수 없어야 정상인데, 무슨 이유에서인지 "그럼 나도 앎!"이라고 선언해 버립니다. 알게 된 이유를 대화 속에서 찾을 수는 없습니다. 이 편견에 사로잡혀 빠져나오지 못하고 다른 길로 계속 샜나봅니다. 2025 10.09