23 Mart 2013 Cumartesi

47 - For Döngüsü... Çarpım Tablosu...


Çarpım tablosu yapımı... Oluşturduğumuz mantık da önce 1-5 arası sayıların çarpımı, daha sonra 6-10 arası sayıların çarpımı yapılacaktır... Sayfada yer konumlamasını kendi mantığımız ile oluşturabilmek için dıştan içe doğru bir işlem yaptık...

Çarpım tablosundaki mantık iç içe döngü kullanmaktır... Bunun için  k*i = sonuc işlemi şeklinde yapılırken i ve  k döngü sayaçlarıdır... Buradaki ilk döngümüzün sayacı ikinci çarpan, içteki döngümüzün sayacı ilk çarpan olarak kullanılmaktadır... 

for (int i = 1; i <= 10; i++) bu ilk döngümüz...
for (int k = 1; k <= 5; k++)  bu içteki döngümüz... 

Çarpım tablosu  k * i = sonuc şeklinde yapılmıştır... 


Program kodları aşağıdaki gibidir... Açıklamalar yanlarında vardır... 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 1; i <= 10; i++)   // Çarpım tablosunun ikinci çarpanı buradaki döngü olacaktır... 
            {
                for (int k = 1; k <= 5; k++) // Çarpım tablosunun birinci çarpanı buradaki döngü olacaktır...
                {
                    int a = (k * i); // Çarpım işleminin sonucu... Buradan değeri alacağız... 
                    string x = Convert.ToString(a); // Düzgün bir tablo oluşturmak sayının uzunluğunu alıyoruz... 
                    
                    if (x.Length == 1) // Eğer bir rakamlı ise işlemden sonra 5 boşluk bırakıyoruz... 
                        Console.Write(k + " * " + i + "  = " + a+"     ");
                    
                    else if(i==10) // i 10 olduğunda çarpan kısmında bir, sonuç kısmında bir, toplam iki 
                                   // rakam fazla olacağı için = ifadesinden önce 1 boşluk az yapıyoruz... 
                        Console.Write(k + " * " + i + " = " + a + "    ");
                    
                    else if(x.Length==2) // Eğer iki rakamlı ise 4 boşluk bırakıyoruz... 
                        Console.Write(k + " * " + i + "  = " + a + "    ");
                    
                }
                Console.WriteLine(); // Alt satıra geçiyoruz... 
            }
            
            // 1-5 arası çarpım ile 6-10 arası çarpım arasında satır boşlukları bırakıyoruz... 
            Console.WriteLine();
            Console.WriteLine();

            // Aynı işlemi 6-10 arası sayılar için yapıyoruz... 
            for (int i = 1; i <= 10; i++)
            {
                for (int k = 6; k <= 10; k++)
                {
                    int a = (k * i); 
                    string x = Convert.ToString(a); 

                    if (x.Length == 1) 
                        Console.Write(k + " * " + i + "  = " + a + "     ");

                    else if (i == 10)  
                        Console.Write(k + " * " + i + " = " + a + "    ");

                    else if (x.Length == 2) 
                        Console.Write(k + " * " + i + "  = " + a + "    ");
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
}