Turkcell | Geleceği Yazanlar

*'lardan eşkenardörtgen oluşturma kodu yardım ?

https://gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-101/algoritmaya-giris sayfasının son örneğinde verilen kod taslağını programlamaya çalışıyorum.merkezSatiri'ni Scanner ile kullanıcıdan aldım ama while(satır >0) 'daki satır nedir anlamadım yardım lütfen ?




	package paket_A;


	//*larla dinamik eşkenar dörtgen yazdırma
	import java.util.Scanner;
	public class Class074 {
	 public static void main(String[] args){
	  
	  Scanner giris = new Scanner(System.in);            
	  int merkezSatiri;                              
	  System.out.print(" merkez satırı kaç *'dan oluşun : ");   
	  merkezSatiri = giris.nextInt();                     
	  
	   int satirSayisi = merkezSatiri*2-1;
	   int satirdakiYıldızSayisi = 1;
	   int satirdakiBoşlukSayisi = merkezSatiri - satirdakiYıldızSayisi;
	  
	   while( satır > 0){
	      ...
	   }
	 }
	 


	}


	

    +1

    Serdar

    05 Ağustos 2014

    illa for kullanmak zorunda kaldım ama çalışıyor : )

    
    
    
    	package eskenardortgenwhileile1;
    
    
    	public class EskenarDortgen2 {
    	  public static void main(String[] args){    
    	    int merkezSatiri = 5; 
    	    int satirSayisi = merkezSatiri*2-1;
    	    int satirdakiYildizSayisi = 1;
    	    int satirdakiBoslukSayisi = merkezSatiri - satirdakiYildizSayisi;
    	    int hangiSatirda = 1;
    	   
    	    
    	     while((satirSayisi > 0) & (hangiSatirda < merkezSatiri)){
    	     
    	      while(satirdakiBoslukSayisi > 0){
    	       System.out.print(" "); //satıra boşluk bırakır
    	       satirdakiBoslukSayisi--;
    	      } 
    	      for(int i = 1 ;i <= satirdakiYildizSayisi ;i++){
    	      System.out.print(" *"); //satıra yıldız ve boşluk bırakır
    	      } 
    	       satirdakiYildizSayisi++;
    	       
    	      satirdakiBoslukSayisi = merkezSatiri - satirdakiYildizSayisi;
    	       System.out.println();
    	       satirSayisi--;
    	       hangiSatirda++;
    	    }  
    	    
    	     while( (satirSayisi > 0) & (hangiSatirda >= merkezSatiri)){
    	      while(satirdakiBoslukSayisi > 0){
    	       System.out.print(" "); //satıra boşluk bırakır
    	       satirdakiBoslukSayisi--;
    	      } 
    	      for(int i = 1 ;i <= satirdakiYildizSayisi ;i++){
    	      System.out.print(" *"); //satıra yıldız ve boşluk bırakır
    	      }
    	      satirdakiYildizSayisi--;
    	      
    	      satirdakiBoslukSayisi = merkezSatiri - satirdakiYildizSayisi;
    	       System.out.println();
    	       satirSayisi--;
    	       hangiSatirda++;
    	    
    	    }  
    	  }
    	 }
    
    
    	

     

         *
        * *
       * * *
      * * * *
     * * * * *
      * * * *
       * * *
        * *
         *

    +1

    Mehmet

    05 Ağustos 2014


    while(satirdakiBoslukSayisi >= 0) { System.out.print(" "); }
    	

    Burdaki yaptığın hatadan dolayı programın while döngüsünden çıkamıyor. Sonsuz döngüye giriyor. Sürekli boşluk yazdığından sen farkedememiş olabilirsin.

      artgelda

      Sa, 05/08/2014 - 15:03
      teşekkür evet gördüm

    +1

    ahmet kaya

    04 Ağustos 2014

    satır>0 dan olduğu sürece içindeki işlemi yap demek 

    büyük ihtimalle while içinde satır değişkeni 1 azaltılıyordur 

    kolay gelsin

    +1

    Halil Keskin

    MentalUP || Artistanbul || Freelance Developer - 04 Ağustos 2014

    Selam,

    Satırsayısı değişkeni problemini çözecektir, problemi kendi başına çözüp programlamak için ugraşman sana daha fazla katkı saglar kanaatindeyim. 

    İyi Çalışmalar

      artgelda

      Sa, 05/08/2014 - 15:03
      evet zaten satırsayısı yazıyomuş anca gördüm

    0

    Serdar

    05 Ağustos 2014

    ya dünden beri uğraşıyorum şu kod niye çalışmıyo bi yardım ?

    
    
    
    	package paket_A;
    
    
    	public class Class074
    	{
    	 public static void main(String[] args)
    	 {
    	       
    	   int merkezSatiri = 5; 
    	   int satirSayisi = merkezSatiri*2-1;
    	   int satirdakiYildizSayisi = 1;
    	   int satirdakiBoslukSayisi = merkezSatiri - satirdakiYildizSayisi;
    	  
    	   while(satirSayisi > 0)
    	   {
    	    while (satirdakiYildizSayisi <= merkezSatiri)
    	    {
    	     while(satirdakiBoslukSayisi >= 0)
    	     {
    	      System.out.print(" ");
    	     }
    	     System.out.print("*"); 
    	     if (satirdakiYildizSayisi < merkezSatiri)
    	      satirdakiYildizSayisi++;
    	     else
    	      satirdakiYildizSayisi--;
    	     }
    	    }
    	   
    	    System.out.print("\n");
    	    satirSayisi--;
    	    satirdakiBoslukSayisi = merkezSatiri - satirdakiYildizSayisi;
    	   
    	   }
    	   
    	 }
    
    
    	

    Bu soruya cevap vermek için üye olmanız veya giriş yapmanız gerekmektedir.