SubPerogram kasus 5.6
Membuat fungsi yang menghitung suku ke-n dari deret Fibonacci dengan menggunakan cara rekursif :
Kamis, 03 April 2014
SubProgram kasus 5.4
Membuat fungsi perkalian 2 bilangan bulat dengan menggunakanoperator penjumlahan :
- Algoritma mencetak bilangan dari 1 sampai 9
- Naik :
- Turun :
- C++ dan Raptornya :
Kasus 4.8
Algoritma
1. Analisisnya
Menghitunglah axb dengan metode penjumlahan
2. Identifikasi
Input :a,b,jumlah
Output :jumlah
3. Algoritmanya
Deklarasi
a,b,jumlah ( dalam integer )
Kasus 4.7
Algoritma
1. Analisisnya
Menghitung nilai dari dengan x bilangan real dan y bilangan bulat.
2. Identifikasi
Input : x,y,i
Output : hasil
3. Algoritmanya
Deklarasi :
int x, y, i;int pangkat = 1;
Deskripsinya :
for (i = 1; i<=y; i++)
pangkat *= x;
Kasus 4.4
Algoritma
1. Analisisnya
Menghitung rata-rata dari integer positif
2. Identifikasi
Input : n,jumlah,ratarata
Output : hasil
3. Algoritmanya
Deklarasi :
int n = 1, jumlah = 0, x;
float rata;
Deskripsinya :
while (x>0)
rata = (float)jumlah/(n-1);
Kasus 4.3
1. Analisisnya
Menccari nilai rata-rata dari n bilangan bulat posititf
2. Identifikasi
Input : i,n,jumlah,x
Output : hasil
3. Algoritmanya
Deklarasi :
i,n,jumlah,x ( integer )
Deskripsinya :
for(i=1; i<=n; i++)
Kasus 4.2
Algoritma
1. Analisisnya
Mencetaklah bilangan ganjil dari 0 - 10
2. Identifikasi
Output : hasil
3. Algoritmanya
Deskripsinya :
i =1;
while (!(i>10))
cout << i << endl;
i =i+2
Kasus 4.1
Algoritma
1. Analisisnya
Mencetaklah bilangan 1 sampai 4
2. Identifikasi
Output : hasil
3. Algoritmanya
Deskripsinya :
for(int C=1;C<5;C++)
Minggu, 30 Maret 2014
KASUS ALPRO MINGGU KE 2
Kasus 2.1
Algoritma :
1. Analisis :
Menghitung jumlah dari 3 bilangan bulat
2. Identifikasi :
Input : a, b,c
Output : jumlah
3. Algoritmanya
a,b,c ( dalam integer )
jumlah ( integer )
Deskripsinya :
jumlah = a+b+c
1. Analisis :
Menghitung hasil kali dari 2 buah bilangan
2. Identifikasi :
Input : a, b
Output : jumlah
3. Algoritmanya
Deklarasi :
a,b ( dalam integer )
jumlah ( integer )
Deskripsinya :
jumlah = a*b
Flowchart :
1. Analisis :
Menghitung konversi dari m ke cm dan inci
2. Identifikasi :
Input : m
Output :cm dan inci
3. Algoritmanya
Deklarasi :
m,cm, inci ( dalam real )
Deskripsinya :
cm = m*100
inci = m*100/2.54
5.5 Sorting By Diminishing Increment
soal
diberi satu set acak memerintahkan nomor n mengurutkan mereka ke dalam urutan non-menurun menggunakan kerang mengurangi metode penyisipan kenaikan.
deskripsi :
1. membangun array a [1 ... n] elemen n
2. mengatur ukuran kenaikan inch ke n
3. sedangkan ukuran kenaikan lebih besar dari satu melakukan
a) menurunkan inci dengan faktor 2
b) untuk semua rantai inci yang akan diurutkan pada kesenjangan inc lakukan
b.1 menentukan posisi k dari anggota kedua rantai saat ini
b.2 sementara ujung rantai saat ini belum mencapai, lakukan
2a. menggunakan mekanisme penyisipan untuk menempatkan x = a [k] di tempat
2.b bergerak ke atas rantai yang sekarang dengan meningkatkan k oleh inch
5.4 Sorting By insertion
Algoritma
1. membangun sebuah array [1 .. n] elemen n.
2. menemukan minimum dan meletakkannya di tempat untuk bertindak sebagaisentinel :
3. sementara masih ada unsur-unsur yang akan dimasukkan di bagian memerintahkan melakukan
a.Pilih x elemen berikutnya untuk dimasukkan
b.sementara x kurang dari sebelumnya unsur melakukan
c.insert x pada posisi saat ini
for i:=2 to n do
begin {search for x's position then insert it}
j:=1; x:=a[i];
while x>a[j] do j:=j+1
for k:= i down to j+1 do a[k]:= a[k-1];
a[j]:=x
end
C++ :
#include <iostream.h>
void main()
{
int data[100];
int a,b,c,d,x;
int temp;
cout<<"PROGRAM SORTING DATA "<<endl;
cout<<"---------------------------------------------"<<endl;
cout<<"Masukkan jumlah data : ? ";cin>>x;
for(d=1;d<=x;d++)
{
cout<<"Data ke-"<<d<<" = ";cin>>data[d];
}
cout<<"\nData Sebelum Diurutkan \n";
for(d=1;d<=x;d++){
cout<<"\t"<<data[d];
}
for(a=0;a<x;a++){
for(b=0;b<x;b++)
if(data[b]>= data[b+1])
{
temp=data[b];
data[b]=data[b+1];
data[b+1]=temp;
}
}
cout<<"\n\nData setelah diurutkan :\n";
for(c=0;c<x;c++)
cout<<"\t"<<data[c];
cout<<"\n\n---------------------------------------------"<<endl
}
system("PAUSE");
return EXIT_SUCCESS;
}
5.3 sorting by exchange
soal
diberikan urutan yang tidak beraturan dari kumpulan nilai n gunakan urutan dengan emnggunakan sorting by exchange
penyelesaian :
Bubble Sort (Gelembung) merupakan metode pertukaran yang alur logikanya mirip dengan gelembung yaitu dengan cara membandingkan indeks Array yang pertama dengan indeks Array berikutnya secara terus menerus dan bergantian. Namun cara ini kurang efektif karena meskipun data sudah terurut proses perulangan yang terjadi akan terus berlangsung sampai batas perulangan itu berakhir. Ini adalah contoh alur alogaritmanya dalam kode program.
for (c=0; c<7; c++)
{ for (x=0; x<7; x++)
{if (menu[x]menu[x+1])
{term=menu[x];
menu[x]=menu[x+1];
menu[x+1]=term;
}
else {
menu[x]=menu[x];
}}}
Selection Sort (Maksimum/Minimum) merupakan metode pertukaran yang mencari nilai Maksimum/Minimum sekelompok data array yang nantinya nilai yang paling ujung akan diisolasikan dan tidak disertakan pada proses selanjutnya. Perhatikan contoh code berikut ini.
for(y=0; y<9; y++)
{max=0;
for (x=1; x<=b; x++)
{ if (A[x]>A[max])
{
max=x;
} }
if (A[max]>A[b])
{ term=A[b];
A[b]=A[max];
A[max]=term;
b--;
} else
{
b--;
}}
Insertion Sort (Sisip) meripakan metode pengurutan dengan cara menyisipkan nilai pada array pada posisi yang tepat. Untuk lebih jelasnya silakan lihat code dibawah ini.
for (k=1; k<9; k++)
{
term=L[k];
j=k-1;
while (term<=L[j])
{
L[j+1]=L[j];
j--;
}
if ((term >= L[j]) || (j=1))
{
L[j+1]=term;
}
else
{
L[j+1]=L[j];
L[j]=term;
}
}
5.2 sorting by selection
algoritmanya{}
Selection Sort
Algoritma ini mudah diterjemahkan ke dalam program computer tetapi memiliki kekurangan yaitu sort dengan menggunakan metode Seleksi membutuhkan ruang di memori untuk meyimpan 2 daftar lengkap.
Jika memiliki satu daftar nama dan meletakkan dalam urutan berdasarkan huruf bisa menggunakan pemdekatan umum sebagai berikut :
1. Temukan atau cari nama yang pertama kali datang dalam urutan huruf dan tulis di sheet kedua
2. Tandai nama yang keluar dari daftar asli
3. Lanjutkan perputaran ini sampai semua nama di daftar semula telah di coret dan ditulis di daftar kedua dimana di bagian daftar yang kedua ini nama-nama sudah terurut berdasarkan huruf
C++ :
#include <iostream.h>
#include <conio.h>
int data[100],data2[100];
int n;
void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j–)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
}
cout<<”bubble sort selesai!”<<endl;
}
void exchange_sort()
{
for (int i=0; i<n-1; i++)
{
for(int j = (i+1); j<n; j++)
{
if (data [i] > data[j]) tukar(i,j);
}
}
cout<<”exchange sort selesai!”<<endl;
}
void selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos = i;
for(j = i+1;j<n;j++)
{
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}
cout<<”selection sort selesai!”<<endl;
}
void insertion_sort()
{
int temp,i,j;
for(i=1;i<n;i++)
{
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] = data[j];
j–;
}
data[j+1] = temp;
}
cout<<”insertion sort selesai!”<<endl;
}
void QuickSort(int L, int R)
{
int i, j;
int mid;
i = L;
j = R;
mid = data[(L+R) / 2];
do
{
while (data[i] < mid) i++;
while (data[j] > mid) j–;
if (i <= j)
{
tukar(i,j);
i++;
j–;
};
} while (i < j);
if (L < j) QuickSort(L, j);
if (i < R) QuickSort(i, R);
}
void Input()
{
cout<<”Masukkan jumlah data = “; cin>>n;
for(int i=0;i<n;i++)
{
cout<<”Masukkan data ke-”<<(i+1)<<” = “; cin>>data[i];
data2[i] = data[i];
}
}
void Tampil()
{
cout<<”Data : “<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<” “;
}
cout<<endl;
}
void AcakLagi()
{
for(int i=0;i<n;i++)
{
data[i] = data2[i];
}
cout<<”Data sudah teracak!”<<endl;
}
void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<”Program Sorting Komplit!!!”<<endl;
cout<<”*********************************************”<<endl;
cout<<” 1. Input Data”<<endl;
cout<<” 2. Bubble Sort”<<endl;
cout<<” 3. Exchange Sort”<<endl;
cout<<” 4. Selection Sort”<<endl;
cout<<” 5. Insertion Sort”<<endl;
cout<<” 6. Quick Sort”<<endl;
cout<<” 7. Tampilkan Data”<<endl;
cout<<” 8. Acak Data”<<endl;
cout<<” 9. Exit”<<endl;
cout<<” Pilihan Anda = “; cin>>pil;
switch(pil)
{
case 1:Input(); break;
case 2:bubble_sort(); break;
case 3:exchange_sort(); break;
case 4:selection_sort(); break;
case 5:insertion_sort(); break;
case 6:QuickSort(0,n-1);
cout<<”quick sort selesai!”<<endl;
break;
case 7:Tampil(); break;
case 8:AcakLagi(); break;
}
getch();
}while(pil!=9);
}
5.1 the two way merge
algoritma {
}
if a[m]<b[n] then a[m+1]:=b[n+1]:=a[m];
i:=1;
j:=1;
nm:= n+m;
for k:= 1 to nm dobegin {merge next element }
if a[i]<b[j] thenbeginc[k]:=a[i];
i:=i+1end elsebeginc[k]:=b[j];
j:=j+1end
end
C++ :
#include <iostream>
int data[100];
void mergeSort(int awal, int mid, int akhir)
{
cout<<endl;
int temp[100], tempAwal = awal, tempMid = mid, i = 0;
while(tempAwal < mid && tempMid < akhir)
{
if(data[tempAwal] < data[tempMid])
temp[i] = data[tempAwal],tempAwal++;
else
temp[i] = data[tempMid],tempMid++;
i++;
}
while(tempAwal < mid)
temp[i] = data[tempAwal],tempAwal++,i++;
while(tempMid < akhir)
temp[i] = data[tempMid],tempMid++,i++;
for(int j=0,k=awal;j<i,k<akhir;j++,k++);
cout<<data[k]<<' '<<temp[j]<<endl, data[k] = temp[j];
}
void merge(int awal, int akhir)
if(akhir-awal != 1)
{
int mid = (awal+akhir)/2;
merge(awal, mid);
merge(mid, akhir);
mergeSort(awal, mid, akhir);
}}
int main()
{
int n;
cout<<"Masukan banya data = ";cin>>n;
cout<<"Masukan data yang akan di susun = ";
for(int i=0;i<n;i++)
cin>>data[i];
merge(0,n);
for(int i=0;i<n;i++)
cout<<data[i]<<' ';
return 0;
}
TUGAS Ebook ALPRO MINGGU 4
4.1 array order reversal
soal
mengatur ulang elemen dalam array sehingga muncul urutan terbaik
deskripsi :
1. membangun sebuah array a[a....n] dari n elemen yang akan dilindungi
2. menghitung r jumlah pertukaran yang diperlukan untuk memesan array
3. sementara masih ada pasang elemen array untuk ditukar
(a) menukar elemen i dengan elemen [n-i + 1]
4. mengembalikan array dilindungi undang-undang
4.2 array counting or histogramming
soal
diberi satu set sebuah tanda ujian siswa (dalam kisaran 0 hingga 100) membuat hitungan jumlah siswa yang mungkin diperoleh masing-masing tanda
deskripsi :
1. meminta dan membaca jumlah n tanda untuk diproses
2. memberi inisial semua elemen yang akan di hitung array [0...100]
3. sementara masih ada yang akan di peroses, untuk melakukan perulangan
(a) membaca tanda berikutnya m
(b) menambahkan 1 perhitungan di lokasi m didalam array
4. tuliskan output nilai frekuensi perhitungan
soal
menemukan nilai maksimun a dari nilai n
deskripsi :
1. membangun sebuah array a[1....n] dimana elemen n>=1
2. berikan nilai maksimum sementara max untuk elemen pertama array
3. sementara kurang dari n elemen array telah di anggap
(a) jika elemen selanjutnya elemen maksimum max maka itu nilai maksimun
4. menuliskan nilai maksimum dari n elemen array
4.4 removal of duplicates from an ordered array
soal
menghapus semua duplikat dari perintah array
deskripsi :
1. membangun array a[1 ... n] dari elemen n
2. mengatur indeks pengulangan i=2 untuk memungkinkan terminasi yang benar
3. membandingkan pasangan berurutan dari elemen sehingga duplikat ditemui kemudian menetapkan elemen tertinggi penhitungan j
4. sementara semua pasangan belum diperiksa lakukan
(a) jika pasangan selanjutnya tidak duplikasi lakukan
(a.1) tambahkan 1 perhitungan element tertinggi j
(a.2) kemudian pindahkan elemen dari pasangan ke posisi array tentukan dari elemen perhitungan array tertinggi.
soal
diberikan perintah array dalam bentuk acak dari n elemen. mambagi elemen menjadi
dua bagian sedemikian rupa sehingga elemen <= x berada di salah satu bagian dalam
elemen >x berada di bagian.
deskripsi:
1. membangun array a[1 ... n] dan nilai pembagi dari x.
2. pindahkan 2 pembagi terhadap satu sama lain sampai sepasang salah ditempatkan elemen dalam perhitungan memungkinkan untuk kasus-kasus khusus x berada di luar kisaran nilai array
3. sedangkan jika dua perhitungan belum pernah bertemu atau menyeberang melakukan
(a) bertukar pasangan yang salah perhitungan dan memperpanjang kedua perhitungan ke dalam oleh salah satu elemen
(b) memperpanjang partisi kiri sementara elemen kurang dari atau sama dengan x
(c) memperpanjang partisi yang benar sementara elemen lebih besar dari x
4. tampilkan perhitungan indeks p and perhitungan array
4.7 longest monotone subsequence
soal
{given a set of n distinct numbers find the length of the longest monotoneincreasing subsequence}
diberi satu set n nomor yang berbeda menemukan panjang monoton terpanjang meningkatkan subsequence
desskripsi :
1. membangun array a[1 ... n] dari elemen n
2. mengatur kondisi awal untuk subsequence mengakhiri di posisi pertama
3. untuk sisa (n-1) posisi array lakukan
(a) jika elemen saat ini kurang maksimal di set terpanjang sebelumnya kemudian
(a.1) mencari posisi dan nilai maksimum antara pendahulu
(a.2) memperbarui posisi dan panjang maksimum jika diperlukan jika tidak
Update posisi panjang lain dari maksimum dan panjang maksimum terjauh
4. tampilkan panjang tetap terpanjangdari subsequen
Sabtu, 29 Maret 2014
TUGAS SAP ALPRO MINGGU KE 4
1. Analisis :
Membuat tabel Perkalian
2. Identifikasi
Output : Tabel Perkalian
- Membuat diamond dengan perulangan
Membuat Diamond dengan perulangan
Identifikasi
Input : nilai n
output : diamond
Algoritma :
Deklarasi
int i, n, odd{50};
const char spasi = 177;
const char diamond = ' * ';
TUGAS KELOMPOK ALPRO MINGGU KE 4
Simulasi Pembelian Bahan Bakar
1. Deklarasi :
Liter : Integer
Uang : Integer
2. Deskripsi :
Read (liter);
Options Liter
1. 1 liter 6500
2. 2 liter 13000
3. 3 liter 19500
End (select)
write (L)
C++:
class Fuel {
Public :
void input();
void process ();
void output ();
Private :
int output;
int liter;
};
void Fuel :: input (){
cout<<"Enter The Price of Fuel : " ;
cin>>output;
cout<<"type of fuel : "; cin>>output;
}
void Fuel :: process(){
output = liter * money
}
void Fuel :: output (){
cout<<"The Output Of The Process : "<<result;
}
int main(int argc, char * argv []) {
Fuel X;
X input ();
X process ();
X output ();
System ("pause");
Return exit_succes;
}/* Import to jeliot : */
{Public class fuel
void static void input ();
void static void process();
void static void output ();
private int output;
private int liter;
};
Public void input();{
system.out.print ("Enter the Price of fuel")
output=input.readint();
system.out.print("type of fuel");
output=input.readint();
}
Public void process(){
output=liter * money
}
Public void output(){
syetem.out.print("output of the process : " + result);
}
Public static void main(){
X = new fuel ();
X.input();
X.process();
X.output();
}}
TUGAS INDIVIDU ALPRO MINGGU KE 4
1. Bilangan Habis Dibagi 3 dan 5
1. Deklarasi :
i : integer (bilangan 1 - 100)
2. Deskripsi :
Read (i)
i <- 1 - 100
for (int i=1; i<=100; 1++)
if(i mod 3==0)
Write
Else (i mod 5==0)
Write i
- Flowchart :
- C++ :
2. Algoritma Penjumlahan Deret Pecahan
soal:
Algoritma untuk menghitung nilai dari 1 - 1/2 + 1/3 - 1/4 +....+ 1/n
algoritma:
{Menjumlahkan deret dengan bentuk pecahan 1-1/2+1/3-1/4+…1/n. Nilai n dibaca, ditentukan terlebih dahulu, algoritma menghitung hasil penjumlahan dan mencetak hasil jumlah}
Deklarasi :
jumlah : real {jumlah deret}
n : integer {penyebut pada suku terakhir, n >0}
i : integer {suku ke-i}
p : integer {penyebut suku ke-i}
read(n)
jumlah ← 0
i ← 1 {suku pertama}
p ← 1 {penyebut suku pertama}
while p ≤ n do
if i mod 2 = 1 then {suku ke-i ganjil}
jumlah ← jumlah + 1/p
else
jumlah ← jumlah – 1/p
endif
i ← i+1 {tinjau suku berikutnya}
p ← p + 1 {tinjau penyebut suku berikutnya}
endwhile
{p > n}
write(jumlah)
Algoritma Nilai Terkecil Terbesar dan Jumlah Semua Bilangan Positif. menentukan nilai terkecil, terbesar, dan jumlah semua bilangan positif yang dimasukkan.
algoritma
{algoritma menerima inputan sebuah bilangan bulat, menentukan bilangan terkecil, bilangan terbesar, dan menghitung jumlah semua bilangan bulat positif, menampilkan hasil penjumlahan bilangan bulat positif}
Deklarasi :
x,y : integer {data yang dibaca}
n : integer {banyak data masukan, >0}
min : integer {data terkecil/minimum}
maks : integer {data terbesar/maksimum}
i : integer {pencacah pengulangan}
jumlah : real {jumlah bilangan positif}
Deskripsi :
read(n)
read(x) {baca data pertama}
min ← x {asumsikan min adalah data pertama}
maks ← y {asumsikan maks adalah data terakhir}
for i ← 2 to n do {lanjutkan dengan ke-2 sampai ke-n}
read(x)
if x < min then
min ← x
if y > maks then
maks ← y
endif
while (x > 0) do
jumlah ← jumlah + x
read(x)
n ← n + 1
write(‘positif’)
endfor
jumlah ← x + 1
write(min)
write(maks)
write(jumlah)
TUGAS DISKUSI ALPRO MINGGU 2
Tabungan ATM
- Analisis : Periksa buku tabungan salah satu anggota kelompok. Lakukan detail transaksi pengambilan uang tabungan termasuk detail isian dalam formulir transaksi. Pisahkan algoritma penulisan angka menjadi ejaan :
- Misal anda mengambil uang sebesar 300.000 akan tertulis sebagai ‘Tiga ratus ribu rupiah” Tulislah menggunakan huruf miring (italic) bila pernyataan tertentu boleh berada pada deretan lain. Sementara urutan yang HARUS berada pada urutan tertentu tulis dalam huruf tegak (biasa)
- Flowchart :
Selasa, 25 Maret 2014
Refleksi minggu ke 5 ALPRO
kami mendapat masalah, karena ada teman kami yang belum mengerjakan tugas dengan lengkap, hasilnya kami membuat perjanjian :
- hari kamis untuk mengerjakan tugas minggu 1 yang belum di kerjakan
- hari jum'at untuk mengerjakan tugas minggu 2 yang belum di kerjakan
- hari sabtu untuk mengerjakan tugas minggu 3 yang belum di kerjakan
- hari minggu untuk mengerjakan tugas minggu 4 yang belum di kerjakan
- hari senin - rabu untuk mengerjakan tugas minggu 5 yang belum di kerjakan
- kami mendapat kuis :) pada jam 20:00 harus sudah di kirim jika lebih dari jam itu tidak di terima :(
Refleksi minggu ke 4 ALPRO
hari ini kami bettle sokoban, meskipun kelompok saya awalnya beruntung dalam permainan itu tapi pada akhirnya kalah juga, tapi setidaknya kami sudah berusaha :D
- apa yang anda peroleh?
perulangan for,
perulangan while,
perulangan do while.
mengetahui tentang penyelesaian deret fibonacci.
- apa yang tidak dipahami :
- usaha apa yang anda lakukan untuk mengatasinya :
Sabtu, 22 Maret 2014
TUGAS EBOOK MINGGU KE 3 ALPRO
1. finding the square root of a number
mencari akar persamaan kuadrat ,,,
analisis :
persamaan kuadrat adalah persamaan dengan bentuk umum ax^2 + bx + c dengan a tidak sama dengan 0. jika b^2 - 4ac < 0 maka akan diperoleh akar imajiner.
input : koefien a, b, c bilangan real.
proses : ada tiga alternatif pilihan dari harga b^2 - 4ac yaitu harganya 0 positif atau negatif
output : nilai akar berdasarkan rumus.
{menghitung akar persamaan kuadrat ax^2 + bx + c = 0}
deklarasi :
read (a, b, c)
disk <-b*b - 4*a*c
if (a=0 then write (bukan persamaan kuadrat)
else if disk > 0 then
x1<= b + sqrt(diks)/2*a
x2<= b - sqrt(diks)/2*a
else if disk = 0 then
x1<= b/2 *a
x2<=x1
else write (akar imajiner)
end if
write (x1,x2)
- Flowchart :
- C++ :
masalah
Di berikan sebuah n integer kemudian memikirkan algoritma untuk menentukan pembagi terkecil selain angka 1.
input dan output
X=integer (input)
R=integer
D= integer
Kpk = integer (output)
algoritma
Menetukan pembagi terkecil dari sebuah bilangan
Deklarasi
X=integer
R= integer
D=integer
Deskripsi
Read x
R ß sqrt (x);
D ß 3
If (n ! = n) then kpk =2
Else
While (n mod d ≤ 0) and (d < r) do
D ß d + 2
If (n mod :: 0) then kpk. D
Else then kpk=1
End while
test data
X= 25
R= 5
If(x! =x)
Kpk =2
While x mod <> 0 end (d < r)
Kpk = d+2
- C++ :
3. the greatest common divisor of two integer
soal
masalah
Di berikan 2 integer positif tidak atau bukan nol n & m, pola algoritma untuk mencari pembagi yang paling besar.
input dan output
M= integer (input)
N =integer
Gcd= integer (output)
R= integer
D= integer
algoritma
Read m,n
While (m <0) do
R ß n mod m
N ß m
End while
Gcd ß m
Write = (gcd)
test data
M= 36 n= 28
N= 28 m=8
R=36 % 28 gcd = 8
R= 8
- C++ :
Friend ostream& operator << (ostream. Gcd&);
Friend istream& operator >> (istream. Gcd&);
Public;
Int hitung gcd (int ,int);
Private ;
Int x,y;
};
Int gcd :: hitung gcd (int ,(int d)
{ int r;
While ( d> 0);
R = c % d;
D= d;
D= r;
}
Return ( r );
}
(istream& operation >> (istream& in, gcd& a){
Cout << “ inputkan bilangan petama ;” ;
In >> a.x;
Cout << “ inputkan bilangan kedua ; “ ;
In >> a.x;
Return in; }
Ostream& operation << istream& out , gcd& a){
Out << “gcd ‘ << a.c << “.” << a. x << );”;
Out << a.hitung gcd (a.x, a.y);
Return out;
}
Void main (){
Gcd run;
Cin >> run ;
Cout << run ;
Getch ();
}
4. generating prime numbers
soal
Setiap integer bisa di ekspresikan ke dalam hasil bilangna atau angka. Prima pola algoritma untuk memperhitungkan semua factor prima dan sebuah integer.
input dan output
A= integer
R= integer
I= integer
X=integer
X=integer
algoritma
A ß x div y
R ß x mod x
I ß 0
While ( r =0) or (a > y) do
If ( I :: 0) then
I= i+1
X [i] ß y
Y ß a
If r > I then
[i] = r
End while
test data
X=16
Y= 2
Q =16/2 =8
R=16%2=6
While (r-o) ll (Q > y) do
If (r ==0) I = [+1]
X [i] =2
X=8
- C++ :
Friend ostream& operator << (ostream& prima&);
Friend istream& operator >>(istream& prima7);
Public;
Void prima ();
Prima ();
Private;
Int + [50],I,n;
Int Q,R,S;
};
Void prima :: prima (){
Q= n/5;
R=n%5;
I=0;
While ((r=0) ll(Q >5)0{
If (r==0){
If(r==0){
R= i+1;
F(i)=5;
N= Q; }
Else{
Q = n/5;
R= n % 5 ;}
}
If ( n> 1){
I= I + 1
F [i]=n }
}}
5. Computing The Prime Factors Of An Integer
Algoritma
1. Analisis :
Program Mencari Faktorial Bilangan Prima
2. Identifikasi :
Input : batas bilangan
Output : hasil faktorial bilangan prima
3. Algoritmanya
a (Integer)
Deskripsinya :
while (!(a<=2))
if (a%2==0)
else
- Flowchart :
6. Generating Of Pseudo Random Numbers
Algoritma
1. Analisis :
Program Mencari Bilangan Acak
Output : bilangan acak
a,b,c,d,e,f (Integer)
Deskripsinya :
b = 2175;
c = 721;
d = a+1;
e = 1234;
f = ((c*e)+b)%d;
- Flowchart :
Algoritma
1. Analisis :
Program Menghitung Bilangan Berpangkat Sampai N
2. Identifikasi :
Input : bilangan dan batas angka
Output : hasil perpangkatan
3. Algoritmanya
Deklarasi :
a,b,c,hasil (Integer)
Deskripsinya :
while (1)
if ( b>=0 )
c = 1;
while ( !(c>b))
c = c+1;
- Flowchart :