Lainnya

Array Mac C++ dan angka acak

pengguna iBookG4

poster asli
27 Juni 2006
Seattle, WA
  • 20 Sep 2009
Mereka menempatkan tutor untuk C++ pada waktu yang paling tidak nyaman di kampus saya... Bagaimanapun, instruktur memposting petunjuk berikut:

'Tulis fungsi yang akan mengisi array dengan 25 angka acak antara 1 dan 10. Kemudian tulis fungsi yang akan mencetak array. Tulis beberapa kode di main untuk menguji fungsi Anda. Terkadang kode tes ini disebut *driver

Jangan gunakan variabel global di sini. Lewati array ke fungsi melalui daftar parameter'

Kode saya saat ini tidak menghasilkan kesalahan dalam debugger, tetapi tidak menampilkan array. Dan saya tidak tahu apa yang dia maksud dengan menulis driver, apa yang harus saya uji? Anda semua terbukti sangat membantu di masa lalu dan saya yakin Anda akan membantu mengarahkan saya ke arah yang benar kali ini

Kode: |_+_|

lee1210

10 Januari 2005


Dallas, Texas
  • 20 Sep 2009
Beberapa hal: Array Anda harus bertipe int[], bukan double[]. Anda perlu menerima array int untuk diproduksi dan dicetak. Anda perlu mendeklarasikan int[] di main, meneruskannya untuk menghasilkan, mengisinya di sana, lalu meneruskannya untuk mencetak. NS<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

Juga, dan saya yakin itu kesalahan yang jujur, saya yakin profesor Anda bermaksud semu acak.

Juga, di main, Anda mendeklarasikan double()s baru, tidak memanggil hasilkan dan cetak. Ambil gandanya di sana, dan berikan argumen seperti yang dibahas di atas, dan ubah tipe pengembalian keduanya menjadi batal.

-Membaca

gnasher729

Tergantung
25 November 2005
  • 20 Sep 2009
Bagaimana Anda menulis prototipe fungsi untuk fungsi 'menghasilkan'?
Dan bagaimana Anda menulis panggilan ke fungsi 'menghasilkan'?

Dan di dalam fungsi 'utama' Anda, yang mana dari keduanya yang telah Anda tulis, prototipe fungsi atau pemanggilan fungsi?

pengguna iBookG4

poster asli
27 Juni 2006
Seattle, WA
  • 20 Sep 2009
lee1210 berkata: Beberapa hal: Array Anda harus bertipe int[], bukan double[]. Anda perlu menerima array int untuk diproduksi dan dicetak. Anda perlu mendeklarasikan int[] di main, meneruskannya untuk menghasilkan, mengisinya di sana, lalu meneruskannya untuk mencetak. NS<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

Juga, dan saya yakin itu kesalahan yang jujur, saya yakin profesor Anda bermaksud semu acak.

Juga, di main, Anda mendeklarasikan double()s baru, tidak memanggil hasilkan dan cetak. Ambil gandanya di sana, dan berikan argumen seperti yang dibahas di atas, dan ubah tipe pengembalian keduanya menjadi batal.

-Membaca

Oke, saya membuat perubahan yang Anda sarankan dan kodenya memang terlihat lebih logis. Meskipun sekarang saya mendapatkan tiga kesalahan dalam for loop.

Kode: |_+_|

lampiran

  • Tangkapan layar 20-09-2009 pukul 17.42.31.png Tangkapan layar 20-09-2009 pukul 17.42.31.png'file-meta'> 178.1 KB ยท Penayangan: 1,941

lee1210

10 Januari 2005
Dallas, Texas
  • 20 Sep 2009
Ubah tipe argumen dari produk menjadi int[] atau int *. Saat ini hanya int, jadi Anda tidak dapat menggunakan [], dll. Hal yang sama berlaku untuk print. Juga, Anda tidak perlu mengembalikan apa pun dari produk atau cetakan. Ubah tipe pengembaliannya menjadi batal.

Saya pikir maksudnya adalah agar Anda memanggil print kembali di main, yang seharusnya baik-baik saja.

Juga, ketika Anda melewatkan array untuk menghasilkan, gunakan saja array bukan *array.

-Membaca

pengguna iBookG4

poster asli
27 Juni 2006
Seattle, WA
  • 20 Sep 2009
lee1210 berkata: Ubah tipe argumen dari produk menjadi int[] atau int *. Saat ini hanya int, jadi Anda tidak dapat menggunakan [], dll. Hal yang sama berlaku untuk print. Juga, Anda tidak perlu mengembalikan apa pun dari produk atau cetakan. Ubah tipe pengembaliannya menjadi batal.

Saya pikir maksudnya adalah agar Anda memanggil print kembali di main, yang seharusnya baik-baik saja.

Juga, ketika Anda melewatkan array untuk menghasilkan, gunakan saja array bukan *array.

-Membaca

Itu berhasil
Sekarang, tahukah Anda apa yang dia maksud dengan menulis kode untuk menguji fungsi? Apa yang dia maksud dengan itu? Dan terima kasih banyak atas bantuan Anda selama ini!

Kode: |_+_|

chown33

moderator
Anggota staff
9 Agustus 2009
Pesawat Luar Biasa
  • 20 Sep 2009
iBookG4user berkata: Sekarang, apakah Anda tahu apa yang dia maksud dengan menulis kode untuk menguji fungsi? Apa yang dia maksud dengan itu?

Spesifikasi mengatakan angka-angka dalam array harus antara 1 dan 10. Anda bisa menulis tes yang menegaskan hal itu.

Ia juga mengatakan angka-angkanya harus acak. Sementara keacakan bisa lebih sulit untuk diuji daripada yang terlihat, non-keacakan sederhana bisa mudah untuk diuji. Yang paling sederhana adalah memastikan bahwa semua angka tidak memiliki nilai yang sama. Tes keacakan yang lebih kompleks menggunakan analisis statistik.

Tes lain yang dapat Anda tulis adalah mengonfirmasi bahwa fungsi generate() mengembalikan nilai yang berbeda setiap kali dipanggil. Ini adalah bentuk sederhana dari analisis statistik, yaitu memastikan bahwa pemanggilan berturut-turut memiliki hasil yang independen.

Anda juga harus mempertimbangkan untuk menginisialisasi larik dengan nilai tidak valid yang diketahui, seperti -1 atau 0, sebelum memanggil produksi(). Jika tidak, larik lokal yang tidak diinisialisasi mungkin sudah berisi nilai yang tidak dapat diprediksi, yang dapat ditafsirkan oleh pengujian sebagai acak bahkan jika produksi() tidak melakukan apa pun.

Sebagai spesifikasi, pernyataan kerja agak kabur. Untuk satu hal, itu tidak menentukan tes apa yang harus dilaluinya. Percayalah, jika Anda membiarkan sebagian besar programmer memilih tes kualifikasi, itu adalah kesalahan besar. Kode mungkin berfungsi hanya dalam satu kasus, yaitu kasus yang digunakan programmer untuk mengembangkan kode. Jika itu tampak gila, saya dapat meyakinkan Anda bahwa itu terjadi.

pengguna iBookG4

poster asli
27 Juni 2006
Seattle, WA
  • 20 Sep 2009
Itu cukup sederhana, terima kasih!
Ini berhasil:
Kode: |_+_| S

Sander

ke
24 April 2008
  • 21 September 2009
iBookG4user berkata: Itu cukup sederhana, terima kasih!
Ini berhasil:

Cobalah untuk memasukkan nomor 'tidak valid' dalam array Anda (katakanlah, 11) dan lihat apakah fungsi ini mendeteksinya.

pengguna iBookG4

poster asli
27 Juni 2006
Seattle, WA
  • 21 September 2009
Sander berkata: Cobalah untuk memasukkan nomor 'tidak valid' dalam array Anda (katakanlah, 11) dan lihat apakah fungsi ini mendeteksinya.

Saya sementara mengatur array untuk memungkinkan angka yang lebih besar dari 10 dan itu mendeteksinya, terima kasih S

Sander

ke
24 April 2008
  • 22 September 2009
iBookG4user berkata: Saya sementara mengatur array untuk mengizinkan angka yang lebih besar dari 10 dan itu mendeteksinya, terima kasih

Bahkan jika itu bukan elemen pertama dalam array..?

Alasan saya bertanya adalah karena fungsi print() Anda (setidaknya versi terakhir yang ditampilkan di utas ini) hanya mengembalikan elemen pertama dari array (dikonversi menjadi ganda).