Minggu, 22 April 2012
Program Daftar_Nilai_Mahasiswa; ( Algoritma dan Pemograman )
Program Daftar_Nilai_Mahasiswa;
uses crt;
const
maks_mhs=50;
type
data_mhs= record
NIM,Nama :string;
Nilai : integer;
Indeks : char;
end;
Array_mhs = array[1..maks_mhs] of Data_Mhs;
var
Mhs : Array_Mhs;
i,j,jumA,jumB,jumC,jumD,jumE :integer;
tinggi, rendah: integer;
total_nilai, rata_nilai :real;
begin
gotoxy(29,1);write ('DAFTAR NILAI MAHASISWA');
gotoxy(29,2);write ('----------------------');
gotoxy(16,24);
write('=================================================');
gotoxy(16,5);
write(' | NO | NIM | NAMA | NILAI | INDEKS |');
gotoxy(16,6);
write(' ------------------------------------------------');
{inisialisasi}
I:=1;
jumA :=0; jumB:=0; jumC:=0; jumD:=0; jumE:=0;
total_nilai := 0;
gotoxy(16,7);
write(' | | | | | | ');
{menampilkan nomor urut pertama}
gotoxy(18,7); write (i);
{memasukan NIM pertama}
gotoxy(23,7);readln (Mhs [i].NIM);
{mengecek apakah NIM yang di masukan 'stop' atau bukan}
while(Mhs[i].NIM <> 'stop') and (i <= Maks_Mhs) do
begin
{memasukan nama}
gotoxy(35,i+6);readln(Mhs[i].Nama);
{memasukan nilai}
gotoxy(48,i+6);readln(Mhs[i].Nilai);
case (Mhs[i].nilai) of
80..100 : begin
Mhs[i].Indeks := 'A';
jumA :=jumA + 1;
end;
70..79 : begin
Mhs[i].Indeks := 'B';
jumB :=jumB + 1;
end;
60..69: begin
Mhs[i].Indeks := 'C';
jumC :=jumC + 1;
end;
50..59 : begin
Mhs[i].Indeks := 'D';
jumD :=jumD + 1;
end;
0..49 : begin
Mhs[i].Indeks := 'E';
jumE :=jumE + 1;
end;
end; {endcase}
{MENAMPILKAN INDEKS NILAI}
gotoxy(58,i+6);write(Mhs[i].Indeks);
{menghitung total nilai}
total_nilai := total_nilai + Mhs[i].Nilai;
{menambah indeks berikutnya}
i := i+1;
gotoxy(16,i+6);
write(' | | | | | |');
{menampilkan nomor urut berikuitnya}
gotoxy(18,i+6); write (i);
{memasukan NIM berikitnya}
gotoxy(23,7);readln (Mhs [i].NIM)
end; {endwhile}
gotoxy(16,i+6);
write ('-------------------------------------------------');
{menghitung rata-rata nilai}
i:= i - 1; {banyaknya data}
rata_nilai := total_nilai/i;
{menampilkan rata_rata nilai}
gotoxy(16,i+9);
write('Rata_rata Nilai :',rata_nilai:0:1);
{menentukan nilai tertinggi dan nilai terendah}
tinggi := Mhs[1].Nilai;
rendah := Mhs[1].Nilai;
for j := 2 to i do
begin
if(Mhs[j].Nilai >= tinggi)
then
tinggi := Mhs[j].Nilai;
if(Mhs[j].Nilai <= rendah)
then
tinggi := Mhs[j].Nilai;
end;
{menampilkan nilai tertinggi dan nilai terendah}
gotoxy(16,i+10);
write ('nilai tertinggi : ',tinggi);
gotoxy(16,i+11);
write ('nilai terendah : ',rendah);
{menampilkan jumlah per indeks}
gotoxy(16,i+12);
write('jumlah indeks A :' ,jumA,' Mahasiswa');
gotoxy(16,i+13);
write('jumlah indeks B :' ,jumB,' Mahasiswa');
gotoxy(16,i+14);
write('jumlah indeks C :' ,jumC,' Mahasiswa');
gotoxy(16,i+15);
write('jumlah indeks D :' ,jumD,' Mahasiswa');
readln;
end.
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar