בס"ד  

                             תרגילים לולאות

 

1) כתוב תכנית שקולטת מספר שלם חיובי  (מספר טבעי) כלשהו ומחשבת את  
    העצרת שלו .
    שים לב :
 א) המחשב אינו מסוגל לחשב עצרת של מעל 170 למה?.  האם יש קשר לתחום
      הערכים שמשתנה מסוים יכול להכיל? .

ב)        1=!0.

ג)         עצרת מספר שלילי אינה חוקית.

* משימה 1 מדריך השלם לשפת  C,  קובץ exr0401.c, ע"מ 365 מהדורה 5.

 

2) כתוב תוכנית  שקולטת 10 מספרים שלמים ומחשבת את סכומם
    * ללמוד
C פרק 3 שאלה 7 ע"מ 95.

3) כתוב  תכנית שקולטת 10 מספרים שלמים ומדפיסה את המספר הגדול ביותר
    מבין המספרים שהוכנסו.
    * ללמוד
C שאלה 13 פרק 3 ע"מ 96.


4) כתוב תכנית הקולטת שני מספרים טבעיים ומחשבת את המכפלה שלהם
    מבלי להשתמש בפעולת הכפל  (הנח נכונות הקלט).

    * שפת C תרגול אל השיא פרק 7, שאלה 2 סעיף 1 ,ע"מ 137.

5) כתוב תכנית הקולטת מהמשתמש שני מספרים טבעיים ומחשבת את תוצאת
    החילוק של המספר  הראשון בשני מבלי להשתמש בפעולת החילוק. הנח כי
    הקלט מתקבל כך שהמספר הראשון גדול מהמספר השני והוא מתחלק בו ללא
    שארית .
    * שפת
C תרגול אל השיא :פרק 7 ,שאלה 2 סעיף 2 ,ע"מ 137.
    שאלה: האם תוכל לפתור תרגיל זה ללא ההנחה שהמספר הראשון גדול
                 מהמספר השני ?.                                                                                                             פתרון 5

6) כתוב תכנית הקולטת מהמשתמש שני מספרים טבעיים ומחשבת את המודולו
    של חלוקת המספר הראשון בשני ללא פעולת המודולו (פעולת המודולו: %).
    * שפת
C תרגול אל השיא, שאלה 2 סעיף 3 ,ע"מ 137.                                                               פתרון 6א           פתרון 6ב

7) כתוב תכנית שקולטת 10 מספרים ובודקת אם הם הוזנו בסדר עולה.
    התכנית תדפיס בסוף הודעה מתאימה.
    ( שפת
C תכניות ופתרונות ,פרק 2 תכנית 05-02 ע"מ 39).                                                         פתרון 7

8) כתוב תכנית המדפיסה את 15 המספרים הראשונים בסדרת פיבונצ"י.
   ....1,1,2,3,5,8,13,21,34, 0 (ללמוד
C פרק 3 שאלה 10 ע"מ 95).                                                 פתרון 8                                             

 

9) כתוב תכנית הקולטת מספר כלשהו בעל שתי ספרות שמתקבל כקלט מהמשתמש 
    ובודקת אם הוא ראשוני.
    הבדיקה תיעשה ע"י חלוקת המספר
n בכל המספרים שקטנים ממנו, ובדיקה אם
    החלוקה הסתיימה בשארית. הדפס הודעות מתאימות.
    הערה: יש להבין את האופרטור : שארית (מודולו):  "%" , ואת האופרטור 

    הפשוט  חילוק:  "/".
    (המדריך השלם לשפת
C פרק 4 שאלה 8 מהדורה 5 ע"מ 109).                                                פתרון 9

 10)  כתוב תכנית המוצאת את השלם הגדול ביותר שריבועו קטן מ- 35678.
       (המדריך השלם לשפת
C מהדורה 5 ,פרק 4, שאלה 10,ע"מ 109) .
       הערה: שים לב שתכום הערכים שיכול להכיל המשתנה שאתה עובד אתו יהיה
       מספיק גדול לצורך התרגיל.                                                                                                      פתרון 10א            פתרון 10ב

11) קלוט מספר טבעי וחשב את סכום המספרים מ-0  ועד אליו כולל המספר עצמו.

     (ללמוד C, פרק 3, שאלה 9 ,ע"מ 95- עם שינוי קל).                                                                  פתרון 11

12) קלוט מספר והדפס את מספר ספרותיו. בצע תכנית זו ע"י חלוקת המספרים
      בכל פעם ב- 10 עד אשר יהיה שווה ל-0 .
      ( אם תשתמש במשתנה מסוג שלם ותחלקו ב- 10 המספר יאבד את הספרה
        הימנית ביותר שלו, למה?).
     (ללמוד
C, פרק 3, שאלה 11 ,ע"מ 96).                                                                                       פתרון 12                                                                   

 

13) קלוט מספר והדפס את סכום ספרותיו .

     ( הרעיון דומה לרעיון הקודם אלא שהפעם לפני שנאבד את הספרה הימנית
      ביותר ע"י חילוק ב- 10  . נעשה מודולו 10 של המספר ונקבל את הספרה
      הימנית ביותר של המספר  למה? ).
     (ללמוד C, פרק 3, שאלה 12 ,ע"מ 96).                                                                                       פתרון 13

 

14)  כתוב תכנית שתקלוט מספר טבעי (מספר חיובי ושלם) מהמשתמש, ותבדוק האם המספר שנקלט הוא ראשוני. אם לא התכנית תדפיס את כל המספרים הטבעיים בהם הוא מתחלק. (ספר לבן פרק 3 שאלה 4).                                          פתרון 14

 

15)  קלוט שני מספרים שלמים האחד למשתנה 1num והשני ל- num2  , התכנית תדפיס את כל המספרים מ-1 ועד לערכו של num2 שמתחלקים במספרnum1  ללא שארית (ספר לבן פרק 3 שאלה 4 ).                                                      

 

16)  כתוב תכנית שתקלוט מספרים שלמים שונים מ-0 עד שייקלט מספר שהוא מכפלת כל קודמיו. (ספר לבן פרק 3 שאלה 7).  

פתרון 16

17) קלוט שני מספרים שלמים והדפס את המכנה המשותף הקטן ביותר שלהם. (ספר לבן פרק 3 שאלה 8).

פתרון 17

18) כתוב תכנית שתדפיס את כל המספרים הראשוניים בין 1 ל- 100 (ספר לבן פרק 3 שאלה 9) (לולאות מכוננות).

19)  כתוב תכנית שתקלוט מספרים עד שייקלט המספר 1- התכנית תדפיס את הממוצע של כל המספרים שנקלטו.
(ספר לבן פרק 3 שאלה 13).                                                                                                         פתרון 19

20)  כתוב תכנית הקולטת עבור כל תלמיד מבין 35 תלמידי הכיתה את ציון סמסטר א' ואת ציון סמסטר ב' ואשר מחשבת ופולטת לכל תלמיד את הממוצע השנתי.

21)  כתוב תכנית הקולטת מספר ומחשבת כמה פעמים ניתן לחלק אותו ב-2 ללא שארית ואח"כ (את תוצאת החלוקה ) ב-3 ללא שארית.
יש לחלק את המספר ב-2 ושוב ב-2 ... כך כמה פעמים שניתן אם ניתן . עתה יש לחזור על כך עם תוצאת החלוקה לגבי חלוקה ב-3. לדוגמא : את המספר 360 ניתן לחלק 3 פעמים ב-2 (ולקבל 45) ואז לחלק את 45 פעמיים ב-3 (ולקבל 5). יש להדפיס כמה פעמים התחלק המספר הנקלט ב-2 וכמה ב-3.                                                                                                                                    פתרון 21   פתרון ב21

 

 

 

 

 

 

 

 



 

              לולאות מקוננות

 

1) כתוב תכנית הקולטת מהמשתמש שני מספרים טבעיים, המייצגים אורך ורוחב
    של מלבן, ופולטת מלבן מלא מכוכביות, בממדים מתאימים. המספר הראשון  
    ייצג את מספר הכוכביות בשורה, המספר השני את מספר  השורות.
    (שפת
C תרגול אל השיא ע"מ 147 שאלה 16 ס' 1).

2) כתוב תכנית המציגה כתוב תכנית הקולטת מהמשתמש מספר טבעי n ופולטת
    משולש ישר זוית מכוכביות, בגובה
n שורות. למשל עבור הערך 5 יוצג המשולש
    הבא:

*****
               ****

                 ***

                   **

                    *     

    (שפת C תרגול אל השיא ע"מ 147 שאלה 17 ס' 1).

3) כתוב תכנית הקולטת מהמשתמש מספר אי טבעי זוגי
n (למה אי זוגי ?) ופולטת  
    משולש שווה שוקיים מכוכביות, שבסיסו התחתון מורכב מ-
n כוכביות.  למשל
    עבור הערך 7 , יוצג המשולש הבא:                       

*
 ***
  *****
   *******

   (שפת C תרגול אל השיא ע"מ 147 שאלה 17 ס' 2). 

4) כתוב תכנית הקולטת מהמשתמש שני מספרים טבעיים, המייצגים אורך ורוחב
    של מלבן, ופולטת מלבן ריק מכוכביות, בממדים מתאימים. למשל, עבור הערכים
    4,6 יוצג המלבן הבא:        *******

                                              *        *
                                              *        *

                                               *******

   (שפת C תרגול אל השיא ע"מ 147 שאלה 17 ס' 3).

 

5) כתוב תכנית שמדפיסה את לוח הכפל.
    (שפת
C אל השיא ,פרק 7 ,ע"מ 274, תוכנית 7.12)
    (המדריך השלם לשפת 
C מהדורה 5 ,פרק 4,ע"מ 105,קובץ  chp04012.c).

6) כתוב תכנית הקולטת מהמשתמש מספר טבעי n הקטן מ-10 ופולטת משולש ישר
    זווית  בן
n שורות, כשכל שורה מורכבת ממספרים טבעיים עוקבים החל מ- 1 .
    למשל עבור הערך 4 יוצג המשולש הבא:                                                                   

1

12

123

1234

 

 

 

 

 

 

 

7) כתוב תכנית הקולטת מהמשתמש מספר טבעי n הקטן מ-10 ופולטת משולש ישר
    זווית  בן
n שורות, המורכבים מרצפים של המספרים הטבעיים מ- 1 עד 9.
    למשל, עבור הערך 5, יוצג המשולש הבא:

1

23

456

7891

23456

 

8) כתוב תכנית  הקולטת מהמשתמש מספר טבעי n  ופולטת מקבילית בגובה וברוחב n

    מכוכביות. למשל עבור הערך 4, תוצג המקבילית הבאה:

****

 ****

   ****

     ****

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

בס"ד
                                         
משפטי תנאי

 

1) כתוב תכנית הקולטת שני מספרים ומדפיסה את המספר הגדול מבין השניים.

    (שפת C תוכניות ופתרונות ,פרק 2 תכנית (01-02) ע"מ 35 מהדורה ראשונה).

2) קלוט שלושה מהפרים והדפס את הגבוה מבין שלושתם.
    ( ללמוד
C ,פרק 3,שאלה 1, ע"מ 95 ).
    (שפת
C תוכניות ופתרונות ,פרק 2 תכנית (02-02) ע"מ 35 מהדורה ראשונה).
    (הפתרונות משני הספרים מצורפים ,שים לב להבדלים).

3) ע"י שימוש במשפט if-else קלוט מספר בין 1 ל- 5 והדפס את שמו (one,two,…).
    אם המספר חורג מהתחום הדפס הודעת שגיאה מתאימה וקלוט את הנתונים מחדש.
    (ע"י משפט
Do-while).
    ( דומה לשאלה -ללמוד
C ,פרק 3,שאלה 3, ע"מ 95 ).

 

4) א) בחברת תעופה מחפשים אנשי ביטחון. תנאי הקבלה הנם: גיל בין 20 ל- 40,
         או גיל בין 30 ל- 50 וגובה מעל 180 ס"מ.כתוב תכנית הקולטת פרטי מועמד אחד
         (גיל ,וגובה) ומדפיסה אם הוא התקבל או לא.
         ( ללמוד
C ,פרק 3,שאלה 4, ע"מ 95 ).

   (אין פתרון לשאלה העליונה יש פתרון לשאלה הדומה לשאלה הבאה, בשתי גרסאות):

        נסה לעשות תכנית זו כך שהיא תקלוט עוד ועוד אנשים ותודיע אם הם מתאימים  
        עד שנכניס גיל 0 ורק אז היא תסתיים עם הודעה מתאימה.

 5) שאלת מבחן: כתוב תכנית הקולטת גובהו ,גילו,ומשקלו של משתמש,

         אם גובהו גדול מ- 187  ס"מ:
            אזי אם משקלו נמוך מ- 87 ק"ג הדפס:  "
You should play basketball".
        אחרת (אם גובהו אינו גבוה מ- 187 ס"מ) אזי:
            אם גילו נמוך מ-15 הדפס: "
You might be a basketball player.  ".

6) כתוב תכנית הקולטת את מספר שנות הלימוד שהמשתמש למד ,ואת מספר שנות
    הלימוד  שהמשתמש מתכוון ללמוד בעתיד.
    אם מספר השנים שהוא למד גדול או שווה 12:
         אזי אם מספר השנים הכולל (למד+ילמד) גדול או שווה ל-15 , יש להדפיס:
                                                      
You are going to be or already academic  .


  אחרת אם (מספר השנים שהוא למד קטן מ-12 ):
       אזי אם סכום השנים הכולל גדול או שוווה 15 יש להדפיס:

Take your time

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

בס"ד

תרגילים תווים CHAR

 

1)    כתוב תכנית אשר קולטת משפט תו אחר תו ומדפיסה כמה תווים היו ספרות, כמה תווים היו אותיות קטנות באנגלית, כמה תווים היו אותיות גדולות בעברית, כמה תווים היו רווחים, כמה תווים אחרים היו, וכמה תווים היו בסה"כ.

2)    כתוב תכנית הקולטת משפט תו אחר תו ומדפיסה כמה מילים היו.

3)    כתוב תכנית הקולטת משפט והדפס האם במשפט הייתה האות C.

4)    כתוב תכנית אשר קולטת משפט ומדפיסה האם התווים היו בערך ASCI עולה.

5)    כתוב תכנית אשר קולטת משפט ומדפיסה את המשפט עם אותיות קטנות בלבד. כלומר אם היו אותיות קטנות במשפט הן תישארנה קטנות, אם היו אותיות גדולות במשפט הן תודפסנה כאותיות קטנות, כל שאר הסימנים כגון רווחים, פסיקים וכ"ו לא ישתנו.

6)    כתוב תכנית כמו התכנית שהתבקשה בשאלה הקודמת אשר תחליף את האותיות הקטנות לגדולות.

7)    כתוב תכנית אשר תדפיס את כל טבלת  ASCI ערך ה- ASCI ולידו התו המתאים לו.

8)    כתוב תכנית הקולטת מהמשתמש שתי אותיות לועזיות שתיהן גדולות, או שתיהן גדולות ומדפיסה את כל האותיות שבין שתיהן כולל אותן בסדר עולה.

9)    כתוב תכנית הקולטת רצף של תווים . התכנית תדפיס את הרצף בצורה דחוסה בצורה הבאה: אם המחרוזת שהתקבלה היא מחרוזת:AAADDZZZZBBJ  אזי יודפס : 3A2D4Z2B1J.

10)          כתוב תכנית אשר תבצע את התהליך ההפוך לתרגיל הקודם.

11)          כתוב תכנית הקולטת מהמשתמש תו ומספר, ומדפיסה את התו על המסך מספר פעמים השווה למספר שהוזן. (מתוך שפת C תרגול אל השיא ע"מ 142 שאלה 9.1).

12)          קלוט שני תווים כלשהם והדפס את טבלת ה- ASCII שבתחום שני התווים. (מתוך ספר לבן פרק 3 שאלה 6).

13)  קלוט שני תווים כלשהם והדפס את טבלת ה- ASCII שבתחום שני התווים. (מתוך ספר לבן פרק 3 שאלה 6).

 

 

תרגילים מחרוזות

14)          כתוב תכנית הקולטת משפט למערך מחרוזתי ומעתיקה אותו למערך אחר זהה

          בגודלו. עד התו '0\' כולל.

15)          כתוב התכנית הקולטת משפט ומדפיסה את המשפט הפוך.

16)          כתוב התכנית הקולטת משפט ומדפיסה את אורכו לא כולל ה-'0\'.

17)          כתוב התכנית הקולטת משפט ומדפיסה האם המשפט פילנדרומי.

18)          כתוב התכנית הקולטת שני משפטים לשתי מערכים מחרוזתיים ולאחר מכן תוסיף

          את המחרוזת השנייה בסוף הראשונה.

19)          כתוב התכנית הקולטת שני משפטים ומדפיסה את התו הראשון הזהה בשני

          המערכים התו צריך להיות זהה גם במיקום.

20)          כתוב התכנית הקולטת שני משפטים ומדפיסה את כל התווים הזהים בשני

          המערכים התוים צריכים להיות זהים גם במיקום.

21)          כתוב התכנית הקולטת משפט לתוך מערך תווי ומדפיסה אותו הפוך ללא שינוי

          המערך עצמו וללא שימוש במערך תווי נוסף.

22)          כתוב התכנית הקולטת משפט והופכת בו את סדר האיברים שנמצאים לפני הסימן

          של סוף מחרוזת '0\' ..

23)          כתוב תכנית שקולטת משפט ומדפיסה אותו כך שאם יש בין מילה למילה יותר

          ממרווח אחד היא תדפיס רווח אחד בלבד..

24)          כתוב תכנית שקולטת משפט ומדפיסה אותו ללא האותיות A , a.

25)          כתוב תכנית שקולטת משפט רגיל ומדפיסה אותו בשפת ה-B , שפה זו מדפיסה את

          האות B בין כל האותיות במשפט (בין אותיות בלבד לא לפני, לא אחרי ולא בין

          רווחים).

26)          קלוט בעזרת scanf, בשורה אחת שתי מחרוזות המציינות שם ושם משפחה .

הדפס כל מחרוזת בנפרד. לדוגמא:

קלט:                                                                                       Ali Baba

פלט:                                                                                                Ali

                Baba

 

27)          קלוט שני מספרים המופרדים ע"י התו פסיק, והדפס את מכפלתם. לדוגמא:

קלט:                                                                                             3,10

פלט:                                                                                                30

 

28)          כתוב תכנית שקולטת משפט ושני מספרי אינדקס ומחליפה במשפט את שני

האיברים בעלי האינדקסים שהתקבלו, אחד עם השני (מתוך שפת C תרגול אל השיא ע"מ 142 שאלה 4.3).

29)          כתוב תכנית הקולטת מהמשתמש מחרוזת , כמו כן תקלוט תו למציאה, ותו

          להחלפה. ולבסוף תפלוט את המחרוזת כך שכל תווי המציאה  שנמצאו במשפט

יוחלפו בתווי ההחלפה (מתוך שפת C תרגול אל השיא ע"מ 142 שאלה 6.2).

30)          כתוב התכנית הקולטת משפט לתוך מערך תווי ומדפיסה אותו הפוך ללא שינוי

המערך עצמו וללא שימוש במערך תווי נוסף.

31)  כתוב התכנית הקולטת משפט והופכת בו את סדר האיברים שנמצאים לפני הסימן של סוף מחרוזת '0\' .

 

32)          כתוב תכנית 8.2 בספר ע"מ 248.

33)          9.1 ע"מ 249.

34)          9.2

35)          10.1

36)          11.1

37)          11.2

38)          12.1

39)          12.2

40)          12.3 מאד קשה .

41)          13.1

42)          13.1 קצת קשה.

 

 

 

תרגילים במערכים חד מימדיים

 

43)  כתוב תכנית שתקלוט מספר טבעי (מספר חיובי ושלם) מהמשתמש, ותבדוק האם המספר שנקלט הוא ראשוני. אם לא התכנית תדפיס את כל המספרים הטבעיים בהם הוא מתחלק. (ספר לבן פרק 3 שאלה 4). (ספר לבן).