מבוא כללי למדעי המחשב תרגול 4

Slides:



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

מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי הרצאה 12.
Pointers הרצאה קריטית. השאלות הפתוחות מה זה ה- & שמופיע ב scanf מדוע כשמעבירים מחרוזת ל scanf אין צורך ב & האם ניתן להכריז על מערך שגדלו אינו ידוע בתחילת.
מבוא כללי למדעי המחשב תרגול 1. כתיבת התוכנה כתיבת התוכנית עצמה נעשית ע " י כתיבת קובץ טקסט רגיל אשר תוכנו מקיים את כללי שפת C כתיבת התוכנית עצמה נעשית.
תכנות תרגול 7 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא.
תכנות תרגול 9 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
תכנות תרגול 6 שבוע : חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
מבוא כללי למדעי המחשב שיעור 4 מרצה: שי גוטנר. חזרה - משתנים מסוג char משתנים אלו מיצגים תווים. משתנים אלו מיצגים תווים. לכל תו יש קוד מספרי שמייצג אותו.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
11 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא כללי למדעי המחשב תרגול. הבית האדום כתובת : רחוב קוקוריקו 2 הבית הירוק כתובת : רחוב קוקוריקו 4 הבית הצהוב כתובת : רחוב קוקוריקו 1 הבית הורוד כתובת.
תכנות תרגול 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, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
תכנות תרגול 2 שבוע : צור קשר מתרגל – שי גוטנר, ביה " ס למדעי המחשב. מתרגל – שי גוטנר, ביה " ס למדעי המחשב. דואר אלקטרוני : דואר.
תכנות תרגול 14 שבוע:
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
תכנות תרגול 3 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 5 שבוע : לולאות for לולאות for for (counter=1 ;counter
מערכים מבוא לתכנות למנע"ס - שבוע מספר 8 - מאיר קומר - סמסטר ב' - תשס"ו והנה בעיה כתוב תוכנית אשר תקלוט 36 מספרים ותדפיס כמה מתוכם גדולים יותר מהממוצע.
תכנות תרגול 14 שבוע : רשימות מקושרות ישנו מבנה נתונים אשר מאפשר ישנו מבנה נתונים אשר מאפשר לנו לבצע את הוספת האיברים בצורה נוחה יותר. מבנה זה.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
מבוא למדעי המחשב תרגול 6 - מערכים שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תכנות תרגול 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 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
לולאות 02 יולי יולי יולי 1502 יולי יולי יולי 1502 יולי יולי יולי 15 1 Department of Computer Science-BGU.
פונקציות תכנות בשפת סי תרגול 6.
מערכים דו ממדי ו STRUCTS פונקציות בוליאנית Module Module1 Function Flip(ByVal word1 As String) As Boolean Dim i As Integer For i = 0 To word1.Length()
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מבוא למדעי המחשב תרגול 9 – מערכים ומחרוזות, תרגילי חזרה שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא כללי למדעי המחשב תרגול 7. מבנים מטרת המבנים היא לאפשר למתכנת להגדיר טיפוסי משתנים חדשים אשר מתאימים ספציפית לבעיה שאותה התוכנית פותרת. מטרת המבנים.
מבוא למדעי המחשב תרגול 5 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 8 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא.
תכנות תרגול 1 שבוע : צור קשר מתרגל – ליעם רודיטי, ביה " ס למדעי המחשב. מתרגל – ליעם רודיטי, ביה " ס למדעי המחשב. דואר אלקטרוני :
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
1 מבוא למחשב שפת C תרגילי חזרה. 2 תרגיל 1 : מחשבון קלט : תרגיל חשבוני המורכב ממספרים שלמים עם פעולות חשבוניות ביניהם. התרגיל מסתיים ב =. אפשריים רווחים.
קורס תכנות שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
1 מבוא למדעי המחשב הרצאה 5: פונקציות. 2 מבוא לפונקציות חלוקה של אלגוריתם לתת משימות: משימה - פונקציה: דוגמאות מציאת המקסימלי מבין שני איברים האינדקס של.
Programming Pointers. נדגים היום בעזרת מצביעים העברת משתנים לפונקציה שמשנה אותם  פונקציה שמקבלת מצביעים לסמן תא בזיכרון  פונקציה שמחזירה מצביע מערך.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Programming Arrays.
מבוא למדעי המחשב לתעשייה וניהול
הרצאה 10 פונקציות עם מספר משתנה של פרמטרים
מבוא למדעי המחשב סיבוכיות.
שיעור חמישי: מערכים ומחרוזות
מצביעים קרן כליף.
פונקציות קרן כליף.
מבוא כללי למדעי המחשב פונקציות
מבוא כללי למדעי המחשב שיעור 2
מבוא כללי למדעי המחשב תרגול 6
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

מבוא כללי למדעי המחשב תרגול 4 שבוע: 22.3.07

לולאות for שבוע שעבר for (counter=1 ;counter<=7 ; counter++ ) { שם המשתנה שבאמצעותו נשלוט בלולאה קידום משתנה הלולאה הערך שבו נאתחל אותו for (counter=1 ;counter<=7 ; counter++ ) { loop body } התנאי שכל עוד הוא מתקיים נמשכת הלולאה מה ערכו של המשתנה כאן ?

מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. אתגר: כתוב תוכנית שקולטת 100 מספרים שלמים ומדפיסה אותם מהאחרון שנקלט לראשון. קלט: 1 2 3 4 5 , ... , 99 100 פלט: 100 99 , ... , 5 4 3 2 1

אל תנסו בבית !!! פתרון (בלי מערכים) void main() { int a1,a2,a3,…,a100; scanf(“%d%d%d …”,&a1,&a2,&a3,…); printf(“%d %d %d …”,a100,a99,a98,…); } אל תנסו בבית !!!

 מערכים int a; a=5; int a[10]; a[2] = 5; a 5 משתנה בודד a[0] מערך גישה למשתנה השלישי במערך a[2] 5  a[9]

void main() { int i=0; int a[100]; for (i=0;i<100;i++) scanf (“%d”,&a[i]); for (i=99;i>=0;i--) printf (“%d ”,a[i]); } קלט פלט

תרגיל 1 כתוב תוכנית הקולטת 10 איברים לתוך מערך ומדפיסה תחילה את כל האיברים הזוגיים ואחר כך את כל האיברים האי זוגיים Enter numbers 91 32 23 14 65 46 57 18 39 510 Even: 32 14 46 18 510 Odd: 91 23 65 57 39

#include <stdio.h> #define SIZE 10 void main() { int i,arr[SIZE]; printf("Enter numbers\n"); for (i=0;i<SIZE;i++) scanf("%d",&arr[i]); printf("Even:\n"); if (arr[i] % 2 == 0) printf("%d ",arr[i]); printf("\nOdd:\n"); if (arr[i] % 2 != 0) printf("\n"); } קלט פלט

  מערכים - אתחול int a[10] = {1,2,3}; int a[10] = {0}; a[0] 1 a[1] 2 a[0] a[1] a[2]  a[9]

הגדרת פונקציות הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציה רשימת הערכים שהפונקציה מקבלת return-value-type function-name(parameter1, parameter2, …) { Function body return-value } דוגמא: נממש את הפונקציה f(x) = x^2 double sqr(double x) { return x*x; } הגדרת הפונקציה גוף הפונקציה

פונקציות- דוגמא נוספת int minimum( int x, int y, int z ) { נממש את הפונקציה שמוצאת את המינימום בין שלושה מספרים: int minimum( int x, int y, int z ) { int min = x; if ( y < min ) min = y; if ( z < min ) min = z; return min; } משתנה מקומי שמוכר רק בתוך הפונקציה x y z

שימוש בפונקציות int main() { int a, b, c; printf( "Enter three integers: " ); scanf( "%d%d%d", &a, &b, &c ); printf( "Min is: %d\n", minimum( a, b, c ) ); return 0; }

שימוש בפונקציות int main() { int a, b, c, min; printf( "Enter three integers: " ); scanf( "%d%d%d", &a, &b, &c ); min = minimum( a, b, c ); printf( "Min is: %d\n", min); return 0; }

העברת הערכים minimum main 4 5 2 4 5 2 x a משתמש y b z c

הכרזה על פונקציות double sqr( double ); int minimum( int, int, int ); הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציה רשימת סוגי הערכים שהפונקציה מקבלת return-value-type function-name(parameter1, parameter2, …); הכרזה על פונקציה בצורה כזו מעל לקטע הקוד הראשי של התוכנית מאפשרת לנו להשתמש בפונקציה בכל מקום. double sqr( double ); int minimum( int, int, int ); int main() { }

תרגיל 2 כתוב פונקציה המקבלת מספר שלם ומחזירה 0 אם הוא לא ראשוני ו- 1 אם כן. הדרכה: void main() { if (IsPrime(7) == 1) printf(“7 is prime”); } int IsPrime(int p) תוכנית שמשתמשת בפונקציה הפונקציה (השלימו את הגוף) ?

תרגיל 2- המשך קלוט מספר והדפס את כל המספרים הראשונים עד אליו תוך שימוש בפונקציה שכתבת.

תרגיל 2- פתרון הפונקציה int IsPrime(int num) { int k; for(k = 2 ; k*k <= num; k++) if (num % k == 0) return 0; } return 1; לולאה למציאת מחלקים בדיקה למציאת מספר שמחלק את הקלט לפונקציה במידה ונמצא אז להחזיר 0 אם הגענו לכאן אז אף מחלק לא נמצא והמספר ראשוני

תרגיל 2- פתרון התוכנית הראשית void main() { int num, last; printf(“Enter a number\n"); scanf("%d", &last); for (num = 2; num <= last; num++) if (IsPrime(num) == 1) printf("%d is prime\n", num); } לולאה להדפסת כל הראשונים עד למספר שנקלט בדיקת ראשוניות

חישוב ערכים באמצעות לולאות נתון הסכום הבא: n  (-1)i+1 4 2i -1 i = 1 נכתוב פונקציה שמחשבת אותו

חישוב הסכום הפונקציה double calc_something(int n) { int i,key=1; double result = 0; for (i=1; i<=n ;i++) result = result + key*(4.0/(2*i-1)); key *= -1; } return result; החישוב עצמו

תרגיל 3 כתוב פונקציה המקבלת כקלט את הדיוק המבוקש של החישוב. הדרכה: זוהי הכרזת הפונקציה: double calc_something(double eps) { } (-1)i+1 4 < eps הפונקציה תרוץ עד שיתקיים 2i -1

תרגיל 3- פתרון double calc_something(double eps) הפונקציה { int i=1,key=1; double result = 0,expr; do expr = 4.00/(2*i-1); result = result + key*expr; i++; key *= -1; } while (expr >= eps); return result; } הפונקציה הדיוק

הקשר בין מערכים לפונקציות כיצד נכתוב פונקציה אשר תקבל כפרמטר מערך ? הפונקציה תקבל מערך (את כתובתו) ותדפיס אותו: void PrintArray(int a[ ],int size) { int i; for (i=0;i<size;i++) printf(“%d”,a[i]); }

הקשר בין מערכים לפונקציות הפונקציה תקלוט איברים לתוך מערך void GetArray(int a[ ],int size) { int i; for (i=0;i<size;i++) scanf(“%d”,&a[i]); }

void GetArray(int a[ ],int size); void PrintArray(int a[ ],int size); int main() { int a[SIZE]; GetArray(a,SIZE); PrintArray(a,SIZE); return 0; }

מחרוזות מחרוזת – מחרוזת זה מערך של תווים אשר מסתיים ב ‘\0’. ‘S’ a[0] 5000 char a[6] = “Shai”; printf(“%s”,a); a[1] ‘h’ 5001 a[2] ‘a’ 5002 5003 a[3] ‘i’ a[4] ‘\0’ 5004 a[5] 5005 הדפסה באמצעות %s

מחרוזות הסיום ב ‘\0’ מאפשר לנו להעביר מחרוזות לפונקציות מבלי לציין את גודלם!!! פונקציה טיפוסית של מחרוזות תראה כך: void string_func(char s[ ]) { int k; … while (s[k] != ’\0’)

#include <stdio.h> int strlen(char str[ ]) { int k = 0; while ( str[k] != ’\0’ ) k++; return k; } int main() char str[ ]=“LINUX"; printf("%d",strlen(str)); return 0; מה קורה פה ? 100 101 102 103 104 105 106 L I N U X ‘\0’ str str[k]