25/11/13

Assalamualaikum wr wb..
Hai...hai... sahabat sahabat programmers. Kali ini saya posting mengenai program dengan array. Program ini mengenai penilaian mahasiswa :)

program asti_array_nilai_mahasiswa;
uses wincrt;
type baris1=array[1..50] of string;
     baris2=array[1..50] of real;
var
   nama:baris1;
   nilaimid,nilaiuas:baris2;
   ket,max,min:real;
   pil:integer;
   i,n,cacah,posisi:byte;
   j,kethuruf:char;
   cari:string;

procedure menu;
begin
     writeln('CARI=.................');
     writeln('1. Nama mahasiswa');
     writeln('2. Nilai UTS tertinggi');
     writeln('3. Nilai UTS terendah');
     writeln('4. Nilai UAS tertinggi');
     writeln('5. Nilai UAS terendah');
     writeln('6. Keluar program');
     write('Pilihan Anda= ');readln(pil);
     writeln;
end;

begin
writeln('   ..::Mengisi nilai PD mahasiswa::..');
repeat
begin
     inc(n);
     write('Nama        : ');readln(nama[n]);
     write('Nilai UTS   : ');readln(nilaimid[n]);
     write('Nilai UAS   : ');readln(nilaiuas[n]);
     writeln;
     write('Isi lagi? <y/t> ');readln(j);
     writeln;
end;
until (j<>'y');


writeln('DATA NILAI PD MAHASISWA');
writeln;
writeln('+____+_______________+________________+_________________+______________+');
writeln('|No. |     Nama      |   Nilai UTS    |    Nilai UAS    |  Keterangan  |');
writeln('+____+_______________+________________+_________________+______________+');
for i:=1 to n do
     begin
     ket:=(nilaimid[i]+nilaiuas[i])/2;
     if ket>80 then begin kethuruf:='A'; end else
     if ket>60 then begin kethuruf:='B'; end else
     if ket>40 then begin kethuruf:='C'; end else
     if ket>20 then begin kethuruf:='D'; end else
     kethuruf:='E';
writeln(i:3,nama[i]:15,nilaimid[i]:15:2,nilaiuas[i]:15:2,kethuruf:15);
writeln('+____+_______________+________________+_________________+______________+');

writeln;
end;
readln;
begin
repeat
      clrscr;
      menu;
      case pil of
      1: begin
         cacah:=0;
         writeln('..::Mencari Nama mahasiswa::..');
         write('Siapa yang akan dicari? ');readln(cari);
         for i:=1 to n do
         begin
         if nama[i]=cari then
            begin
            posisi:=i;
            inc(cacah);
            writeln(cari,' ada di nomor ',posisi:2,', dengan nilai sebagai berikut.');
            writeln('Nilai UTS = ',nilaimid[posisi]:2:2);
            writeln('Nilai UAS = ',nilaiuas[posisi]:2:2);
            writeln('Keterangan= ',kethuruf);
            end;
         end;
         if cacah=0 then writeln('nama ',cari,' tidak ada di dalam daftar');
         writeln('Jadi, nama ',cari,' ada ',cacah,' anak');
         end;

         2: begin
            cacah:=0;
            writeln('..::Mencari nilai UTS tertingi::..');
            max:=nilaimid[1];
            for i:=1 to n do if nilaimid[i]>max then max:=nilaimid[i];
            for i:=1 to n do
            begin
            if nilaimid[i]=max then
               begin
               posisi:=i;
               inc(cacah);
               writeln('Nilai UTS tertinggi yaitu ',max:4:2,' diraih oleh nomor ',posisi:2,' bernama ',nama[posisi]);
               end;
            end;
            writeln('Jadi, nilai UTS tertinggi ada ',cacah,' anak');
            end;

         3: begin
            cacah:=0;
            writeln('..::Mencari nilai UTS terendah::..');
            min:=nilaimid[1];
            for i:=1 to n do if nilaimid[i]<min then min:=nilaimid[i];
            for i:=1 to n do
            begin
            if nilaimid[i]=min then
               begin
               posisi:=i;
               inc(cacah);
               writeln('Nilai UTS terendah yaitu ',min:4:2,' diraih oleh nomor ',posisi:2,' bernama ',nama[posisi]);
               end;
            end;
            writeln('Jadi, nilai UTS terendah ada ',cacah,' anak');
            end;

           
         4: begin
            cacah:=0;
            writeln('..::Mencari nilai UAS tertingi::..');
            max:=nilaiuas[1];
            for i:=1 to n do if nilaiuas[i]>max then max:=nilaiuas[i];
            for i:=1 to n do
            begin
            if nilaiuas[i]=max then
               begin
               posisi:=i;
               inc(cacah);
               writeln('Nilai UAS tertinggi yaitu ',max:4:2,' diraih oleh nomor ',posisi:2,' bernama ',nama[posisi]);
               end;
            end;
            writeln('Jadi, nilai UAS tertinggi ada ',cacah,' anak');
            end;

         5: begin
            cacah:=0;
            writeln('..::Mencari nilai UAS terendah::..');
            min:=nilaiuas[1];
            for i:=1 to n do if nilaiuas[i]<min then min:=nilaiuas[i];
            for i:=1 to n do
            begin
            if nilaiuas[i]=min then
               begin
               posisi:=i;
               inc(cacah);
               writeln('Nilai UAS terendah yaitu ',min:4:2,' diraih oleh nomor ',posisi:2,' bernama ',nama[posisi]);
               end;
            end;
            writeln('Jadi, nilai UAS terendah ada ',cacah,' anak');
            end;
         6: donewincrt;
end;
writeln;
write('Apakah Anda ingin mencari lagi? <y/t> ');readln(j);
until (j<>'y');
end;
end.

Selamat menjalankannya ...

0 komentar :

Posting Komentar