חידת תכנות

slallum

New member
חידת תכנות ../images/Emo8.gif

מזל"ט על הפורום
והנה לכם חידת תיכנות חמודה: כתבו תוכנית שתקלוט ערך בין A ל-Z, ותחזיר את האות הבאה אחרי הערך הנקלט. במקרה שהערך הנקלט הוא Z יש להחזיר את הערך A. אסור להשתמש בתנאים ובלולאות!
 

Isildur

New member
תביא משהו קשה פעם הבא

הנה הקוד: char c; cin >> c; c=(c-'A'+1)%26+'A'; cout << c; למי שלא מבין את הפתרון: מחסרים מהערך האסקי של התו שהוכנס את הערך של A, מגדילים באחד ועושים מודולו כדי לטפל במקרה של Z. מחברים בחזרה את הערך של A ומדפיסים.
 

AlexH26

New member
אתה זריז ../images/Emo13.gif

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

Isildur

New member
גם זה שענה מעליי צדק

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

slallum

New member
ממ../images/Emo45.gif

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

Isildur

New member
לא סנוב

פשוט חידות כאלה מתאימות למה שמלמדים בתיכון ולא למדע של מדעי המחשב.
 

DNile

New member
קיצור, ויני,

תוסיף להודעה שלך על "למה פה זה לא פורום שפות תכנות", שפה מוכנים לעשות לאנשים את השיעורי בית.
 

AlexH26

New member
זה שיעור ראשון בשפת C

ואז כולם בהלם. מה הולך כאן? באנו ללמוד לתכנת, לא לפתור חידות.
 

slallum

New member
וואו

קודם כל, לא, זה לא שיעורי בית. דבר שני, אנחנו מדברים פה על מעדי המחשב, והחידה הזאת (אפילו שיעורי בית, אם תתעקשו) היא אכן במדעי המחשב. אני לא מבין מה הבעיה? חשבתי שזה פורום למדעי המחשב בכל הרמות, גם תיכון. אפילו בסקר יש את האופציה הזאת, ו-20% ענו עליה. אולי ההודעה פתרון של החידה של Islidur לא הייתה סנובית, אבל חלק מההודעות שראיתי פה.. =\ ממש עושה חשק לאנשים להכנס לפורום. עם גישה כזאת, אני בטוח שתוכלו להרחיק את תלמידי מדעי המחשב בתיכון.
 

vinney

Well-known member
בוא אני אגיד לך משהו

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

vinney

Well-known member
כן

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

slallum

New member
בסדר..

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

ASP zone

New member
סליחה אני תיכוניסט

אז מה? אין קשר. הרמה שלי היא מעל תיכון (כי למדתי לבד) אבל אני לא מזלזל. בלי ההתחלה של מדמ"ח אין לך בסיס לשום דבר. ואם תפרסם כאן הודעה תסמוך עלי שחצי מהאנשים יענו לך, יכוונו אותך ולפעמים יפתרו לך את השאלה לגמרי. מי שזה לא מוצא חן בעיניו או שזה לא ל"רמתו" לענות על שאלות פשוטות שכאלה שלא יעשה את זה. הרמה כאן היא כל רמה כל שהיא. עד כמה שאני מבין אותי, וויני תקן אותי אם אני טועה. וסחטיין על המהירות של הפיכת הקומונה לפורום :)
 

AlexH26

New member
מודולו מחלץ את המיקום של האות הבאה

כאשר מתייחסים ל-A כאות במקום ה-0, B במקום 1 וכו'. לכן, במקרה של Z, האות הבאה שתתקבל מהמודולו נמצאת במיקום אפס, לכן נדפיס A.
 
למעלה