לולאות מקוננות
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 44 מתוך 78.
אפשר להציב לולאה בתוך לולאה אחרת כדי ליצור לולאה מקוננת. הלולאה הפנימית רצה עד סופה בכל איטרציה של הלולאה החיצונית, ולכן היא שימושית כשעובדים עם צירופים או עם דפוסים דמויי רשת.
for (i in 1:3) {
for (j in 1:2) {
cat("i =", i, ", j =", j, "\n")
}
}פלט:
i = 1 , j = 1
i = 1 , j = 2
i = 2 , j = 1
i = 2 , j = 2
i = 3 , j = 1
i = 3 , j = 2עבור כל ערך של i, הלולאה הפנימית עוברת על כל הערכים של j. כאשר i הוא 1, j נע מ-1 עד 2. לאחר מכן i הופך ל-2, ו-j מתחיל מחדש מ-1 עד 2.
דוגמה מעשית היא יצירת תבנית כפל פשוטה:
for (row in 1:3) {
for (col in 1:3) {
cat(row * col, " ")
}
cat("\n")
}פלט:
1 2 3
2 4 6
3 6 9הלולאה החיצונית שולטת בשורות, ואילו הלולאה הפנימית מטפלת בכל עמודה בתוך אותה שורה. לאחר השלמת כל שורה, אנחנו מדפיסים שורה חדשה כדי לעבור לשורה הבאה.
אתגר
קלקרא שני מספרים מהקלט: rows ו-cols.
השתמש בלולאות מקוננות כדי להדפיס מלבן של מספרים, שבו כל תא מכיל את סכום מספר השורה ומספר העמודה שלו. השורות ממוספרות מ-1 עד rows, והעמודות ממוספרות מ-1 עד cols.
הדפס כל שורה בשורה נפרדת, כשהערכים מופרדים ברווח יחיד. השתמש ב-cat() להדפסה, והוסף תו שורה חדשה אחרי כל שורה.
לדוגמה, אם הקלט הוא 3 ו-4, הפלט אמור להיות:
2 3 4 5
3 4 5 6
4 5 6 7בשורה הראשונה (שורה 1), הערכים הם 1+1=2, 1+2=3, 1+3=4, 1+4=5. בשורה השנייה (שורה 2), הערכים הם 2+1=3, 2+2=4, 2+3=5, 2+4=6, וכן הלאה.
נסו בעצמכם
# קראו את הקלט
con <- file("stdin", "r")
rows <- as.integer(suppressWarnings(readLines(con, n = 1)))
cols <- as.integer(suppressWarnings(readLines(con, n = 1)))
close(con)
# TODO: כתבו את הקוד שלכם למטה
# השתמשו בלולאות מקוננות כדי להדפיס מלבן שבו כל תא מכיל row + column
# השתמשו ב-cat() כדי להדפיס ערכים המופרדים ברווחים, עם ירידת שורה אחרי כל שורההשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין