Skip to content

Instantly share code, notes, and snippets.

@srifqi
Last active November 15, 2017 09:21
Show Gist options
  • Save srifqi/2b6da694142b5570b658d88d982ea177 to your computer and use it in GitHub Desktop.
Save srifqi/2b6da694142b5570b658d88d982ea177 to your computer and use it in GitHub Desktop.
Kode untuk Live Coding IT-Venture X UNS.

Live Coding IT-Venture X UNS

Apa yang ada di sini?

Kode program untuk menyelesaikan masalah yang diberikan sewaktu Live Coding IT-Venture X UNS.

Ini terbukti benar atau ...

Kami hanya sekedar mencoba yang kami anggap benar. Kalau ada kesalahan, silahkan tinggalkan komentar.

Pascal?

Ya, waktu Live Coding, memang aturannya menggunakan Free Pascal sebagai compilernya.

Ini boleh kupakai, kan?

Ya, tapi dengan syarat seperti yang ada di lisensi MIT.

MIT License

Copyright (c) 2017 Tim ULTIMUS Muhammad Rifqi Priyo Susanto, Syarifuddin Fakhri Al Husaini, Garin Ichsan Nugraha

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

{
Penghitung generasi selanjutnya dari simulasi Game of Life.
Penulis: (12 November 2017)
Muhammad Rifqi Priyo Susanto
Syarifuddin Fakhri Al Husaini
Garin Ichsan Nugraha
Masukan:
s (panjang sisi kotak)
a00 a01 a02 ...
a10 a11 a12 ... (keadaan tiap sel generasi sekarang)
a20 a21 a22 ... (0: mati, 1: hidup)
. . .
. . .
. . .
Keluaran:
b00 b01 b02 ...
b10 b11 b12 ... (keadaan tiap sel generasi selanjutnya)
b20 b21 b22 ... (0: mati, 1: hidup)
. . .
. . .
. . .
Batasan:
0 <= s <= 256, s adalah bilangan bulat
a = 0 atau 1
Kompleksitas algoritma: [masih dicari]
Lisensi: MIT License
}
program Game_of_Life;
var a : array [1..255] of string;
b : array [1..255] of string;
i, j, k, l, s, tetangga: integer;
begin
readln(s); { panjang sisi kotak }
for i := 1 to s do begin
readln(a[i]); { tiap baris }
end;
for i := 1 to s do begin
for j := 1 to s do begin
{ Menghitung jumlah tetangga untuk menentukan status sel. }
tetangga := 0;
for k := -1 to 1 do begin
if (i + k < 1) or (i + k > s) then continue; { Tidak perlu memeriksa di luar kotak. }
for l := -1 to 1 do begin
if (j + l < 1) or (j + l > s) then continue; { Tidak perlu memeriksa di luar kotak. }
if (k = 0) and (l = 0) then continue; { Jangan menghitung diri sendiri! }
if a[i + k][j + l] = '1' then
tetangga := tetangga + 1;
end;
end;
{ Menggunakan aturan Game of Life:
Untuk setiap sel hidup ... }
if a[i][j] = '1' then begin
{ ... dengan kurang dari dua tetangga ... }
if tetangga < 2 then
{ ... akan mati. }
b[i][j] := '0'
{ ... dengan dua atau tiga tetangga ... }
else if (tetangga = 2) or (tetangga = 3) then
{ ... akan tetap hidup. }
b[i][j] := '1'
{ ... dengan lebih dari dua tetangga ... }
else if tetangga > 3 then
{ ... akan mati. }
b[i][j] := '0';
{ Untuk setiap sel mati ... }
end else begin
{ ... dengan tepat tiga tetangga ... }
if tetangga = 3 then
{ ... akan hidup. }
b[i][j] := '1';
end;
end;
end;
{ Tampilkan generasi selanjutnya. }
for i := 1 to s do begin
for j := 1 to s do begin
if b[i][j] = '1' then
write('1')
else
write('0');
end;
writeln;
end;
end.
{
Pelukis Segitiga Sierpinski.
Penulis: (13 November 2017)
Muhammad Rifqi Priyo Susanto
Masukan:
h (jumlah iterasi)
Keluaran:
p00 p01 p02 ...
p10 p11 p12 ... (gambar segitiga Sierpinski)
p20 p21 p22 ...
. . .
. . .
. . .
Batasan:
h >= 0
Kompleksitas algoritma: O(k^n), k > 3
Lisensi: MIT License
}
program Sierpinski_Triangle;
uses math;
var h, x, y, i, j, m, n, r, d : integer;
e : boolean;
{ pola awal gambar: }
pola : array [0..15] of boolean = (true,true,true,true, true,false,true,false, true,true,false,false, true,false,false,false);
begin
readln(h); { jumlah interasi }
for x := 0 to floor(intpower(2, h)) * 4 - 1 do begin { ulangi untuk ... }
for y := 0 to floor(intpower(2, h)) * 4 - 1 do begin { ... setiap piksel }
d := floor(intpower(2, h)); { pembagi koordinat menjadi blok-blok }
e := true; { apakah berisi? }
m := x; { nilai koordinat blok sumbu-x }
n := y; { nilai koordinat blok sumbu-y }
for r := h downto 0 do begin { ulang untuk mendapatkan koordinat blok dengan turun tiap tingkat ... }
i := m div d; { koordinat blok sumbu-x pada tingkat r }
j := n div d; { koordinat blok sumbu-y pada tingkat r }
m := m mod d;
n := n mod d;
e := e and (pola[i * 4 + j]); { ... lalu bandingkan dengan pola }
d := d div 2;
if e = false then break; { kalau ternyata tidak diisi, sudahi saja }
end;
{ tulis hasilnya }
if e then
write('X')
else
write('-');
end;
writeln;
end;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment