× מי אנחנו? התוכנית הראשונה משתנים קלט ופלט אופרטורים חשבוניים משפטי בקרה לולאות לולאות דו ממדיות casting sizeof typedef פונקציות רקורסיות מצביעים מצביע כפול מערכים מערכים דינאמיים מערכים דו ממדים מחרוזות חיפוש בינארי מיון בועות מיון בחירה מיון הכנסה מיון מהיר מיון מיזוג

Let's learn C

לולאות דו ממדיות

כפי שלמדנו בנושא לולאות , לולאה הינה קטע קוד שרץ מספר פעמים לפי תנאי מסוים (למשל לולאות while , שרצה עד שהתנאי שניתן לה יהיה שיקרי).
קיימת הרחבה לנושא הלולאות והיא נפוצה מאוד בעולם התכנות.
לולאה דו ממדית מורכבת מלולאה שמריצה בתוכה לולאה אחרת.
אחת מהמטרות של לולאה דו ממדית הוא לעבור על מערך דו ממדי / לבצע מיון / לבצע חיפוש.
חשוב לציין שלולאה דו ממדית סטנדרטית רצה בסדר גודל של n2 , כלומר היא תבצע n*n פעולות
(כאשר n הוא הנתון הראשי).
נניח שאנו רוצים להדפיס משולש שעשוי מכוכביות:

במקום לרשום:

CODE 1:
#include <stdio.h>
void main()
{
  printf("*\n");
  printf("**\n");
  printf("***\n");
  printf("****\n");
  printf("*****\n");
}



נוכל לרשום:

CODE 2:
#include <stdio.h>
void main()
{
  int i,j;
  for( i=1 ; i < 6; i++)
  {
    for( j=1 ; j <= i; j++)
    {
      printf("*"); 
    }
    printf("\n");
  }
}

הסבר:
בדוגמא זו יש לנו לולאה בתוך לולאה, הלולאה הראשונה שלנו היא לולאה שרצה מi עד ל 5.
בתוך הלולאה הראשונה שלנו קיימת עוד לולאה שרצה כל פעם מj עד לi הנוכחי.
בתוך הלולאה השנייה שלנו אנו מדפיסים כוכבית אחת בכל איטרציה (ריצה).
בכל פעם שאנו מסיימים את הלולאה השנייה אנו חוזרים לקוד שרץ בלולאה הראשונה ומבצעים ירידת שורה (כך אנו חוזרים שהמשך הקוד בלולאה הראשונה).