BUJUR SANGKAR AJAIB
pada tugas ini kita diminta untuk membuat suatu bujursangkar dengan ordo 7x7. Awalnya kita buat dulu sebuah file dengan nama bujursangkar.txt yang akan berisi perintah di bawah ini :
{ ordo[55,55];
n=$1;
K=1;
L=1;
M=1;
for(a=0; a<=n+2; a++)
{ for(b=0; b<=n+2; b++)
ordo[a,b] = 0;
}
a=1; b=(n+1) / 2;
K-=L;
for(N=1; N<=n*n;)
{ if(ordo[a,b]==0)
{ K+=L;
ordo[a,b] = K;
if(a==n) ordo[0,b] = K;
if(b==1) ordo[a,n+1] = K;
if(a==n && b==1 ) ordo[0,n+1] = K;
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;
K=K-L+M;
}
}
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]);
}
}
yang kemudian program tersebut akan dipanggil dalam terminal dengan perintah berikut :
echo 7 | awk -f bujursangkar.txt
perintah echo 7 berarti bahwa ordo yang dibuat adaalah ordo 7x7 dan bila kita menginginkan ordo yang lainnya maka kita hanya tinggal mengganti angka dari echo tersebut.
hasil dari perintah di atas adalah sebagai berikut :
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
pada tugas ini kita diminta untuk membuat suatu bujursangkar dengan ordo 7x7. Awalnya kita buat dulu sebuah file dengan nama bujursangkar.txt yang akan berisi perintah di bawah ini :
{ ordo[55,55];
n=$1;
K=1;
L=1;
M=1;
for(a=0; a<=n+2; a++)
{ for(b=0; b<=n+2; b++)
ordo[a,b] = 0;
}
a=1; b=(n+1) / 2;
K-=L;
for(N=1; N<=n*n;)
{ if(ordo[a,b]==0)
{ K+=L;
ordo[a,b] = K;
if(a==n) ordo[0,b] = K;
if(b==1) ordo[a,n+1] = K;
if(a==n && b==1 ) ordo[0,n+1] = K;
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;
K=K-L+M;
}
}
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]);
}
}
yang kemudian program tersebut akan dipanggil dalam terminal dengan perintah berikut :
echo 7 | awk -f bujursangkar.txt
perintah echo 7 berarti bahwa ordo yang dibuat adaalah ordo 7x7 dan bila kita menginginkan ordo yang lainnya maka kita hanya tinggal mengganti angka dari echo tersebut.
hasil dari perintah di atas adalah sebagai berikut :
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
Tidak ada komentar:
Posting Komentar