Skip to content

Instantly share code, notes, and snippets.

@MarshalX
Created October 13, 2019 11:44
Show Gist options
  • Save MarshalX/f4b9b3b59121a2c1d074f696fefa2422 to your computer and use it in GitHub Desktop.
Save MarshalX/f4b9b3b59121a2c1d074f696fefa2422 to your computer and use it in GitHub Desktop.
Merge sort on Pascal
program merge_sort;
const
n = 10;
var
mas: array [1..n] of integer;
i: integer;
procedure MergeSort(a, c: integer);
var
x, j, i, n1, n2: integer;
rez: array[1..1000] of integer;
begin
if c <= a then
exit
else
begin
x := (a + c) div 2;
MergeSort(a, x);
MergeSort(x + 1, c);
n1 := a;
n2 := x + 1;
for i := a to c do
begin
if (n1 < x + 1) and ((n2 > c) or (mas[n1] < mas[n2])) then
begin
rez[i] := mas[n1];
inc(n1);
end
else
begin
rez[i] := mas[n2];
inc(n2);
end;
end;
for j := a to c do
mas[j] := rez[j];
end;
end;
begin
for i := 1 to n do
mas[i] := random(20);
writeln(mas);
MergeSort(1, n);
writeln(mas);
end.
@Yosafat10
Copy link

program perhalamanvt;
uses crt;
var
kode : array [1..4] of String ;
nama : array [1..4] of string ;
hrg, jmlbl : array [1..4] of LongInt ;
jmlhrg, diskon, jmlbyr : array [1..4] of Real;
sjmlhrg, sdiskon, sjmlbyr : array [1..4] of Real ;
tjmlhrg, tdiskon, tjmlbyr : array [1..4] of Real ;
i, j: Integer ;
brs, hal : integer ;
temp: real;

procedure JudulLap;
begin
writeln('Data belum urut') ;
WriteLn('');
WriteLn('Laporan Penjualan Online');
WriteLn('PT. Kuda Laut Semarang');
WriteLn(' Halaman:',hal,3) ;
WriteLn('-------------------------------------------') ;
WriteLn() ;
GotoXY(0,15); Write('no.');
GotoXY(5,15); Write('kode');
GotoXY(10,15); Write('nama');
GotoXY(20,15); Write('harga');
GotoXY(27,15); Write('jml');
GotoXY(36,15); Write('jml');
GotoXY(45,15); Write('diskon');
GotoXY(55,15); Write('jml');
GotoXY(5, 16) ;write('Oli') ;
GotoXY(20,16); Write('bl');
GotoXY(36,16); Write('harga');
GotoXY(55,16); Write('bayar');
GotoXY(0, 17) ;Write('-------------------------------------------') ;
WriteLn() ;
end;
begin
clrscr;
for i:=1 to 4 do
begin
clrscr;
if brs >3 then
begin
GotoXY(0, 18+brs) ;writeln('-------------------------------------------') ;
GotoXY(5, 19+brs) ;WriteLn('SubTotal') ;
GotoXY(36, 19+brs) ;write(sjmlhrg[i]:0) ;
GotoXY(45, 19+brs) ;write(sdiskon[i]:0) ;
GotoXY(55, 19+brs) ;write(sjmlbyr[i]:0) ;
GotoXY(0, 20+brs) ;writeln('-------------------------------------------') ;
readkey;
sjmlhrg[i]:=0 ; sdiskon[i]:=0 ; sjmlbyr[i]:=0 ;
hal:=hal+1;
brs:=brs+1;
clrscr;
JudulLap;
end;

WriteLn('Masukkan Data ke:',i);
Write('Masukkan kode(huruf kapital):') ; ReadLn(kode[i]);
Write('jmlbl:') ;ReadLn(jmlbl[i]);
if kode[i] ='S' then nama[i] :='Shell' else
if kode[i] ='C' then nama[i] :='Castrol' else
if kode[i] ='M' then nama[i] :='BM1' else
if kode[i] ='E' then nama[i] :='Enduro' ;
if kode[i] ='S' then hrg[i] :=45000 else
if kode[i] ='C' then hrg[i] := 50000 else
if kode[i] ='M' then hrg[i] := 60000 else
if kode[i] ='E' then hrg[i] := 35000 ;

jmlhrg[i]:= jmlbl[i] * hrg[i] ;
if jmlbl[i] >=9 then
diskon[i]:= 15/100*jmlhrg[i]

else if jmlbl[i] >=6 then
diskon[i]:= 10/100*jmlhrg[i]

else if jmlbl[i] <=6 then
diskon[i]:=0 ;
jmlbyr[i]:= jmlhrg[i]-diskon[i] ;
sjmlhrg[i]:=0 ; sdiskon[i]:=0 ; sjmlbyr[i]:=0 ;
tjmlhrg[i]:=0 ; tdiskon[i]:=0 ; tjmlbyr[i]:=0 ;
writeln('')
end;
clrscr;
brs:=1;
hal:=1;
JudulLap;
for i:= 1 to 4 do
begin
GotoXY(0, 17) ;write(i:3) ;
GotoXY(5, 17+brs) ;write(kode[i]) ;
GotoXY(10, 17+brs) ;write(nama[i]) ;
GotoXY(20, 17+brs) ;write(hrg[i]) ;
GotoXY(27, 17+brs) ;write(jmlbl[i]) ;
GotoXY(36, 17+brs) ;write(jmlhrg[i]) ;
GotoXY(45, 17+brs) ;write(diskon[i]) ;
GotoXY(55, 17+brs) ;write(jmlbyr[i]) ;
sjmlhrg[i]:=sjmlhrg[i] + jmlhrg[i] ;
sdiskon[i]:=sdiskon[i] + diskon[i] ;
sjmlbyr[i]:=sjmlbyr[i] + jmlbyr[i] ;
tjmlhrg[i]:=tjmlhrg[i] + jmlhrg[i] ;
tdiskon[i]:=tdiskon[i] + diskon[i] ;
tjmlbyr[i]:=tjmlbyr[i] + jmlbyr[i] ;
brs :=brs+1;
end;
GotoXY(0, 18+brs) ;writeln('-------------------------------------------') ;
GotoXY(5, 19+brs) ;WriteLn('SubTotal') ;
GotoXY(36, 19+brs) ;write(sjmlhrg[i]:0) ;
GotoXY(45, 19+brs) ;write(sdiskon[i]:0) ;
GotoXY(55, 19+brs) ;write(sjmlbyr[i]:0) ;
GotoXY(5, 20+brs) ;WriteLn('Total') ;
GotoXY(36, 20+brs) ;write(tjmlhrg[i]:0) ;
GotoXY(45, 20+brs) ;write(tdiskon[i]:0) ;
GotoXY(55, 20+brs) ;write(tjmlbyr[i]:0) ;
GotoXY(0, 21+brs) ;writeln('-------------------------------------------') ;
for i:=1 to 4 do
for i:=1 to 4-1 do
begin
for j:= i+1 to 4 do
begin
if jmlhrg[i] < jmlhrg[j] then
begin
temp:=jmlhrg[i];
jmlhrg[i]:=jmlhrg[j];
jmlhrg[j]:=temp;
end;
end;
end;
writeln('Data sudah urut') ;
writeln;
for i:=1 to 4 do

Readln;
end.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment