ALPRO
ALPRO
READLN;
END.
3.) Tulislah algoritma yang membaca tiga buah bilangan bulat, lalu
mengurutkan tiga buah bilangan tersebut dari nilai yang terbesar ke nilai
yang terkecil. Keluaran adalah tiga buah bilangan yang terurut.
Jawab :
BILANGAN KECIL KE BESAR
#include <iostream>
using namespace std;
main(){
int a, b, c, x;
cout<<"Masukkan a : ";
cin>>a;
cout<<"Masukkan b : ";
cin>>b;
cout<<"Masukkan c : ";
cin>>c;
if(b < a){
x = b;
b = a;
a = x;
}
if(c < a){
x = c;
c = a;
a = x;
}
if(c < b){
x = b;
b = c;
c = x;
}
cout<<"Bilangan setelah diurutkan : "<<a<<" "<<b<<" "<<c;
}
4.) Tulislah algoritma yang membaca panjang (integer) tiga buah
sisi sebuah segitiga ,a ,b , dan c, yang dalam hal ini a≤𝑏≤𝑐, lalu menentukan
apakah ketiga sisi tersebut membentuk segitiga siku-siku, segitiga lancip,
atau segi tiga tumpul (Petunjuk: gunakan hukum Phytagoras).
Jawab :
#include <iostream>
#include <math.h>
using namespace std;
main(){
int a=0,b=0,c=0,ab=0;
cout<<"Masukan Nilai A : ";cin>>a;
cout<<"Masukan Nilai B : ";cin>>b;
cout<<"Masukan Nilai C : ";cin>>c;
ab = (pow(a,2)) + (pow(b,2));
if(c%5==0) c = 1 + pow(c,2);
else c = pow(c,2);
if(c == ab){
cout<<"Segitiga Siku-siku";
}
if(c < ab){
cout<<"Segitiga Lancip";
}
if(c > ab){
cout<<"Segitiga Tumpul";
}
}
5.) Tulislah algoritma yang membaca sebuah karakter digit (‘0’..’9’)
lalu mengonversinya menjadi nilai integer (0..9). Misalnya, jika dibaca
karakter ‘5’, maka nilai konversinya ke integer adalah 5. Buatlah
masing-masing algoritma untuk dua keadaan berikut:
A) Karakter digit yang dibaca diasumsikan sudah benar terletak dalam
rentang ‘0’..’9’
Jawab :
#include <iostream>
using namespace std;
main(){
char a;
int b=0;
cout<<"Input Karakter Angka (1..9) : ";
cin>>a;
if(a=='1'){ b=1; cout<<b; }
else if(a=='2'){ b=2; cout<<b; }
else if(a=='3'){ b=3; cout<<b; }
else if(a=='4'){ b=4; cout<<b; }
else if(a=='5'){ b=5; cout<<b; }
else if(a=='6'){ b=6; cout<<b; }
else if(a=='7'){ b=7; cout<<b; }
else if(a=='8'){ b=8; cout<<b; }
else if(a=='9'){ b=9; cout<<b; }
else cout<<'tidak ada';
}
B.) Karakter yang dibaca mungkin bukan digit ‘0’..’9’. Jika karakter yang
dibaca bukan karakter digit, maka hasil konversinya diasumsikan bernilai -1.
Jawab :
#include <iostream>
#include <sstream>
using namespace std;
main(){
int a;
string b;
cout<<"Masukan Karakter Angka (1..9) : "; cin>>b;
istringstream convert(b);
if(!(convert>>a)){
a = -1;
}
if(a==1) cout<<a;
else if(a==2) cout<<a;
else if(a==3) cout<<a;
else if(a==4) cout<<a;
else if(a==5) cout<<a;
else if(a==6) cout<<a;
else if(a==7) cout<<a;
else if(a==8) cout<<a;
else if(a==9) cout<<a;
else {
a = -1;
cout<<a;
}
}
6.) Dalam bidang pengolahan citra (image processing), elemen
gambar terkecil disebut pixel (picture element). Nilai pixel untuk gambar
256 warna adalah dari 0 sampai 255. Operasi-operasi terhadap pixel
seringkali berada di luar rentang nilai ini. Jika ini kasusnya, maka nilai hasil
operasi harus dipotong (clipping) sehingga tetap berada di dalam interval
[0..25]. Jika nilai hasil operasi lebih besar dari 255, maka nilai tersebut
dipotong menjadi 255, dan bila negatif maka dipotong menjadi 0. Dibaca
sebuah nilai hasil operasi pengolahan citra, buatlah algoritma untuk
melakukan clipping tersebut.
Jawab :
algoritma
read(HasiOperasi)
else
if HasilOperasi < 0 then
Akhir <-- 0
else
Akhir <-- HasilOperasi
endif
endif
write(Akhir)
7.) Jika kita berbelanja di pasar swalayan/supermarket, nilai total belanja kita seringkali bukan
kelipatan pecahan rupiah yang berlaku. Misalnya, nilai total belanja adalah Rp19.212,-.
Andaikan saat ini pecahan rupiah yang berlaku paling kecil Rp25,-. Selain itu, juga ada pecahan
Rp50,- dan Rp100,-. Umumnya kasir pasar swalayan membulatkan nilai belanja ke pecahan yang
terbesar. Jadi Rp19.212,- dibulatkan menjadi Rp19.225,-. Hal ini jelas merugikan konsumen.
Misalkan Anda memiliki pasar swalayan yang jujur dan tidak merugikan pembeli, sehingga jika
ada nilai belanja yang bukan kelipatan pecahan yang ada, maka nilai belanja itu dibulatkan ke
pecahan terendah. Jadi, Rp19.212,- dibulatkan menjadi Rp19.200,-.
Tulislah Algoritma yang membaca nilai belanja ( integer) lalu membulatkannya ke nilai uang
dengan pecahan terendah.
Jawab :
Algoritma Pembulatan ke Terendah
program swalayan_jujur;
uses crt;
var
nilai_belanja1:integer;
nilai_belanja2:integer;
hemat :integer;
BEGIN
clrscr;
writeln(‘~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~‘);
writeln(‘~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~‘);
readln;
END.
8.) [poin 20] Suatu toko fotocopy berusaha meningkatkan layanan dengan pola sebagai berikut:
a.Jika seseorang yang ingin fotocopy sudah terdaftar sebagai pelanggan maka akan mendapat
potongan harga/lembar copy-nya Rp. 75 untuk jumlah copy kurang dari 100 lembar dan bila
lebih dari atau sama dengan 100 lembar diberikan potongan harga/lembar copynya Rp. 65, untuk
harga normal perlembar/copynya Rp. 80.
b.Jika seseorang belum terdaftar sebagai pelanggan maka akan mendapat potongan harga/lembar
copynya Rp. 70 untuk jumlah copy lebih dari atau sama dengan 200 lembar.
c.Hasil keluaran berupa jumlah lembar copynya, besar potongan harga yang diperoleh dan
jumlah bayarnya. Selesaikan permasalahan ini dengan menuliskan pseudocodenya!!
If-then-else
Page 9
Else