Download presentation
Presentation is loading. Please wait.
1
פרטים נוספים בסילבוס של הקורס
מבוא לתכנות ב-C מרצה : עמי ברלר כתובת: בחינה 70% - עבודות 30% 5-6 עבודות במשך הקורס חובה: להגיש כל העבודות לפחות 56 בבחינה פרטים נוספים בסילבוס של הקורס חובה להסתכל על הודעות נא לא להעתיק !! Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
2
מבנה מערכת מחשב CPU Internal Memory Output Input Mouse Keyboard
Microphone Detectors Monitor Speakers Motors Hard Disk CD / DVD Tape DiskOnKey External Memory Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
3
מבנה הזיכרון הפנימי ROM – Read Only Memory Random Access Memory-RAM
נמחק עם כיבוי המחשב מחובר קרוב למעבד תוכן הניתן לשינוי מהיר מאחסן את תוכנית המחשב והמידע הנחוץ לעבודה הרגעית של המעבד מבצע קשר עם המעבד בקצב של מיליוני פעמים בשנייה. ROM – Read Only Memory לא נמחק עם כיבוי המחשב כולל תכניות ונתונים שהם הכרחיים להפעלת המחשב לא ניתן לשינוי אלא ע"י תוכניות מיוחדות Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
4
יחדה זיכרון - BYTE BYTE היא היחידה של מידע דיגיטלי
היא כוללת 8 BITS binary digit)) עם ערכים 0 – 1 Byte יכול לייצג 256 ( 28 ) ערכים שונים : 0 – 255 ASCII (American Standard Code for Information Interchange) Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
5
אלגורתים הגדרה לא פורמלית - אלגוריתם הוא דרך שיטתית (כלומר כזו שצעדיה מוגדרים היטב) לביצועה של משימה מסוימת במספר סופי של צעדים. מקור המלה בשמו של המתמטיקאי הפרסי בן המאה התשיעית, אבו ג'עפר מוחמד אל חואריזמי. תהליך חישובי (סדרה של הוראות, מוגדר היטב )ההוראות מובנות וניתנות לביצוע(, שמקבל כקלט ערך או קבוצת ערכים, ונותן כפלט ערך או קבוצה של ערכים כ-"פונקציה" של הקלט. דוגמאות : להכין עוגה, לדבר בטלפון, להזמין פיצה וכו' Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
6
תהליך לפתרון בעית תכנות
להבין את הגדרת הבעיה להכליל ולפרק את הגדרת הבעיה לפתח אלגורים לפתרון הבעיה לכתוב את הקוד המתאים לבדוק ולשנות בהתאם Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
7
אלגוריתם סידרת פעולות מוגדרת (דטרמיניסטית) לביצוע המובילה לפתרון הבעיה
תכונות לאלגוריתם על-פי :Knuth סופיות (עצירה) מוגדרות (כל פעולה צריכה להיות מובנת למבצע באופן חד משמעי) קלט (אפס או יותר) פלט (לפחות אחד) אפקטיביות. אלגוריתם טוב נקבע לפי הקריטריונים הבאים: נכונות: נבדק ע"י עצירה ופלט רצוי יעילות: לפי זמן הריצה של האלגוריתם ו/או כמות זיכרון שנדרשה. Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
8
תרשים זרימה – הוראות המוגדרים כבלוקים
הסתעפות קלט/פלט התחלה סיום פעולה לביצוע הערות: פעולה לביצוע הינה פעולה שחייבת להיות ברת ביצוע במחשב. במידה ופעולה זו לא ניתנת לביצוע בפעולה אחת, ניתן לשרטט תרשים זרימה נפרד המתאר כיצד מבוצעת הפעולה. קלט או פלט יכול להיות מקלדת מסך או קובץ. כל הבלוקים למעט התחלה וסיום יכולים להופיע מספר בלתי מוגבל של פעמים. בלוק התחלה וסיום חייבים להופיע בדיוק פעם אחת בלבד. בלוק ההסתעפות חייב להכיל שאלה שהתשובה עליה היא אמת (כן) או שקר (לא) (אין אולי). Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
9
דוגמא לבעיה: GCD Greatest Common Divisor
תאור הבעיה: מציאת מחלק המשותף המכסימלי של שני מספרים שלמים חיוביים. דוגמאות: 48: {1, 2, 3, 4, 6, 8, 12, 16, 24} 18: {1, 2, 3, 6, 9} 49: {1, 7} למספרים 48 ו-18 יש מחלק מכסימלי משותף 6. למספרים 49 ו-18 אין מחלק משותף מלבד 1. פורמלית: קלט: שני מספרים שלמים, חיוביים פלט: GCD(m,n) Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
10
איך מוצאים GCD? פתרון נאיבי
קלט: m, n I=min(m,n) אם I מחלק את m ואת n החזר את I ועבור ל-6 I I-1 חזור ל - 3 עצור הנחות קלט: m, n שלמים חיוביים הנחת פלט: א. האלגוריתם יעצור (למה?) ב. בעצירה, I מחזיק את המחלק משותף מכסימלי -> נכונות קודם לתאר את הרעיון במילים התאור הוא סופי קלט m,n חיוביים שלמים אין התיחסות לערכים ספציפיים של m,n (עובד לכל הערכים האפשריים) האם זה עוצר? מדוע? כן – כי יש מחלק משותף ולא נפספס אותו (דיון) האם זה נכון? מדוע? כן – כי שנעצור I מחלק משותף ואין אחר גדול ממנו (דיון) אפשר להחליף את 2 ב: I = min(m,n) Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
11
הצגת האלגוריתם כתרשים זרימה
Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
12
מציאת מינימום של שני מספרים
Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
13
GCD על פי אוקילידס קלט: m,n r m % n אם r=0 החזיר n וסיים. m n
חזור ל- 2 להסביר % דוגמת הרצה N M 30 48 18 30 12 18 6 12 ואם נחליף את m,n? בדיקת 5 התכונות נראה כי אלגוריתם זה יצטרך לבצע פחות "סיבובים" לפני שימצא את התשובה מאשר האלגוריתם הנאיבי Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
14
הצצה לתכנית מחשב בשפה C #include <stdio.h> void main(){ int a,b,r; scanf("%d%d",&a,&b); r = b; while(r != 0){ r= a%b; if(r == 0) printf("---%d\n",b); a = b; b = r; }; } Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
15
אבני יסוד של תכנית ? ? יום רביעי 05 דצמבר 2018
Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
16
תהליך לפתרון בעית תכנות
להבין את הגדרת הבעיה להכליל ולפרק את הגדרת הבעיה לפתח אלגורים לפתרון הבעיה לכתוב את הקוד המתאים לבדוק ולשנות בהתאם Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
17
אבני יסוד של תכנית ? ? יום רביעי 05 דצמבר 2018
Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
18
תהליך כתיבת תוכנית כאשר רוצים לכתוב תכנית בשפה עילית כלשהי שתבצע אלגוריתם עובדים לפי סדר העבודה הבא: הקלדת התכנית בeditor יצירת Source Code File קובץ מקור (סיומת C) קומפילציה – בדיקת קובץ המקור ויצירת Object Code File קישור תהליך שילוב הקובץ בשפת מכונה עם כל הקבצים הנוספים הדרושים לתכנית כגון ספריות וכיוב. יצירת קובץ הרצה עם סיום Exe/ הרצת התכנית Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
19
תהליך כתיבת תוכנית Editor Algorithm File.c Linker Object input
שגיאות קומפילציה Compiler Object Linker Executable input output Run time errors Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
20
למה ללמוד C C זו שפה יחסית קטנה וכך קלה לתכנות. Unix נכתב בשפת C
C מאפשרת למתכנת גישה לתוך הקרביים של המחשב (רמת ה bit). C זו שפה מודולארית וכך היא קלה להבנה וחסכונית C מהווה את הבסיס לשפת ++C Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
21
תכנית ראשונה ב- C /* HelloWorld – An example program */ #include <stdio.h> // Here place // for future // study void main(void) { printf(“Hello, world!\n”); } Comments are good Preprocessor directive Includes C standard library main() means “start here” Brackets define code blocks Note that all C statements end with a semicolon (;). Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
22
דוגמא מבנה תכנית main () { . } יום רביעי 05 דצמבר 2018
Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
23
void main() מגדיר פונקציה מיוחדת main.
נותן הוראה לקומפיילר איפה מתחילה הרצת התכנית. כל תכנית בשפת C כוללת פנקציה main. Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
24
printf() היא פונקציה הקיימת בתוך השפה C
הפונקציה מדפיסה את הטקסט שקיים בתוך הסוגריים בצורה מיוחדת שנראה בהמשך. Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
25
#include <stdio.h>
הקובץ מכיל מידע לגבי הפונקציות printf , scanf ואחרות שנראה בהמשך הקורס. Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
26
מזהים (Identifiers) יום רביעי 05 דצמבר 2018
Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
27
חוקים להגדרת מזהים ב-C המזהה מורכב מרצף של אותיות, ספרות והתו '_' ( underscore ) i CSE_8a a_very_long_name_that_isnt_very_useful fahrenheit רצף זה אינו יכול להתחיל בספרה. 8a_CSE is not valid! 2. אורך המזהה אינו מוגבל. לפחות 31 התווים הראשונים נחשבים עבור הקומפיילר של שפת C. 3. בשפת C קיימות מילים שמורות ( keywords ) כגון : if , else , int . אין לתת למזהים שמות מקבוצה זו . 4. בשפת C קיימת הבחנה בין אותיות קטנות לגדולות ולכן המזהים : SIZE , Size , SiZe ... הינם שונים אחד מהשני . Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
28
שמות ע"י מזהים משתנים - Variables מילות שמורו - Reserved Words
פונקציות - Functions קבועים - Constants מבנים - Structures סוגי משתנים - Type of variables Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
29
מילות שמורות auto do goto signed unsigned break double if sizeof void case else int static volatile char enum long struct while const extern register switch continue float return typedef default for short union Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
30
משתנים (Variables) יום רביעי 05 דצמבר 2018
Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
31
משתנים ב-C משתנה הוא מקום בזיכרון. גודל המקום תלוי בסוג המשתנה.
לפני השימוש של משתנה צריך להצהיר עליו. ההצהרה על משתנה כוללת קודם את סוג המשתנה ואחרי זה את שם המשתנה לפי חוקי המזהים ב-C. ניתן להצהיר על כמה משתנים באותו סוג ביחד כאשר מפרידים בינהם ע"י פסיק ( , ). Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
32
דוגמאות של הצהרה על משתנים
int i; char c; float f1, f2; unsigned int ui ; double t1,t2,t3; Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
33
סוגי משתנים ב-C char – a single byte character ‘A’.
short int (or just short) – an integer number, usually 2 bytes (rarely used) 15 . int - an integer number – usually 4 bytes long int (or just long) – an integer number, 4 or 8 bytes (rarely used) float – a single precision real number – usually 4 bytes double – a double precision real number – usually 8 bytes long double - a double precision real number – usually 8 bytes (rarely used) Signed vs. unsigned Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
34
תחום סוגי משתנים טיפוס מספר בתים תחום המספרים unsigned char 1 0 – 255
short 2 unsign short long, int 4 unsigned long,unsigned int float (7 ספרות דיוק) 3.4e e-38 double (15 ספרות דיוק) 8 1.7e e+308 long double (19 ספרות דיוק) 10 8 3.4e e4932 Department of Computer Science-BGU יום רביעי 05 דצמבר 2018
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.