Kali ini aku cuma mau posting masalah pemrograman , , kode2 ini adalah coding yg aku lakukan sekitar 1th yg lalu , , aku udah berhenti ngoding sejak awal masuk kelas 3 sma. ya jadi sekarang sedikit2 lupa (banyak aslinya) untuk permulaan aku akan posting masalah code2 (dlm pascal) yg udah d accept di TOKI Learning Center.
code2 ini merupakan penyelesaiian dari soal2 tingkat mudah yg ada disana, mungkin kawan2 sudah banyak yg bisa , tp aku disini hanya sekedar berbagi saja barang kali masih ada yg belum bisa dapat menggunakannya sebagai acuan belajar. aku posting yg dlm versi PASCAL krn lebih mudah utk d pelajari (menurutku :p).. .
ok , let's check it !
Soal Hello World
kode penyelesaiannku sbb. . .
program hello_world;uses crt;varn:1..100;beginclrscr; readln (n); clrscr; for n:= 1 to n do writeln ('Hello World!'); readln;end. kode penyelesaiannku sbb. . .
{ soal : angka 1 misalkan f(i) adalah nilai suku ke i perhatikan bahwa : f(0) = 0 f(i) = i + f(i-1) ,jika i >= 1 misal : f(3) = 3 + f(2) = 3 + 2 + f(1) = 3 + 2 + 1 + f(0) = 3 + 2 + 1 + 0 = 6}var N : longint; //gunakan longint karena N bisa sampe 50000 i : longint; x : longint;begin readln(N); x := 0; // suku ke 0 for i := 1 to N do // looping dari 1 sampai suku ke N begin x := i + x; // suku ke-i adalah i + (suku sebelumnya) writeln(x); end;readln;end.Soal Pengurutan Bergelembung
kode penyelesaiann dalam C++, data pascalku hilang. . . .
{ Soal : pengurutan bergelembung}varmasukan,pilihan :string [3];beginreadln (pilihan);masukan:= upcase (pilihan);if masukan='PAS' then beginwriteln ('var data:array[1..10000] of longint;' );writeln (' n,i,j,temp:longint;' );writeln ('begin' );writeln (' readln(n);' );writeln (' for i:=1 to n do readln(data[i]);' );writeln (' for i:=1 to n-1 do' );writeln (' for j:=i+1 to n do' );writeln (' if (data[i]>data[j]) then' );writeln (' begin' );writeln (' temp:=data[i];' );writeln (' data[i]:=data[j];' );writeln (' data[j]:=temp;' );writeln (' end;' );writeln (' for i:=1 to n do writeln(data[i]);' );writeln ('end.' );endelseif masukan= 'CPP'then beginwriteln ('int data[10001];' );writeln ('int n,i,j,temp;' );writeln ('int main(){' );writeln (' scanf("%d",&n);' );writeln (' for (i=1;i<=n;i++) scanf("%d",data[i]);' );writeln (' for (i=1;i<=n-1;i++)' );writeln (' for (j=i+1;j<=n;j++)' );writeln (' if (data[i]>data[j]){' );writeln (' temp=data[i];' );writeln (' data[i]=data[j];' );writeln (' data[j]=temp;' );writeln (' }' );writeln (' for (i=1;i<=n;i++) printf("%d\n",data[i]);' );writeln (' return 0;' );writeln ('}' );end;end.Soal Pecahan Uang
kode penyelesaiannku sbb. . .
{ soal: pecahan uang - input jumlah uang yg harus dipecah (uangawal) - cacah uang menurut pecahan yg ada - munculkan hasil pecahan}varsisa,seRb,limaRTS,duaRTS,seRTS,limaPLH,duaPLH,sePLH,lima,dua,satu:integer;uangawal:integer;begin readln(uangawal); seRb:= uangawal div 1000; sisa:= uangawal mod 1000; //pecahan 1000 if (uangawal >= 1000) then writeln (1000,' ',seRB); limaRTS:= sisa div 500; sisa:= sisa mod 500; //pecahan 500 if (limaRTS >= 1) then writeln (500,' ',limaRTS); duaRTS:= sisa div 200; sisa:= sisa mod 200; //pecahan 200 if (duaRTS >= 1) then writeln (200,' ',duaRTS); seRTS:= sisa div 100; sisa:= sisa mod 100; if (seRTS >= 1) then //pecahan 100 writeln (100,' ',seRTS); limaPLH:= sisa div 50; sisa:= sisa mod 50; if (limaPLH >= 1) then //pecahan 50 writeln (50,' ',limaPLH); duaPLH:= sisa div 20; sisa:= sisa mod 20; //pecahan 20 if (duaPLH >= 1) then writeln (20,' ',duaPLH); sePLH:= sisa div 10; sisa:= sisa mod 10; if (sePLH >= 1) then //pecahan 10 writeln (10,' ',sePLH); lima:= sisa div 5; sisa:= sisa mod 5; if (lima >= 1) then //pecahan 5 writeln (5,' ',lima); dua:= sisa div 2; sisa:= sisa mod 2; //pecahan 2 if (dua >= 1) then writeln (2,' ',dua); satu:= sisa div 1; sisa:= sisa mod 1; if (satu >= 1 ) then //pecahan 1 writeln (1,' ',satu);end. program turnamen_panco;{ Soal:turnamen panco 1-input data untuk banyaknya kasus (t) 2-input data untuk banyaknya tim (n) 3-input data untuk kekuatan setiap tim (pi) 4-cari tim yg memiliki kekuatan terbesar (max) 5-lakukan pencarian letak tim dengan kekuatan terbesar 6-output kan posisi tim dg kekuatan terbesar}vart,t1: 1..100; //banyaknya kasusn: 1..10;Pi: array [1..5000] of integer; // banyaknya timi:integer; // untuk perulangannk:integer; // 2 pangkat nmax:integer; // kekuatan terbesar timposisi:integer; //posisi tim dg kekuatan terbesarbegin {menentukan banyaknya kasus} readln (t); t1:=1; repeat nk:=1; readln (n); for i:= 1 to n do nk:= 2 * nk; {memasukkan kekuatan setiap tim} for i:= 1 to nk do read (pi[i]); {mencari tim dg kekuatan terbesar} max:=0; for i:= 1 to nk do begin if (pi[i] > max) then //algoritma mencari data terbesar max:=pi[i]; end; {mencari posisi tim dg kekuatan terbesar} for i:= 1 to nk do begin if (pi[i] = max) then begin //algoritma pencarian beruntun posisi:= i; break; end; end; writeln (posisi); //outputkan posisi tim dg kekuatan terbesar inc (t1); until (t1 > t);end.{ soal: lima terbaik}varai: array [1..100000] of longint;terbesar: longint;i,j,k,l,temp,t,n:longint;beginread(t);for i:= 1 to t do begin read (n); for j:= 1 to n do read (ai[j]); for k:= 1 to 5 do for l:= k+1 to n do if (ai[k] < ai[l]) then begin //merge short temp:= ai[k]; ai[k]:= ai[l]; ai[l]:= temp; end; terbesar:=0; for j:= 1 to 5 do terbesar:= terbesar + ai [j]; writeln (terbesar);end;end.var T,a,b,l,ans,tc :longint; begin read(t); for tc:= 1 to t do begin read(a); read(b); read(l); ans:= a+ b * ((l-2000) div 100); if (ans < a) then ans:= a; writeln (ans); end; end.{ soal: Jumlahan asli - input banyaknnya kasus (T) - input nilai untuk tiap kasus (A) - proses nilai dengan pola A? - output hasil proses}varT: longint;A:array [1..100000] of int64;i,j:longint;begin read (t); for i:= 1 to t do begin read (a[i]); a[i]:= (a[i] + 1)* a[i] div 2; writeln(a[i]); end;end.{ Soal: BeSaR DaN KeCiL - input jumlah kasus (t) - input teks untuk setiap kasus, maksimal 100 huruf (text) - jadikan teks selang seling besar dan kecil - output teks yg sudah selang seling besar-kecil}vart,t1,s1:integer; //jumlah kasustext: array [1..100] of string;i,j:integer;s: string[100];begint1:=1;s1:=1; readln(t); {input teks untuk tiap kasus} for i:= 1 to t do begin readln (text[i]); end; repeat repeat {proses pembesaran huruf} for i:= 1 to t do begin s:= text[i]; for j:= 1 to length (s) do begin if ( j mod 2 <> 0) then s[j]:= upcase (s[j]) end; text[i]:= s; end; inc (s1); //perulangan utk tiap string until (s1 >= t); inc(t1); //perulangan untuk tiap kasus until (t1 >= t); {menampilkan hasil setelah besar-kecil} for i:= 1 to t do writeln (text[i]);end.vart :shortint;n :1..100000;ni :array [1..100000] of integer;masalah,i,k :integer;rata2 :real;begin read (t); for k:= 1 to t do begin readln (n); rata2:= 0; for i:= 1 to n do begin read (ni[i]); rata2:= rata2 + ni[i] ; end; rata2:= rata2 / n ; masalah:= 0; for i:= 1 to n do if (ni[i] < rata2) then inc (masalah); writeln (masalah); end;end.





0 komentar:
Posting Komentar