Skip to content

Java Soru Çözümleri 15 – Kare Oluşturma

Java Eğitimleri 22 – Kare Oluşturma

Merhabalar.

Üçgen oluşturma sorularıyla algoritma temelimizi biraz daha güçlendirmiş olduk. Bu yazımızda çözeceğimiz sorumuz da farklı bir algoritmadan besleniyor.  Ancak bu algoritma sayesinde de farklı farklı soruları çözmemiz kolaylaşacak.

Sorumuz şu: Klavyeden bir değer gireceğiz. Örneğin klavyeden 4 değerini girdik. Bize 16 tane kare sunacak. 3 girersek 9 kare oluşacak. Bunu sağlayan algoritmayı kuracağız ve sorumuzu Java kodlarına aktaracağız. 

Örneğin:

Bu programın oluşmasını sağlayacak Java kodları:

import java.util.Scanner;

public class kareolusturma {

    public static void main(String[] args) {
        // TODO Auto-generated method stub


        Scanner klavye=new Scanner(System.in);
        System.out.println("Bir Sayı Giriniz");
        int k=klavye.nextInt();
        
        k=k*4;
        
        for(int i=0;i<=k;i++){
            for(int j=0;j<=k;j++){
                
                if(i %4 ==0 && j<=k){
                    System.out.print(" * ");
                }else if(j%4==0 && i<=k){
                    System.out.print(" * ");
                }else{
                    System.out.print("   ");
                }
            }
            System.out.println();
        }
    }       
    }


 

  • İlk adımda klavyeden veri girişini sağlıyoruz. Kaç adet kare olmasını istediğimiz sayıyı giriyoruz.

 

Scanner klavye=new Scanner(System.in);
System.out.println(“Bir Sayı Giriniz”);
int k=klavye.nextInt();

 

  • Yıldız sayımızı hesaplıyoruz.

k=k*4

 

  • İç içe 2 for döngüsü oluşturuyoruz. Bu for döngülerimizi 0’dan başlayıp k sayımıza kadar devam edecek şekilde oluşturuyoruz.

 

for(int i=0;i<=k;i++){
for(int j=0;j<=k;j++){

 

  • Her 5 yıldızda bir kare oluşturmak istiyoruz. Döngümüzü 0’dan başlattığımız için de bu 4 ve 4’ün katı şeklinde ilerleyecek. Bu yüzden bu koşulları sağlaması için if döngüsü oluşturuyoruz.

 

if(i %4 ==0 && j<=k){
System.out.print(” * “);

 

Satırımızı bir dizi gibi düşünürsek 0’dan başlayıp k sayısına kadar gidecek. 4’e tam bölünenlerin satırlarında yıldız oluşacak. Yani;

Dizi[0,1], Dizi[0.2], Dizi[0,3]….. Dizi[0,k]
Dizi[4,1], Dizi[4,2], Dizi[4,3]….. Dizi[4,k]
….
Dizi[k,1], Dizi[k,2], Dizi[k,3]….. Dizi[k,k]

 

Bu koşulları sağlayan dizeye yıldız konulacak.

  • Diğer bir adımda ise aynı işlemi sütunlar için uyguluyoruz.

 

else if(j%4==0 && i<=k){ 
System.out.print(” * “);

 

Yine dizi gibi düşünecek olursak, 4’e bölünen sütunlarda yıldız olacak.

 


Dizi[0,4], Dizi[1,4], Dizi[2,4] …….. Dizi[k,4]

Dizi[0,8], Dizi[1,8], Dizi[2,8] …….. Dizi[k,8]

….
Dizi[0,k], Dizi[1,k], Dizi[2,k] ……. Dizi[k,k]

 

  • Bu koşulları sağlamayan yerler ise boş kalacak.

 

else{                                                                                                   
System.out.print(”   “);
 

 

NOT: Burada dikkat etmemiz gereken şey, boşluk bırakmamızı sağlayacak kodun diğer kodlarla örtüşmesi. Yani “ “ şöyle bir boşluk oluşturursak diğer kodlarımızda    “ * “ yıldızı böyle tanımladığımız için boşluklar ve yıldızlar örtüşmeyecek ve böylece istediğimiz çıktıyı elde edemeyeceğiz. İki tarafta da tanımlanan değerlerin eşit boşluk barındırması gerekir.

                                                               

 

  • Son olarak yıldızların alt satıra geçebilmesi için 2 for döngüsü arasına gerekli kodları ekliyoruz.

 

System.out.println();

 

Çıktılarımız:

 

Kare oluşturma kodlarını oluşturduk ve adımlarımızı tanımladık. Bu şekilde yazımızı da tamamlamış olduk. Bir sonraki yazımızda görüşmek üzere. İyi çalışmalar 🙂

 

 

1 Comment »

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: