מחרוזות
לעיתים קרובות נדרשים לטפל במחרוזות של תווים כלומר מילה או משפט המורכבים ממחרוזות תווים.
אחת הדרכים להתמודד עם בעיה זו היא באמצעות מערכים.הפסקל המקורי אינו מאפשר להגדיר נתון שיקלוט לתוכו משפט שלם ויש צורך להשתמש בטכניקה שעוקפת מגבלה זו. אולם ,תוכנת פסקל שנכתבה עבור סביבת הטורבו, מאפשרת להגדיר משתנה שאפשר לקלוט לתוכו מחרוזת תווים.
לדוגמא,אם נרצה להציב לתוך משתנה מחרוזתי בשם ST את המשפט: "COMUTER IS MY FAVORITE SUBJECT''
נבצע:
program NAME; var ST:string[32]; begin ST:= 'COMUTER IS MY FAVORITE SUBJECT'; end.
|
כלומר,בשלב הגדרת המשתנים, נרשום את את שם המשתנה,
ונרשום את המילה השמורה string.
מיד לאחר מכן נרשום את אורך המחרוזת.
במקרה שלא נרשום את אורך המחרוזת,האורך שלה יוגדר ל-255 תווים. יכולה להיות מחרוזת שתכיל רק תו אחד.
מבנה הגדרת מחרוזת:
;[אורך מחרוזת]string:שם משתנה |
בעצם,הגדרת המחרוזת היא מערך המאחסן את התווים.הפסקל עושה לנו שירות ואינו מראה את כל הטיפול במערך.אם נרצה להדפיס את המחרוזת ST נוכל לרשום:
writeln(ST);
או:
for I:= 1 to 32 do write(ST[I]);
כלומר, ניתן לבצע על המחרוזת את כל הפעולות שביצענו על המערך או לחילופין להתייחס למערך כחבילה אחת המכילה מחרוזות תווים.
ניתן גם להציב מחרוזת לתוך מחרוזת לתוך מחרוזת. לדוגמא:
;ST1=ST2
המשתנה המחרוזתי המוגדר ב-var הוא משתנה באורך קבוע. אולם,מספר התווים יכול להשתנות. בפועל,אורך המחרוזת נקבע ע"י מספר התווים. האורך בפועל נקרא האורך הדינאמי של המחרוזת או המחרוזת הדינאמית.
על מחרוזות ניתן לבצע פעולות יחס כגון:
...if ST1>ST2 then
אם הוגדרו ב-var ,שנימשתנים מחרוזתיים בעלי אותו אורך, הרי המשתנה שיאחסן מחרוזת שערכה גדוליותר נקבע ע"י ערך התווים.
כלומר אם נתונות שתי המחרוזות:
ST1
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
|
|
|
|
|
|
Z |
Y |
X |
ST2
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
|
|
|
|
|
|
|
Y |
X |
הרי שהמחרוזת הדינאמית הראשונה גדולה יותר מהמחרוזת הדינאמית השנייה.
שאר התאים לא מכילים תווים שיש להם משמעות-תווים ריקים.
יש להתייחס ליחס בין מחרוזת למחרוזת כמו בספר טלפונים.'כהן' קטן יותר מ'לוי'.'כהן דן' קטן יותר מ'כהן הילה'.יש לשים לב כי התו הריק הוא תו לכל דבר.