Ne Mutlu Türküm Diyene!Teknik Alemin En Teknik Sitesi
Ne Mutlu Türküm Diyene!
   Ana Sayfa   Yardım Ara   Chat   Giriş Yap Kayıt  
22 Kasım 2008, 08:18:37 *
Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

Sayfa: [1]   Aşağı git
  Yazdır  
Gönderen Konu: Php ile Shirli kare oluşturma(tek sayılar için geçerlidir)  (Okunma Sayısı 245 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
26 Mart 2008, 16:00:28
kuzeyy_22
Yeni Üye
*
Cinsiyet: Bay
Nerden: Ankara
Yaş: 19

Mesaj Sayısı: 3





Offline Offline


Merhaba arkadaşlar bulmacalarda çok sık karşılaştığımız sihirli kareleri oluşturan programı size sunayım dedim.
Sihirli kare herkesin bildiği gibi sağdan sola, yukardan aşağıya ve çapraz olarak toplamları aynı olan karedir. Örnek:

816
357
492

Yukarda bir sihirli kare görülmektedir. Bu ve bunun gibi kareleri oluşturan php script aşağıda verilmiştir.
Bu program tek sayılar için geçerlidir. Hiçbir yerden alıntı veya çalıntı değildir...

-----------------------------------------------------------------------------------------------------------------

<form action="" name="main" method="post">
<table align="center">
<tr><td align="center">Girilecek olan sayı</td></tr>
<tr><td><input type="text" name="sayi"/></td></tr>
<tr><td align="center"><input type="submit" name="onay" value="Kare Oluştur"/></td></tr>
</table></form>


<?php

if(isset($_POST['onay'])){
   $dizi1=range(1,100);
   $dizi2=range(1,100);
   $dizi=array($dizi1,$dizi2);
   $sayi=(int)$_POST['sayi'];
   $sayikare=$sayi*$sayi;
   for($i=1;$i<=$sayi;$i++){
      for($j=1;$j<=$sayi;$j++){
         $dizi[$i][$j]=0;
      }
   }
   $i=1;
   $j=floor(($sayi+1)/2);
   
   for ($k=1;$k<=$sayikare;$k++){
      if($dizi[$i][$j]>0){
         $i=$i+2;
         $j=$j-1;
      }
      $dizi[$i][$j]=$k;
      $i=$i-1;
      $j=$j+1;
      if (($i==0) and ($j>$sayi)){
         $i=$i+2;
         $j=$j-1;
      }
      if ($i==0){
         $i=$sayi;
         
      }
      if ($j>$sayi){
         $j=1;
      }      
   }
   echo "<table border=\"2\" align=\"center\"><tr>";
   for($i=1;$i<=$sayi;$i++){
      echo "</tr><tr>";
      for($j=1;$j<=$sayi;$j++){
         $a=$dizi[$i][$j];
         print "<td align=\"center\">$a</td>";
      }
}
}
?></tr></table>

-----------------------------------------------------------------------------------------------------------------

Logged
Sayfa: [1]   Yukarı git
  Yazdır  
 
Gitmek istediğiniz yer:  

Smf kardeşliği
smf.gen.tr aracılığı ile SMF kullanan siteler arasında yaptığımız SMF Kardeşliği listemizi görmek ister misiniz?

Bu site SM Forumlar Birliğinin Üyesidir
Site Map - Sitemap - Arşiv - Wap - Wap2 - Wap Forum - XML - Rss


MySQL ile Güçlendirildi PHP ile Güçlendirildi Powered by SMF 1.1.5 | SMF © 2006, Simple Machines LLC
Omega
XHTML 1.0 Geçerli! CSS Geçerli!
Clicky Web Analytics