Lain-Lain

Tatasusunan Mac C++ dan nombor rawak

iBookG4user

Poster asal
27 Jun 2006
Seattle, WA
  • 20 Sep 2009
Mereka meletakkan tutor untuk C++ pada masa yang paling menyusahkan di kolej saya... Bagaimanapun, pengajar menyiarkan arahan berikut:

'Tulis fungsi yang akan mengisi tatasusunan dengan 25 nombor rawak antara 1 dan 10. Kemudian tulis fungsi yang akan mencetak tatasusunan. Tulis beberapa kod dalam utama untuk menguji fungsi anda. Kadangkala kod ujian ini dipanggil *pemandu

Jangan gunakan pembolehubah global di sini. Hantar tatasusunan ke fungsi melalui senarai parameter'

Kod semasa saya tidak mengakibatkan sebarang ralat int dia debugger, tetapi ia tidak mengeluarkan tatasusunan. Dan saya tidak tahu apa yang dia maksudkan dengan menulis pemandu, apakah yang saya patut uji? Anda semua telah terbukti sangat membantu pada masa lalu dan saya pasti anda akan membantu menunjukkan saya ke arah yang betul kali ini

Kod: |_+_|

lee1210

10 Jan 2005


Dallas, TX
  • 20 Sep 2009
Beberapa perkara: Tatasusunan anda hendaklah jenis int[], bukan double[]. Anda perlu menerima tatasusunan int untuk menghasilkan dan mencetak. Anda perlu mengisytiharkan int[] dalam utama, lulus untuk menghasilkan, isi di sana, kemudian lulus untuk mencetak. The<< 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 pasti ia adalah satu kesilapan yang jujur, saya pasti yang dimaksudkan oleh profesor anda pseudo- rawak.

Selain itu, secara utama, anda mengisytiharkan double()s baharu, tidak menggunakan hasil dan cetakan. Ambil dua kali ganda di sana, dan berikan hujah seperti yang dibincangkan di atas, dan tukar jenis pemulangan kedua-dua ini kepada batal.

-Baca

gnasher729

Digantung
25 Nov 2005
  • 20 Sep 2009
Bagaimanakah anda menulis prototaip fungsi untuk fungsi 'menghasilkan'?
Dan bagaimana anda akan menulis panggilan ke fungsi 'menghasilkan'?

Dan di dalam fungsi 'utama' anda, yang manakah antara dua yang telah anda tulis, prototaip fungsi atau panggilan fungsi?

iBookG4user

Poster asal
27 Jun 2006
Seattle, WA
  • 20 Sep 2009
lee1210 berkata: Beberapa perkara: Tatasusunan anda hendaklah jenis int[], bukan double[]. Anda perlu menerima tatasusunan int untuk menghasilkan dan mencetak. Anda perlu mengisytiharkan int[] dalam utama, lulus untuk menghasilkan, isi di sana, kemudian lulus untuk mencetak. The<< 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 pasti ia adalah satu kesilapan yang jujur, saya pasti yang dimaksudkan oleh profesor anda pseudo- rawak.

Selain itu, secara utama, anda mengisytiharkan double()s baharu, tidak menggunakan hasil dan cetakan. Ambil dua kali ganda di sana, dan berikan hujah seperti yang dibincangkan di atas, dan tukar jenis pemulangan kedua-dua ini kepada batal.

-Baca

Ok, saya membuat perubahan yang anda cadangkan dan kod itu kelihatan lebih logik. Walaupun sekarang saya mendapat tiga ralat dalam gelung untuk.

Kod: |_+_|

Lampiran

  • Tangkapan skrin 2009-09-20 pada 5.42.31 PTG.png Tangkapan skrin 2009-09-20 pada 5.42.31 PTG.png'file-meta'> 178.1 KB ยท Paparan: 1,941

lee1210

10 Jan 2005
Dallas, TX
  • 20 Sep 2009
Tukar jenis hujah hasil kepada int[] atau int *. Kini ia hanya int, jadi anda tidak boleh menggunakan [], dsb. Begitu juga untuk cetakan. Selain itu, anda tidak perlu memulangkan apa-apa daripada hasil atau cetakan. Tukar jenis pemulangan mereka kepada batal.

Saya rasa tujuannya adalah untuk anda memanggil semula cetakan dalam utama, yang sepatutnya baik.

Selain itu, apabila anda menghantar tatasusunan untuk menghasilkan, hanya gunakan tatasusunan bukan *array.

-Baca

iBookG4user

Poster asal
27 Jun 2006
Seattle, WA
  • 20 Sep 2009
lee1210 berkata: Tukar jenis hujah hasil kepada int[] atau int *. Kini ia hanya int, jadi anda tidak boleh menggunakan [], dsb. Begitu juga untuk cetakan. Selain itu, anda tidak perlu memulangkan apa-apa daripada hasil atau cetakan. Tukar jenis pemulangan mereka kepada batal.

Saya rasa tujuannya adalah untuk anda memanggil semula cetakan dalam utama, yang sepatutnya baik.

Selain itu, apabila anda menghantar tatasusunan untuk menghasilkan, hanya gunakan tatasusunan bukan *array.

-Baca

Ianya berhasil
Sekarang, adakah anda tahu apa yang dia maksudkan dengan menulis kod untuk menguji fungsi? Apa yang dia maksudkan dengan itu? Dan terima kasih banyak atas bantuan anda setakat ini!

Kod: |_+_|

chown33

Moderator
Ahli staf
9 Ogos 2009
Pesawat Abysmal
  • 20 Sep 2009
iBookG4user berkata: Sekarang, adakah anda tahu apa yang dia maksudkan dengan menulis kod untuk menguji fungsi? Apa yang dia maksudkan dengan itu?

Spesifikasi mengatakan nombor dalam tatasusunan hendaklah antara 1 dan 10. Anda boleh menulis ujian yang mengesahkannya.

Ia juga berkata nombor itu harus rawak. Walaupun rawak boleh menjadi lebih sukar untuk diuji daripada yang kelihatan, bukan rawak mudah boleh menjadi mudah untuk diuji. Yang paling mudah ialah mengesahkan bahawa semua nombor bukan nilai yang sama. Ujian rawak yang lebih kompleks menggunakan analisis statistik.

Ujian lain yang boleh anda tulis adalah untuk mengesahkan fungsi produce() mengembalikan nilai yang berbeza setiap kali ia dipanggil. Ini adalah bentuk analisis statistik yang mudah, iaitu memastikan bahawa seruan berturut-turut mempunyai keputusan bebas.

Anda juga harus mempertimbangkan untuk memulakan tatasusunan dengan nilai tidak sah yang diketahui, seperti -1 atau 0, sebelum memanggil produce(). Jika tidak tatasusunan tempatan yang tidak dimulakan mungkin sudah mengandungi nilai yang tidak dapat diramalkan, yang boleh ditafsirkan oleh ujian sebagai rawak walaupun produce() tidak melakukan apa-apa langsung.

Sebagai spesifikasi, pernyataan kerja agak kabur. Untuk satu perkara, ia tidak menyatakan ujian yang perlu dilalui. Percayalah, jika anda menyerahkan kepada kebanyakan pengaturcara untuk memilih ujian kelayakan, ia adalah satu kesilapan besar. Kod mungkin berfungsi hanya dalam satu kes, iaitu kes yang digunakan pengaturcara untuk membangunkan kod. Jika itu kelihatan gila, saya boleh memberi jaminan bahawa ia telah berlaku.

iBookG4user

Poster asal
27 Jun 2006
Seattle, WA
  • 20 Sep 2009
Itu cukup mudah, terima kasih!
Ini berkesan:
Kod: |_+_| S

Sander

kepada
24 Apr 2008
  • 21 Sep 2009
iBookG4user berkata: Itu cukup mudah, terima kasih!
Ini berkesan:

Cuba letakkan nombor 'tidak sah' dalam tatasusunan anda (katakan, 11) dan lihat jika fungsi ini mengesannya.

iBookG4user

Poster asal
27 Jun 2006
Seattle, WA
  • 21 Sep 2009
Sander berkata: Cuba letakkan nombor 'tidak sah' dalam tatasusunan anda (katakan, 11) dan lihat jika fungsi ini mengesannya.

Saya menetapkan tatasusunan buat sementara waktu untuk membenarkan nombor yang lebih besar daripada 10 dan ia mengesannya, terima kasih S

Sander

kepada
24 Apr 2008
  • 22 Sep 2009
iBookG4user berkata: Saya menetapkan tatasusunan buat sementara waktu untuk membenarkan nombor yang lebih besar daripada 10 dan ia mengesannya, terima kasih

Walaupun ia bukan elemen pertama dalam tatasusunan..?

Sebab saya bertanya adalah kerana fungsi print() anda (sekurang-kurangnya versi terakhir yang ditunjukkan dalam utas ini) hanya mengembalikan elemen pertama tatasusunan (ditukar kepada gandaan).