Laman

Senin, 07 Mei 2012

Latihan Syntak PASCAL: Array 2 Dimensi, Array Dinamis, Array Statis, Pointer


ARAY 2 DIMENSI
uses wincrt;
type
siswa=record
nim:string[ 5];
nama:string[ 15];
krs:array[ 1..4,1..5] of integer; end;
type kuliah=array[ 1..20] of siswa; var kul:kuliah;
{      }
function huruf (bobot: integer) : char;
begin
case bobot of 0 : huruf :=('E');
1 : huruf :=('D');
2 : huruf :=('C');
3 : huruf :=('B');
4 : huruf :=('A');
end;
end;
{      }
procedure khs (n:integer;kul:kuliah);
var jumsks,usaha,i,j :integer;
ipnya: real; begin
for i:=1 to n do
begin
Writeln('Nim  : ',kul[ i] .nim);
Writeln('Nama : ',kul[ i] .nama);
writeln;
writeln('Kode sks nilai');
jumsks :=0;usaha:=0;
for j:=1 to 2 do
begin
       writeln(kul[ i] .krs[ 1,j] :3,'   ',kul[ i] .krs[ 2,j] :3,' ',huruf(kul[ i] .krs[ 4,j] ) :5);
jumsks:=jumsks+kul[ i] .krs[ 2,j];
usaha:=usaha + kul[ i] .krs[ 2,j]*kul[ i] .krs[ 4,j]; end;
if jumsks<>0 then
ipnya:=usaha/jumsks;
writeln;
writeln('IP = ',ipnya:0:2);
readkey;

end;
end;
{      }
function bobot (nilai : integer) : integer;
begin
if nilai<40 then bobot:=0
else
if (nilai>=40) and (nilai<55) then bobot:=1
else
if (nilai>=55) and (nilai<65) then bobot:=2
else
if (nilai>=65) and (nilai<76) then bobot:=3
else
bobot:=4;
end;
{      }
procedure masukdata (var kul:kuliah;var n:integer);
var i,j:integer;
begin
clrscr;
write('Banyak mahasiswa = ');readln(n);
for i:=1 to n do
begin
write('Nim    : ');readln(kul[ i] .nim);
write('Nama   : ');readln(kul[ i] .nama);
writeln;
for j:=1 to 2 do
begin
write('Kode   : ');readln(kul[ i] .krs[ 1,j] );
write('Sks    : ');readln(kul[ i] .krs[ 2,j] );
write('Nilai  : ');readln(kul[ i] .krs[ 3,j] );
writeln('Bobot : ',bobot(kul[ i] .krs[ 3,j] )); kul[ i] .krs[ 4,j] :=bobot(kul[ i] .krs[ 3,j] );
writeln('huruf : ',huruf(bobot(kul[ i] .krs[ 3,j] ))); writeln;
end;
end;
end;
var n:integer; begin
masukdata (kul, n);
readkey;
khs (n, kul);
end.

ARRAY DINAMIS
uses wincrt;
type mhs=array[1..7]of string;
var m:mhs;   i:integer;
begin
for i:=1 to 7 do
begin
writeln('masukkan nama mahasiswa ke','  ',i,'=');
readln(m[i]);
end;
writeln('===============================');
for i:=1 to 7 do
writeln('mahasiswa ke','  ',i,'  ',m[i]);
readln;
end.

ARRAY STATIS
uses wincrt;
type mhs=array[1..5]of string;
var m:mhs;
begin
m[1]:='armadyah';
m[2]:='aditya';
m[3]:='hendra gauthama';
m[4]:='arma tyas';
m[5]:='guntur mahendra';
writeln('data dalam array range 1-3=','  ',m[1],'  ',m[2],'  ',m[3]);
writeln('data dalam array range 4-5=','  ',m[4],'  ',m[5]);
readln;
end.

POINTER
uses wincrt;
type
Aji=^mas_aji;
Mas_aji=record
Nim:string;
Nama:string;
Umur:integer;
End;
var
M_aji:aji;
begin
new(m_aji);
with m_aji^ do
begin
write(‘nim : ’);readln(nim);
write(‘nama : ’);readln(nama);
write(‘umur : ’);readln(umur);
writeln;
writeln(‘nim : ’,nim);
writeln(‘nama : ’,nama);
writeln(‘umur : ’,umur);
end;
readln;
end.

Tidak ada komentar:

Posting Komentar