Membuat Pola dari String bahasa C

WOALOWOAWOAAA  ! kembali lagi bertemu😀 , kesempatan ini saya akan manfaatkan dengan membahas  cara membuat sebuah pola yang berisi huruf dari string masukan user , yang akan dibuat kali ini :

masukan user : pemogramanstring

      n
    g s
  e r t
p m a r
  o m i
    a n
      g

apa yang harus dilakukan?
– menentukan banyak kolom
– menentukan batas baris

setelah dilakukan perhitungan dengan menggunakan pengulangan maka didapatkan:
kolom = 4 (0-3)
baris = 7 (0-6)

 
    0 1 2 3
    - - - -  
0|        9
1|      4 10
2|    1 5 11
3|  0 2 6 12
4|    3 7 13
5|      8 14
6|        15

penjelasan :
– angka yang berbentuk segitiga di atas merupakan urutan huruf pada kata yang dimasukan user.

NAH! bagaimana sekarang cara penyelesaiannya dengan bahasa C ?

setelah dilakukan perhitungan  maka didapat :

#include<stdio.h>
#include<string.h>
int main ()
{
char kata[105];
int i,j,k,l,panjang,baris,spasi;
printf("masukan kata atau kalimat (tanpa spasi) : ");
scanf("%s",&kata);
i = 1;
baris = 1;
panjang = 1;
/*
 *mencari batas kolom dan baris yang
 *diperlukan untuk perulangan mencetak huruf
 */
    while (i<strlen(kata))
    {
        panjang++;
        baris+=2;
        i+=baris;
    }
spasi = panjang-1;

l = 0;
for(i=0;i<baris;i++)
{
    for(j=0;j<panjang;j++)
    {
        if(j<spasi)
        {
            printf(" ");
        }
        else
        {
            /*rumus untuk penentuan huruf mana yang akan dicetak*/
            if(i<=baris/2)
            {
                k = (j*j)+l;
                l++;
            }
            else
            {
                k = i + (j*j) - l;
                l--;
            }
            /*pencetakan huruf dan spasi*/
            if(k<strlen(kata))
            {
                printf("%c",kata[k]);
            }
            else
            {
                printf(" ");
            }
        }
    }
    /*menentukan batas pencetakan spasi*/
    if(i<baris/2)
    {
        spasi--;
        l = 0;
    }
    else
    {
        spasi++;
        l = panjang - spasi - 1;
    }

    printf("\n");
}
return 0 ;
}

Maka hasilnya seperti berikut :

YAPOYAPOOO ! begitulah penyelasaian dengan bahasa C , memiliki pola yang ingin diselesaikan?

Let’s Share Our Knowledge ! 😉

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s