Monday, June 29

bujur sangkar

Untuk membuat bujur sangkar ajaib dengan ordo 3x3, buatlah sebuah file dengan rumus seperti berikut dan simpan dengan nama bujur.txt misalnya.

{ ordo[55,55]; #ordo bujur sangkar
n=$1; #input matriks
X=1; #nilai awal
Y=1; #interval
Z=1; #interval pindah


for(a=0; a<=n+2; a++) #untuk menghitung letak kolom dan baris { for(b=0; b<=n+2; b++) ordo[a,b] = 0; } a=1; b=(n+1) / 2; X-=Y; for(N=1; N<=n*n;) { if(ordo[a,b]==0) { X+=Y; ordo[a,b] = X; if(a==n) ordo[0,b] = X; if(b==1) ordo[a,n+1] = X; if(a==n && b==1 ) ordo[0,n+1] = X; a--; b++; N++; if(a==0&&b==n+1) continue; else { if (a==0) a=n; if(b==n+1) b=1; } } else { a+=2; b-=1; X=X-Y+Z; } } for(a=1; a<=n; a++) T1+=ordo[a,n+1-a]; for(a=1; a<=n*5;a++) printf(" "); printf("%5d\n\n",T1); for(a=1;a<=n+1;a++) { for(b=1; b<=n; b++) { printf("%5d", ordo[a,b]); ordo[a,n+2] += ordo[a,b]; ordo[n+1,b] += ordo[a,b]; } T2 += ordo[a,b]; if(a==n+1) ordo[a,n+2] = T2; printf("%5d\n\n",ordo[a,n+2]); } } Setelah selesai, ketiklah instruksi pada terminal seperti berikut ini: dicky@dicky-desktop:~$ echo 7 | awk -f bujur2.txt Instruksi echo 7 ini digunakan untuk membuat sebuat matiks dengan ordo 7x7, misalkan anda ingin mengubah menjadi ordo 3x3 maka anda tinggal mengubah rumus menjadi: dicky@dicky-desktop:~$ echo 3 | awk -f bujur2.txt Setelah selesai maka akan keluar hasilnya seperti berikut: 175 30 39 48 1 10 19 28 175 38 47 7 9 18 27 29 175 46 6 8 17 26 35 37 175 5 14 16 25 34 36 45 175 13 15 24 33 42 44 4 175 21 23 32 41 43 3 12 175 22 31 40 49 2 11 20 175 175 175 175 175 175 175 175 175 Selesai.....

No comments:

Post a Comment

komentarmu taruh disini