מבוא למדעי המחשב תרגול 6 - מערכים שעת קבלה : יום שני 11:00-12:00 דוא " ל :

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי הרצאה 12.
מערכים ומטריצות קרן כליף.
מבוא למדעי המחשב מערכים.
מבוא למדעי המחשב תרגול 2 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תכנות תרגול 7 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא.
תכנות תרגול 6 שבוע : חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
11 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תכנות תרגול 9 שבוע : מערכים int a; a=5; int a[10]; a[2] = 5; 5 a a[0] a[1] a[2] a[9]  5 משתנה בודד מערך גישה למשתנה השלישי במערך.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
תכנות – שיעור 7. חזרה -מערכים נגדיר בעזרתו קבוצת משתנים כאשר יהיה לנו מספר רב של משתנים זהים נגדיר בעזרתו קבוצת משתנים כאשר יהיה לנו מספר רב של משתנים.
תכנות תרגול 2 שבוע : צור קשר מתרגל – שי גוטנר, ביה " ס למדעי המחשב. מתרגל – שי גוטנר, ביה " ס למדעי המחשב. דואר אלקטרוני : דואר.
תכנות תרגול 14 שבוע:
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מערכים מבוא לתכנות למנע"ס - שבוע מספר 8 - מאיר קומר - סמסטר ב' - תשס"ו והנה בעיה כתוב תוכנית אשר תקלוט 36 מספרים ותדפיס כמה מתוכם גדולים יותר מהממוצע.
תכנות תרגול 14 שבוע : רשימות מקושרות ישנו מבנה נתונים אשר מאפשר ישנו מבנה נתונים אשר מאפשר לנו לבצע את הוספת האיברים בצורה נוחה יותר. מבנה זה.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
קורס תכנות – סימסטר ב ' תשס " ח שיעור שישי: מערכים
תכנות תרגול 7 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא ידעו.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
עקרון ההכלה וההדחה.
תכנות תרגול 4 שבוע : לולאות for לולאות for for (counter=1 ;counter
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מבוא למדעי המחשב תרגול 9 – מערכים ומחרוזות, תרגילי חזרה שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא כללי למדעי המחשב תרגול 7. מבנים מטרת המבנים היא לאפשר למתכנת להגדיר טיפוסי משתנים חדשים אשר מתאימים ספציפית לבעיה שאותה התוכנית פותרת. מטרת המבנים.
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
מבוא למדעי המחשב תרגול 5 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב תרגול 12 – הקצאת זיכרון דינאמית שעת קבלה : יום שני 11:00-12:00 דוא " ל :
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 8 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא.
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
מבוא למדעי המחשב הרצאה 9: תכנות רקורסיבי 2 1. חישוב עצרת: רקורסיית זנב public static int fact (int n){ return factacc(n,1); } public static int factacc.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
מבנים קרן כליף. ביחידה זו נלמד :  מהו מבנה (struct)  איתחול מבנה  השמת מבנים  השוואת מבנים  העברת מבנה לפונקציה  מבנה בתוך מבנה  מערך של מבנים.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
Programming Pointers. נדגים היום בעזרת מצביעים העברת משתנים לפונקציה שמשנה אותם  פונקציה שמקבלת מצביעים לסמן תא בזיכרון  פונקציה שמחזירה מצביע מערך.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Programming Arrays.
מבוא למדעי המחשב סיבוכיות.
מערכים ומצביעים הקצאה דינאמית של מערכים דו-מימדיים
מיונים וחיפושים קרן כליף.
שיעור חמישי: מערכים ומחרוזות
מצביעים קרן כליף.
מערכים קרן כליף.
תירגול 14: מבני נתונים דינאמיים
מצביעים קרן כליף.
מערכים ומטריצות קרן כליף.
Computer Programming Summer 2017
מבוא כללי למדעי המחשב תרגול 4
תרגול 8 תחומי הכרה פונקציות
מבוא כללי למדעי המחשב תרגול 6
שאלות מבחינות קודמות יואב ציבין.
תירגול 8:מצביעים והקצאה דינאמית
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

מבוא למדעי המחשב תרגול 6 - מערכים שעת קבלה : יום שני 11:00-12:00 דוא " ל :

מערכים מערך הוא טיפוס נתונים המכיל מספר אברים מאותו סוג. מיקום האיבר במערך נקרא אינדקס. למערך בעל n איברים יש n אינדקסים מ -0 עד n-1. כלומר, האיבר הראשון יושב במקום 0, האיבר השני במקום 1,..., האיבר האחרון יושב במקום ה n-1.

הצהרה על מערך type name[size]; למשל, הצהרה על מערך בשם grades שמכיל 20 אברים מטיפוס שלם : int grades[20]; גודל המערך חייב להיות מוגדר מראש. לכן לא ניתן להצהיר על מערך באופן הבא : int x; int array[x]; התייחסות לאיבר במערך : name[index] למשל, ניתן את הערך 100 לאיבר העשירי במערך : grades[9]=100;

אתחול המערך בהצהרה על המערך ניתן לאתחל אותו. למשל : int a[5]={1,3,8,4,-2}; אם נאתחל מערך באופן הבא : int b[5]={1,2} אז כל שאר האברים ( השלישי עד החמשי ) יקבלו את הערך 0. בזמן ההצהרה על המערך, ניתן לאתחל את כל אבריו להיות 0. למשל : int array[10]={0}; על מנת לתת ערכים לאברי המערך לאחר ההצהרה נשתמש בלולאה

העברת מערך חד מימדי לפונקציה דוגמה : void function(int x[]) אם נרצה להעביר לפונקציה את גודל המערך, נעביר אותו כמשתנה מועבר. העברת המערך היא העברה לפי התייחסות (call by reference) ולכן הפונקציה מקבלת את כתובת תחילת המערך. הבעיה : הפונקציה יכולה לשנות את ערכי המערך. אם לא נרצה לשנות את הערכים נעביר את המערך כקבוע : void function(const int x[]) טיפוס אברי המערך שם המערך סוגריים ריקים ללא ציון הגודל

כתוב תכנית שקולטת ערכים למערך מגודל 10 של מספרים שלמים, מוסיפה לכל איבר את סכום הערכים של אברי המערך, ומדפיסה את המערך החדש. #include #define N 10 int kelet(int a[]) } int i,sum=0; printf ("\n enter %d numbers",N); for (i=0;i<N;i++) { scanf ("%d",&a[i]); sum+=a[i]; { return (sum); { void add(int b[],int sum) } int i; for (i=0;i<N;i++) } b[i]+=sum; printf ("\n array[%d]=%d",i,b[i]); { { void main() } int array[N]; add(array,kelet(array)); {

תרגילים: 1) כתבו תוכנית שמצהירה על מערך מטיפוס שלם של 9 איברים, ותבצע : א. תציב את המספר 0 בכל האברים. ב. תציב את המספר 1 באברים בעלי אינדקס אי זוגי. ג. תציב את המספר 2 באברים בעלי אינדקס זוגי. ד. תוסיף את המספר 3 לאברים שהאינדקס שלהם מתחלק ב -3. ה. תדפיס את המערך. 2) כתבו תכנית שקולטת מערך בגודל 10 של תווים, ותו נוסף. התכנית תדפיס כמה פעמים מופיע התו הנוסף במערך, ובאיזה מקום במערך הוא מופיע בפעם הראשונה. 3) כתבו תכנית שקולטת 7 תווים למערך ובונה מערך חדש מאותו גודל שאיבריו מוזזים מקום אחד ימינה, והאיבר האחרון במערך המקורי יהפוך להיות ראשון בחדש. התכנית תדפיס את שני המערכים. לדוגמה : חדש מקורי 4) כתבו תכנית שקולטת ערכים שלמים אי שליליים לשני מערכים a ו -b בגודל 10 ובונה מערך חדש c שהוא מערך החיתוך של a ו b-.( כלומר הוא מכיל את האיברים בעלי ערכים משותפים של a ו -b). ניתן להניח שבכל מערך אין איבר פעמיים. elpmaxe lpmaxee

תרגיל 1 #include #define N 9 void main() } int i,a[N]={0}; for (i=0;i<N;i++) } if (i%2) a[i]=1; else a[i]=2; if (!(i%3)) a[i]+=3; { for (i=0;i<N;i++) printf ("\n a[%d]=%d",i,a[i]); {

תרגיל 2 #include #define N 10 void kelet(char a[]) } int i; printf ("\n enter %d chars",N); for (i=0;i<N;i++) } flushall(); scanf("%c",&a[i]); { int find_index(const char a[],char tav) } int i; for (i=0;i<N;i++) if (a[i]==tav) return(i); return(-1); { void main() } char array[N],c; int i,count=0,index; kelet(array); printf ("\n enter another char"); flushall(); scanf ("%c",&c); for (i=0;i<N;i++) if (array[i]==c) count++; printf ("\n %c appears %d times at array",c,count); index=find_index(array,c); if (index!=-1) printf ("\n %c appears at %d place",c,index+1); {

תרגיל 3 #include #define N 7 void kelet(char a[]) } int i; printf ("\n enter %d chars",N); for (i=0;i<N;i++) } flushall(); scanf ("%c",&a[i]); { pelet(const char a[]) } int i; printf ("\n"); for (i=0;i<N;i++) printf ("%c",a[i]); { void main() } char arr[N],new[N]; int i; kelet(arr); new[0]=arr[N-1]; for (i=1;i<N;i++) new[i]=arr[i-1]; pelet(arr); pelet(new); {

תרגיל 4 #include #define N 10 void kelet(int array[]) } int i; printf ("\n enter %d numbers",N); for (i=0;i<N;i++) scanf ("%d",&array[i]); { pelet(const int arr[]) } int i; printf ("\n"); for (i=0;i<N;i++) if (arr[i]>0) printf ("%d",arr[i]); { void main() } int a[N],b[N],c[N]={0}; int i,j; kelet(a); kelet(b); for (i=0;i<N;i++) for (j=0;j<N;j++) if (a[i]==b[j]) c[i]=a[i]; pelet(c); {