อื่น

อาร์เรย์ Mac C++ และตัวเลขสุ่ม

iBookG4user

โปสเตอร์ต้นฉบับ
27 มิ.ย. 2549
ซีแอตเทิล รัฐวอชิงตัน
  • 20 ก.ย. 2552
พวกเขาส่งติวเตอร์สำหรับ C++ ในช่วงเวลาที่ไม่สะดวกที่สุดในวิทยาลัยของฉัน... อย่างไรก็ตาม ผู้สอนได้โพสต์คำแนะนำต่อไปนี้:

'เขียนฟังก์ชันที่จะเติมอาร์เรย์ด้วยตัวเลขสุ่ม 25 ตัวระหว่าง 1 ถึง 10 จากนั้นเขียนฟังก์ชันที่จะพิมพ์อาร์เรย์ออกมา เขียนโค้ดใน main เพื่อทดสอบฟังก์ชันของคุณ บางครั้งโค้ดทดสอบนี้เรียกว่า *driver

อย่าใช้ตัวแปรส่วนกลางที่นี่ ส่งอาร์เรย์ไปยังฟังก์ชันผ่านรายการพารามิเตอร์'

รหัสปัจจุบันของฉันไม่ส่งผลให้เกิดข้อผิดพลาดใด ๆ ในตัวดีบั๊ก แต่จะไม่ส่งออกอาร์เรย์ และฉันไม่รู้ว่าเขาหมายถึงอะไรในการเขียนไดรเวอร์ ฉันควรทดสอบอะไรดี คุณได้พิสูจน์แล้วว่าเป็นประโยชน์อย่างมากในอดีตและฉันแน่ใจว่าคุณจะช่วยชี้ให้ฉันไปในทิศทางที่ถูกต้องในครั้งนี้

รหัส: |_+_|

lee1210

10 ม.ค. 2548


ดัลลาส, TX
  • 20 ก.ย. 2552
บางสิ่ง: อาร์เรย์ของคุณควรเป็นประเภท int[] ไม่ใช่ double[] คุณต้องยอมรับ int array เพื่อผลิตและพิมพ์ คุณต้องประกาศ int[] เป็นหลัก ส่งต่อเพื่อผลิต กรอกข้อมูลในนั้น จากนั้นส่งต่อเพื่อพิมพ์ NS<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

นอกจากนี้ และฉันแน่ใจว่ามันเป็นความผิดพลาดโดยสุจริต ฉันแน่ใจว่าอาจารย์ของคุณหมายถึง หลอก- สุ่ม

นอกจากนี้ หลักๆ แล้ว คุณกำลังประกาศ new double()s ไม่ใช่การเรียกใช้งานและการพิมพ์ นำ double ออกไปที่นั่น และส่งอาร์กิวเมนต์ตามที่กล่าวไว้ข้างต้น และเปลี่ยนประเภทการส่งคืนของทั้งสองรายการให้เป็นโมฆะ

-อ่าน

gnasher729

ถูกระงับ
25 พ.ย. 2548
  • 20 ก.ย. 2552
คุณจะเขียนต้นแบบฟังก์ชันสำหรับฟังก์ชัน 'ผลิต' อย่างไร?
และคุณจะเขียนการเรียกฟังก์ชัน 'ผลิต' อย่างไร?

และภายในฟังก์ชัน 'หลัก' ของคุณ คุณเขียนข้อใดในสองฟังก์ชัน ต้นแบบฟังก์ชันหรือการเรียกใช้ฟังก์ชัน

iBookG4user

โปสเตอร์ต้นฉบับ
27 มิ.ย. 2549
ซีแอตเทิล รัฐวอชิงตัน
  • 20 ก.ย. 2552
lee1210 กล่าวว่า: บางสิ่ง: อาร์เรย์ของคุณควรเป็นประเภท int[] ไม่ใช่ double[] คุณต้องยอมรับ int array เพื่อผลิตและพิมพ์ คุณต้องประกาศ int[] เป็นหลัก ส่งต่อเพื่อผลิต กรอกข้อมูลในนั้น จากนั้นส่งต่อเพื่อพิมพ์ NS<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

นอกจากนี้ และฉันแน่ใจว่ามันเป็นความผิดพลาดโดยสุจริต ฉันแน่ใจว่าอาจารย์ของคุณหมายถึง หลอก- สุ่ม

นอกจากนี้ หลักๆ แล้ว คุณกำลังประกาศ new double()s ไม่ใช่การเรียกใช้งานและการพิมพ์ นำ double ออกไปที่นั่น และส่งอาร์กิวเมนต์ตามที่กล่าวไว้ข้างต้น และเปลี่ยนประเภทการส่งคืนของทั้งสองรายการให้เป็นโมฆะ

-อ่าน

ตกลง ฉันได้ทำการเปลี่ยนแปลงตามที่คุณแนะนำแล้ว และโค้ดก็ดูสมเหตุสมผลมากขึ้น แม้ว่าตอนนี้ฉันจะได้รับข้อผิดพลาดสามข้อในการวนซ้ำ

รหัส: |_+_|

เอกสารแนบ

  • สกรีนช็อต 2009-09-20 เวลา 5.42.31 น.png ภาพหน้าจอ 2009-09-20 เวลา 5.42.31 PM.png'file-meta'> 178.1 KB · เข้าชม: 1,941

lee1210

10 ม.ค. 2548
ดัลลาส, TX
  • 20 ก.ย. 2552
เปลี่ยนประเภทอาร์กิวเมนต์ของผลิตผลเป็น int[] หรือ int * ตอนนี้เป็นเพียง int คุณจึงใช้ [] ไม่ได้ ฯลฯ เช่นเดียวกับการพิมพ์ นอกจากนี้ คุณไม่จำเป็นต้องส่งคืนสินค้าจากการผลิตหรือการพิมพ์ เปลี่ยนประเภทการส่งคืนเป็นโมฆะ

ฉันคิดว่ามีเจตนาให้คุณโทรกลับมาพิมพ์หลักซึ่งน่าจะดี

นอกจากนี้ เมื่อคุณส่งอาร์เรย์เพื่อผลิต ให้ใช้อาร์เรย์ไม่ใช่ *array

-อ่าน

iBookG4user

โปสเตอร์ต้นฉบับ
27 มิ.ย. 2549
ซีแอตเทิล รัฐวอชิงตัน
  • 20 ก.ย. 2552
lee1210 กล่าวว่า: เปลี่ยนประเภทอาร์กิวเมนต์ของผลิตผลเป็น int[] หรือ int * ตอนนี้เป็นเพียง int คุณจึงใช้ [] ไม่ได้ ฯลฯ เช่นเดียวกับการพิมพ์ นอกจากนี้ คุณไม่จำเป็นต้องส่งคืนสินค้าจากการผลิตหรือการพิมพ์ เปลี่ยนประเภทการส่งคืนเป็นโมฆะ

ฉันคิดว่ามีเจตนาให้คุณโทรกลับมาพิมพ์หลักซึ่งน่าจะดี

นอกจากนี้ เมื่อคุณส่งอาร์เรย์เพื่อผลิต ให้ใช้อาร์เรย์ไม่ใช่ *array

-อ่าน

มันได้ผล
ตอนนี้คุณรู้ไหมว่าเขาหมายถึงอะไรโดยการเขียนโค้ดเพื่อทดสอบฟังก์ชันต่างๆ เขาหมายความว่าอย่างไรโดยที่? และขอบคุณมากสำหรับความช่วยเหลือของคุณจนถึงตอนนี้!

รหัส: |_+_|

chown33

พิธีกร
พนักงาน
9 ส.ค. 2552
เครื่องบิน Abysmal
  • 20 ก.ย. 2552
iBookG4user กล่าวว่า: ตอนนี้คุณรู้หรือไม่ว่าเขาหมายถึงอะไรโดยการเขียนโค้ดเพื่อทดสอบฟังก์ชันต่างๆ เขาหมายความว่าอย่างไรโดยที่?

ข้อกำหนดระบุว่าตัวเลขในอาร์เรย์ควรอยู่ระหว่าง 1 ถึง 10 คุณสามารถเขียนการทดสอบที่ยืนยันว่า

นอกจากนี้ยังกล่าวว่าตัวเลขควรเป็นแบบสุ่ม แม้ว่าการสุ่มอาจทำการทดสอบได้ยากกว่าที่คิด แต่การไม่สุ่มตัวอย่างง่าย ๆ ก็สามารถทดสอบได้ง่าย ที่ง่ายที่สุดคือการยืนยันว่าตัวเลขทั้งหมดไม่ใช่ค่าเดียวกัน การทดสอบแบบสุ่มที่ซับซ้อนมากขึ้นใช้การวิเคราะห์ทางสถิติ

การทดสอบอื่นที่คุณสามารถเขียนได้ก็คือการยืนยันว่าฟังก์ชัน products() จะคืนค่าที่ต่างกันในแต่ละครั้งที่มีการเรียก นี่เป็นรูปแบบการวิเคราะห์ทางสถิติอย่างง่าย กล่าวคือ การทำให้แน่ใจว่าการเรียกที่ต่อเนื่องกันมีผลที่เป็นอิสระ

คุณควรพิจารณาเริ่มต้นอาร์เรย์ด้วยค่าที่ไม่ถูกต้องที่ทราบ เช่น -1 หรือ 0 ก่อนเรียกใช้ production() มิฉะนั้น อาร์เรย์โลคัลที่ยังไม่ได้กำหนดค่าเริ่มต้นอาจมีค่าที่คาดเดาไม่ได้อยู่แล้ว ซึ่งการทดสอบอาจตีความได้ว่าเป็นการสุ่ม แม้ว่า products() จะไม่ทำอะไรเลยก็ตาม

ตามข้อกำหนด ข้อความของงานค่อนข้างคลุมเครือ ประการหนึ่ง ไม่ได้ระบุว่าต้องผ่านการทดสอบใด เชื่อฉันเถอะ ถ้าคุณปล่อยให้โปรแกรมเมอร์ส่วนใหญ่เลือกการทดสอบคุณสมบัติ ถือเป็นความผิดพลาดครั้งใหญ่ โค้ดอาจใช้ได้ในกรณีเดียวเท่านั้น ซึ่งเป็นกรณีที่โปรแกรมเมอร์ใช้ในการพัฒนาโค้ด ถ้ามันดูบ้าๆ ฉันรับรองได้เลยว่ามันเกิดขึ้น

iBookG4user

โปสเตอร์ต้นฉบับ
27 มิ.ย. 2549
ซีแอตเทิล รัฐวอชิงตัน
  • 20 ก.ย. 2552
นั่นง่ายพอ ขอบคุณ!
สิ่งนี้ได้ผล:
รหัส: |_+_| NS

แซนเดอร์

ถึง
24 เม.ย. 2551
  • 21 ก.ย. 2552
iBookG4user กล่าวว่า: ง่ายพอสมควร ขอบคุณ!
สิ่งนี้ได้ผล:

ลองใส่ตัวเลข 'ไม่ถูกต้อง' ในอาร์เรย์ของคุณ (เช่น 11) และดูว่าฟังก์ชันนี้ตรวจพบหรือไม่

iBookG4user

โปสเตอร์ต้นฉบับ
27 มิ.ย. 2549
ซีแอตเทิล รัฐวอชิงตัน
  • 21 ก.ย. 2552
แซนเดอร์กล่าวว่า: ลองใส่หมายเลข 'ไม่ถูกต้อง' ในอาร์เรย์ของคุณ (เช่น 11) และดูว่าฟังก์ชันนี้ตรวจพบหรือไม่

ฉันตั้งค่าอาร์เรย์ชั่วคราวเพื่อให้ตัวเลขที่มากกว่า 10 และตรวจพบได้ ขอบคุณ NS

แซนเดอร์

ถึง
24 เม.ย. 2551
  • 22 ก.ย. 2552
iBookG4user กล่าวว่า: ฉันตั้งค่าอาร์เรย์ชั่วคราวเพื่อให้ตัวเลขที่มากกว่า 10 และตรวจพบได้ขอบคุณ

แม้ว่าจะไม่ใช่องค์ประกอบแรกในอาร์เรย์..?

เหตุผลที่ฉันถามก็เพราะฟังก์ชัน print() ของคุณ (อย่างน้อยเวอร์ชันล่าสุดที่แสดงในเธรดนี้) จะคืนค่าเฉพาะองค์ประกอบแรกของอาร์เรย์ (แปลงเป็น double)