בשחמה יעדמלו תונכתל יללכ...

23
מבוא כללי לתכנות ולמדעי המחשב תרגול מס' 1 דין שמואל[email protected] 1

Transcript of בשחמה יעדמלו תונכתל יללכ...

Page 1: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

מבוא כללי לתכנות ולמדעי המחשב

1' תרגול מס

דין שמואל[email protected]

1

Page 2: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

מנהלות. 1

[email protected], אמיר רובינשטיין:מרצה

. מייד לאחר השיעור-לשאלות קצרות : שעות קבלה

.ניתן לתאם במייל שעות אחרות

דין שמואל: מתרגל

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

ודוגמאות נוספות, חידוד של נקודות בעייתיות, כוללים העמקה בנושאים שהועברו בהרצאה

/http://cs4cyber.wikidot.com:אתר הקורס

.הודעות, תרגילים, באתר יפורסמו חומרי הקורס

(חובה)תרגילי בית 20%, בחינה סופית80%: הרכב הציון

: המבחן

דו צדדייםA4דפי 2: חומר עזר•

.ובמידה רבה על תרגילי הבית, התרגולים, השאלות במבחן יתבססו על חומר ההרצאות•

יישום או שילוב של כמה , חלק ידרוש הבנה מעמיקה יותר. רוב השאלות במבחן יהיו דומות לשאלות מתרגילי הבית•.נושאים ביחד

2

Page 3: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

(low level)ושפת מכונה ( high level)שפות תכנות

?באיזו שפה מדברים עם מחשב

יש )"שפה בינארית רק " מבין( "'וכו, מכונת הכביסה, מחשב הרכב, סמארטפון, לפטופ, שולחני)המחשב •"(.אין מתח" / "מתח

.מחשבתוכניותופרקטית בלתי אפשרי לכתוב כך , קשה ומסורבל•

(.programming languages)שפות תכנותלשם כך פותחו •

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

*.כ כקובץ טקסט"התוכנית שנכתבת נשמרת בד•

?מה היתרון בזה

, C ,JAVA ,C++ ,PASCALלמשל

Python ,C# ,ועוד

3.'וכו, Cעבור שפת Python ,cעבור שפת pyלמשל . כ עם סיומת שמעידה על השפה בה היא נכתבה"בד*

Page 4: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

?Pythonלמה דווקא •

יחסית קלה ללימוד•

מעט ידע בשפה מאפשר לעשות יחסית הרבה•

חינמית•

הופכת מאוד פופולרית לאחרונה•

גרסאות•3-ו2: שתי גרסאות פעילותPythonל•

.המתפתחות במקבילשפות שונות אולם אלו שתי , השפות כמעט זהות•

3.6, וספציפית בגרסה האחרונה, 3גרסה בפייתוןאנחנו נשתמש •

Binary language

Assembler language

C

C++/C#/Java

Python

Pythonשפת התכנות

.Pythonהתכנות אותה נלמד בקורס נקראת שפת

4

Page 5: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

IDLE

•Interpreter-המתרגמת תכניות משפת , תכנית מחשב מיוחדתPythonלשפת מכונה.

. IDLE(Integrated Development and Learning Environment)אנו נשתמש ב•

.לכתיבה נוחה של קוד( editor)ועורך interpreterכוללת , סביבת עבודה פשוטה המתאימה למתחילים•

:מצבי עבודה2•.לכתוב תכניות במצב זהלא מומלץ . IDLEמופיע ישירות כשפותחים את -מצב אינטראקטיבי•

.מאפשר שמירה של קטעי קוד לשימוש חוזר-עורך תכניות•

5

Page 6: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

IDLE-interpreterInteractive mode

prompt

.לא מאפשר שמירה של תכנית•

"תשובות\שאלות"-אינטראקטיבי•

מוכן לקלט מהמשתמש-">>>"סימן •

6

Page 7: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

IDLE-editor

(py.בפרט סיומת )פייתוןעורך קבצי טקסט בשפת •

מאפשר לכתוב תכניות ולשמור להרצות חוזרות•

.לכתיבת הקוד בקורסהסביבה המומלצת •

.לפני שמריצים אותולהשמרקובץ חייב * •

INTERPRETERתוצאות התכנית נטענות ל, פייתוןתוכניתכשמריצים •

.מה שמאפשר סקירה נוחה של התכנית

7

Page 8: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

IDLE-editor

:חשוב•

אשר יגרמו לשגיאה בפייתוןייתכן שנעתיק תווים אשר אינם חוקיים -(interpreter)כאשר מעתיקים שורת קוד מהחלון האינטראקטיבי•.בקוד שלנו

".>>>"-promtהעתק ה: נפוץ במיוחד•

.editorמומלץ לערוך את הקוד בחלון ה•

8

Page 9: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• Print is a built-in python function.

• Python has a collection of reserved words and functions. Will usually be displayed in different color.

• What if we want to use “hello world” again and again?

Programming 101

9

Page 10: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

.מאפשרים לאחסן מידע בצורה נגישה•

אולם אנו יכולים לקרוא לו , המחשבבזכרוןערך המשתנה נשמר בכתובת •.לפי שם

.כל מידע שנשתמש בו ישמר בתוך משתנה, לרוב•

• Assignment statement: Variable_name = value

• Python supports multiple assignment

variables-משתנים

10

Page 11: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• Name must start with a letter or ‘_’.

• Name must contain only letters, numbers or ‘_’

• Variables name are case sensitive!

• Good practice: give variable appropriate name, i.e. ‘age’, ‘name’ etc.

rules-variables

11

Page 12: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• String: str• Text encapsulated by ‘ ’ or “ “.

• String text comprised of set of characters

• why there is a difference between “ “ and ‘ ‘?

strings-variables

12

Page 13: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• What will it mean to add(+) to string? To multiply(*)?

• What will it mean to divide/subtract strings?

• Python allows addition and multiplication of strings!

• So how do we do mathematical calculations?

Mathematical operations: strings

13

Page 14: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• Numerical:• Integer numbers- int

• A whole number. Can be positive, negative or zero.

integers-variables

14

Page 15: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• Numerical:• Floating point numbers- float

• Numbers containing decimal points.

floats-variables

15

Page 16: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• Addition: +

• Subtraction: -

• Multiplication: *

• Exponentiation: **

• Division: /• Result is a floating point number

• Quotient division: //

• Remainder (modulus operator): %• How will you check whether a number is even or odd?

Mathematical operations: ints/floats

16

Page 17: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• Numerical:• Integer numbers- int

• Floating numbers- float

• String: str• Text encapsulated by ‘ ’ or “ “.

types-variables

17

Page 18: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• You can easily reassign value to a variable

• What will happen if we will reassign a to a string?

• Python is a dynamically typed language!

reassignment-variables

18

Page 19: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• What will be the result of:

continue-variables

19

Page 20: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• What will be the result of:

continue-variables

20

Page 21: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• Boolean variable: bool

• Data type with only two possible values: True or False

Boolean type

21

Page 22: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

• Boolean operators:• < less than

• > greater than

• == equal

• != not equal

• >= greater or equal

• <= less or equal

*notice the difference between ‘=‘ and ‘==‘

Boolean comparisons

22

Page 23: בשחמה יעדמלו תונכתל יללכ אובמcs4cyber.wdfiles.com/local--files/recitations/rec1.pdf · 2017-10-22 · •Name must start with a letter or ‘_’. •Name

.שפות תכנות כלליות•

פייתוןהכרות עם •

IDLEאופן השימוש ב•

:בפייתוןמשתנים ••Integer

•Float

•String

•boolean

סיכוםמה עברנו היום

23