שאלות

eshedr

New member
שאלות

אני לומד לבד בבית CPP מהספר C++ בקלות של הוד עמי. הספר מסביר חלק מהדברים באופן ממש לא ברור או שהוא לא מסביר בכלל ולכן אני פונה אליכם. האם תוכלו להסביר לי את שתי התוכניות הבאות? (יש הפרדה בין התוכניות עם סימן = ) בתוכנית הראשונה לא הבנתי את הלולאה ואת תפקידה וכך גם בתוכנית השנייה תודה רבה eshedr
 

CGMN

New member
הסבר

תוכנית ראשונה: יש לך מערך alphabet[27] ובלולאה אתה מאתחל אותו. כלומר אתה שם בכל איבר במערך את האות המתאימה alphabet[0]='A' , alphabet[1]='B' וכו' השורה האחרונה של התוכנית אמורה להדפיס את כל האיברים במערך (כל האותיות) אבל ככה לא מדפיסים מערך (צריך לולאה נוספת כדי להדפיס אותו) תוכנית שניה: הפונקציה string_length מקבלת בתור פרמטר מחרוזת תווים עם גודל לא ידוע. הלולאה עוברת על התווים של המחרוזת וסופרת אותם (i = מספר תווים) הלולאה נעצרת כאשר היא מגיעה לתו '0/' שזהו תו סיום מחרוזת והפונקציה מחזירה את מספר התווים של המחרוזת. בכל מקרה,אם הספר לא מסביר טוב תוכניות כאלה פשוטות אני ממליצה לך לעבור לספר אחר. אני לומדת מהספר Thinking in c++ של Bruce Eckel. זה ספר מעולה ואפשר להוריד אותו באנגלית כאן (אפשר גם לקנות ספר מתורגם לעברית)
 

CGMN

New member
אופס טעות

אין את הספר בעברית
התבלבלתי עם הספר של ג'אווה (יש ספר חושבים ג'אווה של ברוס אקל בעברית)
 

eshedr

New member
ומה אומרת השורה

alphabet[index] = NULL;?​
ועדיין לא הבנתי את הלולאה בתוכנית השנייה.
 

The Albatross

New member
../images/Emo26.gif

בשפת C, ובעקבות זאת גם בCPP, כאשר יוצרים מחרוזת, התו האחרון במחרוזת חייב להיות 0/ או NULL, שזה בעצם אותו הדבר. השורה הזאת בעצם משייכת לתו האחרון במחרוזת את תו הסיום. הלולאה בתוכנית השנייה פשוט סופרת כמה תווים יש במחרוזת שהפונקציה מקבלת. היא פשוט מקדמת את i, עד שמגיעים לתו האחרון - 0\.
 

The Albatross

New member
שהלולאה פועלת כל עוד

התו האחרון הוא לא NULL - תו סיום המחרוזת. ז'תומרת - היא סופרת את כל התווים במחרוזת עד התו האחרון.
 

pertal

New member
הלולאה תרוץ כל עוד ערך האינדקס לא ש

שווה ל \0 שמסיים מחרוזת זתומרת שלא הגעת לסוף המחרוזת....
 
למעלה