Algoritma:
-Mendeklarasikan z=ribuan,y=ratusan,o=puluhan,v=satuan.
-Masukkan bilangan sesukamu kita simbolkan (w).
-Jika bilangan lebih dari 1000.maka hitung
x=w/1000;
z=x*1000;
y=(w%1000/100)*100;
o=(w%1000%100/10)*10;
v=w%1000%100%10;
-Jika bilangan lebih dari 100 ,maka hitung
x=w/100;
z=0;
y=x*100;
o=(w%100/10)*10;
v=w%100%10;
-Jika bilangan lebih dari 10,maka hitung
x=w/10;
o=x*10;
v=w%10;
-Cetak bilangan.
Flowchart:

Koding:
#include
main()
{
int bil,w,x,y,z;
printf("Masukkan bilangan = ");
scanf("%d", &bil);
printf("\nSetelah dipilah, Hasilnya = ");
w=bil/1000;
w=w*1000;
if(w!=0)
printf("%3d ", w);
x=(bil%1000)/100;
x=x*100;
if(x!=0)
printf("%3d", x);
y=(bil%100)/10;
y=y*10;
if(y!=0)
printf("%3d", y);
z=bil%10;
printf("%3d\n\n", z);
}
Output:
2.Membalik Kalimat
Algoritma:
- masukkan kalimat yang akan dibalik
- memberikan alokasi memory untuk kalimat tersebut dalam bentuk array.misal namanya
Asal[20] dan mengalokasikan untuk tempat kalimat yang sudah dibalik.misal balik[20].
- pada indeks terakhir array asal dimasukkan dalam indeks 0 pada array balik.
- Proses penukaran dilakukan terus dimana pada array asal indeksx selalu dikurangi 1
Sedangkan pada array balik indeksx selalu ditambah 1.penukaran dilakukan secara
Berurutan.
Flowchart:

Koding:
#include
main()
{
char kata1[64], kata2[64];
int p=0, i;
printf("Masukkan Kalimat = ");
fgets(kata1,sizeof kata1,stdin);
for(i=1;kata1[i];i++)
p++;
for(i=0;kata1[i];i++)
{
kata2[i]=kata1[p-i];
if(kata1[i]==kata1[p])
kata2[i+1]='\0';
}
printf("\n\nOutput = %s\n\n", kata2);
}
Output:
3.Membalik Bilangan
Algoritma:
- masukkan bilangan yang akan dibalik
- memberikan alokasi memory untuk kalimat tersebut dalam bentuk array.misal namanya
Asal[20] dan mengalokasikan untuk tempat kalimat yang sudah dibalik.misal balik[20].
- pada indeks terakhir array asal dimasukkan dalam indeks 0 pada array balik.
- Proses penukaran dilakukan terus dimana pada array asal indeksx selalu dikurangi 1
Sedangkan pada array balik indeksx selalu ditambah 1.penukaran dilakukan secara
Berurutan.
Flowchart:

Koding:
#include
main()
{
char bil1[64], bil2[64];
int p=0, i;
puts("Masukkan Bilangan = ");
fgets(bil1,sizeof bil1,stdin);
for(i=1;bil1[i];i++)
p++;
for(i=0;bil1[i];i++)
{
bil2[i]=bil1[p-i];
if(bil1[i]==bil1[p])
bil2[i+1]='\0';
}
printf("\n\nOutput = %s\n\n", bil2);
}
Output:
4. Palindrom
Algoritma:
- masukkan bilangan yang akan dibalik
- memberikan alokasi memory untuk kalimat tersebut dalam bentuk array.misal namanya
Asal[20] dan mengalokasikan untuk tempat kalimat yang sudah dibalik.misal balik[20].
- pada indeks terakhir array asal dimasukkan dalam indeks 0 pada array balik.
- Proses penukaran dilakukan terus dimana pada array asal indeksx selalu dikurangi 1
Sedangkan pada array balik indeksx selalu ditambah 1.penukaran dilakukan secara
Berurutan.
- Membandingkan antara asal dengan balik ,jika sama maka kalimat tersebut
palindrome,sedangkan jika tidak maka kalimat tersebut bukan termasuk palindrom
Flowchart:

Koding:
#include
main()
{
char kata1[64], kata2[64];
int p=0, i, a=0;
puts("Masukkan Kata = ");
fgets(kata1,sizeof kata1,stdin);
for(i=1;kata1[i];i++)
p++;
for(i=0;kata1[i];i++)
{
kata2[i]=kata1[p-i];
if(kata1[i]==kata1[p])
kata2[i+1]='\0';
}
for(i=0;kata1[i];i++)
if(kata1[i]==kata2[i+1])
a++;
if(p==a)
printf("\n\n%stermasuk PALINDROM\n\n", kata1);
else
printf("\n\n%sBUKAN PALINDROM\n\n", kata1);
}
Output:
Tidak ada komentar:
Posting Komentar