Penjelasan Soal Programming

dokumen-dokumen yang mirip
Manual Book 5 th NPLC

TEMA Get rich your ICT (Information, Computer and Technology) skills and knowledge for better life and future

BAB I PENDAHULUAN. 1.1 Pengenalan Algoritma dan Pemrograman

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

OLYMPIA STUDENT USER GUIDE

MODUL 1 STANDAR INPUT DAN OUTPUT

FALCON PROGRAMMING CONTEST

Fungsi : Dasar Fungsi

Komentar, Identifier, Konstanta dan Variabel

MODUL IV Analisis Kasus/Pemilihan

Algoritma Pemrograman 2B (Pemrograman C++)

3. Tema Kegiatan Kebangkitan Generasi Muda untuk Membangun Bangsa dengan Teknologi dan Kebudayaan Nusantara

Rulebook. Uinic Programming Competition. Deskripsi Lomba

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

BAB II TEORI DASAR. Gambar 1 Kurva untuk interpolasi linier. Sehingga diperoleh persamaan dari interpolasi linier sebagai berikut :

KONSEP DASAR. menyusunnya menjadi potongan-potongan mudah untuk ditangani dibanding. conquer.

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

1. Mempelajari konsep dasar array, array ganda, pengiriman array ke fungsi dan string 2. Membuat program menggunakan array, array ganda

PEMROGRAMAN TERSTRUKTUR OLEH : IR. H. SIRAIT, MT

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

INSTITUT TEKNOLOGI BANDUNG JUNIOR PROGRAMMING CONTEST 3

Tugas PTIK C Program. Ardhini Maharani 12/331445/PA/14699

Kisi- kisi UTS- P. Kisi- kisi UTS- T

IT234 ALGORITMA DAN STRUKTUR DATA FUNGSI

1. Laporan Akhir 1. Menentukan Nilai Besar atau Nilai Kecil. Program yang di masukkan adalah :

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Function nama dipisahkan

Kuliah III - Dasar Pemrograman

DISUSUN OLEH BAB II C DAN C++ berikut ini: pilih radio HAL 1

INSTITUT TEKNOLOGI BANDUNG SENIOR PROGRAMMING CONTEST 3 REGULASI DAN PERATURAN

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

Fungsi 1. Ekohariadi FT Unesa

RULE BOOK PROGRAMMING ARTECHNO 2016

PENGENALAN BAHASA C. Praktikum 3

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

Pemrograman Dasar C. Minggu 6

Konsep Dasar Pemrograman Dan Pengenalan C++

PROSEDUR DAN FUNGSI (PROCEDURE & FUNCTION)

Part 2 - Algoritma & Pemrograman Konsep dasar Pemrograman

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

TUTORIAL BAHASA PEMOGRAMAN C++

perguruan tinggi (SD, SMP, SMA, atau sederajat), sedangkan SCPC diperuntukkan bagi mahasiswa (Diploma, S1, atau S2).

Algoritma & Pemrograman #7. by antonius rachmat c, s.kom, m.cs

IT234 - Algoritma dan Struktur Data. Ramos Somya

BAB 1 KONSEP DASAR BAHASA C

Rosihan Ari Yuana, S.Si, M.Kom Lisensi Dokumen: BAB I. PENDAHULUAN C++ Oleh:

A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual

FUNCTION (FUNGSI) LOGO. Pendidikan Teknik Elektronika FT UNY. Muh. Izzuddin Mahali, M.Cs.

MODUL I PENGENALAN IDE C++, ALGORITMA DAN PEMROGRAMAN

Pengantar Pemrograman Dengan C++

Kurikulum Qt. { Basic OOP } Chapter 4. Function

Dasar-dasar C/C++ Ekohariadi FT Unesa

Konsep Pemrograman. Bab 7. Fungsi1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

RULE BOOK ACM-ICPC 2017 ACM ICPC Maranatha Provincial Programming Contest

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Program menjadi terstruktur Dapat mengurangi pengulangan kode program. Fungsi dapat diimplementasikan dalam tiga bentuk :

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

Gaya 1 berisi seni neoplastic modern. Misalnya: Gaya 2 berisi lansekap impresionis. Misalnya: Gaya 3 berisi lukisan aksi ekspresionis.

PENGENALAN BAHASA C DAN C++

BAB 8 Argumen dari Command-line

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

Bagi peserta OSN 2014 dan calon peserta Open OSN William Gozali, Teknis OSN

RULES BOOK IDEAFUSE 2016 ACM ICPC Multi-Provincial

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

RULE BOOK IDEAFUSE 2018 ACM ICPC Multi-Provincial Programming Contest

Algoritma dan Pemrograman

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

Pengenalan Pascal/DevPascal

Konsep Pemrograman Prosedural

Kurikulum Qt. Chapter 4 Function. Fungsi

LAPORAN PRAKTIKUM RESMI QUEUE

PENGENALAN C++ Bab 1

VARIABEL & TIPE DATA PEMROGRAMAN C++

OLIMPIADE SAINS NASIONAL 2015 DESKRIPSI SOAL

Pemrograman Berorientasi Object

RULE BOOK IDEAFUSE 2017 ACM ICPC Multi-Provincial Programming Contest

Definisi Eksepsi (exception)

Perulangan, Percabangan, dan Studi Kasus

Apakah Anda sering kesulitan untuk

OLIMPIADE SAINS NASIONAL 2015 DESKRIPSI SOAL

Pengenalan Bahasa C. Yuli Sun Hariyani D3 Teknik Telekomunikasi Institut Teknologi Telkom

Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN

BAB 8 Argumen dari Command-line

Pernyataan Bersyarat (Conditional Statement)

BAB I TUJUAN DAN LANDASAN TEORI

MODUL 4 PERULANGAN A. TUJUAN

Pengantar dalam Bahasa Pemrograman Turbo Pascal

RANGKUMAN APLIKASI PENGOLAHAN DATABASE (Menggunakan Microsoft Access 2007)

Contoh Program C++ Sederhana. Script Program : #include<conio.h> #include<stdio.h> main() { cout<< Selamat Datang Di Lab H <<endl;

TUGAS PENDAHULUAN MODUL I PERKENALAN MIKU, COMPILER BAHASA C, DAN STANDARD INPUT-OUTPUT

Indentifier, Keywords, Variable, Tipe Data dan Operator. Ramos Somya, S.Kom., M.Cs.

P - 3 Bab 2 : Pengantar Pemrograman C

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

Sedangkan bentuk umum pendefinisian fungsi adalah : Tipe_fungsi nama_fungsi(parameter_fungsi) { statement statement... }

MODULAR (FUNGSI)

ALGORITMA (2) Mengupas Kentang

Algoritma Pemrograman. Fery Updi,M.Kom

Transkripsi:

Penjelasan Sal Prgramming Struktur Sal Setiap sal terdiri atas 4 bagian, deskripsi sal, frmat input/utput, cnth input/utput dan biasanya terdapat penjelasan cnth input/utput. Deskripsi sal berisi penjelasan mengenai permasalahan yang harus diselesaikan leh peserta. Frmat input/utput berisi penjelasan tentang frmat input yang digunakan leh juri untuk menguji kebenaran prgram peserta. Pada bagian ini terdapat batasan batasan input yang harus ditangani peserta. Input yang diberikan leh juri pasti akan sesuai dengan frmat input. Cnth input/utput adalah cnth cnth input yang akan diberikan leh juri dan cnth cnth utput yang tepat. Hal ini ditujukan agar peserta bisa memahami maksud sal dan frmat input/utputnya. Cnth input/utput tidak bertujuan untuk menguji kebenaran prgram peserta. Jika prgram peserta menghasilkan utput yang benar untuk cnth input/utput, bukan berarti peserta pasti benar. Tetapi jika peserta tidak mengikuti frmat input utput, pasti jawaban peserta akan dinilai salah. Penjelasan cnth input/utput bertujuan untuk menjelaskan hubungan antara cnth input dan cnth utput sesuai dengan deskripsi sal. Ini bertujuan agar peserta lebih memahami deskripsi permasalahan. Cnth Sal Berikut cnth sal prgramming dan cnth penyelesaiannya. Input A + B - C Diberikan 3 buah bilangan bulat, A, B, dan C, tentukan hasil perasi matematika A + B C! Input dimulai dengan satu integer T (T <= 1000) yang menunjukkan jumlah testcase yang akan diberikan. Setiap case akan terdiri dari 1 baris yang terdiri dari 3 integer A, B, dan C (-1000 <= A, B, C <= 1000). Output Sample Input 3 Untuk setiap case, cetak hasil dari A + B C dalam satu baris!

2 3 4-1 -3-7 5 10 0 Sample Output 1 3 15 Penjelasan : 1. Case pertama 2 + 3-4 = 5 4 = 1 2. Case kedua -1 + (-3) (-7) = -4 (-7) = 3 3. Case ketiga 5 + 10 0 = 15 0 = 15 Salah satu cnth prgram C/C++ yang benar untuk menyelesaikan masalah tersebut adalah #include <stdi.h> int main(){ int t; scanf("%i",&t); fr(int i=1;i<=t;i++){ int a, b, c; scanf("%i %i %i",&a,&b,&c); printf("%i\n",a + b - c); return 0; Perhatikan di frmat input disebutkan bahwa T 100 dan -1000 A, B, C 1000, ini adalah batasan input. Peserta tidak perlu melakukan validasi input lagi karena data uji juri yang diinputkan sudah dipastikan berada pada batasan input yang disebutkan di sal. Cara Penjurian Penjurian jawaban peserta tidak dilakukan dengan melihat detail dari isi prgram peserta melainkan dengan menjalankan prgram peserta dengan data uji input (masukan) yang dimiliki juri, lalu membandingkan utput atau keluaran dari prgram peserta dengan utput dari jawaban juri. Jadi, penjurian tidak akan memperhitungkan surce cde dari jawaban peserta, tetapi hanya hasil utput dari prgram peserta ketika dijalankan dengan data uji dari juri. Jenis jenis jawaban yang dianggap ada adalah sebagai berikut : a. COMPILE ERROR, prgram peserta tidak bisa dicmpile dikmputer juri. b. WRONG ANSWER, utput peserta (file *.ut) berbeda dengan utput juri (file *.ans). c. RUNTIME ERROR, prgram peserta mengalami crash pada saat dijalankan dengan data uji juri (file *.in). Hal ini biasanya disebabkan kesalahan akses array atau pembagian dengan 0 atau yang lainnya.

Ranking d. TIME LIMIT EXCEED, prgram peserta memerlukan waktu yang melebihi batas waktu yang telah ditentukan leh juri untuk menglah data uji dan menghasilkan utput. e. MEMORY LIMIT EXCEED, prgram peserta memerlukan memry yang melebihi batas memry yang ditentukan leh juri untuk menglah data uji dan menghasilkan utput. f. ACCEPTED, prgram peserta benar. Ranking peserta diurutkan berdasarkan jumlah sal yang berhasil dislved (ACCEPTED). Untuk peserta yang memiliki jumlah ACCEPTED yang sama akan diurutkan berdasarkan ttal penalti waktu terkecil. Ttal penalti waktu adalah ttal waktu pengiriman jawaban (relatif terhadap waktu kntes dimulai) untuk setiap jawaban yang ACCEPTED ditambah dengan 20 menit untuk setiap jawaban yang salah pada jawaban yang telah ACCEPTED. Ilustrasi cara perhitungan penalti waktu: Tim 1 mengirimkan jawaban sal A pada menit ke 69 (terhitung dari awal kntes dimulai) dan mendapatkan status ACCEPTED. Maka penalti waktu untuk Tim 1 adalah 69. Jika sebelumnya Tim 1 pernah mengirimkan dua kali jawaban untuk sal A dan tidak berhasil mendapatkan ACCEPTED (sebelum pengiriman ketiga pada menit 69 yang akhirnya ACCEPTED), maka ttal penalti waktu ketika sal A berhasil diselesaikan adalah 69 + 2 * 20 = 109. Pin yang didapat peserta adalah jumlah jawaban benar peserta dikali 20 lalu dikurangi dengan peringkat peserta berbanding dengan jumlah peserta lain yang memiliki jumlah jawaban benar yang sama dengan peserta tersebut dikalikan 20. POIN = (JB * 20) ((PJB 1) / JJB) * 20, dimana POIN = Jumlah pin yang diterima peserta JB = Jumlah jawaban peserta yang benar (ACCEPTED) JJB = Jumlah peserta yang memiliki JB yang sama dengan peserta tersebut PJB = Peringkat peserta berbanding dengan JJB Cnth Ranklist Rank Team Slved Time A B C Att / Slved 1 Gajah 3 130 2/20 1/30 2/40 5/3 2 Singa 3 160 3/10 1/30 4/20 8/3 3 Kuda 2 25 1/10 10/- 1/15 2/2 4 Zebra 2 30 1/12 1/18-2/2 5 Ular 2 80 1/40 2/20-3/2 6 Burung 2 130 1/70 3/- 3/20 6/2 7 Naga 1 50 3/- 2/- 1/50 6/1 Cara membaca table Rank : Ranking peserta

Team : Nama tim peserta Slved : Jumlah jawaban peserta yang benar Time : Waktu penalti peserta A B C : Status peserta untuk setiap sal (Sal A, B dan C) yaitu jumlah jawaban yang dikirimkan peserta untuk sal tersebut dan waktu yang diperlukan leh peserta untuk menjawab sal tersebut (jika ACCEPTED baru dicatat) dalam hitungan menit. Att / Slved : Jumlah jawaban yang dikirim peserta berbanding jumlah jawaban benar Beberapa hal yang perlu diperhatikan dari cnth ranklist diatas Cara penilaian pin karena pin ini yang akan digunakan sebagai perhitungan tim yang akan lls ke semifinal. Cara penilaian pin telah dijelaskan diatas. Pada cnth diatas, tim Ular berhasil menjawab 2 sal yaitu sal A dan B dan peringkat tim Ular berdasarkan tim lain yang menjawab 2 sal juga adalah peringkat 3. Jumlah peserta yang berhasil menjawab 2 sal adalah 4, Sehingga pin yang didapatkan tim Ular Pin = (JB * 20) ((PJB 1) / JJB) * 20 = (2 * 20) ((3 1) / 4) * 20 = 40 10 = 30 Waktu penalti. Pada cnth diatas, tim Singa mendapatkan ACCEPTED pada sal A, B dan C. Untuk sal A, tim Singa membutuhkan 3 kali menjawab baru bisa mendapatkan ACCEPTED. Berarti 2 jawaban pertama mereka salah dan jawaban ketiga ACCEPTED pada menit 10. Sehingga waktu penaltinya untuk sal A menjadi 10 + (2 * 20) = 50. Untuk sal B, tim Singa mendapatkan ACCEPTED pada jawaban mereka yang pertama yaitu pada menit 30, sehingga waktu penaltinya menjadi 30. Untuk sal C, tim Singa membutuhkan 4 kali menjawab baru bisa mendapatkan ACCEPTED. Berarti 3 jawaban pertama mereka salah dan jawaban keempat ACCEPTED pada menit 20. Sehingga waktu penaltinya menjadi 20 + (3 * 20) = 80. Sehingga waktu penalti keseluruhan untuk tim Singa adalah 50 + 30 + 80 = 160. Perlu diingat bahwa waktu penalti hanya akan dicatat dari sal yang telah mendapatkan ACCEPTED. Sebagai cnth, perhatikan tim Kuda. Kesalahan yang sering terjadi pada pemula Output yang tidak seharusnya ada Apapun yang dicetak leh prgram kita ke standard utput (stdut) adalah bagian dari utput prgram kita yang nantinya akan diperiksa. Misalnya kita diminta untuk membuat prgram yang membaca sebuah integer dan mencetak integer yang nilainya lima kali lebih besar dari integer input. Cnth input 10 Cnth utput 50

Prgram C/C++ yang dibuat: int main() { int x; printf( "Input Angka: " ); scanf( "%d", &x ); printf( "%d\n", x * 5 ); return 0; Jika prgram di atas diinput dengan 10 Maka utput prgram tersebut adalah Input Angka: 50 Teks Input Angka: akan dianggap sebagai bagian dari utput. Jika teks tersebut tidak diharapkan ada sesuai penjelasan frmat input/utput, maka prgram peserta akan dikategrikan sebagai WRONG ANSWER meskipun angka yang diminta benar (50). Oleh karena itu, JANGAN mencetak utput yang tidak perlu meskipun hal itu bertujuan untuk menjelaskan prses prgram. Yang perlu dicetak sebagai utput telah diatur pada bagian utput pada sal. Prgram yang benar adalah sebagai berikut: int main() { int x; scanf( "%d", &x ); printf( "%d\n", x * 5 ); return 0; Sebagai catatan, untuk pencetakan utput, bleh dilakukan per test case. Jadi, misalkan pada prgram terdapat 5 test case, maka setelah test case pertama diinputkan, utput bleh langsung ditampilkan. Demikian seterusnya hingga test case ke lima. (Java) Penggunaan GUI (JPanel, dsb) Prgram harus membaca input dari standard input (stdin) dan mengutput ke standard utput (stdut) yang keduanya ada di cnsle (bukan GUI). Penggunaan GUI bisa menyebabkan prgram tersebut TIME LIMIT EXCEED (juri tidak memberikan input ke GUI yang ditampilkan sehingga prgram terus menunggu). Hal-Hal Yang Harus Diperhatikan

Saat submit jawaban jangan lupa untuk menyamakan bahasa yang dipakai dengan file yang dikirim Agar lebih aman, gunakanlah template yang telah disediakan(terdapat di web penyisihan ilpc), anda tinggal mengubahnya sesuai kebutuhan. Bahasa Pascal: Jangan menggunakan uses crt, gunakanlah "uses wincrt" Jangan menggunakan "clrscr" Jangan menggunakan readln / readkey (atau sejenisnya) Jika maksud dari penggunaan perintah ini adalah menghentikan prgram pada akhir eksekusi, maka saat submit perintah ini harus dihapus terlebih dahulu. Karena akan menghasilkan Time Limit Exceed (prgram akan menunggu user memberi input melalui keybard, yang tidak akan dilakukan juri). Bahasa C/C++: Jangan menggunakan vid main() Cmpiler yang juri gunakan mengharuskan fungsi main() memiliki return value berupa int, sehingga harus ditulis dengan int main(). Jangan menggunakan getch() atau system( pause ) Jika maksud dari penggunaan perintah ini adalah menghentikan prgram pada akhir eksekusi, maka saat submit perintah ini harus dihapus terlebih dahulu. Karena getch() dapat menyebabkan Time Limit Exceed (prgram akan menunggu user memberi input melalui keybard, yang tidak akan dilakukan juri) dan system( pause ) akan menyebabkan Wrng Answer (ada utput tambahan Press any key t cntinue... yang tidak diharapkan). Jangan memanggil fungsi tanpa meng-include header yang diperlukan Jika anda menggunakan IDE DevC++, maka anda harus berhati-hati karena DevC++ bisa meng-include secara default beberapa header yang diperlukan leh prgram anda, tapi tidak demikian jika anda mengcmpile dari cmmand line (yang dilakukan juri). Sehingga submissin yang seperti ini akan mendapatkan NO Cmpile Errr. Jangan menggunakan strrev, fflush(stdin) Karena juri mengcmpile dari cmmand line, maka jika menggunakan perintah ini akan mendapatkan NO-Cmpile Errr. Bahasa Java: Jangan menggunakan Package Karena jika menggunakan package prgram bisa dicmpile tapi tidak bisa dirun, sehingga akan mendapatkan NO Runtime Errr. Pastikan nama class utama adalah "class Main", bukan "Public class Main".