תרגיל 1
Up Next

 

מבוא למדעי המחשב

תרגיל 1

מגיש: אמר יריב.

קבוצה: א.

 

  1. אלגוריתם לפתרון משוואה לינארית בנעלם אחד (ax+b=0).

·        פעולות בסיסיות: (גם לתרגיל 2)

o       השמת ערך למשתנה.

o       בדיקת ערכי משתנה.

o       חישוב ביטוי חשבוני והשמת ערך למשתנה; פעולות מותרות: חיבור חיסור,כפל, חילוק שלמים,שארית.

o       ביצוע לולאה כל עוד תנאי לוגי מתקיים.

 

קלטים מייצגים:

 

x

פלט

b

a

-2

למשוואה יש פתרון יחיד והוא

10

5

0

למשוואה יש פתרון יחיד והוא

0

3

 

למשוואה אין פתרון ממשי

2

0

 

למשוואה יש אינסוף פתרונות

0

0

 


  1. אלגוריתם הבודק האם ספרותיו של מספר מהוות סדרה עולה משמאל לימין.

                                 א.         הגדר את המשתנים:

 Number-מייצג את המספר הנבדק.

Max-שומר על הערך הגבוה האחרון.

Lsd-שומר את הספרה האחרונה (Lees Significant Digit)

Temp-שומר את המנה לאחר החלוקה.

                                  ב.         קלוט מספר לתוך Number.

                                  ג.          בדוק האם Number שלילי?

אם כן – הדפס "הקלט שלילי ולכן התוכנית הופסקה", וסיים התוכנית.

                                  ד.         אם לא – המשך לשלב הבא

                                 ה.         עדכן: Lsd=0.

הכנס ל-Temp את המנה (מספר שלם) מחלוקת Number ב-10.

הכנס ל-Max את השארית (מספר שלם) מחלוקת Number ב-10.

                                  ו.          בדוק האם Temp=0?

אם כן – הדפס "ספרות המספר שהוקלד מהוות סידרה עולה", וסיים התוכנית.

אם לא – בצע:

                                                               i.      Lsd מקבל את השארית מחלוקת Temp ב-10.

                                                             ii.      Temp מקבל את המנה מחלוקת Temp ב-10.

                                                            iii.      בדוק האם Lsd<Max?

אם כן – הצב את ערך Lsd לתוך Max וחזור לשלב VI.

אם לא – הדפס "ספרות המספר שהוקלד אינן מהוות סידרה עולה", וסיים

התוכנית.

 

קלטים מיצגים:

פלט

Number

ספרות המספר שהוקלד מהוות סדרה עולה

123456

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

21323-

ספרות המספר שהוקלד אינן מהוות סדרה עולה

678123

 

 

 

 


  1. תרגום ביסיסים

                                 א.         לבסיס 10:

38A16=3*162+8*161+10*160=90610

4768=4*82+7*81+6*80=31810

100110112=27+24+23+21+20=15510

                                  ב.         לבסיס 2:

6D1A16=0110 1101 0001 1010 =1101101000110102

17448=001 111 100 100 =11111001002

48510=485:2=242.5 ® 1

            242:2=121   ® 0

 

48 510=1111001012

 

            121:2=60.5  ® 1

            60:2  =30     ® 0

            30:2=15       ® 0

            15:2=7.5      ® 1

            7:2=3.5        ® 1

            3:2=1.5        ® 1

            1:2=0.5        ® 1

 

                                  ג.          לבסיס 8:

89510=895:8=111+7/8

 

89510=15778

 

            111:8=13+7/8

            13:8=1+5/8

            1:8  =1/8

 

 

3EA16=001 111 101 0102=17528

1 001 0112=1138

                                  ד.         לבסיס 16:

 

59810=55616

 

59810=598:16=37+6/16

            37:16=2+5/16

            5:16=5/16

 

5468=1 0110 01102=16616

 

  1. המספר הבינארי הגדול ביותר בעל K ספרות הוא המספר שבו כל הספרות הם 1 וכדי לחשבו אפשר להשתמש בנוסחה של סכום של סדרה הנדסית שבה q=2,a1=1 ו n=K.

ז"א ערך המספר הוא: Sn=1*(2k-1)/1.


5.        קוד התוכנית tr1_q5.cpp: (מצורף בדיסקט)

 

/*

  Module:tr1_q5.cpp      <- tr=Targil , q=question

  Author: Yariv Amar

 

  What?

  Prints in 2 lines my name, Id number and course name.

 

  How?

  using cout and "\n"

 

/*

 

#include <iostream.h>

 

void main()

}

      cout<<"Yariv Amar ID Nu. 2731300\nBasic C++ Programming course\n";

{

 

פלט התוכנית:

Yariv Amar ID Nu. 2731300

Basic C++ Programming course

 

  1. תוכן הקובץ:  header.txt

/*

  Module:

  Author: Yariv Amar

 

  What?

 

 

  How?

 

/*