שיעור 1 רקע,
שפת מחשב שפת מחשב היא שפה בינארית, הבנויה מסיביות )0,1(, יוצרות את בסיס עולם המחשב הקרוי בית.)BYTE( צירוף של 8 סיביות ישנם הרבה שפות מחשב מדורות שונים: אסמבלר, JAVA ++C, C, למה פייתון? שפת סקריפטים? מהו תכנות מונחה עצמים? וכו'.
תהליך הפיכת תוכנית בשפה עילית לתוכנית בשפת מכונה )ג'אווה בדוגמא זו( תכנות: קידוד התוכנית בשפה עילית :(PROGRAMMING) המתכנת כותב את התוכנית, לרוב בסביבת פיתוח יעודית,)IDE( או בעורך תמלילים )פחות נוח ומקובל(, ושומר אותה בקבצי טקסט, הנקראים קבצי מקור (SOURCE.FILES) נניח לדוגמא, כי התוכנית שלנו מורכבת משני קבצי מקור,PROG1.JAVA, PROG2.JAVA קבצים המכילים טקסט של תוכנית בשפה העילית.JAVA ניתן להשתמש בכל עורך טקסט כמו: NOTEPAD, ECLIPSE, VISUAL STUDIO, JCREATOR הידור :(COMPILATION) יוצרים מקבצי המקור קבצים המכילים תוכנית בשפה המוכרת למחשב. התהליך נקרא הידור. ההידור מתבצע ע"י הפעלת תוכנית הנקראת מהדר.(COMPILER) המהדר קורא קובץ מקור בשפה עילית )נניח )PROG1.JAVA וכותבת קובץ הנקרא קובץ יעד,(.CLASS) במקרה שלנו.PROG1.CLASS לדוגמא: ECLIPSE, JAVAC הרצה: מבקשים ממערכת ההפעלה להריץ את קובץ הריצה שיצרנו.
The process of programming שגיאות זמן ריצה שגיעות שגיאות קומפילציה תכנון editor קובץ טקסט סיומת.java קובץ java פלט של התכנית הרצה קובץ בשפת מחשב.class קומפיילר JVM שגיאות לוגיות
תהליך הפיכת תוכנית לתוכנית רצה )פייטון בשפת סקריפט בדוגמא זו( תכנות: כתיבת הסקריפט של התוכנית :(PROGRAMMING) המתכנת כותב את התוכנית בעורך תמלילים EDITOR) (TEXT ושומר אותה בקבצי טקסט, הנקראים קבצי מקור FILES).(SOURCE נניח לדוגמא, כי התוכנית שלנו מורכבת משני קבצי מקור,PROG1.PY, PROG2.PY קבצים המכילים טקסט של תוכנית בשפה העילית.JAVA ניתן להשתמש בכל עורך טקסט כמו:,NOTEPAD, VISUAL STUDIO CODE וכד' הרצה: מבקשים מאפליקציית תרגום PYTHON( במקרה זה( להריץ את הקובץ שיצרנו. אפליקציית התרגום קוראת שורה ומבצעת אותה ואז עוברת לשורה הבאה )בהתאם לחוקיות של אותה שפה(
The process of programming שגיאות זמן ריצה תכנון editor קובץ טקסט סיומת.py פלט של התכנית קריאת שורה וביצוע שלה אינטרפרטר הרצת יישום תרגום )python( שגיאות לוגיות שורה הבאה
תוכנית בפייתון אין צורך בהידור וחיבור. אין צורך בקובצי עזר Builder(.)Linker + אין צורך ביצירת משתנים וכו' אין צורך בלימוד כללי סימון נוקשים כמו בשפות אחרות.
התוכנית הראשונה שלנו WORLD( )HELLO print ( Hello World ) מה יש לנו? קריאה לפונקציה )לא לדאוג נלמד מה זה בהמשך(,print עם תוכן טקסטואלי World" "Hello קבוע מה יקרה אם נרצה להציג מספר, האם נכתוב?print ( 123 ) או print (123) מה ההבדל?
משתנים מה זה משתנה מה עושים איתו למה לא להשתמש בערך? אין צורך בפירוט סוגים נוקשה
משתנים - סוגים עיקריים מספרים שלמים )int( מגבלת הערכים של טיפוס זה תשתנה במערכות 32 סיביות ו 64, וגם בגרסת פייתון. לדוגמא: 5=x מספרים שלמים גדולים )long( על מנת לייצג מספרים שלמים בטווח הרבה יותר גדול )שוב בתלות(. לדוגמא: 1000000000000000000000000=x או x=2l מספרים עשרוניים )float( כשמו כן הוא יש לקחת בחשבון שנאבד מהדיוק. לדוגמא: 21.0=x או 2.5=x 1000000000000000000001.0==1e+20 אמת\שקר )boolean( ישמש לקבלת תשובת 0\1 דגלים וכו' לדוגמא: x=true מחרוזות )string( רצף של תווים \ סימנים. לדוגמא: string str= I m או string str= I\ m 10
שמות משתנים - כללי )...,)_( מכיל רק תווים אלפא נומרים )ספרות, קו תחתי התו הראשון חייב להיות אות או קו תחתי )לא מספר(. )name NAME( שונה מ - CASE SENSITIVE בניגוד לשפות אחרות שמות המשתנים משמשים כמצביעים ולכן ניתן להכניס ערכים מטיפוסים שונים בכל שלב. 11
אופרטורים דוגמא פעולה סימן אופרטור + מחבר את שני האופרנדים חיבור a+b מפחית את האופרנד השני מהראשון - חיסור a-b מכפיל את שני האופרנדים * כפל a*b מחלק את האופרנד הראשון בשני. / בחלוקת שני מספרים שלמים התוצאה תצא מספר שלם. חילוק a/b נותן את השארית כאשר האופרנד הראשון מחולק באופרנד השני. במספר עשרוני יחושב כמספר שלם ועוד העשרוני. % מודולו a%b 12
אופרטורים - יחס או לוגי דוגמא השאלה הנשאלת סימן אופרטור == האם אופרנד a שווה לאופרנד b? שווה a==b < האם אופרנד a גדול מאופרנד b? גדול מ- a > b > האם אופרנד a קטן מאופרנד b? קטן מ- a < b האם אופרנד a לאופרנד b? גדול או שווה גדול או שווה ל - <= a>=b האם אופרנד a לאופרנד b? קטן או שווה קטן או שווה ל - >= a<=b מחזיר את התשובה ההפוכה למשתנה או תוצאה )אמת\שקר(! הופכי!a 13
המרות - CASTING מבנה כתיבה: לדוגמא: (ביטוי או ערך)(טיפוס רצוי) num_int=12 num_str= 34 sum=num_int+int(num_str) sum=46 Sum=str(num_int)+num_str sum= 1234
בסיסים כמו בכל השפות כותבים בבסיס 10 אחר, לדוגמא: אך ניתן לייצג כל בסיס 0x הקסדצימלי )בסיס 16( 0x25 37 0o אוקטלי )בסיס 8( 0o45 37 בינארי )בסיס )2 0b 0b100101 37
מעבר בין בסיסים כמובן שלכל בסיס ישנה פונקציה מתאימה לצורך המרת הנתון: hex(37) oct(37) bin(37)