1 / 23

תכנות תרגול 8

תכנות תרגול 8. שבוע: 12.4.05. שבוע שעבר. רקורסיות. תרגיל : כתוב תוכנית הקולטת רצף כלשהו של תווים עד ללחיצה על אנטר ומדפיסה אותו. שבוע שעבר. רקורסיות. void wrt_it(); int main() { printf(&quot;Input a line<br>&quot;); wrt_it(); printf(&quot;<br>&quot;); return 0; } void wrt_it() { char ch;

uzuri
Download Presentation

תכנות תרגול 8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. תכנות תרגול8 שבוע: 12.4.05

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

  3. שבוע שעבר רקורסיות void wrt_it(); int main() { printf("Input a line\n"); wrt_it(); printf("\n"); return 0; } void wrt_it() { char ch; scanf("%c", &ch); printf("%c", ch); if (ch != '\n') wrt_it(); } פתרון

  4. שבוע שעבר רקורסיות תרגיל המשך: הפעם הדפס את הקלט מהסוף להתחלה

  5. שבוע שעבר רקורסיות void wrt_it(); int main() { printf("Input a line\n"); wrt_it(); printf("\n"); return 0; } void wrt_it() { char ch; scanf("%c", &ch); if (ch != '\n') wrt_it(); printf(“%c”,ch); } פתרון

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

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

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

  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]); } קלט פלט

  10. תרגיל כתוב תוכנית הקולטת 10 איברים לתוך מערך ומדפיסה תחילה את כל האיברים הזוגיים ואחר כך את כל האיברים האי זוגיים Enter numbers 1 2 3 4 5 6 7 8 9 10 Even: 2 4 6 8 10 Odd: 1 3 5 7 9

  11. #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"); for (i=0;i<SIZE;i++) if (arr[i] % 2 == 0) printf("%d ",arr[i]); printf("\nOdd:\n"); for (i=0;i<SIZE;i++) if (arr[i] % 2 != 0) printf("%d ",arr[i]); printf("\n"); } קלט פלט

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

  13. מערכים נכתוב תוכנית שזורקת קובייה 6000 פעמיים ונספור כמה פעמיים יצא כל מספר.

  14. #include <stdio.h> #include <stdlib.h> #define SIZE 7 int main() { int num, face, roll, frequency[ SIZE ] = { 0 }; scanf("%d",&num); srand( num ); for ( roll = 1; roll <= 6000; roll++ ) { face = rand() % 6 + 1; ++frequency[ face ]; } printf( "%s%17s\n", "Face", "Frequency" ); for ( face = 1; face <= SIZE - 1; face++ ) printf( "%4d%17d\n", face, frequency[ face ] ); return 0; }

  15. הבית הצהוב הבית האדום שמעון רמי כתובת : רחוב קוקוריקו 1 כתובת : רחוב קוקוריקו 2 הבית הורוד הבית הירוק יוסי אבנר כתובת : רחוב קוקוריקו 3 כתובת : רחוב קוקוריקו 4 מה הכתובת של “הבית האדום?” 2 רמי מי גר בבית מספר 2? רמי מי גר ב“בית האדום?”

  16. b a 5 3 כתובת : 2000 כתובת : 1000 c d 80 7 כתובת : 3000 כתובת : 4000 2000 מה הכתובת של?a 5 מה נמצא בתא 2000? 5 מה נמצא ב a?

  17. מצביעים • לכל משתנה שמוגדר בתוכנית יש כתובת • הכתובת שלו היא מיקומו בזכרון למשל כאשר משכנים מספר מסוג int אזי צורכים 4 bytes. int a; a 5000

  18. מצביעים a 5 5000 int a; int b; a = 5; b = 7; b 7 5004

  19. מצביעים a 5 5000 int a, b; int *p1; int *p2; a = 5; b = 7; p1 = &a; p2 = &b; b 7 5004 p1 5000 7026 p2 5004 7030

  20. מצביעים a 5 5000 int a, b; int *p1; int *p2; a = 5; b = 7; p1 = &a; p2 = &b; b 7 5004 p1 5000 7026 p2 5004 7030 *p1 = 2; *p2 = *p1;

  21. מצביעים a 2 5000 int a, b; int *p1; int *p2; a = 5; b = 7; p1 = &a; p2 = &b; b 2 5004 p1 5000 7026 p2 5004 7030 *p1 = 2; *p2 = *p1;

  22. תרגיל הגדר שני משתנים a ו b אתחל אותם לערכים כלשהם. לאחר מכן הגדר שני משתנים להחזקת הכתובות שלהם הדפס את הכתובות שלהם ואת הערכים שנמצאים בכתובות האלו. להדפסת מצביע נשתמש בפורמט %p.

  23. #include <stdio.h> int main() { int a=10,b=2; int *p1,*p2; p1 = &a; p2 = &b; printf(“%p %p \n”,p1,p2); printf(“%d %d \n”,*p1,*p2); return 0; }

More Related