1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים...

38
1 בבבב בבבבב בבבבב234111 בבבבב בבבב1

Post on 21-Dec-2015

247 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

1

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

1תרגול מספר

Page 2: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

2

...עניינים אדמיניסטרטיבייםתקשורת עם המתרגל

Emailשעות קבלה - היכן ומתיטלפון במשרד

אתר הקורס http://webcourse.cs.technion.ac.il/2341

11מצגות, שיעורי בית, הודעות וכו' - הכל באתר

Page 3: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

3

...עניינים אדמיניסטרטיבייםרשימת תפוצהשיעורי בית

דף מידע באתר בתא הקורסבזוגותהגשה הגשה אלקטרונית באתר-תרגילי בית8כ חובה להגיש את כולם, פרט

0לתרגיל בית 10%מהציון הסופי ? הגשה והחזרת תרגילים - איפה מתי וכיצד

Page 4: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

4

הגשה אלקטרונית

Page 5: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

5

...עניינים אדמיניסטרטיביים

שיעורי בית– להפנות שאלות וערעורים על התרגיל

למתרגל שאחראי על התרגיל - רק באישור מראש של הגשה באיחור

המתרגל האחראי - הגשה למתרגל שאחראי על אותו תרגיל

!העתקות ייענשו בחומרהדף שער

Page 6: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

6

...עניינים אדמיניסטרטיבייםחומר לימוד

המצגות – באתר הקורסCourse Material -> Tutorials

התרגוללפנינא להוריד ולהדפיס את המצגת חומר עזר נוסף

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

ספרי עזר

Page 7: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

7

סביבת העבודה

Turbo C מותקן על מחשבים בחווהניתן להוריד מאתר הקורס

ולהתקין בביתVisual Studio

)לא ניתן להוריד לבית )באופן חוקילא תינתן תמיכה עבור השימוש בו

Page 8: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

8

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

)מה נלמד במהלך הקורס )מוטיבציהפתרון בעיות ע"י תוכנית מחשב שפתC עקרונות תכנות נכוניםמבני נתונים ,רקורסיהBacktrackingשיטות לפתור בעיות - ?סיבוכיות - כמה זמן לוקח לפתור בעיה

Page 9: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

9

הגדרות בסיסיות

– 0110001110001110שפת המחשב – שפה עיליתPascal, Basic, C, C++,

Java...תוכנית מחשב - רצף של פקודות בשפה עילית - קומפיילרcompiler)מהדר(

תעויוט בקטיבהתעשה אזהרות"

ככה וככה"

...101101

Page 10: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

10

Compileהגדרות בסיסיות - התהליך מורכב משני שלבים

קומפילציהקישור

תוכנית בשפת

C

קובץ

OBJ

קובץ

EXE

ניתן לקמפל בסביבת Turbo C

ניתן להריץ רק DOSתחת

או Windows

Compile

Link מדוע שני

שלבים ?

Page 11: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

11

? מה נעשה היום

( הכרת סביבות העבודהTurbo C) פגישה ראשונה עם.... תוכנית בשפתC

פונקציות, משתנים, ביטויי תנאי)לולאות, קבועים )אם יישאר זמן

Page 12: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

12

DOSמערכת ההפעלה

?DOSאיך נקבל חלון מדוע אנו צריכים אותו בכלל ?

Page 13: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

13

DOSמערכת ההפעלה

:DOSפקודות ב-dir,cd,md,rd,del,copy,type פקודות אלו נועדו לעבודה עם

קבצים. הרבה יותר נוח לעבוד עם

windowsהתפריטים ב

חשוב לדעת כיצד להריץDOSתוכנית בסביבת

Page 14: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

14

Turbo C – סביבת העבודה

הרצה קיצור הנמצא על הDesktopC:\tc\bin\tc אחרת - שאלו את האחראי על החווה או מישהו

בסביבה...

– מקש הפלאAlt+Enter

Page 15: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

15

Turbo C – סביבת העבודה

Turbo C כמו( הינה תוכנת עריכה Word)פעולות בTurbo C

עריכת קובץ חדש ושמירתו, פתיחת קובץ שמור הגדרתOutput Directory ,קומפילציה, טיפול בשגיאות קומפילציה, קישור

הרצה, צפייה בפלטDOS Shell, Redirection

Page 16: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

16

סדר הדברים

הרצתTurbo Cעריכת קובץ חדשכתיבת התוכנית( קומפילציה וקישורcompile & link)תיקון שגיאות קומפילציה הרצת התוכנית)הדפסת התוצאות )אם צריך

Page 17: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

17

הדפסת תוצאות

Alt+F5ב Turbo C על מנת לעבור לחלון Output( ודאו כי החלון מוקטןAlt+Enter)לחיצה על הicon הקטן Edit -> Mark סימון המקטע הרצוי ולחיצה עלEnter פתיחת מסמך חדש בNotepad או WordEdit -> PasteFile -> Print

Page 18: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

18

וכעת - לשפה עצמה

בהמשך התרגול אנו נעשה סקירה מהירהCעל אלמנטים שונים בשפת

אין צורך להיבהל מכמות החומר, אנו נלמדכל דבר בפירוט בתרגולים הבאים

C

Page 19: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

19

Cמבנה תוכנית בשפת

תוכנית בשפתC:בנויה בצורה הבאה התחלהגוףסיום

התוכנית רצה שורה אחרי שורה, מלמעלה למטה

#include <stdio.h>int main(void){printf(Hello World);return 0;

}

Page 20: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

20

גוף התוכנית

)גוף התוכנית מורכב מפקודות )משפטיםפקודה יכולה להיות

קריאה לפונקציההצהרה על משתנההצבה של ביטוי לתוך משתנה....

);( כל פקודה תסתיים בנקודה-פסיק

Page 21: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

21

פונקציות

האם יש קשר בין פונקציות בשפתC ?לפונקציות כפי שאנו מכירים ממתמטיקה

: דוגמאות

x = sin(45);

printf(“Shalom Olam”);

Page 22: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

22

printff? הפונקציהprintf מדפיסה תווים למסך לפי

הפרמטר הראשון שמועבר לה. לפרמטר זה קוראים מחרוזת בקרה.

- תו מיוחד שניתן להשתמש בו במחרוזת הבקרה\nתפקידו לרדת שורה בעת ההדפסה על המסך? מה יהיה הפלט של הפקודה הבאה

printf(“Walla\nWalla”);

Page 23: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

23

תווי בקרה נוספים

%d( תפקידו להדפיס מספר שלם integer)%f( תפקידו להדפיס מספר ממשי float)דוגמאות

printf(“I hope to get %d in the test”,100);

printf(“%f + %f = %f”,1.1,2.2,3.3);

מדוע אנו זקוקים לכל התסבוכת הזו? הרי יכולנו;printf("1.1 + 2.2 = 3.3")לכתוב

Page 24: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

24

משתנים

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

int m;double x;

m = 5;x = 4.5;

printf(“The value of m is %d\n”,m);printf(“The value of x is %f\n”,x);

return 0;}

האם יש קשר בין משתנים בשפתC למשתנים כפי שאנו מכירים ממתמטיקה?

גוף התוכנית משמאלמורכב מ:

הצהרה על משתנים

הצבת ערכים למשתנים

הדפסה למסך

Page 25: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

25

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

עצמה"הסברים אלו נקראים "תיעוד פנימי/* -הערה מתחילה ב

ומסתיימת ב- /*, לדוגמא:

*/Comment/*

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

/* Program body */

int n;

n = 5; /* Now the value of n will be 5 */

return 0;}

Page 26: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

26

קלט מהמשתמש

פונקציה הנקראתscanfפועלת בדומה לprintfלפי מחרוזות בקרה – לא לשכוח את הסימן &, את תפקידו נלמד

<include <stdio.h#בהמשךint main(void){

int m;

/* Get a number from the user and save it in the variable m */scanf(“%d”,&m);

printf(“The number entered is: %d\n”,m);

return 0;}

Page 27: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

27

משפטי תנאיביצוע סדרתי של פקודות משפטי תנאי דרושים על מנת לגרום לסיעוף

בתוכניתדוגמא – הדפסת ערך מוחלט של מספר

קלט – מספר כלשהו

האם המספר קטן מאפס ?

לא

1כפול ב -כן

הדפס את המספר

Page 28: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

28

משפטי תנאי

מימוש הדוגמא מהשקף הקודם#include <stdio.h>

int main(void){

int x;

printf(“Enter number : ”);scanf(“%d”,&x);if (x < 0)

x = -1 * x;printf(“The absolute value is: %d”,x);

return 0;}

Page 29: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

29

משפטי תנאי

התחביר של משפט תנאי

if (condition) command;הפקודה תתבצע אם ורק אם התנאי מתקיים.

: תחביר מתוחכם יותר

if (condition) Command1; else Command2;

Page 30: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

30

משפטי תנאידוגמא לשימוש במשפט תנאי מורכב

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

int HW_grade, int Exam_grade;double Final_grade;

printf(“Enter average HW grade : ”);scanf(“%d”,&HW_grade);

printf(“Enter exam grade : ”); scanf(“%d”,&Exam_grade);

if (Exam_grade >= 55)Final_grade = 0.9 * Exam_grade + 0.1 * HW_grade;

elseFinal_grade = Exam_grade;

return 0;}

Page 31: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

31

משפטי תנאי

ביצוע "בלוק פקודות" )יותר מפקודה אחת( אםתנאי מסוים מתקיים

if (x > 0){

x = x + 4;y = z + x;

}else

y = x * y;

if (y < 5){

printf(“Hi”);x = 1;y = 4;z = 6;

}

if (x > 0){

x = x + 4;y = z + x;

}else{

y = x * y;z = 60;

}

Page 32: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

32

לולאות

בכל התוכניות עד כה, כל פקודה בוצעהבדיוק פעם אחת.

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

כמובן ! לולאות הן חלק חשוב מאוד בשפתC

Page 33: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

33

לולאות תחביר פקודתwhile

while (condition) command; אופציה נוספת

while (condition){

command1;

command2;

}

Page 34: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

34

לולאות? כיצד ניתן לחשב עצרת

– תזכורתn! = 1x2x3x…n0 = !1 ,1 = !1 ,2 = !2 ,3 = !6…

על הלוח(, המשתמשת בלולאה, על מנת לחשב עצרת של מספר כלשהו. כעת נכתוב תוכנית( המשתמש יקיש לנו את המספרX! ואנו נחשב עבורו את ,X

Page 35: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

35

#define

:אם נכתוב בתוכנית

#define PI 3.14 PIאז הקומפיילר יחליף את כל המופעים של

3.14בתוכנית ל-

?קבועים – מה התועלת בהם

Page 36: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

36

#defineדוגמא לשימוש ב#define

אין נקודה פסיק אחרי הגדרת שימו לב – PI

#include <stdio.h>

#define PI 3.14159

int main(void){

double radius, area, circumference;

radius = 4;area = PI * radius * radius;circumference = 2 * PI * radius;

return 0;{

Page 37: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

37

סיכום

הכרות ראשונה עם מדעי המחשבמוטיבציה ללמוד את הנושאים השונים

– הכרנו את סביבות העבודהTurbo C למדנו כיצד כותבים תוכנית קטנטנה בשפתC ראינו חלק מהפקודות האופייניות בשפתC בשיעור הבא נלמד בצורה מעמיקה פקודות

ונושאים הקשורים לקלט/פלט

Page 38: 1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים אדמיניסטרטיביים... תקשורת עם המתרגל Email שעות קבלה - היכן

38

רפרנס - תוכנית לחישוב עצרת#include <stdio.h>int main(void){

int x; /* Input */int iteration; /* Loop Counter */int result; /* Will hold the result (x!) */

printf(“Enter a number : “);scanf(“%d”,&x);

iteration = 1;result = 1;while (iteration <= x) {

result = result * iteration;iteration = iteration + 1;

}printf(“x! = %d\n”,result);return 0;

}