Syntax Program Penghitung Skor Ujian
uses wincrt;
type rec_skor=record
notes,nama:string;
skor:byte;
status:string;
end;
array_skor=array[1..20] of rec_skor;
var skor:array_skor;
i,n:byte;
pil:1..6;
procedure tambah_nama_pst (var x:array_skor);
var xx:string;
ya:char;
label ulang;
begin
repeat
begin
writeln('* MASUKKAN DATA PESERTA *');
ulang:
write('Nomor Ujian : ');readln(xx);
if n>0 then
begin
for i:=1 to n do
begin
if x[i].notes=xx then
begin
writeln;
writeln('Maaf, Nomor Sudah Ada di List');
goto ulang;
end;
end;
end;
inc(n);
x[n].notes:=xx;
write('Nama Peserta : ');readln(x[n].nama);
writeln;
write('Apakah ingin menambahkan lagi ? y/n ');readln(ya);
end
until(ya<>'y');
end;
procedure isi_skor (var x:array_skor);
var no:string;
ketemu:boolean;
benar,salah,abs,posisi:byte;
label ul;
begin
ketemu:=false;
writeln('Mengisi Skor Peserta');
write('Masukkan nomor test peserta yang akan diisi skor : ');readln(no);
{cek}
for i:=1 to n do
begin
if (x[i].notes=no) and (x[i].skor=0) then
begin
ketemu:=true;posisi:=i;
end;
end;
if ketemu then
begin
ul:
write('Isi jumlah jawaban benar : ');readln(benar);
write('Isi jumlah jawaban salah : ');readln(salah);
write('Isi jumlah jawaban kosong : ');readln(abs);
if (benar+salah+abs)<>10 then
begin
writeln('Isian tidak benar, ulangi !');goto ul;
end;
{hitung}
x[posisi].skor:=(benar*3)+(salah*-1)+(abs*0);
if x[posisi].skor>=(0.6*30) then x[posisi].status:='Lulus' else x[posisi].status:='Gagal';
end
else writeln('Nomor sudah ada atau sudah pernah mengisi skor');
end;
procedure cetak_semua (var x:array_skor);
begin
writeln('----------------------------------------------------');
writeln(' No Nomor Test Nama Skor Status ');
writeln('----------------------------------------------------');
for i:=1 to n do with x[i] do
writeln(i:2,' ',notes:11,' ',nama:6,' ',skor:4,' ',status:8);
writeln('----------------------------------------------------');
end;
procedure cetak_lulus (var x:array_skor);
begin
writeln('----------------------------------------------------');
writeln(' No Nomor Test Nama Skor Status ');
writeln('----------------------------------------------------');
for i:=1 to n do
with x[i] do
begin
if (x[i].skor>=18) and (x[i].status='Lulus') then
writeln(i:2,' ',notes:11,' ',nama:6,' ',skor:4,' ',status:8)
end;
writeln('----------------------------------------------------');
end;
procedure cetak_gagal (var x:array_skor);
begin
writeln('-----------------------------------------------------');
writeln(' No Nomor Test Nama Skor Status ');
writeln('-----------------------------------------------------');
for i:=1 to n do
begin
with x[i] do
begin
if (x[i].skor<18) and (x[i].status='Gagal') then
writeln(i:2,' ',notes:11,' ',nama:6,' ',skor:4,' ',status:8)
end;
end;
writeln('------------------------------------------------------');
end;
{Program Utama}
begin
repeat
begin
clrscr;
writeln('APLIKASI PENGHITUNG SKOR UJIAN');
writeln('1. Tambah Peserta');
writeln('2. Isi Skor');
writeln('3. Cetak Peserta');
writeln('4. Peserta Yang Lulus');
writeln('5. Peserta Yang Tidak Lulus');
writeln('6. Keluar');
write('Pilih menu : ');readln(pil);
case pil of
1: tambah_nama_pst(skor);
2: isi_skor(skor);
3: cetak_semua(skor);
4: cetak_lulus(skor);
5: cetak_gagal(skor);
6: writeln('Thank You');
end;
readln;
end;
until pil=6;
end.
0 komentar for "Syntax Program Penghitung Skor Ujian"
Leave a reply