כתיבת קוד — שיעור 14
סימולציית כנס גאמא — NOVA + CommandBridge
כל 2 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.
T2 · בסיסי250 נק'~15 דק'algorithmic
CommandBridge — סמן על רשת
פרוטוקול CommandBridge שולט בסמן על רשת אינסופית, שמתחיל ב-(0,0). כל פקודה: "MOVE DIR K" כאשר DIR הוא N/S/E/W ו-K מספר צעדים (N=+y, S=-y, E=+x, W=-x). עבד את הפקודות והחזר את המיקום הסופי (x, y).
דוגמאות
run_cursor(['MOVE N 3','MOVE E 2']) → (2, 3)
run_cursor(['MOVE N 1','MOVE S 1']) → (0, 0)
הפתרון נשמר מקומית אוטומטית.
T3 · בינוני450 נק'~30 דק'algorithmic
NOVA VM — אוגרים ובקרת זרימה
ממש את מכונת NOVA. תוכנית = רשימת הוראות, מונה-פקודות מתחיל ב-0. אוגרים (כל שם מתחיל ב-0). הוראות: "MOV rX n" (rX=n) · "ADD rX n" · "SUB rX n" · "OUT rX" (הוסף לפלט) · "JNZ rX off" (אם rX≠0 קפוץ יחסית ב-off, אחרת המשך). החזר את רשימת ה-OUT. (המימוש חייב לתמוך בלולאות דרך JNZ; הגן מלולאה אינסופית בתקרת צעדים.)
דוגמאות
run_nova(['MOV r0 3','OUT r0','SUB r0 1','JNZ r0 -2']) → [3, 2, 1] # לולאת ספירה-לאחור
run_nova(['MOV r0 5','OUT r0','ADD r0 2','OUT r0']) → [5, 7]
הפתרון נשמר מקומית אוטומטית.