Struktur Data (T0026) Tugas #1 Genap 2010/2011 (kelompok, max. 3 orang) Topik : Preliminaries, Stack Mulai Batas : 25 Februari 2011 : 2 Maret 2011 STANDARD PROBLEMS A1. Perhatikan prototype fungsi berikut: void stripe(char s[]); Fungsi stripe memiliki empat parameter: char s[] : string kata input. Fungsi stripe bertugas untuk mengubah setiap huruf pada string s[] menjadi huruf besar dan huruf kecil (selang-seling). Contoh: s[] = “struktur”, akan menjadi s[] = “StRuKtUr”. Buat implementasi dari fungsi tersebut. A2. Buatlah fungsi yang menerima integer N sebagai input dan menentukan apakah N adalah bilangan prima atau bukan. Jika N adalah bilangan prima maka output dari fungsi ini adalah 1, jika bukan maka outputnya 0. Nilai N yang akan diujikan pada fungsi ini berkisar dari 1 hingga 1000 (tidak perlu validasi input). A3. Buatlah program yang menerima input integer N dan sebuah array of integer (dengan N elemen), dan memberikan output berupa jumlah pasangan bilangan pada array tersebut yang total nilainya genap. Contoh. Input : 5 2 5 7 8 10 (5 elemen: 2, 5, 7, 8, 10) Output :4 (yaitu: 2-8, 2-10, 5-7, 8-10) A4. Buatlah implementasi dari struktur data yang memiliki operasi sebagai berikut: is_full() : bernilai 1 jika struktur data ini sudah menerima perintah push sebanyak ukuran maksimal data, sebaliknya 0. is_empty() : bernilai 1 jika tidak ada data pada struktur data tersebut, sebaliknya 0. push(x) : menyimpan sebuah nilai integer x ke dalam struktur data. Jika is_full() bernilai 1, maka abaikan perintah ini. peek() : mengembalikan nilai data yang lebih dulu di-push di antara data yang masih ada. pop() : menghapus data yang lebih dulu di-push di antara data yang masih ada. Jika is_empty() bernilai 1, maka abaikan perintah ini. Pastikan jumlah push yang bisa dilakukan adalah minimal sebanyak 100 kali dengan kompleksitas untuk masing-masing fungsi adalah O(1). Buat implementasi dari masing-masing fungsi di atas. Tugas #1 Suhendry Effendy Struktur Data (T0026) Genap 2010/2011 OPTIONAL PROBLEMS B1. Perhatikan prototype fungsi berikut: void mul(int a[][ 50], int b[][ 50], int c[][50], int n); Fungsi mul memiliki empat parameter: int a[][50] : matrix input A, dengan ukuran n x n. int b[][50] : matrix input B, dengan ukuran n x n. int c[][50] : matrix C yang merupakan hasil perkalian matrix A dan B. int n : ukuran matrix A, B dan C. Fungsi mul bertugas untuk mengalikan matrix A dengan B (yang masing-masing berukuran n x n) dan menyimpan hasilnya di matrix C (yang tentunya juga akan berukuran n x n). Buat implementasi dari fungsi tersebut. B2. Buatlah fungsi yang menerima integer N sebagai input dan menentukan apakah N adalah bilangan prima atau bukan. Jika N adalah bilangan prima maka output dari fungsi ini adalah 1, jika bukan maka outputnya 0. Nilai N yang akan diujikan pada fungsi ini berkisar dari 1 hingga 1000000000000 (1012). Hint : - Gunakan tipe data long long (integer 64-bit). - Uji program kamu dengan bilangan prima 999999999673. B3. Buatlah program yang menerima input sebuah kalimat yang tersusun atas huruf ‘a’..’z’ dan/atau spasi, kemudian cetak kalimat tersebut dengan aturan setiap kata dicetak terbalik. Contoh. Input : hari minggu ibu pergi ke pasar Output : irah uggnim ubi igrep ek rasap B4. Buatlah implementasi dari struktur data yang memiliki operasi sebagai berikut: is_full() : bernilai 1 jika jumlah data yang ada sudah mencapai maksimal jumlah data yang diizinkan, sebaliknya 0. is_empty() : bernilai 1 jika tidak ada data pada struktur data tersebut, sebaliknya 0. push(x) : menyimpan sebuah nilai integer x ke dalam struktur data. Jika is_full() bernilai 1, maka abaikan perintah ini. peek() : mengembalikan nilai data yang lebih dulu di-push di antara data yang masih ada. pop() : menghapus data yang lebih dulu di-push di antara data yang masih ada. Jika is_empty() bernilai 1, maka abaikan perintah ini. Pastikan jumlah data yang bisa ditampung dalam setiap saat (jumlah push – jumlah pop) adalah minimal sebanyak 100 data dengan kompleksitas masing-masing fungsi adalah O(1). Buat implementasi dari masingmasing fungsi di atas. ----Tugas #1 Suhendry Effendy