andrypein.net : Sepertinya ini bagian terkahir tentang array-array pada pascal dab lanjutan yang kemarin gan jika yang kemarin merupakan Array Berisi Record maka sekarang adalah kebalikannya, yaitu Record Berisi Array.
Contoh programnya yaitu berupa perhitungan nilai mahasiswa yang memiliki tiga buah nilai (nilai kuis,nilai UTS,nilai UAS). Adapun nilai akhir (NA) akan dihitung berdasarkna ketentuan berikut.
NA = (20% x kuis)+(30% x UTS)+(50% x UAS).
Berdasarkan kasus diatas,kita dapat mendefinisikan mahasiswa kedalam sebuah record yang didalamnya mengandung field bertipe array,dengan penulisan kode seperti berikut:
type TSiswa = record NIM:string[8]; Nama:string[30]; Nilai:array[1..3] of real; end;
kode diatas menunjukan bahwa setiap mahasiswa memiliki tiga buah nilai.
berikut contoh programnya:
program RecordArray; uses wincrt; const max = 100; type TSiswa = record NIM:string[8]; Nama:string[30]; Nilai:array[1..3] of real; end; TKumpulanSiswa = array[1..max] of TSiswa; var A : TKumpulanSiswa; i,n : integer; NA : real begin write('Masukan jumlah siswa yang akan diisikan: '); readln(n); writeln; {Memasukan data} writeln('Memasukan Data'); writeln('----------------'); for i:=1 to n do begin writeln('Data siswa ke-',i); with A[i] do begin write('NIM :');readln(NIM); write('Nama :');readln(Nama); writeln('Nilai'); write('Nilai 1(kuis): ');readln(nilai[1]); write('Nilai 2(UTS): ');readln(nilai[2]); write('Nilai 3(UAS): ');readln(nilai[3]); end; writeln; end; {Menampilkan data} writeln('DAFTAR NILAI MAHASISWA'); writeln('=========================='); writeln('NIM':8, '':2, 'NAMA':25, '':2, 'NILAI'); writeln('=========================='); for i:=1 to n do begin with A[i] do begin NA:=(0.2*Nilai[1])+(0.3*Nilai[2])+(0.5*Nilai[3]); write(NIM:8, '':2, Nama:25, '':2, NA:0:2); end; writeln; end; end.