Struktur Data (T0026) Genap 2010/2011 Topik

advertisement
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
Download