1 מבוא למדעי המחשב 234111 תרגול מספר 1. 2 עניינים...
Post on 21-Dec-2015
247 views
TRANSCRIPT
1
234111מבוא למדעי המחשב
1תרגול מספר
2
...עניינים אדמיניסטרטיבייםתקשורת עם המתרגל
Emailשעות קבלה - היכן ומתיטלפון במשרד
אתר הקורס http://webcourse.cs.technion.ac.il/2341
11מצגות, שיעורי בית, הודעות וכו' - הכל באתר
3
...עניינים אדמיניסטרטיבייםרשימת תפוצהשיעורי בית
דף מידע באתר בתא הקורסבזוגותהגשה הגשה אלקטרונית באתר-תרגילי בית8כ חובה להגיש את כולם, פרט
0לתרגיל בית 10%מהציון הסופי ? הגשה והחזרת תרגילים - איפה מתי וכיצד
4
הגשה אלקטרונית
5
...עניינים אדמיניסטרטיביים
שיעורי בית– להפנות שאלות וערעורים על התרגיל
למתרגל שאחראי על התרגיל - רק באישור מראש של הגשה באיחור
המתרגל האחראי - הגשה למתרגל שאחראי על אותו תרגיל
!העתקות ייענשו בחומרהדף שער
6
...עניינים אדמיניסטרטיבייםחומר לימוד
המצגות – באתר הקורסCourse Material -> Tutorials
התרגוללפנינא להוריד ולהדפיס את המצגת חומר עזר נוסף
חוברת הקורס )מתרגלים אחרים עשויים להשתמשבה(
ספרי עזר
7
סביבת העבודה
Turbo C מותקן על מחשבים בחווהניתן להוריד מאתר הקורס
ולהתקין בביתVisual Studio
)לא ניתן להוריד לבית )באופן חוקילא תינתן תמיכה עבור השימוש בו
8
מבוא למדעי המחשב
)מה נלמד במהלך הקורס )מוטיבציהפתרון בעיות ע"י תוכנית מחשב שפתC עקרונות תכנות נכוניםמבני נתונים ,רקורסיהBacktrackingשיטות לפתור בעיות - ?סיבוכיות - כמה זמן לוקח לפתור בעיה
9
הגדרות בסיסיות
– 0110001110001110שפת המחשב – שפה עיליתPascal, Basic, C, C++,
Java...תוכנית מחשב - רצף של פקודות בשפה עילית - קומפיילרcompiler)מהדר(
תעויוט בקטיבהתעשה אזהרות"
ככה וככה"
...101101
10
Compileהגדרות בסיסיות - התהליך מורכב משני שלבים
קומפילציהקישור
תוכנית בשפת
C
קובץ
OBJ
קובץ
EXE
ניתן לקמפל בסביבת Turbo C
ניתן להריץ רק DOSתחת
או Windows
Compile
Link מדוע שני
שלבים ?
11
? מה נעשה היום
( הכרת סביבות העבודהTurbo C) פגישה ראשונה עם.... תוכנית בשפתC
פונקציות, משתנים, ביטויי תנאי)לולאות, קבועים )אם יישאר זמן
12
DOSמערכת ההפעלה
?DOSאיך נקבל חלון מדוע אנו צריכים אותו בכלל ?
13
DOSמערכת ההפעלה
:DOSפקודות ב-dir,cd,md,rd,del,copy,type פקודות אלו נועדו לעבודה עם
קבצים. הרבה יותר נוח לעבוד עם
windowsהתפריטים ב
חשוב לדעת כיצד להריץDOSתוכנית בסביבת
14
Turbo C – סביבת העבודה
הרצה קיצור הנמצא על הDesktopC:\tc\bin\tc אחרת - שאלו את האחראי על החווה או מישהו
בסביבה...
– מקש הפלאAlt+Enter
15
Turbo C – סביבת העבודה
Turbo C כמו( הינה תוכנת עריכה Word)פעולות בTurbo C
עריכת קובץ חדש ושמירתו, פתיחת קובץ שמור הגדרתOutput Directory ,קומפילציה, טיפול בשגיאות קומפילציה, קישור
הרצה, צפייה בפלטDOS Shell, Redirection
16
סדר הדברים
הרצתTurbo Cעריכת קובץ חדשכתיבת התוכנית( קומפילציה וקישורcompile & link)תיקון שגיאות קומפילציה הרצת התוכנית)הדפסת התוצאות )אם צריך
17
הדפסת תוצאות
Alt+F5ב Turbo C על מנת לעבור לחלון Output( ודאו כי החלון מוקטןAlt+Enter)לחיצה על הicon הקטן Edit -> Mark סימון המקטע הרצוי ולחיצה עלEnter פתיחת מסמך חדש בNotepad או WordEdit -> PasteFile -> Print
18
וכעת - לשפה עצמה
בהמשך התרגול אנו נעשה סקירה מהירהCעל אלמנטים שונים בשפת
אין צורך להיבהל מכמות החומר, אנו נלמדכל דבר בפירוט בתרגולים הבאים
C
19
Cמבנה תוכנית בשפת
תוכנית בשפתC:בנויה בצורה הבאה התחלהגוףסיום
התוכנית רצה שורה אחרי שורה, מלמעלה למטה
#include <stdio.h>int main(void){printf(Hello World);return 0;
}
20
גוף התוכנית
)גוף התוכנית מורכב מפקודות )משפטיםפקודה יכולה להיות
קריאה לפונקציההצהרה על משתנההצבה של ביטוי לתוך משתנה....
);( כל פקודה תסתיים בנקודה-פסיק
21
פונקציות
האם יש קשר בין פונקציות בשפתC ?לפונקציות כפי שאנו מכירים ממתמטיקה
: דוגמאות
x = sin(45);
printf(“Shalom Olam”);
22
printff? הפונקציהprintf מדפיסה תווים למסך לפי
הפרמטר הראשון שמועבר לה. לפרמטר זה קוראים מחרוזת בקרה.
- תו מיוחד שניתן להשתמש בו במחרוזת הבקרה\nתפקידו לרדת שורה בעת ההדפסה על המסך? מה יהיה הפלט של הפקודה הבאה
printf(“Walla\nWalla”);
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")לכתוב
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 למשתנים כפי שאנו מכירים ממתמטיקה?
גוף התוכנית משמאלמורכב מ:
הצהרה על משתנים
הצבת ערכים למשתנים
הדפסה למסך
25
הערות מעתה נכתוב הסברים על התוכנית בתוכנית
עצמה"הסברים אלו נקראים "תיעוד פנימי/* -הערה מתחילה ב
ומסתיימת ב- /*, לדוגמא:
*/Comment/*
#include <stdio.h>int main(void){
/* Program body */
int n;
n = 5; /* Now the value of n will be 5 */
return 0;}
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;}
27
משפטי תנאיביצוע סדרתי של פקודות משפטי תנאי דרושים על מנת לגרום לסיעוף
בתוכניתדוגמא – הדפסת ערך מוחלט של מספר
קלט – מספר כלשהו
האם המספר קטן מאפס ?
לא
1כפול ב -כן
הדפס את המספר
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;}
29
משפטי תנאי
התחביר של משפט תנאי
if (condition) command;הפקודה תתבצע אם ורק אם התנאי מתקיים.
: תחביר מתוחכם יותר
if (condition) Command1; else Command2;
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;}
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;
}
32
לולאות
בכל התוכניות עד כה, כל פקודה בוצעהבדיוק פעם אחת.
האם יש מקרה בו נרצה לבצע פקודהמסוימת יותר מפעם אחת ?
כמובן ! לולאות הן חלק חשוב מאוד בשפתC
33
לולאות תחביר פקודתwhile
while (condition) command; אופציה נוספת
while (condition){
command1;
command2;
…
}
34
לולאות? כיצד ניתן לחשב עצרת
– תזכורתn! = 1x2x3x…n0 = !1 ,1 = !1 ,2 = !2 ,3 = !6…
על הלוח(, המשתמשת בלולאה, על מנת לחשב עצרת של מספר כלשהו. כעת נכתוב תוכנית( המשתמש יקיש לנו את המספרX! ואנו נחשב עבורו את ,X
35
#define
:אם נכתוב בתוכנית
#define PI 3.14 PIאז הקומפיילר יחליף את כל המופעים של
3.14בתוכנית ל-
?קבועים – מה התועלת בהם
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;{
37
סיכום
הכרות ראשונה עם מדעי המחשבמוטיבציה ללמוד את הנושאים השונים
– הכרנו את סביבות העבודהTurbo C למדנו כיצד כותבים תוכנית קטנטנה בשפתC ראינו חלק מהפקודות האופייניות בשפתC בשיעור הבא נלמד בצורה מעמיקה פקודות
ונושאים הקשורים לקלט/פלט
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;
}