C guide in Hebrew 4

4
י" ט/ ב אדר/ תשע" א1 שפתC לתכנות מבוא שני שיעור קופפר מורן[email protected] 050-7458212 טיפוסים בסיסיים מספר הבתים) bytes ( שמשתנה תופס בזיכרון המחשב, תלוי בסוג המחשב והקומפיילרType Size (bytes) Range unsigned char 8 bits 0 to 255 char 8 bits -128 to 127 int 16 bits -32,768 to 32,767 unsigned int 16 bits 0 to 65,535 short int 16 bits -32,768 to 32,767 long 32 bits -2,147,483,648 to 2,147,483,647 unsigned long 32 bits 0 to 4,294,967,295 float 32 bits -3.4*10 38 to 3.4*10 38 double 64 bits -1.7*10 308 to 1.7*10 308 long double 128 bits -3.4*10 4932 to 3.4*10 4932 משתנים תא בזיכרון המשמש לאחסון נתונים לכל משתנה: שם, טיפוס וכתובת בזיכרון שימושי לקליטת נתונים, לביצוע חישובים מורכבים ועוד הגדרת משתנה בשפתC : Type varName; ניתן להגדיר כמה משתנים בשורה אחת המופרדים בפסיקים טיפוס הנתונים נקבע לפי סוג הנתונים שיאוחסנו במשתנהint counter; float k1, k2, k3; int age, long white; char letter, digit, space; משתנים- דוגמא נניח שברצוננו לשמור במשתנים מידע על: מספר הפריטים במחסן) 0-20,000 ( מספר הסטודנטים באזור חיפה) 0-35,000 ( השנה הנוכחית מספר תעודת זהות שער הדולר גיל של אדם) 0-120 ( התווים' A ' עד' Z ' מהן ההגדרות המתאימות למשתנים אלו?

description

lessson 4

Transcript of C guide in Hebrew 4

א"תשע/אדר ב/ט"י

1

Cשפת

מבוא לתכנותשיעור שני

מורן קופפר

[email protected]

050-7458212

טיפוסים בסיסיים

שמשתנה תופס בזיכרון ) bytes(מספר הבתים •תלוי בסוג המחשב והקומפיילר, המחשב

Type Size (bytes) Range

unsigned char 8 bits 0 to 255

char 8 bits -128 to 127

int 16 bits -32,768 to 32,767

unsigned int 16 bits 0 to 65,535

short int 16 bits -32,768 to 32,767

long 32 bits -2,147,483,648 to 2,147,483,647

unsigned long 32 bits 0 to 4,294,967,295

float 32 bits -3.4*1038 to 3.4*1038

double 64 bits -1.7*10308 to 1.7*10308

long double 128 bits -3.4*104932 to 3.4*104932

משתנים

תא בזיכרון המשמש לאחסון נתונים•

טיפוס וכתובת בזיכרון, שם: לכל משתנה•

לביצוע חישובים מורכבים , שימושי לקליטת נתונים•ועוד

:Cהגדרת משתנה בשפת •• Type varName;

ניתן להגדיר כמה משתנים בשורה אחת המופרדים •בפסיקים

טיפוס הנתונים נקבע לפי סוג הנתונים שיאוחסנו במשתנה•

int counter;

float k1, k2, k3;

int age, long white;

char letter, digit, space;

דוגמא -משתנים

:נניח שברצוננו לשמור במשתנים מידע על•

)0-20,000(מספר הפריטים במחסן •

)0-35,000(מספר הסטודנטים באזור חיפה •

השנה הנוכחית•

מספר תעודת זהות•

שער הדולר•

)0-120(גיל של אדם •

'Z'עד ' A'התווים •

?מהן ההגדרות המתאימות למשתנים אלו•

א"תשע/אדר ב/ט"י

2

משתנים

:פעולות ההשמה•counter�0: דוגמא � :בתרשים זרימה•

1k=98.32: דוגמא= :Cבתוכנית בשפת •

:ניתן לאתחל משתנים כבר בשורת ההגדרה•

:ניתן לבצע השמה מרובה באופן הבא•

int counter = 0, x;

float k1 = 32.98;

a=3;

a = b = c = 3; b=3;

c=3;

דוגמא -משתנים

:הפלט של התוכנית יהיה

#include <stdio.h>

void main (void)

{

int a=5,b;

b=a+1;

a=19;

printf(“the value of a is:%d\n”, a);

printf(“the value of b is:%d\n”, b);

}

the value of a is:19

the value of b is:6

לא יושמה על ידנו ולכן יש לציין printfהפונקציה

.היכן היא נמצאת

#include - מאפשר שימוש בקטעי קוד שנכתבו

י אחרים ונשמרו בקובץ ששמו נמצא בין "ע

.< >הסוגרים

לתכנית stdio.hהמהדר יעתיק את תוכן הקובץ

.שלנו

stdio.h של פקודות המטפלות " ספריה"הוא קובץ

פלט / בקלט

)standard input/output.(

printf - פונקציה

. C -שהוגדרה ב

רצף התווים בין

.הגרשיים יודפס למסך

סימן המשמש כדי - %

להדפיס ערך של

משתנה

\n - סימן שמשמעותו

.שורה חדשה

תווים

: י רישום התו בין גרשיים לדוגמא"סימון תו יעשה ע•‘*’ , ‘a’ , ‘^’, ‘2’

charהטיפוס הבסיסי לייצוג תווים הינו •תופס בית אחד בזיכרון אשר charמשתנה מטיפוס •

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

כאשר לכל תו יש מספר שמייצג אותוי "טבלאות לייצוג תווים ע/ קיימות מספר שיטות •

ASCIIמספרים כשהנפוצה ביניהם היא טבלת )American Standard Code for Information Interchange(

ייצוג תווים

:ייצוג חלקי של הטבלה מובא להלן•

?אם תו מיוצג כמספר כיצד נבדיל בין מספר לתו •

א"תשע/אדר ב/ט"י

3

ייצוג תווים

ASCIIהרחבת טבלת •

)constant(קבועים

ערך שאינו משתנה במהלך ריצת התוכנית= קבוע •

:הקבועים נחלקים למספר סוגים•

30000, 20: קבועים מספריים שלמים•

5.0, 34.234: קבועים מספריים עשרוניים•

)טבלת תווים מיוחדים בשקף הבא( ’n’ ,‘\t\‘: קבועים תוויים•

)aלא יגרום לשינוי ערכו של ( ”hello” ,“a=b+c“: קבועים מחרוזתיים•

)constant(קבועים

Character ASCII value

\b backspace 008

\t tab 009

\n newline 010

\v vertical tab 011

\f form feed 012

\r carriage return 013

\” ” 034

\’ ’ 039

\? ? 063

\\ \ 092

\0 Null 000

define#הגדרת סמלים לקבועים באמצעות

define MAX_SIZE 1000# :ההגדרה•

כאילו היא MAX_SIZEתגרום למהדר להתייחס לסדרת התווים •1000סדרת התווים

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

כמלה עצמאית יוחלף MAX_SIZEרק מופע של •

10002 -תוחלף ל לא MAX_SIZE2הסדרה •

יוחלפו לאבתוך גרשיים MAX_SIZEמופעים של •

אינו משתנה ולכן לא מוקצה לו זיכרון MAX_SIZEיש לשים לב כי •

define PI 3.14159265358979323846#: הגדרת קבוע•

תורמת לקריאות של התוכנית וחוסכת בזמן כתיבת התוכנית ובזמן עריכת שינויים

א"תשע/אדר ב/ט"י

4

define#הגדרת סמלים לקבועים באמצעות

י "י ביטוי קבוע ולא ע"לעיתים נרצה להגדיר סמל קבוע ע•מספר

שעתיים וארבעים "נניח שפרק זמן מסוים מוגדר כ :לדוגמא•"וחמש דקות

אבל אז קצת קשה להבין define PERIOD 165#: נוכל להגדיר•

ומאין נלקח 165מה המשמעות של המספר

define PERIOD 2*60+45#: ואולי נעדיף להגדיר•

? אבל מה יקרה אם נרצה לחשב את משך הסמן של שתי תקופות•

twice = PERIOD * 2 � twice = 2*60+45*2

define PERIOD (2*60+45)#: על כן נגדיר•

= twice: ואז נקבל• PERIOD * 2 � twice = (2*60+45)*2