המכתב עבר עריכה לאחרונה בתאריך 01.06.03 בשעה 13:20 על-ידי מנהל
קיבלנו דף עבודה להגשה :(
צריך עזרה, הסבר, דרך לפיתרון, פיתרון, משהו לתרגילים הבאים: 1.
כתוב תוכנית הקולטת מחרוזת באורך מקסימלי של 100 תווים. אם אורך המחרוזת אי זוגי: יוחלפו התא הראשון והאחרון ביניהם. אם אורך המחרוזת זוגי יוחלפו ביניהם שני התווים האמצעיים במחרוזת. הדפס את המחרוזת לאחר ההחלפה.
דוגמא: אם המחרוזת המקורית היא abcd תהיה המחרוזת החדשה acbd
אם המחרוזת המקורית היא abcde תהיה המחרוזת החדשה ebcda
2.א. כתוב פרוצדורה out_f המקבלת מחרוזת גדולה st ותת-מחרוזת tat, ומחזירה את המחרוזת st לאחר שהוצאו ממנה כל המופעים של tat.
ב. כתוב תוכנית הקולטת תת מחרוזת tat_mach וסדרה של מחרוזות. התוכנית תוציא מכל מחרוזת בסדרה: את הרווחים, את המופעים של tat_mach. השתמש בפרוצדורה out_of שכתבת בסעיף א'. הסדרה תסתיים כאשר המחרוזת שתחזור לאחר הוצאת הרווחים והמופעים של tat_mach תהיה מחרוזת ריקה.
3. כתוב תוכנית הקולטת מחרוזת באורך של עד 100 תווים. התוכנית בודקת ומדפיסה את מספר הפעמים שבמחרוזת מופיעה שלשה של תווים כך שהתו הראשון והאחרון זהים והתו האמצעי שונה.
דוגמא: עבור הקלט: XRBRAAABASMSMSPQ
יהיה הפלט 5 שלשות של תווים RBR,ABA,SMS,MSM,SMS
4.כתוב שיגרה המקבלת מחרוזת. ידוע שבמחרוזת יש רק אותיות קטנות באנגלית וספרות 0-9. אין צורך לבדיקת תקינות.
על השגרה:
א. לחשב ולהדפיס את מספר הספרות שבמחרוזת.
ב. לחשב ולהדפיס את סכום הספרות שבמחרוזת.
ג. לבדוק ולהדפיס את האותיות שהופיעו בדיוק שלוש פעמים.
דוגמא עבור המחרוזת: km1a02kagsdk4g56admm0bgm6
יהיה הפלט
מספר הספרות: 8
סכום הספרות: 24
האותיות שהופיעו 3 פעמים k a g
5.
program wrong; type i:string{30}; var line:l; x:integer; begin readln(line); x:=1; while x<=length(line) do if line{x}=line{x+1} then x:=x+1; if x=length(line) then writeln('כל התווים שווים') else writeln('לא כל התווים שווים'); end.
|
התוכנית הנ"ל אמורה לקלוט מחרוזת באורך של עד 30 תווים, לבדוק ולהדפיס האם כל התווים במחרוזת שווים או לא. התכנית שגויה. הסבר את השגיאות ותקן את התוכנית כדי שתבצע את הנדרש. אין לכתוב תוכנית אחרת אלא תקן את התוכנית הקיימת.
לעוזרים