מציאת המינימום והמקסימום
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 50 מתוך 78.
למערכים יש את המתודות min() ו-max(), שמחזירות את האיבר הקטן ביותר ואת האיבר הגדול ביותר:
var temps := [18, 25, 9, 31, 22]
print(temps.min()) # 9
print(temps.max()) # 31הפונקציות הגלובליות min() ו-max() משוות בין המספרים שמעבירים להן, וזה שימושי עבור שניים או שלושה ערכים:
print(max(4, 12, 7)) # 12
var hp: int = min(120, 100) # 100, לעולם לא מעל 100מחרוזות מושוות תו אחר תו, לפי קוד ה-Unicode שלהן. כל אות גדולה מופיעה לפני כל אות קטנה:
var words := ["kiwi", "apple", "Fig"]
print(words.min()) # Fig
print(words.max()) # kiwiאותו כלל חל גם על מספרים המאוחסנים כטקסט: "9" גדול יותר מ-"56", כי התו 9 מופיע אחרי 5. יש להמיר את הקלט באמצעות int() לפני שמשווים מספרים.
במערך ריק, שתי המתודות מחזירות null. כדי למצוא היכן נמצא הערך הגדול ביותר, העבירו אותו אל find(): temps.find(temps.max()) הוא 3. עבור מילון, מצאו את הגדול ביותר מבין הערכים שלו וחפשו את המפתח שלו באמצעות find_key(), שמחזירה את המפתח הראשון עם הערך הזה:
var scores := {"Mia": 120, "Leo": 95, "Ana": 140}
var best: int = scores.values().max()
print(scores.find_key(best), " ", best) # Ana 140max() מחזירה ערך מכל סוג, לכן יש להצהיר על סוג המשתנה (var best: int) במקום לכתוב :=.
אתגר
קלהתוכנית קוראת שתי שורות: מספרים שלמים המופרדים ברווחים, ומילים המופרדות ברווחים. בכל שורה יש לפחות ערך אחד.
הדפיסו את המספר הקטן ביותר ואת המספר הגדול ביותר, ואז את המילה הקטנה ביותר ואת המילה הגדולה ביותר, באמצעות min() ו-max(). השוו את המספרים כמספרים, ולא כטקסט. עבור הקלטים 42 17 23 56 9 34 ו-kiwi apple banana cherry date, הפלט הוא:
Smallest number: 9
Largest number: 56
Smallest word: apple
Largest word: kiwiנסו בעצמכם
extends Node
func _ready():
var number_texts := OS.read_string_from_stdin().split(" ", false)
var words := Array(OS.read_string_from_stdin().split(" ", false))
# המירו את המספרים ל-int, ואז הדפיסו את ארבע התוצאות
pass
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין