07 Desember 2010

Program C++ : Membuat Spiral Matrix

07 Desember 2010
kemaren ada yang reques program mebuat spiral matrix yang outputnya :
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

ga sengaja iseng-iseng googling, eh nemu syntax coding yang mirip. Tapi belum nemu, bagaimana cara menginputkan dari user. Kalau ada yang bisa, share di sini yak.

Untuk sementara saya share coding yang sudah di tentukan oleh program, kalau inputan yang di berikan adalah 5.
#include <iostream.h>
#include <conio.h>
void main()
{
int d[5][5]; //angka 5 bisa di ganti
int start = 1;
int count = start;

for (int i=0; i<5; i++) {

// pengaturan bagian atas
for (int j=i; j<5-i; j++)
d[i][j] = count++;
count--;

// pengaturan bagian kanan
for (int j=i; j<5-i; j++)
d[j][5-i-1] = count++;
count--;

// pengaturan bagian bawah
for (int j=5-i-1; j>=i; j--)
d[5-i-1][j] = count++;
count--;

// pengaturan bagian kiri
for (int j=5-i-1; j>i; j--)
d[j][i] = count++;

if (count > 5*5+start)
break;
}

for (int i=0; i<5; i++) {
for (int j=0; j<5; j++) {
cout << d[i][j] << " ";
}
cout << endl;
}

getch();
}


Refrensi:
http://www.cplusplus.com/forum/general/4868/

4 comments:

Anonim mengatakan...

wah mantep gan thx ya bwt codingan nya.. bisa jadi inspirasi nih bwt tgs ane.. (yaah tugasnya mirip si) :d: arigatou gozaimasu :d:

Anonim mengatakan...

gan ane nemu caranya input dari user:
----------------------------------------
#include
#include
void main()
{
int n;
int d[100][100]; //angka 100 bisa di ganti
int start = 1;
int count = start;
cout<<"masukan data : ";cin>>n;
for (int i=0; i=i; j--)
d[n-i-1][j] = count++;
count--;

// pengaturan bagian kiri
for (int j=n-i-1; j>i; j--)
d[j][i] = count++;

if (count > n*n+start)
break;
}

for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
cout << d[i][j] << " ";
}
cout << endl;
}

getch();
}

Opie Eyek mengatakan...

thanks gan.. ntar ane posting biar nambah arsip nie blog hehhee :g:

Anonim mengatakan...

gimana cara membuat bentuk segiitiga sama kaki, sembarang juga belah ketupat tapi dengan meggunakan angaka 1 s/d 10.

Poskan Komentar

sampaikan komentar dengan sopan dan bertanggung jawab :)