Cheat Sheet OSN Komputer

3
SMA PANGUDI LUHUR VANLITH MUNTILAN BINARY SEARCH (data harus urut) binary_search(yang dicari, array) function binary_search(X: real; h: array of real): integer; var hasil,kiri,kanan,tengah:integer; begin hasil := 0; kiri := 1; kanan := high(h); while ((kiri <= kanan) and (hasil = 0)) do begin tengah := (kiri + kanan) div 2; if (X < h[tengah]) then begin kanan := tengah - 1; end else if (X > h[tengah]) then begin kiri := tengah + 1; end else begin hasil := tengah; end; end; if (hasil = 0) then begin binary_search:=0; end else begin binary_search:=hasil+1; end; end; BUBBLE SORT bubble_sort(array) procedure bubble_sort(var Arr: array of integer); var i: integer; Ada_Tukar: boolean; begin repeat Ada_Tukar:= false; for I:= Low(Arr) to High(Arr)-1 do begin if Arr[I] > Arr[I+1] then begin Arr[I]:=(Arr[I]+Arr[I+1]); Arr[I+1]:=(Arr[I]-Arr[I+1]); Arr[I]:=(Arr[I]-Arr[I+1]); Ada_Tukar:= true; end; end; until Ada_Tukar = false; end; CASE case x of 1..9: begin writeln('satuan'); end; 1

description

Syntax Dasar pada OSN Komputer

Transcript of Cheat Sheet OSN Komputer

Page 1: Cheat Sheet OSN Komputer

SMA PANGUDI LUHUR VANLITH MUNTILAN

BINARY SEARCH (data harus urut)

binary_search(yang dicari, array)

function binary_search(X: real; h: array of real): integer;

var

hasil,kiri,kanan,tengah:integer;

begin

hasil := 0;

kiri := 1;

kanan := high(h);

while ((kiri <= kanan) and (hasil = 0)) do

begin

tengah := (kiri + kanan) div 2;

if (X < h[tengah]) then

begin

kanan := tengah - 1;

end else if (X > h[tengah]) then

begin

kiri := tengah + 1;

end

else begin

hasil := tengah;

end;

end;

if (hasil = 0) then

begin

binary_search:=0;

end

else begin

binary_search:=hasil+1;

end;

end;

BUBBLE SORT

bubble_sort(array)

procedure bubble_sort(var Arr: array of integer);

var i: integer;

Ada_Tukar: boolean;

begin

repeat

Ada_Tukar:= false;

for I:= Low(Arr) to High(Arr)-1 do begin

if Arr[I] > Arr[I+1] then

begin

Arr[I]:=(Arr[I]+Arr[I+1]);

Arr[I+1]:=(Arr[I]-Arr[I+1]);

Arr[I]:=(Arr[I]-Arr[I+1]);

Ada_Tukar:= true;

end;

end;

until Ada_Tukar = false;

end;

CASE

case x of

1..9: begin writeln('satuan'); end;

10..99: begin writeln('puluhan'); end;

100..999: begin writeln('ratusan'); end;

1000..9999: begin writeln('ribuan'); end;

10000..99999: begin writeln('puluhribuan'); end;

end;

1

Page 2: Cheat Sheet OSN Komputer

SMA PANGUDI LUHUR VANLITH MUNTILAN

SIEVE OF ERASTHOTHENES

sieve:array[1..1000]of boolean

a,i:integer

...

for i:= 2 to 1000 do

sieve[i]:=true;

for i:= 2 to 200 do

begin

if sieve[i] then

begin

a:=i+i;

while (a <= 10000) do

begin

sieve[a]:=false;

a:=a+i;

end;

end;

end;

...

jika sieve[x] = true maka x prima

STRING (dimulai dari 1)

a:=length(string) < Panjang string

a:=pos(substring,string) < Mencari Posisi substring

a:=copy(string,awal,sepanjang) < mengambil string

delete(string,awal,sepanjang) < menghapus string

insert(substring,string,posisi) < memasukan string

str(integer,string) < integer ke string

val(string,integer) < string ke integer

ASCII

48-49 = 0-9

65-90 = A – Z

97-122 = a – z

Ord(huruf) > huruf ke ASCII

Chr(ASCII) > ASCII ke huruf

FPB

While C <> 0 or C <> 1 do

begin

C:=A mod B;

A:=B;

B:=C;

End;

B < FPB

KPK

KPK(A,B)=(A*B)/(FPB(A,B))

GRAF

Lintasan Euler mempunyai 2 buah simpul berderajat ganjil atau tidak ada simpul berderajad ganjil sama sekali. (MELALUI SETIAP SIMPUL SEKALI)

Sirkuit Euler jika hanya jika setiap simpul berderajad genap

Graf berarah G memiliki sirkuit Euler jika hanya jika G terhubung dan setiap simpul memiliki derajad masuk dan derajad keluar sama. G memiliki lintasan Euler jika dan hanya jika G terhubung dan setiap simpul memiliki derajad masuk dan derajad keluar sama kecuali 2 simpul, yang pertama memiliki derajad keluar satu lebih besar dari derajad masuk, dan yang kedua memiliki derajad masuk satu lebih besar dari derajad keluar

2