» נושאי לימוד
» נושאי לימוד
יום שישי 3 במאי 2024
משתנים תווים
דף ראשי  פרק 3 :יסודות שפת פסקל  משתנים ומחרוזות  משתנים תווים גרסה להדפסה

משתנים תווים

 

בנוסף למשתנים ממשיים או שלמים,אפשר להגדיר גם סוג משתנה האחר שתוכנו יהיה תו.

תו הינו כל סימן המופיע על המקלדת.כולל ספרות,סימנים מיוחדים ואותיות.

יש גם סימנים מיוחדים שלא רואים על המקלדת.כגון,תו הגורם לצפצוף וכדו'.

 לכל תו קיים מספר שווה ערך.סה"כ אפשרי לייצג 256 תווים.

מכיוון שיש צורך בהסכמה על מספרים המייצגים את התווים, הוקמה ועדה שנקראת ASCII בוועדה זו הוחלט על ייצוג של 128 תווים בלבד.תווים מיוחדים,ספרות ואותיות אנגליות.

המספרים של 128 התווים האלו נקראים תווים המיוצגים בקוד ASCII.

 

דוגמא:

הגדר את משתנה X כמשתנה תווי, קלוט אליו תו והדפס אותו.

 

פיתרון:

 

program CHAR_X;

var

      X:char;

begin

      readln_X);

      writeln(X);

end.    

 

 

 

 

 

 

 

 

 

 

המשתנה X, המוגדר ב-var, יכול לאחסן רק תו אחד בלבד!

הגדרת סוג המשתנה נעשית ע"י המילה char.

למשתנה תווי מציבים ערך תווי.

לדוגמא:

 

X:='A';

 

X הוא משתנה תווי שלתוכו הוצב התו A .

התו נמצא בין גרש שמאלי לימני להבדיל מההצבה:

 

X:=A;

 

המציב את תוכן משתנה A ל- X,ולא את הערך 'A' ל-X.

סך כל המספרים המייצגים את התווים השונים הוא 256.        

0 עד 127 ע"י קוד ASCII  ועוד 128 עד 255 תווים אחרים,שערכם יכול להתחלף בין שפה לשפה.

אין שום אפשרות לערב בפעולות שלמדנו עד כה משתנים מסוגים שונים עם משתנים תווים.

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

המספרי ולהיפך.

 

הפונקציה chr - נותנת ערך מספרי לערך תווי

דוגמא לתחביר בפסקל:          ;(X:=chr(Y

דוגמא לתוצאה מספרית:      ;chr(65) = A

 

הפונקציה ord - נותנת ערך תווי לערך מספרי

דוגמא לתחביר בפסקל:          ;(Y:=ord(X

דוגמא לתוצאה מספרית:      ;ord('A') = 65

 

פונקציות שימושיות למשתנים תווים:

Function

Description

Argument type

Return type

chr

character with given ASCII value

integer

char

ord

ordinal value

integer or char

integer

pred

predecessor  (מס' קודם)

integer or char

same as argument type

succ

successor  (מס' עוקב)

integer or char

same as argument type

 

 

דוגמא:

 

להלן תוכנית המדפיסה את כל התווים המיוצגים במחשב:

 

 

חלק מהדפסת התוכנית תהיה:

 

·       

·       

·       

33 --> !

34 --> "

35 --> #

·       

·       

·       

118 --> v

119 --> w

120 --> x

·       

·       

·       

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

דוגמא:

 

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

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

 

פתרון:

 

 

program NAME;

var

   I:integer;

   CH:char;

      ·       

      ·       

      ·       

procedur CHECK;

{תת תוכנית הבודקת אם הוקשה ספרה בקלט של תווים כלשהם}

begin

    for I:=1 to 100 do (*לולאה לקליטת מאה תווים*)

    begin

    {קלט}

    write( 'ENTER ,'ולאחריו' ,I,'הקש תו מספר);

    readln (CH);

    {הבדיקה}

    (*של הספרותASCIIאם התו נמצא בתחום הייצוג ב- *)

    (*אזי ההוראה תדפיס שהתו שגוי*)

    If CH>='0' then

        If CH<='9' then writeln('תו שגוי');

    end;

end;

      ·       

      ·       

    ·     

 23-03-04 / 23:51  עודכן ,  01-09-03 / 20:09  נוצר ע"י ליזי פרגו'ן  בתאריך 
 משתנים ומחרוזות - הקודםהבא - משתנים בוליאניים 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 1