Selasa, 29 Desember 2009

tugas day 11

1.Memilah Bilangan
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