Menu
Coddy logo textTech

סיכום – שליטה מתקדמת בלולאות

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-GO של Coddy. שיעור 5 מתוך 68.

challenge icon

אתגר

קל

באתגר הזה, תשלבו הוראות break עם תוויות יחד עם switch ועם fallthrough כדי ליצור מערכת לניטור אבטחה. המערכת מחפשת איומים בכמה אזורי אבטחה ומסווגת אותם באמצעות רמות התראה מדורגות.

תקבלו שתי כניסות:

  • מחרוזת המייצגת את רמת האיום שיש לחפש (למשל, "high")
  • מחרוזת המייצגת את מספר אזורי האבטחה המרבי שיש לחפש בהם (למשל, "3")

נתוני אזורי האבטחה הבאים עומדים לרשותכם:

zones := [][]string{
    {"low", "medium", "low"},
    {"medium", "high", "low"},
    {"critical", "medium", "high"},
    {"low", "critical", "medium"}
}

המשימה שלכם:

  1. לנתח את רמת האיום מהכניסה הראשונה
  2. לנתח את מספר אזורי האבטחה המרבי שיש לחפש בהם מהכניסה השנייה
  3. להשתמש בלולאות מקוננות עם break המסומנת בתווית כדי לחפש באזורי האבטחה
  4. כאשר תמצאו את רמת האיום המבוקשת, להדפיס "Threat found at zone [zone_number] position [position]" ולצאת מיד משתי הלולאות באמצעות break המסומנת בתווית
  5. לאחר מציאת האיום (או אם לא נמצא איום), להשתמש בהוראת switch עם fallthrough כדי להציג התראות אבטחה על סמך רמת האיום שחיפשתם

הוראת ה-switch אמורה לפעול כך:

  • עבור "critical": להדפיס "CRITICAL: Lockdown initiated!" ולהמשיך אל ההדפסה של התראת האבטחה ברמה הגבוהה
  • עבור "high": להדפיס "HIGH: Security breach detected!" ולהמשיך אל ההדפסה של התראת האבטחה ברמה הבינונית
  • עבור "medium": להדפיס "MEDIUM: Increased monitoring active"
  • עבור "low": להדפיס "LOW: Standard security protocols"

אם האיום לא נמצא לאחר חיפוש במספר אזורי האבטחה שצוין, להדפיס "Threat not found in searched zones" לפני הצגת התראות האבטחה. להשתמש באינדקסים שמתחילים ב-0 עבור מספרי אזורי האבטחה והמיקומים בתוכם.

נסו בעצמכם

package main

import (
    "fmt"
    "strconv"
)

func main() {
    // קראו את הקלט
    var threatLevel string
    var maxZonesStr string
    fmt.Scanln(&threatLevel)
    fmt.Scanln(&maxZonesStr)
    
    // המירו את מספר האזורים המרבי למספר שלם
    maxZones, _ := strconv.Atoi(maxZonesStr)
    
    // נתוני אזורי האבטחה
    zones := [][]string{
        {"low", "medium", "low"},
        {"medium", "high", "low"},
        {"critical", "medium", "high"},
        {"low", "critical", "medium"},
    }
    
    // TODO: כתבו את הקוד שלכם להלן
    // השתמשו בלולאות מקוננות עם break מתויג כדי לחפש את האיום
    // הדפיסו את מיקום האיום אם נמצא, או "Threat not found in searched zones" אם לא נמצא
    // לאחר מכן השתמשו ב-switch עם fallthrough להתראות אבטחה
    
}

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

תרגלו בעצמכם: קומפיילר Go אונליין