Program Sisip larik dan pengurutan pada pascal.

buat kamu yang mendapatkan tugas membuat program sisip larik dari dosen, coba deh cek program 1 ini semoga bermanfaat.


program arh_si2plarik;

uses wincrt;

var N, x,r,i,idx : integer;

ketemu :boolean;

a: array [1..100] of integer;

begin
write('masukkan banyak data '); readln(n);

for r:= 1 to n do
begin write('A[',r,'] : '); readln(a[r]);
end;

idx:=1;
ketemu:=false;
write ('nilai yang akan disisipkan : '); readln(x);

while (idx<=n) and (not ketemu) do
if (x<a[idx]) then ketemu:=true
else
idx:=idx+1;

if (ketemu) then
for i:=n downto idx do
a[i+1] := a[i];
a[idx]:= x;
if (not ketemu) then
a[n+1]:=x;


writeln;
writeln('hasil setelah pengurutan ');
writeln;


for r:= 1 to n+1 do
write (' ',a[r]);
end.


penjelasan
guna while (idx<=n) and (not ketemu) do
if (x<a[idx]) then ketemu:=true
else
idx:=idx+1;

Mencek apakah nilai yang disisipkan berada ditengah-tengah aray atau berada di akhir aray. Misalnya data array 1 2 4 5 yang disisipkan 3, berarti 3 berada ditengah-tengah aray (1 2 3 4 5) disiipkan ditengah.
guna while (idx<=n) melakukan perulangan sebanyak n kali dan indeks dari angka yang disisipkan belum ketemu.
if (x<a[idx]) then ketemu:=true jika nilai yang disisipkan (x) lebih kecil dari data yang sudah ada, berati angka tersebut akan disisipkan ditengah atau akan disisipkan diawal array.
else
idx:=idx+1;
jika tidak, menambahkan indeks baru, berati angka akan disisipkan di bagian ujung kanan.

Sintaks berikut.

if (ketemu) then
for i:=n downto idx do
a[i+1] := a[i];
a[idx]:= x;

Gunanya untuk meletakkan angka yang akan disisipkan (menyisipkan angka kedalam array). Pertama program mencek apakah angka berada ditengah array atau tidak (kalau ketemu berarti ditengah array). Maka data pun akan dirubah dengan sintaks for i:=n downto idx do a[i+1] := a[i]; memasukkan nilai pada array a[n] sampai array a[idx]

a[idx]:= x; memasukkan nilai yang disisipkan kedalam array dengan indeks a[idx]

if (not ketemu) then
a[n+1]:=x; (memasukkan nilai x kedalam indeks paling ujung sebelah kanan.)





Artikel yang berhubungan




0 comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...