TIF 4108
Dasar Pemrograman
Komputer
Soal-soal latihan TIF UB - 2010
int x,y,z,w;
x=scanf("%d %d %d",&y,&z,&w);
1. Apa yang terjadi jika pada program diatas
dimasukkan 2 buah nilai integer dari keyboard?
Input - Output
dimasukkan 2 buah nilai integer dari keyboard? 2. Berapa nilai x jika input dari keyboard 3 buah
char ss1[40]; char ss2[40];
x=scanf(”%s %s”,ss1,ss2);
Input - Output
1. Apa isi variabel ss1 dan ss2, jika dari keyboard diinputkan string ”Selamat Pagi Pak” ?
char ss[40];
scanf(”%4s”, ss);
1. Apa isi variabel ss, jika dari keyboard diinputkan string
”Selamat Pagi” ?
char ch;
ch = getchar();
Input - Output
ch = getchar();
2. Apa isi variabel ch, jika dari keyboard diinput kan: “TIF-FTUB”
char ch1, ch2;
ch1 = getchar(); //masukkan kata TIF-FTUB!
ch2 = getchar();
3. Apa isi variabel ch1 dan ch2, jika dari keyboard diinputkan :
Buatlah program untuk menerima input dari keyboard berupa nilai : Tugas Kelompok (NTK) Nilai Kuis (NK)
Input - Output
Nilai Kuis (NK)Nilai UAS (NUAS)
Hitung dan tampilkan nilai akhir dengan rumus :
#include <stdio.h> int main() { char nama[40]; int nim; char jk; printf("Nama:"); scanf("%[^\n]",nama); printf("Nim:"); scanf("%d",&nim);
Input Output
printf("Nim:"); scanf("%d",&nim); printf("Jenis Kelamin (L/P):"); jk=getchar(); return 0; }Perhatikan Program di atas!
Setelah dimasuki nama dan nim dari keyboard, program langsung keluar. Instruksi jk=getchar() seolah-olah tidak pernah
#include <stdio.h> int main(){
char ss[]="10 % 3 = 1\n";
char str[]="Selamat Datang di Binus\n"; printf(ss);
Input - Output
printf("%s",ss); printf(str); printf("%s",str); return 0; }Jelaskan fungsi/kegunaan dari fungsi-fungsi standar berikut: sscanf sprintf fflush
Input - Output
fflush cprintf cscanfJelaskan maksud dari nama berikut:
stdin
stdout
Jika semua variabel berikut bertipe integer, maka tentukan nilai A.
B=23; C=12; D=32; E=0;
1. A = B && E;
2. A = B & C;
Operasi Aritmetika & Logika
2. A = B & C; 3. A = C || D; 4. A = B | D; 5. A = B > 2; 6. A = B >> 2; 7. A = C < 3; 8. A = C << 3; 9. A = B = C; 10. A = B == C;
Sebutkan contoh operator yang termasuk : 1. Unary Operator
2. Binary Operator 3. Ternary Operator
Operasi Aritmetika & Logika
Sebutkan beberapa operator yang bisa
berfungsi sebagai unary dan binary operator, dan berikan contohnya.
#include <stdio.h> int main(){
int x=10, y=6; x *= 5 + y;
y += y &= x;
Operasi Aritmetika & Logika
y += y &= x;
printf(“x = %d\ny = %d",x,y); return(0);
}
Apakah keluaran yang akan ditampilkan di layar monitor bila program di atas berhasil dieksekusi ?
#include <stdio.h> #include <iostream.h> int main () { float x; x = 7/2; printf("x = %f\n",x); x = 7.0/2; printf("x = %f\n",x);
Operasi Aritmetika & Logika
Bagaimanakah hasil keluaran yang ditampilkan di layar monitor dari program di atas? Jelaskan!
x = 7.0/2; printf("x = %f\n",x); x = 7/2.0; printf("x = %f\n",x); x = 7.0/2.0; printf("x = %f\n",x); x = (float)7/2; printf("x = %f\n\n\n",x); system("PAUSE"); return(0); }
#include <stdio.h> #include <iostream.h> int main () {
int y=33, x=45;
y = y && x; printf("y = %d\n",y); y = y & x; printf("y = %d\n",y); y = y || x; printf("y = %d\n",y);
Operasi Aritmetika & Logika
y = y || x; printf("y = %d\n",y); y = y | x; printf("y = %d\n",y); y &= y = x; printf("y = %d\n",y); y ^= y = x; printf("y = %d\n",y); system("PAUSE");
return(0); }
Apakah keluaran yang akan ditampilkan di layar monitor bila program di atas berhasil dieksekusi?
#include <stdio.h> #include <iostream.h> int main () { int y, n; n =10; y=++n; printf("y = %d\n",y);
Operasi Aritmetika & Logika
printf("y = %d\n",y); n =10; y=n++; printf("y = %d\n",y); n =10; n++; printf("n = %d\n",n); system("PAUSE"); return(0); }
Apakah keluaran yang akan ditampilkan di layar monitor bila program di atas berhasil dieksekusi ?
z = (n > 0) ? f : b;
Perhatikan conditional expression di atas,
bolehkah variabel f dan b memiliki tipe data yang berbeda?
Operasi Aritmetika & Logika
Buat program untuk menginput nilai IPK mahasiswa dan memberikan penilaian : 3.5 - 4.0 Cum Laude 3.0 - <3.5 Sangat Memuaskan
Seleksi
3.0 - <3.5 Sangat Memuaskan 2.5 – <3.0 Memuaskan 2.0 – <2.5 KurangDibawah 2.0 Sangat Kurang Gunakan perintah if / if-else !
Seleksi
Buatlah program komputer untuk menentukan nilai-huruf dari
sebuah matakuliah, yang nilainya terdiri dari: nilai tugas, nilai kuis dan nilai UAS. Bila nilai-kuis > UAS, nilai akhir dihitung dg rumus:
• Nilai akhir = 40% (nilai-kuis) + 40% (UAS) + 20% (tugas)
Bila nilai UAS>= nilai-kuis, nilai akhir dihitung dg rumus:
• Nilai akhir = 30% (nilai-kuis) + 50% (UAS) + 20% (tugas) Sedangkan konversi nilai-akhir menjadi nilai huruf
Sedangkan konversi nilai-akhir menjadi nilai huruf menggunakan tabel berikut:
Nilai Akhir Bobot Nilai Huruf
85 - 100 4 A : Sangat Baik 75 - <85 3 B : Baik
65 - <75 2 C : Cukup 50 - <65 1 D : Kurang
Perhatikan potongan program dibawah ini: if(n > 0) if(a > b) z = a; else
Seleksi
else z = b;• Keyword else berpasangan dengan if yang mana ?
• Perbaiki penulisan potongan program di atas agar terbaca jelas algoritmanya!
Buat program untuk menampilkan bilangan ganjil dari 11 sampai 188, dengan menggunakan :
for while
Pengulangan
while
Diasumsikan hari 1 menyatakan senin, 2 selasa, 3 -rabu,…, 7 – minggu. Buatlah sebuah program untuk menampilkan angka hari sebanyak n yang diinput dari keyboard. Perhatikan pola berikut :
n = 3 1 2 3
Pengulangan
1 2 3 n = 7 1 2 3 4 5 6 7 n = 10 1 2 3 4 5 6 7 1 2 3Buatlah program untuk menampilkan gambar
seperti di bawah ini, dengan n variabel integer yang nilainya didapat dari keyboard input. Gunakan for, while atau do-while.
Pengulangan
* * * * * * * * * * * * * * * n nBuatlah program untuk menampilkan gambar seperti di bawah ini, dengan n variabel integer yang nilainya didapat dari keyboard input. Gunakan for, while atau do-while.
Pengulangan
* * * * * * * * * * * * * * * n nfor (i=k; i >= n; i--) printf(”TIF-FTUB\n”);
1. Jika k < n, berapa kali kata TIF-FTUB dicetak di layar monitor ?
Pengulangan
layar monitor ?
2. Jika k=n, berapa kali kata TIF-FTUB dicetak di layar monitor ?
3. Jika k > n, berapa kali kata TIF-FTUB dicetak di layar monitor ?
Dapatkah infinite/forever loop ditulis menggunakan
for, while, dan do-while? Ilustrasikan.
Jika p = pernyataan dan e = ekspresi, ubahlah loop
for berikut menjadi loop while.
Pengulangan
for berikut menjadi loop while.
a. for(; e ;) p; b. for(; ; e) p;
Bandingkan dua buah sintaks for berikut ini :
for (i=0, j=1; i<8; i++, j++) printf("%d + %d = %d\n", i, j, i+j);
Pengulangan
Jelaskan output dan perbedaan dua potongan program di atas!
#include <stdio.h> int main()
{
APA OUTPUT PROGRAM BERIKUT ??
Awas! Ada titik koma
Pengulangan
{ int x,y; for(x=1;x<=3;x++) for (y=3;y>=1;y--) printf("%d %d ",x,y); return 0; } #include <stdio.h> int main() { int x,y; for(x=1;x<=3;x++); for (y=3;y>=1;y--) printf("%d %d ",x,y); return 0; }#include <stdio.h> int main()
APA OUTPUT PROGRAM BERIKUT ??
Awas! Ada titik koma
Pengulangan
{ int x,y; for(x=1;x<=3;x++) for (y=3;y>=1;y--); printf("%d %d ",x,y); return 0; } #include <stdio.h> int main() { int x,y; for (x=1;x<=3;x++); for (y=3;y>=1;y--); printf("%d %d ",x,y); return 0;Jelaskan output program berikut ini :
#include <stdio.h> int main(){
int nilai = 0, jumlah = 0;
Pengulangan
int nilai = 0, jumlah = 0; while(nilai < 10){ jumlah += nilai; printf(”\nNilai =%d, Jumlah =%d”, nilai++, jumlah); } return 0; }
Jelaskan output program berikut ini : #include<stdio.h> int main() { long bil, tmp, x=1;
Pengulangan
long bil, tmp, x=1;printf(”\nInput bil:”); scanf(”%d”, &bil); tmp=bil;
while(bil >= 1) x*=bil--;
printf(”\n%ld ! = %ld”,tmp, x); return 0;
int x;
for(x=0 ; x<10 ; x++) printf("Hello\n");
Berapa kali kata Hello dicetak di layar monitor oleh setiap potongan program di bawah ini?
int x=0; for( ; ; ){ if(x<10)
Pengulangan
int x=0; for(; x<10; x++) printf("Hello\n"); int x=0; for( ; ; x++){ if(x<10) printf("Hello\n"); else break; } if(x<10) printf("Hello\n"); else break; x++; }Apa output dari program di bawah ini?
#include <stdio.h> int main(){
int x,y,z;
for (x=0; x<4; x++){
for (y=0; y<3; y++){
for (z=0; z<3; z++){
Pengulangan
for (y=0; y<3; y++){
for (z=0; z<3; z++){ if (z==2) break; } printf("Selamat\n"); } printf("Datang\n"); } printf("di TIF-FTUB\n"); getch(); return(0); }
Buatlah program untuk
mengambil 10 bilangan integer dari keyboard dan menyimpannya dalam array,
mencari bilangan terbesar dalam array tersebut
mencari bilangan terkecil dalam array tersebut
menghitung nilai rata-rata dari isi array tersebut
menampilkan hasil setiap pencarian dan perhitungan di
Pointer, Array, String
menampilkan hasil setiap pencarian dan perhitungan di atas pada layar monitor
Buatlah program untuk:
mengambil string dari keyboard
membalik susunan karakter dalam string tersebut
menampilkan string yang sudah dibalik ke layar monitor Contoh: string yang diinputkan : KASUR
Buat program untuk menjumlahkan 2 matriks dibawah ini. Gunakan Array dimensi 2
Pointer, Array, String
• Buat program untuk mengalikan 2 matriks dibawah ini. Gunakan Array dimensi 2
Pointer, Array, String
Perhatikan definisi array dibawah ini sbb:
int a[3][4]={1, 3, 2, 4, 5, 7, 6, 8, 9,11, 12 }; int b[3][3]={{1, 2}, {3, 4, 5} ,{ 7 }};
Berapa nilai dari :
1. a[1][1]
2. b[2][2]
3. a[2][3]
4. b[0][1]
1.
Perhatikan dua pernyataan di bawah ini:
char str[] = ”Selamat Datang di UB”; char *str = ”Selamat Datang di UB”;
Jelaskan perbedaan kedua identifier str tersebut
Pointer, Array, String
Jelaskan perbedaan kedua identifier str tersebut diatas !
2.
Perhatikan dua pernyataan di bawah ini:
char *name[] = {”Ali”,”Ani”,”Tono”};
char name[][10] = {”Ali”,”Ani”,”Tono”};
Jelaskan perbedaan kedua identifier name tersebut diatas !
Jelaskan dengan memberikan contoh program
sederhana, fungsi / cara kerja dari library function
yang ada di <string.h> berikut:
strchr(char *s, int c);
Pointer, Array, String
strchr(char *s, int c);
strrchr(char *s, int c);
Jelaskan beberapa fungsi di <ctype.h>,
berikut:
isalpha(int c);
isupper(int c);
islower(int c);
Pointer, Array, String
islower(int c); isdigit(int c); isalnum(int c); isspace(int c); toupper(int c); tolower(int c);
Buatlah program dengan beberapa fungsi berikut:
Fungsi untuk menginputkan 10 bilangan ke dalam array
Fungsi untuk mencari bilangan terbesar dalam array tersebut
Fungsi
tersebut
Fungsi untuk mencari bilangan terkecil dalam array tersebut
Fungsi untuk menampilkan :
10 bilangan tersebut
Perbaiki program berikut sehingga bisa digunakan untuk menukar 2 buah karakter
void Tukar(char A, char B ){ char C ; C = A; A = B, B = C;
Fungsi
C = A; A = B, B = C; } int main(){ char X, Y ; X = ‘S’; Y = ‘D’; Tukar(X, Y); printf(“X = %c Y= %c”, X, Y); return 0;#include <stdio.h>
void bagi(float x, int y, float *z){ if(y==0) return;
*z=x/y; }
float div(float x, int y){ if(y!=0) return(x/y); } Fungsi tidak mengembalikan nilai Fungsi yang
Fungsi
int main(){ float f,a=12.75; int b=5; bagi(a,b,&f); printf("%f dibagi %d = %f\n", a,b,f); b=3; f=div(a,b); printf("%f dibagi %d = %f\n", a,b,f); return 0; } Fungsi yang mengembalikan nilai Jelaskan apa perbedaan keyword return yang ada pada fungsi bagi denganreturn yang ada pada fungsi div ?
#include <stdio.h>
void bagi(float x, int y, float *z){ if(y==0) return;
*z=x/y; }
float div(float x, int y){ if(y!=0) return(x/y);
}
int main(){
1. Bolehkah pada fungsi bagi tidak menggunakan keyword
return, jika boleh silahkan
programnya dirubah ?
Fungsi
int main(){
float f,a=12.75; int b=5; bagi(a,b,&f); printf("%f dibagi %d = %f\n", a,b,f); b=3; f=div(a,b); printf("%f dibagi %d = %f\n", a,b,f); return 0; programnya dirubah ? 2. Bolehkan pada fungsi div
tidak menggunakan keyword return ?
#include <stdio.h> #include <stdio.h> int main() { int x,y; for(x=1; x<=3; x++){ int x=5; printf("x=%d ",x++); Perhatikan lingkup variabel x pada program disamping.
Fungsi
printf("x=%d ",x++); for(y=0; y<x; y++){int x=20; printf("x=%d ",x++); } printf("\n"); } return 0; } disamping. Apakah output dari program disamping ?
Menara Hanoi
Pilar Kiri Pilar
Kanan Pilar Tengah
Fungsi
1 2 3 4 KananMenara Hanoi
Pindahkan n-piringan dari pilar-kiri ke pilar-kanan dengan pilar-tengah sebagai antara. Piringan yang berada dipilar kiri tersusun sedemikian rupa sehingga menyerupai menara, yaitu piringan yang lebih kecil
Fungsi
menyerupai menara, yaitu piringan yang lebih kecil selalu berada diatas piringan yang lebih besar. Pada proses pemindahan piringan-piringan tersebut, pola susunan menara harus selalu dijaga.
Alur pemecahan secara rekursif :
1. Pindahkan (n-1) piringan-piringan atas ke pilar antara. 2. Pindahkan piringan terakhir ke pilar tujuan.
Menara Hanoi
Simulasikan pemindahan dengan :
3 piringan
4 piringan
Fungsi
4 piringan
5 piringan