0% menganggap dokumen ini bermanfaat (0 suara)
170 tayangan14 halaman

TOKI

Program tersebut mengandung operasi aritmatika antara bilangan bulat dan bilangan riil.
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
170 tayangan14 halaman

TOKI

Program tersebut mengandung operasi aritmatika antara bilangan bulat dan bilangan riil.
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 14

y y o o o o o o y o o o o o o y o o y y y y o  o    o   o   

Materi non pemrograman meliputi: Materi Analitika Materi Aritmatika Pembentukan Model Aritmatika Sifat-sifat Bilangan Pengkaitan dengan Konteks Masalah Formula Rekusif Eksplorasi dalam Masalah Kombinatorik Model Matematika Sederhana Materi Algoritmika Penggunan Variabel Aliran Kendali Proses Ekspresi Logika Prosedur dan Fungsi Aliran Proses Algoritma Struktur Arry Materi Pemrograman meliputi: Deklarasi Tipe data Variabel dan Konstanta Oprasi Assignment Oprasi Aritmatika Ekpresi Logika Strukut Kontrol Sequence begin end Analisis Kasus if then if then else case of Perulangan while do repeat until Fungsi/Prosedur Urutan eksekusi Parameter Rekusivitas

Soal ke-1 Diketahui program Pascal sbb: view sourceprint?

01.const kar = 65; 02.var i : integer;

03.begin 04.for i := 1 to 5 do 05.begin 06.kar := kar + 1; 07.end; 08.writeln(ord(chr(kar -3*5))); 09.end.


Apa output dari program di atas? a. runtime error b. 65 c. 0 d. tidak ada output e. 310 Pembahasan: Sekilas program di atas agak rumit (sedikit) karena di dalamnya ada looping dan juga main kode ASCII karena adanya function chr() yang digunakan untuk menampilkan kode ASCII dari suatu bilangan bulat. Namun jawaban yang benar adalah run time error (A). Lho kok bisa? Ya perhatikan identifier bernama kar. identifier ini berupa konstanta karena dia dideklarasikan dalam const. Apa akibatnya kalo suatu identifier dideklarasikan sebagai konstanta? Yup tepat sekali, dia tidak bisa diubah nilainya dalam proses komputasinya (dalam body program). Namun.. coba perhatikan perintah kar := kar +

1; Pada perintah ini jelas tampak bahwa ada perubahan nilai kar, yaitu nilai kar yang baru adalah
nilai kar yang lama ditambah 1. Nah hal inilah yang menyebabkan error. Tips: Hati-hati dalam mengerjakan soal yang di dalam pilihan jawabannya terdapat runtime error. Coba cek dulu ada tidaknya rule dalam pemrograman yang dilanggar atau ada tidaknya sintaks yang salah. Jika ada, jangan ragu untuk memilih Runtime Error. So tidak usah dikerjakan programnya karena itu menghabiskan waktu pengerjaan. Soal ke-2 Diketahui potongan program Pascal sbb: view sourceprint?

1.begin 2.readln(a); 3.for i := 1 to a do bil := bil * i; 4.writeln(bil); 5.end.


Jika diberikan input 5 pada program di atas, maka apa outputnya? a. tidak ada output b. 120 c. 5 d. runtime error e. 0 Pembahasan:

Nah pada soal di atas ada pilihan jawaban runtime error. Hati-hati nih jangan-jangan memang runtime error. Tapi ketika lihat kode Pascalnya tampaknya tidak ada kesalahan rule atau sintaks. Jangan beralasan bahwa variabelnya tidak dideklarasikan, trus menyebabkan error. Pada soal di atas sudah dijelaskan bahwa kode yang ditulis pada soal adalah potongan program, sehingga anggap saja semua kelengkapan deklarasi termasuk deklarasi variabelnya sudah dituliskan. Wah berarti kita harus analisis manual nih Eit tunggu dulu. Coba kita lihat apa yang dioutputkan. Dari perintah writeln(bil); kita tahu bahwa yang dioutputkan adalah nilai dari variabel bil. Nah.. nilai bil ini akan dihasilkan dari proses bil := bil * i dalam looping. Mungkin bayangan Anda nilai bil ini akan berubah-ubah untuk setiap kali iterasi dalam looping. Tapi tunggu dulu, coba Anda perhatikan, adakah nilai awal dari bil sebelum masuk ke looping?. Hmm tampaknya tidak ada. Kalau tidak ada, maka dianggap nilai bil pertama kali adalah 0. Trus apa akibat hal ini pada perintahbil := bil * i ? ya pasti hasilnya bil adalah selalu 0. karena bil = 0 * i, berapapun jumlah iterasinya. So jawaban yang benar adalah 0 (E).

Soal ke-3 Diketahui program Pascal berikut ini view sourceprint?

01.var s1, s2, s : string; i, ins : integer; 02.begin 03.s1 := 'TOKI'; 04.s2 := '2005'; 05.for i:=1 to length(s1) do if (ord(s1) < 10) then ins := 1; 06.insert(s2, s1, ins); 07.s := s1 + s2; 08.writeln(s); 09.end.
Outputnya adalah: a. runtime error b. TOK2005I2005 c. tidak ada output d. 2005TOKI2005 e. 200TOKI5TOKI Pembahasan: Aduh baru lihat programnya saja sudah pusing. Tapi.. eh, jangan pusing dulu. Coba baca kembali tips dan trik untuk mengerjakan soal olimpiade yang pernah saya posting sebelumnya. Kalau di option jawabannya ada Runtime Error, maka cek semua rule dan aturan sintaksnya, siapa tahu ada kesalahan sehingga kita tidak perlu merunut semua proses dalam program. Nah kita cek tips dan trik tersebut karena dalam option terdapat Runtime Error. OK lets check it out !!! Baris 1 gak ada masalah, baris 2 gak ada masalah, baris 3, 4 juga gak ada masalah. Baris 5 ada masalah gak ya? di situ ada function ord(). Function ord(X) akan mengembalikan bilangan bulat yang menunjukkan ordinalitas dari X yang bertipe data ordinal. Perhatikan perintah ord(s1) pada program. Di situ terlihat bahwa s1 adalah bertipe data string.

Perlu diketahui bahwa tipe data ordinal adalah tipe data yang terurut valuenya. Tipe data yang termasuk ordinal antara lain integer (dan turunannya: shortint, longint, word, byte), boolean dan juga char. Eh btw, kok tipe data real tidak termasuk ordinal ya? Ya.. karena bilangan riil itu kan tidak dapat dinyatakan dalam bentuk urutan. Berapakah bilangan riil setelah 1? apakah 2? apakah 1.5? apakah 1.05 atau apakah 1.000001? tidak bisa bukan? karena di antara dua bilangan riil terdapat bilangan riil yang lain. Dengan demikian bilangan riil tidak bisa disajikan secara terurut. Nah.. di sini string juga bukan termasuk tipe data ordinal sehingga program di atas menimbulkan error. Soal ke-4 Diberikan program berikut ini view sourceprint?

01.var a, b, c, n, i : integer; bil : array [1..100] of integer; 02.begin 03.readln(n); 04.a := 1; 05.for i:=1 to n do 06.begin 07.c := a + b; 08.bil[i] := c; 09.a := b; 10.b := c; 11.end; 12.writeln(n); 13.end.
Jika diberikan inputnya adalah 5, maka outputnya adalah: a. 0 b. 13 c. 2 3 5 8 13 d. 5 e. runtime error Pembahasan: AWAS di pilihan jawaban ada runtime error. Coba dicek dulu sintaks dan rulenya. Hmm. kayaknya gak ada yang salah nih. Wah gawat kalo gak ada yang salah, karena kita harus merunut proses jalannya program. Tapi perlukah? Tunggu dulu, coba perhatikan program di atas. Apa yang akan dijadikan sebagai output? Yap tepat sekali yaitu nilai dari variabel n. Di awal program nilai n ini adalah 5, karena berdasarkan soalnya nilai inputnya adalah 5, dalam hal ini 5 akan diberikan kepada n karena ada statement readln(n); Trus perhatikan lagi.. coba cek apakah ada kemungkinan nilai n berubah pada proses berikutnya? caranya ngecek gimana? ya cari saja assignment yang berbentukn := ... ; Ternyata setelah dicek tidak ada. Berarti nilai n ini tidak pernah berubah, alias tetap sama dengan 5. Sehingga jawabannya adalah D.

Soal ke-5 Diberikan program Pascal berikut ini: view sourceprint?

01.var k, j : integer; 02.begin 03.j := 0; 04.for k := 1 to 10 do 05.begin 06.inc(k); 07.inc(j, k); 08.end; 09.write(j); 10.end.
Apa output dari program di atas? a. 30 b. 38 c. 40 d. 42 e. 55 Pembahasan: Dalam program di atas terdapat function Sedangkan

increment disingkat inc. Apa maksud dari

inc() . Wah function apaan tuh? Function ini adalah untuk inc(k) ? Maksudnya ekuivalen dengan k := k + 1.

inc(j, k) ekuivalen dengan j := j + k.

OK deh kita sudah tahu sekarang apa maksud function tersebut. Now lets check it out!! Kita akan analisis setiap langkah per langkah program di atas. Step 1: j = 0 Step 2: (masuk for) k = 1 Step 3: inc(k) -> k := k + 1 -> k := 1 + 1 = 2 Step 4: inc(j, k) -> j := j + k -> j := 0 + 2 = 2 Step 5: (masuk for) k = 3 Step 6: inc(k) -> k := 3 + 1 = 4 Step 7: inc(j, k) -> j := 2 + 4 = 6 Step 7: (masuk for) k = 5 Step 8: inc(k) -> k := 5 + 1 = 6 Step 9: inc(j, k) -> j := 6 + 6 = 12 . . . Sampai kapan proses loopingnya berjalan? proses looping berjalan apabila nilai k sudah sama dengan 10. Nah dengan melihat pola perhitungan j pada setiap iterasi, maka kita bisa simpulkan bahwa pada prinsipnya secara keseluruhan nilai j diperoleh dari hasil penjumlahan: j = 0 + 2 + 4 + 6 + 8 + 10 =

30. Apabila sudah kelihatan pola (pattern) perhitungannya, maka tidak usah dirunut untuk setiap iterasinya. Terlalu lama dan buang-buang waktu saja Sehingga begitu looping selesai, nilai j = 30 (A). Soal ke-6 Apakah output dari program berikut ini? view sourceprint?

1.var s : string[12]; 2.begin 3.s := 'setia'; 4.writeln('#', s, '#'); 5.s := s + ' sampai akhir '; 6.writeln('#', s, '#'); 7.end.
a. #setia# (kemudian terjadi runtime error) b. #setia c. #setia# #setia sampai akhir# d. #setia# #setia sampai# e. #setia# #sampai akhir# Pembahasan: Apabila kita analisis program di atas, s adalah variabel bertipe data string dengan panjang karakternya maksimum 12. Nilai awal s adalah string setia (panjang 5 baris). Berarti masih ada sisa ruang kosong untuk string s sebanyak 7 buah. Ingat ruang kosong di sini bukan berisi spasi, tapi null karakter. Sehingga apabila dicetakwriteln('#', s, '#'); tetap akan muncul #setia# dan bukan #setia #. # #setia sampai#

Selanjutnya pada baris berikutnya s yang lama ditambah dengan string sampai akhir (14 karakter termasuk spasi). Lho emang bisa string dijumlah dengan string? Runtime error donk jadinya? he3x di sini makna plus bukan berarti dijumlah tapi penggabungan string. Operator + dapat diberikan pada string. Tapi, jangan coba-coba iseng untuk menggunakan operator -, * atau / pada operasi string. Komputernya bisa error. Sehingga string s yang baru adalah setia + sampai akhir . Trus hasilnya apa dong? apakah setia sampai akhir? Eit.. tunggu dulu, berapa jumlah kapasitas karakter yang bisa dimuat pada s? Oiya cuman ada 12 karakter saja. Dengan demikian hasilnya adalah setia sampai (12 karakter). Berikutnya cetak

writeln('#', s, '#'); dan hasilnya adalah #setia sampai#. Dengan

demikian hasilnya adalah D.

Soal No. 7 Apa output program ini? view sourceprint?

1.begin 2.writeln(80+0:0); 3.writeln(80*1:0); 4.writeln(80/1:0); 5.writeln(80 -0.0:0); 6.end.


view sourceprint?

1.a. 80 2.80 3.8.0E+01 4.8.0E+01


Pembahasan:

b. 80 80 80 80

c. 80 8.0E+01 8.0E+01 80

d. 8.0E+01 8.0E+01 8.0E+01 8.0E+01

e. Terjadi error

OK kita mulai dari writeln() yang pertama dahulu. Dalam writeln tersebut akan dicetak 80+0:0. Hasil yang dicetak adalah hasil dari penjumlahan 80 + 0. Kedua bilangan adalah bertipe integer. Kita tahu bahwa integer + integer, hasilnya adalah integer dalam hal ini sama dengan 80 (integer). Selanjutnya perintah kedua untuk menampilkan hasil perkalian dari 80 (integer) x 1 (integer) = 80 (integer). Sehingga yang ditampilkan juga 80. Perintah ke tiga menampilkan hasil dari 80 (integer) / 1 (integer). Kita tentu tahu bahwa 80/1 = 80. Namun ingat bahwa operator / selalu menghasilkan bilangan real, meskipun hasilnya bulat. Dengan demikian hasil pembagian di sini (80) adalah bertipe real. Tanpa pengaturan format di layar, bilangan real 80 akan ditampilkan sebagai 8.0E+01. Nah perintah ke empat, akan menampilkan hasil dari 80 (integer) dikurangi 0.0 (bilangan 0 dalam tipe real). Kita tentu tahu bahwa integer real akan menghasilkan real. Sehingga perintah keempat ini akan menghasilkan 80 dalam bentuk real atau 8.0E+01. Dengan demikian jawaban yang benar adalah A Soal No. 8 Dalam program di bawah ini, baris ke berapakah yang harus diubah untuk membuat program dapat berjalan dengan baik? view sourceprint?

1.program pembuat string; {baris 1} 2.const st = string[5] : 'pascal'; {baris 2} 3.begin 4.writeln(St) {baris 4} 5.end.
a. baris 1 b. baris 2 c. baris 1 dan 2

d. baris 4 e. baris 1, 2, dan 4 Pembahasan: Untuk menjawab soal ini, kita analisis satu persatu pada setiap barisnya. Baris 1 digunakan untuk menuliskan nama program. Tentu kita tahu bahwa nama program adalah salah satu dari identifier. Sedangkan syarat penulisan identifier adalah tidak boleh mengandung spasi. Coba lihat pada baris 1 tersebut! Bagaimana bentuk nama programnya? aha ada spasi bukan. So.. baris 1 musti diubah. Now.. lets check baris ke-2. Baris kedua ini dimaksudkan untuk menulis sebuah konstanta bertipe. Perlu kita ketahui bahwa aturan penulisan konstanta bertipe adalah view sourceprint?

1.const namakonstanta : ti pe data = value;


Coba lihat baris ke-2 di atas! Sudah sesuaikah cara penulisannya dengan aturannya? Aha baris ke ini -2 juga perlu diperbaiki. Sekarang kita lihat baris ke-3. Baris ini dimaksudkan untuk menampilkan value dari konstanta st. Lho.. tapi kok huruf s nya ditulis dengan huruf besar? bukankah di const konstanta st ini ditulis dalam huruf kecil semua? he 3x perlu kita tahu bahwa dalam pascal, besar kecilnya huruf dalam nama identifier itu tidak ada pengaruhnya alias dianggap sama. Mungkin.. ada di antara Anda yang beripikiran lain. Lho.. kok writeln() nya gak dikasih titik koma? Salah donk? nah perlu kita tahu juga bahwa dalam Pascal, perintah atau statement terakhir sebelum END. boleh tidak dikasih tanda titik koma. Dengan demikian untuk baris ke-4 ini tidak ada masalah. So untuk soal ini jawabannya adalah C. Soal No 9 Diberikan program Pascal berikut ini: view sourceprint?

01.var bil : string; bit : integer; 02.begin 03.readln(bit); 04.while(bit <> 0) do 05.begin 06.if bit and 1 = 1 then bil := '1' + bil 07.else bil := '0' + bil; 08.bit := bit shr 1; 09.end; 10.writeln(bit); 11.readln; 12.end.
Apa output program di atas jika inputnya adalah 60? a. runtime error b. 11110 c. 60 d. 0 e. tidak ada output

Pembahasan: Waduh ketemu perulangan (looping) lagi pusing. Wah nyerah deh! Eit jangan nyerah dulu, kadang soal yang tampak rumit pengerjaannya bahkan lebih mudah daripada soal yang kelihatannya mudah Coba kita analisis bentar gak pake lama kok. Tenang aja .

OK.. di dalam pilihan jawaban terdapat pilihan jawaban runtime error. Sesuai tips yang pernah saya berikan pada artikel sebelumnya, coba cek dulu ada tidaknya kesalahan sintaks atau rule yang dilanggar dari penulisan program. Apabila dicek, maka tidak ada kesalahan sintaks maupun aturan penulisan perintah yang dilanggar. Oleh karena itu tidak mungkin jawabannya A. Selanjutnya selain runtime error terdapat pula option tidak ada output. Kita cek juga option ini, benar tidak bahwa program tidak mengoutputkan sesuatu. Indikasi bahwa program terdapat outputnya, di dalamnya pasti terdapat perintah write() atau writeln(). Nah.. bila diperhatikan, program di atas memiliki perintah writeln(). Dengan demikian jawabannya juga tidak mungkin yang E. Waduh berarti ini benar-benar harus masuk ke looping nya nih, dan kita uji satu-persatu (

Eit.. jangan patah semangat dulu, siapa tahu ada celah logika yang bisa kita manfaatkan untuk mengambil kesimpulan secara cepat tanpa harus menelusuri setiap proses satu persatu. OK.. sekarang saya tanya kepada Anda: berapakah nilai variabel bit pertama kali?.. 60 bukan. OK selanjutnya masuk ke looping yah Apa syaratnya looping tetap dijalankan? ya syaratnya jika nilai bit tidak sama dengan 0. Atau dengan kata lain looping akan berhenti jika nilai bit = 0. OK.. berarti dengan ini kita bisa menjawab pertanyaan : Berapakah nilai bit setelah selesai looping?. ya.. jawabannya adalah 0. Trus.. saya tanya Anda lagi: variabel apa yang mau ditampilkan outputnya? ya dari program jelas tampak variabel yang mau ditampilkan adalah bit. Pertanyaan berikutnya: Jadi berapakah nilai bit saat ditampilkan? tentu Anda semua menjawab dengan berteriak keras NOOLLL Dengan demikian jawaban dari soal di atas adalah D.

Struktur Dan Komponen Dasar Program Pascal.


April 28, 2008Doantara yasaTinggalkan komentarGo to comments

Struktur program Pascal terdiri dari sebuah judul program dan badan program. Badan program dibagi lagi menjadi dua bagian, bagian deklarasi dan bagian pernyataan (statement). Struktur program : Judul Program Blok Program Bagian deklarasi deklarasi label deklarasi konstanta deklarasi tipe deklarasi variabel deklarasi prosedur PROGRAM nama-program;

LABEL nama-label; CONST..; TYPE .; VAR ; PROCEDURE nama-prosedur; .;

deklarasi fungsi Bagian Pernyataan Begin (statement) ; ; end.

FUNCTION nama-fungsi; .;

Contoh : Menghitung perkalian dua bilangan bulat PROGRAM Perkalian; VAR A,B,Hasil : Integer; BEGIN A := 2; B := 3; Hasil := A*B; Writeln (A,B,Hasil); END. {Judul} {Deklarasi variabel} {Statemant} {Statemant} {Statement} {Statement}

Judul program sifatnya adalah optional, dan bila ditulis, harus terletak pada awal dari program dan diakhiri dengan titik koma. Bagian deklarasi digunakan bila di dalam program digunakan pengenal ( identifier). Identifier dapat berupa label, konstanta, tipe, variabel, prosedur dan fungsi. Kalau suatu program menggunakan identifier, Pascal menuntut supaya identifier tersebut diperkenalkan terlebih dahulu sebelum digunakan, yaitu dideklarasikan terlebih dahulu pada bagian ini. Beberapa aturan dalam program Pascal :
y y y y

Akhir sebuah program Pascal ditandai dengan tanda baca titik . setelah END yang paling akhir. Tanda titik koma ; merupakan pemisah antar instruksi satu dengan lainnya. Beberapa statement boleh ditulis menjadi satu baris dipisahkan dengan tanda baca titk koma ; Baris komentar diletakkan diantara tanda (* dan *) atau diantara tanda { dan } Contoh : Var a : real; (*nilai bilangan pertama*) b : real; {nilai bilangan kedua}

Statement (pernyataan) Adalah instruksi atau gabungan instruksi, yang menyebabkan komputer melakukan aksi. Type statement dalam Pascal terdiri atas : 1. Sederhana : - menandai sebuah item data ke sebuah variabel (assigment statement) contoh : c := b * 4 pemanggilan procedure dan goto statement

2.

Terstruktur: - Compound Statement contoh : Begin read (x) ; y := x * 2; write (y) End. - Repetitive Statement contoh : For j := 1 to 10 do write (count); - Conditional Statement contoh : If x > 10 then write (a) else write (b) ;

Komponen Dasar Program Pascal Pola susun bahasa Pascal dibentuk dengan menggunakan komponen bahasa pemrograman yang umum, yaitu : 1. Simbol Dasar 2. Reserved Word (kata pasti) 3. Identifier (penyebut) 1. Simbol Dasar. Simbol dasar terdiri atas : 1. Simbol huruf, yaitu huruf A sampai dengan Z atau a sampai dengan z. (huruf besar dan kecil). 2. Simbol angka atau digit yaitu : 0,1,2,3,4,5,6,7,8,9. 3. Simbol khusus, yaitu { } ( ) [ ]+ - * / ; := , = < > <= >= <> : 2. Reserved Word (kata pasti) Reserved Word adalah suatu kata yang secara mutlak tidak boleh diartikan lain dan harus digunakan sebagaimana yang telah didefinisikan atau ditentukan kegunaanya oleh bahasa Pascal. Reserved word tidak dapat dipergunakan sebagai pengenal (identifier)

3. Identifier (sebutan/pengenal) Identifier merupakan sebuah kata yang digunakan sebagai nama atau sebutan terhadap sesuatu didalam program. Pemakai dapat mendefinisikan sendiri suatu nama sebagai identifier. Identifier ini terdiri atas : 1. Identifier Standar, yaitu identifier yang telah didefinisikan oleh bahasa pascal. Contoh dari Identifier standar ini antara lain: ABS LN ARCTAN ODB BOOLEAN PRED CHAR ROUND CHR READ

COS EOF EOLN EXP Dan masih banyak lagi. 2.

READLN SQR SQRT SUCC

Identifier Non Standar; yaitu identifier yang didefinisikan oleh pemakai bahasa pascal; misalnya; 3. Nama suatu program 4. Nama suatu konstanta 5. Nama suatu variabel 6. Nama suatu procedure Identifier ini bebas, tetapi dengan ketentuan-ketentuan sebagai berikut : 7. terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Huruf besar dan huruf kecil dianggap sama. 8. Tidak boleh mengandung blank. 9. Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah. 10. Panjangnya bebas, tetapi hanya 63 karakter pertama yang dianggap signifikan. Contoh : Identifier NasiBungkus Belajar_Pascal NO2 1_dua Andi&tono Penjuanglan bar Keterangan Benar Benar Benar Salah, karakter pertama harus huruf Salah, tidak boleh mengandung simbol khusus Salah, tidak boleh mengandung spasi

Penentuan Bilangan Awal Pangkat Banyak


April 11, 2010Doantara yasaTinggalkan komentarGo to comments

untuk mampu dalam memecahakan masalah untuk soal mengetahui digit awal atau akhir, tentunya kita harus terbiasa dengan sifat-sifat bilangan pangkat! berikut beberapa sifat pangkat : a p x a q = a p+q (a x b) p = a p x b p a p : a q = a p-q a0 = 1 (a p) q = a pxq a p = 1 / a p Contoh soal sebagai berikut Jumlah dua digit pertama dari bilangan hasil perkalian

30003

x8

10004

Adalah

Pembahasan Untuk memecahkan soal seperti diatas mencari digit pertama, kita harus sederhanakan bentuk pangkat tersebut agar menjadi bilangan tertentu di kaliakan 10 pangkat banyak. lebih jelasnya mari kita sederhanakan : x 8 10004 = 5 30003 x (23) 10004 5 x 2310004 = 30003 5 x 230012 = 30003 5 x 230003 +9 = 30003 5 x 230003 x 29 = (5 x 2)30003 x 29 = 1030003 x 29 = 29 x 1030003 = 512 x 1030003 perlu di ingat berapapun 10 dipangkatkan dari 1 sampai n hasilnya nol ke n dibelakangnya 5
= 30003 30003

ex :

103 = 1000
jadi jumlah dua digit pertama adalah 5 + 1 = 6.

Contoh Soal Olimpiade Komputer materi WHILE DO


April 9, 2008Doantara yasaTinggalkan komentarGo to comments

potongan prgram dibawah untuk soal 1 -2 c := 0 d := 0 while (a>b) do begin a := a b; c := c + 1; d := d + b; end; write(c,,',d); 1. jika nilai a = 15, b = 4 maka keluaran dari program diatas adalah.. a. 3 , 12 b. 1 , 4 c. 0 , 0 d. 6 , 23 e. 2 , 8 Pembahasan nilai awal a = 15, b = 4, c = 0, d = 0 kondisi a > b >> 15 > 4 (True), maka a = 15 4 = 11 c=0+1 =1 d=0+4 =4 >> 11 > 4 (True), maka

a = 11 4 =7 c=1+1 =2 d=4+4 =8 >> 7 > 4 (True), maka a=74 =3 c=2+1 =3 d=8+4 = 12 >> 3 > 4 (False), maka perulangan dihentikan. Jadi nilai c = 3, d = 12 2. jika nilai a = 34, b = 11 maka keluaran dari program diatas adalah.. a. 3 , 12 b. 1 , 4 c. 0 , 0 d. 6 , 23 e. 2 , 8 Pembahasan nilai awal a = 34, b = 11, c = 0, d = 0 kondisi a > b >> 34 > 11 (True), maka a = 34 11 = 23 c=0+1 =1 d = 0 + 11 = 11 >> 23 > 11 (True), maka a = 23 11 = 12 c=1+1 =2 d = 11 + 11 = 22 >> 12 > 11 (True), maka a = 12 11 =1 c=2+1 =3 d = 22 + 11 = 33 >> 1 > 11 (False), maka perulangan dihentikan. Jadi nilai c = 3, d = 33

Anda mungkin juga menyukai