תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה...

24
ללללל ללללל ללללל ללללל2 2 לללל לללל: : 6.11.05 6.11.05
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    241
  • download

    0

Transcript of תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה...

Page 1: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

22 תכנות תרגולתכנות תרגול

::שבועשבוע

6.11.056.11.05

Page 2: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

שבוע שעברשבוע שעבר

מאתחלת מאתחלת שלושה משתניםשלושה משתניםכתבו תוכנית המגדירה כתבו תוכנית המגדירה

שלהם את שלהם את המכפלההמכפלה ומדפיסה את ומדפיסה את 33 ו ו 22 11אותם ל אותם ל

שלהם. שלהם.הסכוםהסכום שלהם ואת שלהם ואת ההפרשההפרש

Page 3: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

פתרוןפתרון#include <stdio.h>#include <stdio.h>void main()void main(){{

int x,y,z;int x,y,z;x=1;x=1;y=2;y=2;z=3;z=3;printf ("x*y*z=%d\n",x*y*z);printf ("x*y*z=%d\n",x*y*z);printf ("x+y+z=%d\n",x+y+z);printf ("x+y+z=%d\n",x+y+z);printf ("x-y-z=%d\n",x-y-z);printf ("x-y-z=%d\n",x-y-z);

}}

שפונקצית ההדפסהשפונקצית ההדפסהנשים לב מקבלת גם ביטוי מתמטי מחשבת

אותו ומדפיסה את ערכו

Page 4: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

קליטת ערכים למשתנים קליטת ערכים למשתנים מהמשתמשמהמשתמש#include <stdio.h>#include <stdio.h>

void main()void main()

{{

int num, num1;int num, num1;

printf("Enter two positive numbers\printf("Enter two positive numbers\n");n");

scanf("%d%d", &num, &num1);scanf("%d%d", &num, &num1);

}}

הוראה למשתמש

קליטת הערכים

Page 5: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

פונקצית הקליטהפונקצית הקליטה

scanf("%d%d", &num, &num1);scanf("%d%d", &num, &num1);

שם הפונקציה

אופי הקלט

)מופיע בין גרשיים(

הקלט יכנס

למשתניםnum

num1ו- ? & מה פשר הסימן

&& &&

Page 6: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

תרגילתרגיל

כתבו תוכנית הקולטת שני מספרים מהמשתמש כתבו תוכנית הקולטת שני מספרים מהמשתמש

ומדפיסה את ההפרש שלהם ואת החלוקה ומדפיסה את ההפרש שלהם ואת החלוקה שלהם.שלהם.

Page 7: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

פתרון תרגילפתרון תרגיל#include <stdio.h>#include <stdio.h>void main()void main(){{

int num, num1, s,q;int num, num1, s,q;printf("Enter two positive numbers\n");printf("Enter two positive numbers\n");scanf("%d%d", &num, &num1);scanf("%d%d", &num, &num1);s = num - num1;s = num - num1;printf("subtraction of %d from %d is %d\n", num1, printf("subtraction of %d from %d is %d\n", num1, num, s);num, s);q = num / num1;q = num / num1;printf("quotient of %d and %d is %d\n", num, num1, printf("quotient of %d and %d is %d\n", num, num1, q);q);

}}

הוראה למשתמשקליטת הערכים

Page 8: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

תוכנית לפירוק מספר דו ספרתיתוכנית לפירוק מספר דו ספרתי

#include <stdio.h>#include <stdio.h>void main()void main(){{

int sum, num;int sum, num;sum = 0;sum = 0;printf("Enter 2-digits number\n");printf("Enter 2-digits number\n");scanf("%d", &num);scanf("%d", &num);sum = num % 10;sum = num % 10;num = num / 10;num = num / 10;sum = sum + num;sum = sum + num;printf("The digits sum is %d\n", sum);printf("The digits sum is %d\n", sum);

}}

ספרה ראשונה

ספרה שניה

Page 9: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

11תרגיל תרגיל

כתוב תוכנית המקבלת מספר תלת ספרתי ומדפיסה כתוב תוכנית המקבלת מספר תלת ספרתי ומדפיסה את את

סכום ספרותיו. סכום ספרותיו.

Page 10: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

#include <stdio.h>#include <stdio.h>void main()void main(){{

int sum, num;int sum, num;sum = 0;sum = 0;printf("Enter 3-digits number\n");printf("Enter 3-digits number\n");scanf("%d", &num);scanf("%d", &num);sum = num % 10;sum = num % 10;num = num / 10;num = num / 10;sum = sum + num % 10;sum = sum + num % 10;num = num / 10;num = num / 10;sum = sum + num % 10;sum = sum + num % 10;printf("The digits sum is %d\n", sum);printf("The digits sum is %d\n", sum);

}}

ספרה ראשונה

ספרה שנייה

11פתרון תרגיל פתרון תרגיל

ספרה שלישית

Page 11: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

סוגי משתנים אפשרייםסוגי משתנים אפשריים

שםשם טווחטווח הדפסההדפסה BytesBytes

floatfloat 3.4E +/- 383.4E +/- 38 %f%f 44

doubledouble 1.7E +/- 3081.7E +/- 308 %lf%lf 88

intint תלוי מערכתתלוי מערכת %d%d **

charchar 127127- עד - עד 128128מ מ %c%c 11

Page 12: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

int i1,i2,ir;int i1,i2,ir;float f1,f2,fr;float f1,f2,fr;i1=5,f2=2;i1=5,f2=2;f1 = (float)i1;f1 = (float)i1;i2 = (int)f2; i2 = (int)f2; ir = i1 / i2 ;ir = i1 / i2 ;fr = f1 / f2 ;fr = f1 / f2 ;printf("1. ir = %d, fr = %f\n",ir,fr);printf("1. ir = %d, fr = %f\n",ir,fr);ir = i1 / f2 ;ir = i1 / f2 ;fr = i1 / f2 ;fr = i1 / f2 ;printf("2. ir = %d, fr = %f\n",ir,fr);printf("2. ir = %d, fr = %f\n",ir,fr);ir = i1 / i2 ;ir = i1 / i2 ;fr = i1 / i2 ;fr = i1 / i2 ;printf("3. ir = %d, fr = %f\n",ir,fr);printf("3. ir = %d, fr = %f\n",ir,fr);

הגדרת משתנים

אתחול משתנים

1חילוק – דוגמא

הדפסה

2חילוק – דוגמא

הדפסה

3חילוק – דוגמא

הדפסה

1. ir = 2 fr =2.500000

2. ir = 2 fr =2.500000

3. ir = 2 fr =2.000000

:הסבה, בלי זה נקבל את האזהרהconversion from 'int' to 'float', possible loss of data

Page 13: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

22תרגיל תרגיל

יארדים יארדים385385 מיילים ו מיילים ו2626ריצת מרתון היא ריצת מרתון היא

לתרגם מיילים ויארדים לקילומטרים ומטרים נשתמש לתרגם מיילים ויארדים לקילומטרים ומטרים נשתמש

בנוסחה הבאה:בנוסחה הבאה:

Kilometers = 1.609 (miles + Kilometers = 1.609 (miles + yards/1760)yards/1760)

כתוב תוכנית שמחשבת את אורך ריצת המרתוןכתוב תוכנית שמחשבת את אורך ריצת המרתון

בקילומטרים.בקילומטרים.

Page 14: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

22פתרון שגוי לתרגיל פתרון שגוי לתרגיל

#include <stdio.h>#include <stdio.h>int main(void)int main(void){{ int miles, yards;int miles, yards; double kilometers;double kilometers; miles = 26;miles = 26; yards = 385;yards = 385; kilometers = 1.609 * (miles + yards / kilometers = 1.609 * (miles + yards /

1760);1760);}}

Page 15: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

22פתרון נכון לתרגיל פתרון נכון לתרגיל

#include <stdio.h>#include <stdio.h>

int main(void)int main(void)

{{

int miles, yards;int miles, yards;

double kilometers;double kilometers;

miles = 26;miles = 26;

yards = 385;yards = 385;

kilometers = 1.609 * (miles + yards / kilometers = 1.609 * (miles + yards / 1760.0);1760.0);

}}

Page 16: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

משפטי תנאימשפטי תנאי

if if ((conditioncondition)){{

}}

elseelse{{

}}

במקרה של קיום התנאי

במקרה של אי-קיום התנאי

00התנאי הוא אמת אם ערכו שונה מ התנאי הוא אמת אם ערכו שונה מ

Page 17: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

כתיבת תנאיםכתיבת תנאים

(A == B)(A == B)

(A != B)(A != B)

(A < B)(A < B)

(A > B)(A > B)

(A <= B)(A <= B)

(A >= B)(A >= B)

(A > B || A < C)(A > B || A < C)

(A < B && B < C)(A < B && B < C)

Page 18: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

33תרגיל תרגיל

BB ו ו AAכתוב תוכנית הקולטת שני מספרים כתוב תוכנית הקולטת שני מספרים ומדפיסהומדפיסה

BB====AAאת היחס בניהם. אם הם שווים יודפס את היחס בניהם. אם הם שווים יודפס AAאם אם

. . BB>>AA אחרת יודפס אחרת יודפס BB<<AA יודפס יודפס BBגדול מ גדול מ

Page 19: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

- פתרון - פתרון33תרגיל תרגיל

void main()void main(){{

int A, B;int A, B;printf("Enter two Numbers\n");printf("Enter two Numbers\n");scanf("%d%d", &A, &B);scanf("%d%d", &A, &B);if (A == B)if (A == B)

printf(“Aprintf(“A====BB\\n");n");elseelse

if (A > B)if (A > B)printf(“A>Bprintf(“A>B\\n");n");

elseelseprintf(“A<Bprintf(“A<B\\n");n");

}}

Page 20: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

whilewhile לולאות לולאות

while (condition)while (condition)

{{

loop bodyloop body

}}

במקרה של קיום התנאימתבצע גוף הלולאה

ברגע שהתנאי לא מתקיים נצא ברגע שהתנאי לא מתקיים נצא !מהלולאהמהלולאה

Page 21: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

דוגמא ללולאה – חישוב עצרתדוגמא ללולאה – חישוב עצרת#include <stdio.h>#include <stdio.h>int main()int main(){{

int i,n,fact = 1;int i,n,fact = 1;printf("Enter a number\n");printf("Enter a number\n");scanf("%d", &n);scanf("%d", &n);i=1;i=1;while (i<=n)while (i<=n){{

fact *= i;fact *= i;i++;i++;

}}printf("the factorial is %d\n", fact);printf("the factorial is %d\n", fact);return 0;return 0;

}}

הגדרת משתנים

קליטת ערכים

אתחול מונה

הלולאה עצמה

הדפסת התוצאה

Page 22: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

44תרגיל תרגיל

קלוט שני מספרים וחשב את החזקה שלהם קלוט שני מספרים וחשב את החזקה שלהם

באמצעות פעולות כפל בלבד. באמצעות פעולות כפל בלבד.

Page 23: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

44פתרון תרגיל פתרון תרגיל #include <stdio.h>#include <stdio.h>int main()int main(){{

int a, b, i, power;int a, b, i, power;i = 1;i = 1;power = 1;power = 1;printf("Enter 2 numbers\n");printf("Enter 2 numbers\n");scanf("%d%d", &a, &b);scanf("%d%d", &a, &b);while(i <= b)while(i <= b){

power = power * a;power = power * a;i++;i++;

}}printf("%d power %d is %d\n",a,b, power);printf("%d power %d is %d\n",a,b, power);return 0;return 0;

}}

תנאי הקיום של הלולאה

גוף הלולאה כאשר הוא מכיל יותר מהוראה אחת

{ } נפתח קטע קוד

Page 24: תכנות תרגול 2 שבוע : 6.11.05. שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה

לולאה שמחשבת סכום סדרת מספריםלולאה שמחשבת סכום סדרת מספרים#include <stdio.h>#include <stdio.h>void main()void main(){{

int num, i=1, counter, sum=0;int num, i=1, counter, sum=0;printf("Enter the expected number of integers\n");printf("Enter the expected number of integers\n");scanf("%d", &counter);scanf("%d", &counter);while( i <= counter)while( i <= counter){{

printf("Enter a number\n");printf("Enter a number\n");scanf("%d", &num);scanf("%d", &num);sum += num;sum += num;i++;i++;

}}printf("The numbers sum is %d\n", sum);printf("The numbers sum is %d\n", sum);

}}

הגדרת משתנים ואתחולם

קליטת מספר הפעמים לביצוע

תנאי קיום הלולאה

:גוף הלולאה

קליטת המספר•סיכום המספר•קידום המונה•

הדפסת הסכום