Pemrograman Komputer Interaktif: Array di C++

Array di C++ · Materi Interaktif
Pertemuan 9 · Pemrograman C++ untuk Fisika

Satu nama, banyak data. Cobalah pita memori di bawah: masukkan sebuah indeks dan lihat elemen mana yang diakses, berapa alamatnya, dan apa yang terjadi bila indeks melewati batas array.

Ringkasan konsep

Array adalah kumpulan elemen bertipe sama yang disimpan berurutan di memori dan dirujuk dengan satu nama. Elemen dibedakan oleh indeks yang dimulai dari 0: pada array berisi n elemen, elemen pertama a[0] dan elemen terakhir a[n-1]. Deklarasinya tipe nama[ukuran];, dengan ukuran berupa konstanta yang tetap selama program berjalan.

Karena elemen bersebelahan, alamat elemen ke-i dihitung langsung: alamat(a[i]) = alamat(a[0]) + i × sizeof(tipe). Itulah yang Anda lihat pada pita memori di atas. C++ tidak memeriksa apakah i berada dalam batas; tanggung jawab itu ada pada pemrogram.

1

Penelusur loop: suhu di atas rata-rata

Program ini membaca suhu sampai bertemu nilai sentinel (200 atau lebih), menghitung rata-rata, lalu menelusuri array sekali lagi untuk mencetak suhu yang melebihi rata-rata. Jalankan langkah demi langkah dan perhatikan bagaimana jumlahData sekaligus menjadi indeks dan pencacah.


        
Isi array suhu[ ]
Keluaran

        
2

Inisialisasi array

Tentukan ukuran dan daftar nilai awal. Elemen yang tidak disebut diisi 0; ukuran yang dikosongkan dihitung dari banyak nilai; tanpa inisialisasi, array lokal berisi nilai sampah.

Kosongkan ukuran untuk mencoba int a[] = {...};. Kosongkan daftar untuk mencoba int a[5] {};.


      
3

Array paralel: menentukan g dari bandul

Panjang tali L[i] dan periode T[i] disimpan di dua array terpisah. Indeks yang sama merujuk pengukuran yang sama, sehingga g[i] = 4π²·L[i] / T[i]². Ubah data dan arahkan kursor (atau fokus) pada sebuah baris untuk melihat ketiga elemen berindeks sama.

iL[i] (m)T[i] (s)g[i] (m/s²)Hapus
Elemen berindeks sama di tiga array
g rata-rata
–
simpangan baku sampel
–

4

Array dua dimensi dan urutan row-major

Kita membayangkan T[baris][kolom] sebagai tabel, tetapi memori menyimpannya baris demi baris. Pilih sebuah sel untuk melihat posisinya di memori. Nilai awal adalah grid suhu pelat dari Program 9.8.


      
Urutan di memori (row-major)
Pilih sebuah sel.
5

Kuis

Tiga soal dari Lecture 07. Soal 1 diperiksa otomatis; untuk soal 2 dan 3, tulis programnya sendiri terlebih dahulu, baru buka jawabannya.

Soal 1 · Tuliskan perintah C++ untuk tugas berikut

Soal 2

Tulislah program yang membaca 5 bilangan, lalu menampilkannya dalam urutan terbalik.

Lihat jawaban soal 2

        

Kuncinya loop mundur for (i = 4; i >= 0; i--). Masukan 3 8 -1 12 5 menghasilkan 5 12 -1 8 3.

Soal 3

Anda ingin mengetahui produk mana yang rating-nya di atas rata-rata. Tulislah program yang membaca ID produk (bilangan bulat) dan rating (bilangan pecahan) untuk paling banyak 100 produk, berhenti ketika ID 0 dimasukkan (produk ini tidak dihitung), lalu menampilkan ID semua produk dengan rating di atas rata-rata.

Lihat jawaban soal 3

        

Array paralel ID[] dan rating[]; syarat banyak < MAKS menjaga batas array. Contoh: rating 4.5, 3.2, 4.8, 2.9 memberi rata-rata 3.85, sehingga ID 101 dan 103 dicetak.

6

Tugas

Simulasi di bawah memperlihatkan perilaku yang diharapkan dari program Anda. Kodenya tetap harus Anda tulis sendiri dalam C++.

Tugas 1 · Nilai 100 mahasiswa dalam rentang [a, b]

Baca nilai 100 mahasiswa ke dalam array. Lalu baca dua bilangan pecahan a dan b, paksa pengguna memasukkan b > a, dan tampilkan banyak mahasiswa yang nilainya berada dalam rentang tertutup [a, b].

0255075100

    

Tugas 2 · Simulasi reservasi hotel (10 sayap × 50 kamar)

Hotel dimodelkan sebagai array 2D bool kamar[10][50]: baris = sayap, kolom = kamar, true = terisi. Gunakan menu seperti program yang akan Anda tulis. Klik sebuah kamar untuk mengisi nomor sayap dan kamar pada pembatalan.

terisi (true)baru dipesankosong (false)

      

Ingat: pengguna memakai nomor sayap 1–10 dan kamar 1–50, sedangkan indeks array 0–9 dan 0–49. Kurangi 1 dan validasi masukan sebelum mengakses array.

Materi pendukung Pertemuan 9 mata kuliah pemrograman untuk mahasiswa S-1 Fisika FMIPA USU. Acuan: Lecture 07 Arrays for Quick and Easy Data Storage; Introduction to C++, Bab 7 Arrays (CRC Press). Diterbitkan di inspirasains.com.

Posting Komentar

Lebih baru Lebih lama