עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

עזרה לגבי שאלה שהייתי במבחן בPASCAL.

Featured Replies

פורסם

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

כל השעתיים הלכו לי על זה.

פורסם

לא הבנתי את השאלה.

פורסם

גם לא, אבל בהנחה שלזה אתה מתכוון, מה הבעיה בלעשות מערך אינטגר של מ 0 עד 9, ואז לעבור על המערך המקורי, בכל מספר בו, להתחיל לחלק ב 10 כל פעם (עד שהוא מתאפס) ולהעלות את המונה במערך החדש במיקום של השארית הנוכחית ב 1. לבסוף לסכום כמה איברים מהמערך החדש שונים מ 0 ולהחזיר את זה ?

פורסם
  • מחבר

אני אנסה להסביר יותר טוב. נגיד יש לי מערך בעל 5 איברים.

מערך[1] - 5

מערך[2] - 3

מערך[3] - 5

מערך[4] - 1

מערך[5] - 2

אז הפלט של התוכנית צריך להיות 4. כי יש 4 מספרים שונים במערך.

פורסם

אוקי בעקרון הדרך הארוכה

ליצור מערך חד מימדי משלך ותכניס אליו את המספר הראשון

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

עכשיו אתה צריך 2 סוכמים

אחד שיספור כמה שונים יש

ואחד שיספור כמה מספרים הכנסת עד עכשיו למערך השני (כדי להשתמש בו בלולאת FOR)

פורסם

בהנחה והמספרים הם מ 0 עד 9 (אחרת זה לא עובד):

1. הקצה מערך חדש, בגודל 10, להלן tmp_arr. מלא אותו באפסים בלבד.

2. עבור בלולאת FOR על המערך הנתון, A.

3. בכל מעבר, נניח A[k] = j אז תבצע arr_tmp[j] = 1.

4. סוף התוכנית תרוץ על arr_tmp ותסכום את הערכים בו.

5. הדפס את הסכום.

חבל שאלה לא קשה.

פורסם

בהנחה שבמערך A יש לך רק ערכים של INTEGER כלומר בטווח מ0 עד 32768 (או מה שזה לא יהיה), אתה מאתחל מערך B 0..32768 רץ על A ומעדכן את B בצורה

B[A[i]]++ 

ואז עובר על B וסוכם לSUM את כול התאים בB שמכילים 1, סיבוכיות זיכרון על הפנים, אבל זה מה שעולה לי בראש כרגע.

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

פורסם

למה לעזאזל סוכם

פורסם

כי ככה.

פורסם

אוקי הבנתי

פורסם

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

פורסם

להוסיף 1 עבור כול אלה ששונים מ0 ?

פורסם

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

פורסם

ואם המספר הוא 11, האלגו צריך להחזיר 1 לא 0.

פורסם

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

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.