אַחֵר

מערכי Mac C++ ומספרים אקראיים

iBookG4user

פוסטר מקורי
27 ביוני 2006
סיאטל, וושינגטון
  • 20 בספטמבר 2009
הם שמים את המורים ל-C++ בזמנים הכי לא נוחים במכללה שלי... בכל מקרה, המדריך פרסם את ההנחיות הבאות:

'כתוב פונקציה שתמלא מערך עם 25 מספרים אקראיים בין 1 ל-10. לאחר מכן כתוב פונקציה שתדפיס את המערך. כתוב קוד ב-main כדי לבדוק את הפונקציות שלך. לפעמים קוד הבדיקה הזה נקרא *דרייבר

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

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

קוד: |_+_|

lee1210

10 בינואר 2005


דאלאס, טקסס
  • 20 בספטמבר, 2009
כמה דברים: המערך שלך צריך להיות מסוג int[], לא כפול[]. אתה צריך לקבל מערך int כדי להפיק ולהדפיס. אתה צריך להכריז על int[] ב-main, להעביר אותו להפקה, למלא אותו שם ואז להעביר אותו להדפסה. ה<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

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

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

-לקרוא

gnasher729

מוּשׁהֶה
25 בנובמבר, 2005
  • 20 בספטמבר 2009
איך היית כותב אב טיפוס של פונקציה לפונקציה 'לייצר'?
ואיך היית כותב קריאה לפונקציה 'לייצר'?

ובתוך הפונקציה ה'ראשית' שלך, איזה מהשתיים כתבת, אב טיפוס לפונקציה או קריאה לפונקציה?

iBookG4user

פוסטר מקורי
27 ביוני 2006
סיאטל, וושינגטון
  • 20 בספטמבר 2009
lee1210 אמר: כמה דברים: המערך שלך צריך להיות מסוג int[], לא כפול[]. אתה צריך לקבל מערך int כדי להפיק ולהדפיס. אתה צריך להכריז על int[] ב-main, להעביר אותו להפקה, למלא אותו שם ואז להעביר אותו להדפסה. ה<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

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

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

-לקרוא

אוקיי, עשיתי את השינויים שהצעת והקוד אכן נראה הגיוני יותר. למרות שעכשיו אני מקבל שלוש שגיאות בלולאות for.

קוד: |_+_|

קבצים מצורפים

  • צילום מסך 2009-09-20 בשעה 5.42.31 PM.png צילום מסך 2009-09-20 בשעה 5.42.31 PM.png'file-meta'> 178.1 KB · צפיות: 1,941

lee1210

10 בינואר 2005
דאלאס, טקסס
  • 20 בספטמבר, 2009
שנה את סוג הארגומנט של תוצרת ל-int[] או int *. כרגע זה רק int, אז אתה לא יכול להשתמש ב-[], וכו'. כנ'ל לגבי הדפסה. כמו כן, אתה לא צריך להחזיר שום דבר מהתוצרת או הדפוס. שנה את סוג ההחזרה שלהם לבטל.

אני חושב שהכוונה היא שתתקשר ל-print בחזרה ב-main, וזה אמור להיות בסדר.

כמו כן, כאשר אתה מעביר מערך להפקה, פשוט השתמש במערך ולא במערך *.

-לקרוא

iBookG4user

פוסטר מקורי
27 ביוני 2006
סיאטל, וושינגטון
  • 20 בספטמבר 2009
lee1210 אמר: שנה את סוג הארגומנט של תוצרת ל-int[] או int *. כרגע זה רק int, אז אתה לא יכול להשתמש ב-[], וכו'. כנ'ל לגבי הדפסה. כמו כן, אתה לא צריך להחזיר שום דבר מהתוצרת או הדפוס. שנה את סוג ההחזרה שלהם לבטל.

אני חושב שהכוונה היא שתתקשר ל-print בחזרה ב-main, וזה אמור להיות בסדר.

כמו כן, כאשר אתה מעביר מערך להפקה, פשוט השתמש במערך ולא במערך *.

-לקרוא

זה עבד
עכשיו, אתה יודע למה הוא התכוון בכתיבת הקוד כדי לבדוק את הפונקציות? למה הוא מתכוון בזה? ותודה רבה על העזרה עד כה!

קוד: |_+_|

chown33

מַנחֶה
חבר צוות
9 באוגוסט 2009
המישור התהומי
  • 20 בספטמבר, 2009
iBookG4user אמר: עכשיו, אתה יודע למה הוא התכוון בכתיבת הקוד כדי לבדוק את הפונקציות? למה הוא מתכוון בזה?

המפרט אמר שהמספרים במערך צריכים להיות בין 1 ל-10. אתה יכול לכתוב מבחן שמאשר זאת.

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

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

כדאי גם לשקול לאתחל את המערך עם ערכים לא חוקיים ידועים, כגון -1 או 0, לפני קריאת produce(). אחרת מערך מקומי לא מאותחל כבר עשוי להכיל ערכים בלתי צפויים, שבדיקה יכולה לפרש אותם כאקראיים גם אם produce() לא עושה כלום בכלל.

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

iBookG4user

פוסטר מקורי
27 ביוני 2006
סיאטל, וושינגטון
  • 20 בספטמבר 2009
זה היה פשוט מספיק, תודה!
זה עבד פינוק:
קוד: |_+_| ס

מַשׁחֵז

ל
24 באפריל, 2008
  • 21 בספטמבר 2009
iBookG4user אמר: זה היה פשוט מספיק, תודה!
זה עבד פינוק:

נסה לשים מספר 'לא חוקי' במערך שלך (נניח, 11) וראה אם ​​הפונקציה הזו מזהה את זה.

iBookG4user

פוסטר מקורי
27 ביוני 2006
סיאטל, וושינגטון
  • 21 בספטמבר 2009
סנדר אמר: נסה לשים מספר 'לא חוקי' במערך שלך (נגיד, 11) ותראה אם ​​הפונקציה הזו מזהה את זה.

הגדרתי זמנית את המערך כך שיאפשר מספרים גדולים מ-10 והוא אכן זיהה זאת, תודה ס

מַשׁחֵז

ל
24 באפריל, 2008
  • 22 בספטמבר 2009
iBookG4user אמר: הגדרתי זמנית את המערך כך שיאפשר מספרים גדולים מ-10 והוא כן זיהה את זה, תודה

גם אם זה לא האלמנט הראשון במערך..?

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