Java’da If-Else Blokları
If – Else Blokları

Bu yazıda sizlere JAVA’da koşul bloklarını kullanabilmemizi sağlayan ifelse ve switchcase bloklarından bahsedeceğim. ifelse blokları diğer programlama dillerinde olduğu gibi JAVA’da da sık sık kullanılan ve önemli bir yere sahip ifadelerdir. ifelse blokları sayesinde yazdığımız kodlar içerisine koşullara bağlı farklı çıktı veren ya da farklı işlemler gerçekleştiren kod blokları ekleyebiliriz.

ifelse blokları, programcı tarafından mantıksal bir boolean koşulunun doğru ya da yanlış olmasına göre belirtilen eylemleri gerçekleştirmeye yarayan özelliktir. ifelse bloklarının JAVA’daki kullanımları aşağıdaki gibidir:

if (kosul1) {

  //kosul1 koşulunun true olması durumunda çalıştırılacak kod bloku

}else if (kosul2) {

  //kosul1 koşulunun false ve kosul2 kosulunun true olması durumunda çalıştırılacak kodu bloku

}else{

  //kosul1 koşulunun false ve kosul2 kosulunun false olması durumunda çalıştırılacak kodu bloku

}

Eğer ki yazdığımız kodun tek bir koşul altında farklı bir aksiyon göstermesini istiyorsak sadece if bloğunu da kullanabiliriz. Örneğin, verdiğimiz bir sayı karşılığında programın o sayının çift olduğu durumlarda dışarıya “Bu bir çift sayıdır.” yazmasını isteyelim. Diğer durumlarda programın herhangi bir aksiyon göstermemesini isteyelim. Bu durumda aşağıdaki gibi bir kod bloğu isteğimizi gerçekleştirebilir.

INPUT:

public class Main {
    public static void main(String[] args) {
        int A = 4;

        if (A % 2 == 0){
            System.out.println("Girdiğiniz sayı çift sayıdır");
        }

        }
}

OUTPUT:

Girdiğiniz sayı çift sayıdır.

Aynı zamanda aynı if bloğu içerisinde birden fazla koşula bağlı kodlar da yazabiliriz. Bunun için else if bloğunu devreye sokabiliriz. Yukarıdaki örneği çift sayıların dışında tek sayılar girildiğinde de “Bu bir tek sayıdır.” cümlesini ekrana gösterecek şekilde güncelleyelim. Böylece bu örnek için 3 koşul yazmamız gerekecektir. Bunlardan ilki verilen sayının çift olduğu durumdur, ikincisi, sayının tek olduğu durumdur ve sonuncusu ise verilen sayının bu iki koşulu da sağlamayan bir sayı olması durumudur. Örneğin verdiğimiz sayı bir ondalıklı sayı olabilir. Bu durumda bu sayı için 3. koşul devreye girer. Örneği aşağıdaki kod bloğu ile inceleyelim.

INPUT: 

public class Main {
    public static void main(String[] args) {
        double A = -5.2;

        if (A % 2 == 0){
            System.out.println("Girdiğiniz sayı çift sayıdır.");
        } else if (A % 2 == 1 || A % 2 == -1) {
            System.out.println("Girdiğiniz sayı tek sayıdır.");
        }else{
            System.out.println("Girdiğiniz sayı tam sayı değildir!");
        }

    }
}

OUTPUT:

Girdiğiniz sayı tam sayı değildir!

else ifadesi, yazdığımız if ve else if bloklarının hepsinin False olduğu durumda devreye girer ve hiçbir koşulun sağlanmadığı durumlarda alması istenilen aksiyonları gerçekleştirir.

ifelse bloklarında eğer ki ilk if koşulu sağlanırsa, koşul sağlandığında gerçekleştirilecek işlemler gerçekleştirilir ve ifelse bloğundan çıkılır.  if koşulu sağlanmazsa, if bloğundan sonra varsa else if bloğu true ise çalıştırılır ancak false ise ve başka else if bloğu varsa o çalıştırılır. Hiçbir else if bloğu true olmazsa ve else bloğu varsa else bloğu çalıştırılarak program sonlandırılır. Yani ifelse blokları yukarıdan aşağı olacak şekilde ifelse if – else yolu izlenerek çalıştırılır.

if bloğunu çalıştırırken dikkat etmemiz gereken noktalardan biri de if’in yazılış şeklidir. Eğer ki “İf” ya da “İF” şeklinde yazacak olursak if bloğu çalışmaz ve çıktı olarak bize hata döndürür. Kod bloğunda “if” şeklinde yazılmalıdır.

INPUT:

public class Main {
    public static void main(String[] args) {
        int A = 3;
        int B = 5;
        int C = 7;

        if (A > B && A > C && B > C){
            System.out.println("En büyük değer : " + A + " Ortanca değer : " + B + " En küçük değer : " + C);
        } else if (A > B && A > C && C > B) {
            System.out.println("En büyük değer : " + A + " Ortanca değer : " + C + " En küçük değer : " + B);
        } else if (B > A && B > C && C > A) {
            System.out.println("En büyük değer : " + B + " Ortanca değer : " + C + " En küçük değer : " + A);
        } else if (B > A && B > C && A > C) {
            System.out.println("En büyük değer : " + B + " Ortanca değer : " + A + " En küçük değer : " + C);
        } else if (C > B && C > A && A > B) {
            System.out.println("En büyük değer : " + C + " Ortanca değer : " + A + " En küçük değer : " + B);
        }else{
            System.out.println("En büyük değer : " + C + " Ortanca değer : " + B + " En küçük değer : " + A);
        }

    }
}

OUTPUT:

En büyük değer : 7 Ortanca değer : 5 En küçük değer : 3

ifelse bloklarının dışında koşul blokları oluşturmak için switchcase bloklarını da kullanabiliriz.

Switch-Case Blokları

Eğer birden fazla koşul içeren kod blokları yazmak istersek ifelse blokları dışında switchcase kod bloklarını da kullanabiliriz. Bu kod bloklarının çalışma mantığı ifelse’e benzer olup sonucu true olan koşulun bloğu çalıştırıldıktan sonra blok sonlandırılır. Switchcase kullanımı aşağıdaki gibidir:

INPUT:

switch(expression) {

case x:

  //Koşul sağlandığında çalıştırılacak kod bloğu

case y:

  //Koşul sağlandığında çalıştırılacak kod bloğu

}

Switchcase kullanımı daha kolay anlayabilmek için aşağıdaki örneği inceleyebiliriz.

INPUT:

public class Main {
    public static void main(String[] args) {
        int gun = 4;
        switch(gun) {

            case 1:

                System.out.println("Pazartesi");
                break;

            case 2:

                System.out.println("Salı");
                break;

            case 3:

                System.out.println("Çarşamba");
                break;

            case 4:

                System.out.println("Perşembe");
                break;

            case 5:

                System.out.println("Cuma");
                break;

            case 6:

                System.out.println("Cumartesi");
                break;

            case 7:

                System.out.println("Pazar");
                break;
        }

    }
}

OUTPUT:

Perşembe

Birden çok koşulun dahil olduğu switchcase bloklarında bir koşul sağlandıktan ve sağlanan koşulun kod bloğu çalıştırıldıktan sonra, kod bloğundan çıkılmasını istersek break komutunu kullanabiliriz. Bu ifade ile birlikte blok içerisinde daha fazla kod çalıştırılmasının önüne geçebiliriz. Break komutunun kullanımına dair yukarıdaki örneği inceleyebiliriz.

Break komutunu bize kod bloğunun çalıştırılma süresinden kazanç sağlayabilir. Bunun sebebi sadece sonucu true olan koşulun kodunun çalıştırılmasından ve diğer blokların atlanmasından dolayıdır.

Break komutunun dışında switchcase bloklarında hiçbir koşulun sağlanmadığı durumlar için default anahtar kelimesini kullanabiliriz. Bu anahtar kelime, hiçbir koşul sağlanmadığında varsayılan olarak çalıştırılması istenen kod satırlarını içerebilir. default komutu switchcase bloklarının en sonunda kullanılırsa break komutu ile beraber çalıştırılmasına gerek yoktur. default komutunun kullanımına dair örneği aşağıda inceleyebilirsiniz.

INPUT:

public class Main {
    public static void main(String[] args) {
        String sehir = "Sivas";
        switch(sehir) {

            case "İstanbul":

                System.out.println("Marmara Bölgesi");
                break;

            case "İzmir":

                System.out.println("Ege Bölgesi");
                break;

            case "Antalya":

                System.out.println("Akdeniz Bölgesi");
                break;

            case "Samsun":

                System.out.println("Karadeniz Bölgesi");
                break;

            default:

                System.out.println("Girmiş olduğunuz şehir başka bir bölgeye aittir.");
                break;
        }

    }
}

OUTPUT:

Girmiş olduğunuz şehir başka bir bölgeye aittir.

ifelse ve switchcase dışında kısa koşul ifadeleri ile de koşul blokları oluşturmamız mümkündür. Önceki yazılarımızda da bahsettiğimiz bu yöntemin kullanılışı aşağıdaki gibidir:

degisken = (kosul) ? dogruİfade :  Yanlısİfade;

Yukarıda da görüldüğü gibi bu ifade üç işlenenden oluştuğundan üçlü operatör olarak da isimlendirilebilir.

INPUT:

public class Main {
    public static void main(String[] args) {
     //degisken = (kosul) ? dogruİfade :  Yanlısİfade;

        String kelime1 = "Edirne";
        String kelime2 = "Ankara";

        String degisken = (kelime1.length() == kelime2.length()) ? ("İki kelimenin uzunluğu aynıdır.") : ("İki kelimenin uzunluğu aynı değildir.");
        System.out.println(degisken);

    }
}

OUTPUT:

İki kelimenin uzunluğu aynıdır.

Bu yazımızda sizlere JAVA’da kullanabileceğimiz koşul bloklarından bahsettim. Bir sonraki yazımızda JAVA’dan bahsetmeye devam edeceğiz.

JAVAVBZ0921LHO19WO
Java’da Veri Tipleri Ve String Fonksiyonları

Bu yazıda sizlere JAVA’da değişkenleri tanımlarken kullanabileceğimiz veri tiplerinden bahsedeceğim. Genel olarak yazı içerisinde ilkel ve ilkel olmayan veri tiplerinin neler olduğundan bahsedeceğim ve ardından birkaç örnek ile nasıl kullanılabileceklerini göstereceğim.

JAVA’da veri tipleri ikiye ayrılır. Bunlardan ilki JAVA’da varsayılan olarak gelen veri tipleridir. Bu veri tiplerine ilkel veri tipleri denir.

JAVA’da kullanılabilen diğer veri tipleri ise kullanıcı tarafından tanımlanabilen ilkel olmayan veri tipleridir.

Değişkenleri tanımlarken değişkenin veri tipini mutlaka belirtmemiz gerekir. Ayrıca bir değişken hangi veri tipinde tanımlanmışsa o veri tipinde değer ataması gerçekleştirilmelidir. Aksi takdirde programımız çalıştığında hata alacaktır.

İlk olarak JAVA’da varsayılan olarak gelen ilkel veri tiplerinden bahsedelim.

İlkel Veri Tipleri

JAVA’da ilkel olan 8 tane veri tipi vardır. Bunlar byte, short, int, long, float, double, boolean ve char’dır.

Byte: -128’den 127’e kadar olan tamsayıları saklar. Bellek’te 1 bayt boyutunda yer kaplar. byte anahtar kelimesi ile kullanılır.

byte sayi = 2;

Short: -32,768’den 32,767 kadar olan tam sayıları saklar. Bellek’te 2 bayt boyutunda yer kaplar. short anahtar kelimesi ile kullanılır.

short sayi = 30000;

integer: -2,147,483,648’den 2,147,483,647 kadar olan tam sayıları saklar. Bellek’te 4 bayt boyutunda yer kaplar. int anahtar kelimesi ile kullanılır.

int sayi = 50;

long: -9,223,372,036,854,775,808’den 9,223,372,036,854,775,807 kadar olan tam sayıları saklar. Bellek’te 8 bayt boyutunda yer kaplar. Long veri tipindeki bir değişkene değer atanırken değerin sonuna ‘L’ eklenmelidir. long anahtar kelimesi ile kullanılır.

Long sayi = 50L;

float: Ondalık sayıları saklamak için kullanılır. 1.4×10^-45 ile 3.4×10^38 aralığında bir değer tanımlanabilir. Float veri tipindeki bir değişkene değer atanırken değerin sonuna ‘f’ eklenmelidir. Bellek’te 4 bayt boyutunda yer kaplar. float anahtar kelimesi ile kullanılır.

float sayi = 36.70f;

Double: Ondalık sayıları saklamak için kullanılır. 4.9×10^-324 ile 1.8×10^308 aralığında bir değer tanımlanabilir. Bellek’te 8 bayt boyutunda yer kaplar. Double veri tipindeki bir değişkene değer atanırken değerin sonuna ‘d’ eklenmelidir. double anahtar kelimesi ile kullanılır.

double sayi = 36.7054354d;

Boolean: Mantıksal bir veri tipi olan boolean, True ve False olmak üzere iki değere sahiptir. Mantıksal olarak doğru olan duruma True, yanlış olan duruma ise False değeri karşılık gelir. boolean anahtar kelimesi ile kullanılır. Bellek’te 1 bit boyutunda yer kaplar.

boolean statu = true;

Char: Verilen herhangi bir karakterin kendisini ya da ASCII tablosunda karşılık gelen değerini saklamak için kullanılan veri tipidir. Bellek’te 2 bayt boyutunda yer kaplar. char anahtar kelimesi ile kullanılır.

char karakter = ‘C’;

char karakter = 65;

Buraya kadar ki bölümde ilkel veri tiplerinden ve örneklerinden bahsettik. Şimdi ise ilkel olmayan veri tiplerinden bahsedelim.

Java’da tanımladığımız değişkenlerin veri tiplerini öğrenmek için .getClass() metodunu ya da instanceOf ifadesini kullanabiliriz. Böylelikle tanımladığımız değişkenlerin sınıflarını görebiliriz. Örnek kullanım aşağıdaki gibidir:

INPUT:

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.getClass());
    }
}

OUTPUT:

class java.lang.String
INPUT:

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize instanceof String);
    }
}

OUTPUT:

true
İlkel Olmayan Veri Tipleri

Daha öncede bahsettiğim gibi ilkel olmayan veri tipleri JAVA’da tanımlı olmayan programcı tarafından tanımlanan veri tipleridir.  Bu veri tiplerinin örnekleri aşağıdaki şekildeki gibidir:

İlkel Olmayan Veri Tipleri

Biz bu yazımızda sadece String veri tipinden bahsedeceğiz. Diğer başlıklara sonraki yazılarımızda değineceğiz.

String: String, çift tırnak içerisine yazılabilen bir ya da daha fazla harf, sayı veya özel karakterlerden oluşan bir dizidir. Tırnaklar arasına yazılan her karakter dizenin bir parçasıdır.

String dize = “Merhaba”;

JAVA’da String, dizeler üzerinde belirli işlemleri gerçekleştirebilen metodları içeren bir nesnedir. Bu sebeple string ifadeler üzerinde bazı fonksiyonları kullanarak işlemler gerçekleştirebiliriz.

String Fonksiyonları

length() Fonksiyonu : String ifadeler içerisindeki karakter sayısını bulmak için kullanılan fonksiyondur.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.length());
    }
}

toUpperCase() Fonksiyonu: String ifadeler içerisindeki tüm karakterleri büyük olarak yazmak için kullanılır.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.toUpperCase());
    }
}

toLowerCase() Fonksiyonu: String ifadeler içerisindeki tüm karakterleri küçük olarak yazmak için kullanılır.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.toLowerCase());
    }
}

indexOf Fonksiyonu: IndexOf fonksiyonu belirtilen ifadenin string içerisinde geçtiği ilk konumu bulmak için kullanılır. Çıktı olarak metnin string içerisinde başladığı index numarasını döndürür. Index numarasını sayarken boşluklarda dahil edilir.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.indexOf("a"));
    }
}

contains() Fonksiyonu: İçerisine yazdığımız karakterin ya da karakter grubunun string içerisinde var olup olmadığını sorgular. Çıktı olarak True ya da False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.contains("a"));
    }
}

endsWith() Fonksiyonu: String ifadenin belirtilen karakter ya da karakter grupları ile bitip bitmediğini sorgular. Çıktı olarak True ya da False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.endsWith("a"));
    }
}

equals() Fonskiyonu : İki string ifadeyi karşılaştırmak için kullanılır. Eğer string ifadeler eşitse True değilse False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       String dize1 = "Dünya";
       System.out.println(dize.equals(dize1));
    }
}

isEmpty() Fonksiyonu: Bir string ifadenin içerisinin boş olup olmadığını sorgulamak için kullanılır. Çıktı olarak True ya da False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.isEmpty());
    }
}

replace() Fonksiyonu: Cümle içerisindeki bir karakteri ya da kelimeyi istenilen karakter veya kelime ile değiştirmek için kullanılan fonksiyondur.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.replace("e","a"));
    }
}

startsWith() Fonksiyonu: String ifadenin belirtilen karakter ya da karakter grupları ile başlayıp başlamadığını sorgular. Çıktı olarak True ya da False döndürür.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       System.out.println(dize.startsWith("a"));
    }
}

trim() Fonksiyonu: String ifade içerisindeki sağdan ve soldan boşlukları silmek için kullanılır.

public class Main
{
    public static void main(String[] args) {
       String dize = " Merhaba ";
       System.out.println(dize.trim());
    }
}

concat() Fonksiyonu: İki string ifadeyi birleştirmek için kullanılan fonksiyondur.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       String dize1 = " Dünya";
       System.out.println(dize.concat(dize1));
    }
}

İki veya daha fazla string ifadeyi birleştirmek için concat() fonksiyonunun dışında “+” operatörü de kullanılabilir.

public class Main
{
    public static void main(String[] args) {
       String dize = "Merhaba";
       String dize1 = "Dünya";
       System.out.println(dize + " " + dize1);
    }
}

İlkel veri tipleri ile ilkel olmayan veri tiplerinden bahsettiğimize göre şimdi bu iki grubun arasındaki farklara göz atalım.

İlkel Veri Tipleri İle İlkel Olmayan Veri Tipleri Arasındaki Farklar

İlkel veri tipleri ile ilkel olmayan veri tipleri arasındaki temel farklara aşağıdaki tablodan göz atabiliriz.

İlkel Veri Tipleriİlkel Olmayan Veri Tipleri
Java’da tanımlıdır.Kullanıcı tarafından tanımlanır.
Boş değer alamaz.Boş değer alabilir.
Boyutu veri türüne bağlıdır.Tümü aynı boyuta sahiptir.
Küçük harf ile başlar.Büyük harfle başlar.

Bu yazımızda JAVA’daki ilkel ve ilkel olmayan veri türlerinden bahsedip örnek kullanımlarını gördük. Aynı zamanda ilkel ve ilkel olmayan veri türleri arasındaki farkları da incelemiş olduk. Bir sonraki yazımızda JAVA’dan bahsetmeye devam edeceğiz.

JAVAG33L1R9L08D32S
Java ile Temel Programlama #2

Bu yazımızda sizlere JAVA’da temel ifadelerden bahsetmeye devam edeceğim. Genel olarak yazı içerisinde yorum satırları, kaçış ifadeleri, değişkenler ve veri tiplerinden bahsedeceğim.

Java’da yazdığımız her ifadenin derleyici tarafından kod olarak algılanması istemeyiz. Bunun nedeni yazdığımız kodun ya da yaptığımız işlemlerin, kodu okuyanlar tarafından daha iyi bir şekilde anlaşılması için yorumlar eklemek isteyebiliriz. Bu gibi durumlar için JAVA bizlere yorum satılarını kullanma imkanı sunar. Bir ya da daha fazla satırı yorum satırı olarak işaretlediğimizde derleyici tarafından o satırların kod olarak değerlendirilmemesini sağlarız.

Yorum satırları kod yazarken herhangi bir anda kullanılabilir. Bu kullanma sıklığı kodu yazan kişiye bağlıdır. Herhangi bir hazır fonksiyonun detaylarını incelediğinizde ya da orta-büyük projelere göz attığınızda yorum satılarının sıklıkla kullanıldığını görebilirsiniz.

JAVA’da Yorum Satırları

Programlama dillerine göre yorum satılarının kullanım şekillleri değişebilir. JAVA’da yorum satırının 3 farklı kullanım şekli vardır. Bunlardan ilki tek satırlık yorum satırı oluşturmak için kullanılan // işaretidir. Bu işareti kullandığımız satır farklı bir renkte yorum satırı olarak gözükür. Buraya Türkçe karakter içeren ifadelerde yazılabilir. Tek satırlık yorum satırı örneği aşağıdaki gibidir:

public class HelloWorld{

     public static void main(String []args){
      //Bu bir yorum satiridir.
     }
}

Eğer ki birden fazla satırı kullanarak kodumuzu açıklamak istersek /* … */ ifadelerini kullanabilir. /* ile başlayan ve */ ile biten satırlar arasına istediğimiz şekilde açıklamalar yazabilir. Bu yazılan açıklamalarda derleyici tarafından kod statüsüne alınmaz. Yukarıdaki tek satırlık yorum satırında olduğu gibi bu alanlara da Türkçe karakterli ifadeler yazılabilir. /* … */ ifadesinin kullanım örneği aşağıdaki gibidir:

public class HelloWorld{

     public static void main(String []args){
      /*
      Bu bir yorum satırıdır.
      
      Bu da bir yorum satırıdır.
      
      Bu da yorum satırıdır.
      
      */
      
     }
}

Son olarak /** … */ ifadesinden bahsedelim. Bu ifade genel olarak kod içi dökümantasyon amacıyla kullanılır. Uygulamalar yazıldıktan sonra raporlamaları yapılır. Kod geliştirmesi yapılırken kullanılan bu ifadeler arasına yazılan açıklamalar, özel etiketler içerebilirler. Kullanılan özel etiketleri tanıyan uygun bir araç vasıtasıyla bu açıklamalar dökümantasyonlara dönüştürülebilir. Bu dökümantasyonlar raporlar arasına eklenerek yazılım geliştiren ekibin rapor yükünü hafifletir.

/** … */ ifadesi içerisinde kullanılabilecek bazı özel etiketler aşağıdaki tabloda verilmiştir.

EtiketAçıklamaKullanış Şekli
@authorSınıfı oluşturan kişiyi ifade eder.@author yazar adı
{@code}Yazılan kodun derleyici tarafından kod olarak değerlendirilmeden kullanım örneğini vermek için kullanılır.{@code …}
@exceptionDökümantasyona, yazılan kodun istisnai durumlarını yazmak ve açıklamak için kullanılır.@exception istisnai durum
@paramKullanılan parametreleri ve bu parametlerin açıklamaları için kullanılır.@param parametre ismi – açıklaması
@returnKullanılan metodlardan döndürülen ifadelerin açıklaması için kullanılır.@return açıklama
@seeHerhangi başka bir ifadeyi referans göstermek için kullanılır. Örneğin başka bir metot.@see referans
@sinceDökümantasyonda, oluşturulan ifadeler için tarih bilgisi eklenilmesinde kullanılır.@since tarih
@versionOluşturulan dökümantasyonlara versiyon bilgisi eklemek için kullanılır.@version versiyon numarası
/**
* @author  Erhan Eskin
* @version 1.0
* @since   01-01-2022
*/

public class OrtalamaHesaplama{
    /** 
    *Bu sinif icerisinde tanimlayacagimiz uc degisken ile
    *degiskenlere atadigimiz degerleri toplayip
    * toplam degisken sayisina bolecegiz
    * bu islemi simdilik statik olarak gerceklestirecegiz
    * @param sayi1 bizim ilk degiskenimiz olacak
    * @param sayi2 bizim ikinci degiskenimiz
    * @param sayi3 bizim ucuncu degiskenimiz
    * @param toplam bizim dorduncu degiskenimiz
    * @param ortalama bizim besinci degiskenimiz
    * bu islemlerin ardindan sonuc olarak
    * @return ortalama ifadesini ekranda gorecegiz
    * 
    */ 
    
    public int ortalamaHesaplama (int sayi1, int sayi2, int sayi3) {
            int toplam,ortalama;
            toplam = sayi1 + sayi2 + sayi3;
            ortalama = toplam / 3;
            return ortalama;
   }


    public static void main(String[] args) {
        int hesap1;
        OrtalamaHesaplama nesne = new OrtalamaHesaplama();
        hesap1 = nesne.ortalamaHesaplama(20,30,40);
        System.out.println("ortalama :" + hesap1);
    }
}

Kodlama yaparken kullanabileceğimiz yorum satırlarımızdan bahsettiğimize göre şimdi kaçış operatörlerinden bahsedelim.

JAVA’da Kaçış Operatörleri

JAVA’da kullanılabilen kaçış operatörlerinden bazılarını aşağıdaki tablodan inceleyebilirsiniz.

Kaçış OperatörüAçıklaması
\tBir tab boşluğu ekler.
\nBir satır aşağı atlar.
\rSatır başı ekler.
\fSayfa sonunu belirtir.
\’Tek tırnak ekler.
\’’Çift tırnak ekler
\\Ters eğik çizgi ekler.

JAVA’da kaçış operatörlerini kullanarak yazdığımız kodların okunabilirliğini artırabiliriz. Kaçış operatörlerinin kullanımlarına ait örnek aşağıdaki gibidir:

INPUT:

public class Main
{
    public static void main(String[] args) {
        System.out.println("Bu bir\ndeneme boşluğudur");
    }
}

OUTPUT:

Bu bir
deneme boşluğudur
INPUT:

public class Main
{
    public static void main(String[] args) {
        System.out.println("Bu bir\tdeneme boşluğudur");
    }
}

OUTPUT:

Bu bir	deneme boşluğudur

Bu yazımızın son bölümünde değişkenler ve veri tiplerinden bahsederek yazımızı sonlandıralım.

JAVA’da Değişkenler Ve Veri Tipleri

Değişken (variable), girdiğimiz ya da atadığımız bazı değerlerin geçiçi olarak hafızada saklanması için oluşturulan alanlara denir. Bir değişkene herhangi bir değer atamak için “ = ” ifadesi kullanılır. Örnek olarak:

int deger = 4

Değişkenler sayesinde kullanacağımız ifadeleri hafıza saklar ve gerektiği durumlarda kullanırız. Bir değişken tanımlanırken belirtilen veri tipindeki değerleri saklayabilir. Örneğin int olarak tanımladığımız bir değişkene string(dize) bir değer ataması gerçekleştirirsek program bize çıktı olarak hata verir. Böyle durumlarda yazdığımız programımız basit bir sebepten dolayı kesintiye uğramış olur.

Eğer tanımlamış ve değer atamış olduğumuz bir değişkene tekrar değer ataması yapılırsa son atanan değer o değişkenin değeri olur.

JAVA’da değişkenlerin tanımlabileceği farklı veri tipleri vardır. Bu veri tipleri JAVA’da varsayılan olarak gelen ilkel veri tipleri olabilirken kullanıcının kendi tanımlayabileceği veri tipleri de olabilir. İlkel veri tiplerinin her zaman bir değeri vardır. İlkel olmayan veri tipleri boş olarak tanımlanabilir.

Bunların dışında ilkel veri tiplerinin boyutları veri tipine göre değişikleri gösterirken ilkel olmayan veri tiplerinin boyutları aynıdır.

JAVA’da değişken aşağıdaki gibi tanımlanabilir:

veri tipi değişken adı = deger

Aşağıdaki tabloda JAVA’da var olan 8 ilkel veri tipini inceleyebilirsiniz.

Veri TipiBoyutAçıklama
byte1 bayt-128’den 127 kadar olan tam sayıları saklar.
short2 bayt-32,768’den 32,767 kadar olan tam sayıları saklar.
int4 bayt-2,147,483,648’den 2,147,483,647 kadar olan tam sayıları saklar.
long8 bayt-9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 aralığında olan tam sayıları saklar.
float4 baytOndalık sayıları saklamak için kullanılır. 1.4×10^-45 ile 3.4×10^38 aralığında bir değer tanımlanabilir.
double8 baytOndalık sayıları saklamak için kullanılır. 4.9×10^-324 ile 1.8×10^308 aralığında bir değer tanımlanabilir.
boolean1 bitTrue ya da False adında mantıksal bir değer saklamak için kullanılır.
char2 baytHerhangi bir karakterin ASCII tablosundaki değerini saklar.

Yukarıdaki tabloyu incelediğimizde JAVA’da var olan ilkel veri tiplerini özetle incelemiş olduk. Bir sonraki yazımızda JAVA’da var olan bu ilkel veri tiplerinde örneklerden ve ilkel olmayan veri tiplerinden bahsedeceğiz. Bir sonraki yazıya buradan erişebilirsiniz.

JAVAECWJQP43S6OG9J
Java ile Temel Programlama #1

Bu yazımızda sizlere pek çok alanda kullanılan ve popüler bir programlama dili olan Java’dan bahsedeceğim. Genel olarak yazı içerisinde Java’nın ne olduğundan, nerelerde kullanılabildiğinden, yazım ve isimlendirme kurallarından bahsedeceğim. Son olarak da Java ile ilk kodumuzu yazarak yazımızı sonlandıracağım. O halde Java’nın ne olduğundan ve nerelerde kullanabileceğinden bahsetmeye başlayalım.

Java Nedir ve Nerelerde Kullanılabilir?

James Gosling

Java 1995 yılından çıkış yapan ve Sun Microsystems mühendislerinden James Gosling tarafından geliştirilen açık kaynak kodlu, nesne yönelimli ve yüksek seviyeli bir programlama dilidir. Java’yı Windows, MAC OS ve UNIX gibi işletim sistemlerinde kullanmak mümkündür. Syntax, üzerinde çalıştığımız programlama dilinin kendine has program yapısını ve bu yapının kurulmasında kullanılan kuralları ifade eder. Java’nın söz dizimi yapısı C/C++’a benzerdir. Bunun sebebi Gosling’in, programcılar için Java’nın kolay öğrenilebilen bir dil olmasını sağlamak istemesiydi.

Gosling, Java projesini ilk olarak 1991 yılında İnteraktif televizyonlar için geliştirmeye başlamıştı. Java’ya ilk olarak OAK ismini vermişti. Bu isim Gosling’in ofisinin yanında bulunun bir meşe ağacından gelmekteydi. Daha sonralarında ise projenin ismi Green olsa da son olarak Java ismini aldı.

Java’nın şu anda kullanılan en güncel sürümü 22 Mart 2022 tarihinde yayınlanan Java SE 18’dir.

Java kodlarını kullanarak program yazabilmek için IDE’lere ihtiyaç duyarız. Bir IDE (Integrated Development Environment, Tümleşik Geliştirme Ortamı), yazılım geliştirme için bilgisayar programcılarına kapsamlı olanaklar sağlayan bir yazılım uygulamasıdır. Java için Eclipse ve IntelliJ IDEA gibi ücretsiz IDE’ler kullanabiliriz. Bu IDE’leri indirmek ve bilgisayarınıza kurmak için resmi sayfalarını ziyaret edebilirsiniz.

Java Kullanım Alanları

Java programlama dilini kullanarak mobil, web ve masaüstü uygulamalar geliştirmek mümkündür. Günümüzde telefon, tablet ve bilgisayarlardan oynayabildiğimiz oyunlarda Java ile yazılabilir. Örnek olarak, popüler oyunlardan biri olan Minecraft, Java ile yazılmıştır. Bunlar dışında bilimsel uygulamaların yazımında, büyük veri teknolojilerinde, gömülü sistemlerde ya da finans uygulamalarında Java kullanmak mümkündür. Tabii ki bu alanlar için farklı programlama dilleri de mevcut fakat Java da bu alanlarda kullanılabilen programlama dillerinden biridir.

Java’da Yazım ve İsimlendirme Kuralları

Yazım Kuralları

Java’da var olan yazım kuralları aşağıdaki gibidir:

  • Değişken isimleri rakamlar ile başlayamaz.
  • Türkçe karakter metin ifadeleri dışında kullanılamaz.
  • Var olan fonksiyon veya özel isimler değişken ismi olarak tanımlanamaz.
  • Değişken isimleri birden fazla kelimeden oluşuyorsa arada boşluk kullanılamaz. Bu durumda araya ‘_’ eklenebilir ya da kelimeler birleştirilebilir.
  • Java küçük-büyük harfe duyarlı bir dildir. Örneğin ‘degisken’ isimli değişken ile ‘Degisken’ isimli bir değişken aynı değildir.
  • Bir değişken tanımlanırken önce değişkenin veri tipi ardından değişken ismi yazılmadır.
  • Komutların sonuna ‘ ; ’ ifadesi eklenir.
  • Değişken isimleri rakam ile başlamadığı taktirde kelime içerisinde rakam kullanılabilir.
  • Sınıf ismi yazılırken uyulması gereken kurallar, değişken tanımlanırken kullanılması gereken kurallar ile aynıdır.

İsimlendirme Kuralları

Java’da değişkenler, metotlar, sınıflar ve sabit değerler için isimlendirme kuralları vardır. Bu kurallara uyulmadığında program hata vermez ancak bu kurallar sayesinde okunabilirlik artar. Bu isimlendirme kurallarında kullanılan isimlendirme türlerini inceleyelim.

Upper Camel Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimedeki her bir kelimenin ilk harfinin büyük olması kuralıdır. Örneğin;

BirlesikKelime

Lower Camel Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimedeki ilk kelime hariç diğer kelimelerinin ilk harflerinin büyük olması kuralıdır. Örneğin;

birlesikKelime

Snake Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimelerin her birinin ‘_’ ile birbirine bağlanması kuralıdır. Kendi içerisinde Lower Snake Case ve Upper Snake Case olarak ikiye ayrılır.

Lower Snake Case Örneği; birlesik_kelime

Upper Snake Case Örneği; Birlesik_Kelime

Screaming Snake Case: Birden çok kelimenin bir araya gelerek oluşturduğu birleşik kelimelerin her birinin ‘_’ ile birbirine bağlandığı ve her bir kelimenin her harfinin büyük yazıldığı kuralıdır. Örneğin;

BIRLESIK_KELIME

Aşağıdaki tabloyu inceleyerek değişkenler, metotlar, sınıflar ve sabit değerler için isimlendirme kurallarını görebilirsiniz.

TürKuralÖrnek
SınıfUpper Camel Casepublic class ClassName{}
DeğişkenLower Camel CasevariableName
MetotLower Camel Casepublic int numberOfClasses{}
Sabit DeğerScreaming Snake Casefloat VALUE_OF _PI

Java’da isimlendirme kurallarının da neler olduğunu öğrendiğimize göre artık ilk çalışan programımızı yazabiliriz. İlk çalışan programımız, programlama dili öğrenirken adeta klasikleşen ekrana ‘Merhaba Dünya’ yazdırmak olsun.

Java’da Ekrana Veri Gösterme

Java’da ekrana çıktı bastırmak için ‘system.out.println()’ komutu kullanılabilir. Bu komutun içerisine yazacağımız herhangi bir değeri program çalıştırıldığında çıktı ekranında görürüz.

Burada bir diğer önemli nokta ise bu komutlarımızı Java’da nereye yazmamız gerektiğidir. Programı çalıştırdığımız anda bu komutlar okunmalı ve bize çıktı olarak istediğimiz değerler yansımalıdır. Bunun için aşağıdaki görsele göz atalım.

public class ClassName {
    public static void main(String[] args) {
        System.out.println("Merhaba Dünya");
   }
}

Kod bloğunda da görüldüğü gibi kodlar Java’da sınıf içerisine yazılır. Main metodu ise program çalıştığı anda çalıştırılan bir metottur. Main metodunun içerisine gövde (body) adı verilir. Kodumuzu bu main metodunun gövdesinin içerisine yazarak program çalıştırıldığı anda system.out.println() komutunu çalıştır demiş olduk. Buraya yazdığımız kod derleyici tarafından yorumlandıktan sonra bize çıktı olarak gösterilir.

System.out.println() komutu ile ekrana pek çok veriyi çıktı olarak gösterebilir, değişken sonuçlarını yansıtabilir veya matematiksel sonuçları yazdırabiliriz.

public class ClassName {
    public static void main(String[] args) {
      int deger = 8;  
      System.out.println("Sayinin degeri : " + deger);
   }
}
public class ClassName {
    public static void main(String[] args) {
      int sayi1 = 8;
      double sayi2 = 1.2;  
      System.out.println("Toplam Deger : " + (sayi1 + sayi2));
   }
}

Bu yazımızda sizlere Java’da temel bilgilerden bahsettim. Bir sonraki yazımızda Java’da yorum satırlarından, kaçış karakterlerinden, değişken ve veri tiplerinden bahsedeceğiz. Bir sonraki yazıya buradan erişebilirsiniz.

JAVASWO142JCV14919

Matlab’de Matematiksel İşlemler

Bu yazıda sizlere limit, türev, integral ve diferansiyel denklemlerin Matlab’de nasıl çözüldüğünden bahsedeceğim.

Matlab’de Limit

Matematikte çok önemli bir yere sahip olan limit problemlerini Matlab’de çözmek mümkündür. Bunun için limit() komutunu kullanmamız gerekir. Komutun içerisine yazmamız gereken fonksiyon sembolik nesnelerden oluşmalıdır. Eğer sembolik nesne ile ilgili herhangi bir fikriniz yoksa buradan bir önceki yazımızı okumanızı tavsiye ederim. Komutun kullanılışı,

limit(fonksiyon,değişken,değer,left-right)

şeklindedir. Burada eğer fonksiyonumuz x değişkenine bağlı ise değişken yerine x yazılır. x değişkeninin yaklaşmaya çalıştığı değer b ise  değer yerine b yazılmalıdır. Eğer ki b değerine b+(sağdan) ya da b(soldan) yaklaşıyorsak left veya right değerlerinden biri yazılmalıdır.

    \[lim_{x\to b^+}f(x)\]

ifadesinin limitini bulmak için komut satırına limit(f(x),x,b,right) ifadesi yazılmalıdır. Eğer değer yerine herhangi bir şey yazılmaz ise 0 olarak kabul edilir.

Limit x→∞ ise değer yerine inf, x→-∞ ise –inf yazılmalıdır.  Böylece limit bulunmuş olacaktır. Birkaç örnek yapalım.

Örnekler

    \[lim_{x \to \infty}\frac{7^{2x+1}-49.7^{x+3} }{49^{x-1}+77 }    =?\]

INPUT:
 >> syms x;
 >> f = (7^(2*x+1) - 49*(7^(x+3)))/(49^(x-1) + 77);
 >> sonuc = limit(f,x,inf);
 >> sonuc
 OUTPUT:
 sonuc =
  343 

    \[lim_{x \to {0}^{-}}\frac{9x}{|x|} =?   \hspace{3em} lim_{x \to 1}\frac{3x^2-3}{x-1} =? \]

 INPUT:
 >> syms x;
 f1 = (9*x)/abs(x);
 >> sonuc1 = limit(f1,x,0,'left');
 >> sonuc1
 OUTPUT:
 sonuc1 =
 -9 

INPUT:
>> syms x;
>> f2 = (3*(x^2) - 3)/ (x-1);
>> sonuc2 = limit(f2,x,1);
>> sonuc2
OUTPUT:
sonuc2 = 
6

    \[lim_{x \to a}\frac{x^3-a^3}{sin(3x-3a)} =? \hspace{3em} lim_{x \to {1}^{+}}\frac{6x^2+5x+3}{9x} =? \]

INPUT:
syms x a;
f3 = ((x^3) - (a^3))/(sin(3x -3a));
sonuc3 = limit(f3,x,a) ;
sonuc3
OUTPUT:
sonuc3 =
a^2    

INPUT:
>> syms x;
>> f4 = (6*(x^2) + 5*x + 3) / (9*x);
>> sonuc4 = limit(f4,x,1,'right');
>> sonuc4
OUTPUT:
sonuc4 =
14/9 

Matlab’de Türev

Mühendislik ve matematik başta olmak üzere birçok alanda karşımıza çıkan türev problemlerini matlab ile çözmek için diff() komutunu kullanmamız yeterlidir. Türevini hesaplama ihtiyacı duyduğumuz fonksiyonu diff() komutuna yazarken, fonksiyonun değişkenini matlab’de sembolik nesne olarak tanımlamış olmamız gerekir. Komutun kullanışı diff(fonksiyon,derece,değişken) şeklindedir. Fonksiyon ve değişken kısımlarına neler yazılması gerektiği limit() komutundan biliyoruz. Derece yerine ise fonksiyonun kaçıncı mertebeden türevinin olmaması gerektiği yazılmalıdır. Örnek olarak f(x) fonksiyonunun 2.mertebeden türevi hesaplanmak isteniyorsa komut satırına diff(f(x),2,x) yazılması yeterlidir. Matlab sonucu bize çıktı olarak gösterecektir.

Örnekler

    \[f(x)=7x^6+ 6x^5 + 10x^4 + 2x^2+ 1  \quad ise  \quad f'(x) = ?\]

INPUT:
>> syms x;
>> f = 7*(x^6) + 6*(x^5) + 10*(x^4) + 2*(x^2) + 1;
>> sonuc = diff(f,1,x);
>> sonuc
OUTPUT:
sonuc = 
42*x^5 + 30*x^4 + 40*x^3 + 4*x 

    \[f(x)=x^2tan(x)+cos^2(4x^2) \quad  ise  \quad f'(x) = ?\]

INPUT:
>>syms x;
>>f = (x^2)tan(x) + (cos(4(x^2)))^2;
>>sonuc = diff(f,1,x);
>>sonuc
OUTPUT:
>>sonuc =
>>2xtan(x) + x^2(tan(x)^2 + 1) - 16xcos(4x^2)sin(4x^2)    

    \[f(x)=e^xsin(5x) \quad  ise  \quad f^3(x) = ?\]

INPUT:
>>syms x;
>>f = exp(x)(sin(5x));
>>sonuc = diff(f,3,x);
>>sonuc
OUTPUT:
>>sonuc =
>>-110cos(5x)exp(x) - 74sin(5x)exp(x)         

    \[f(x)=\frac{1}{2+sin(2x)}\hspace{0.2 cm}ise\hspace{0.2 cm}f^2(x)=?\hspace{0.2 cm}ve\hspace{0.2 cm}x=5\hspace{0.2 cm}noktasındaki\hspace{0.2 cm}2. türevi\hspace{0.2 cm}nedir?\]

INPUT:
>>syms x;
>>f = (1)/(2 + sin(2x)); 
>>turevin_sonucu = diff(f,2,x);
>>sonuc = subs(turevin_sonucu,5);  %x = 5 noktasındaki 2.türevin sonucuna bakıyoruz.  
>>sonuc 
>>OUTPUT: 
>>sonuc =  (4sin(10))/(sin(10) + 2)^2 + (8*cos(10)^2)/(sin(10) + 2)^3       

Matlab’de İntegral

Matlab’de int() komutunu kullanarak herhangi bir integral probleminin çözümünü bulabiliriz. Bu komutun içerisine yazacağımız fonksiyonun değişkeninin yine önceki iki komut gibi sembolik nesne olarak tanımlanmış olması gerekir. int() komutu ile belirli veya belirsiz integraller çözdürülebilir. Eğer belirsiz integral çözmek istiyorsak int(fonksiyon) komutunu kullanmalıyız. Fakat belirli integral çözmek istiyorsak int(fonksiyon,başlangıç değeri,bitiş değeri) komutunu kullanmamız yeterlidir. Bazı durumlarda matlab integrali hesaplayamayabilir. Bu durumda quad() komutunu kullanarak integralin yaklaşık değerini hesaplayabiliriz.

Örnekler

    \[\int (3x^5+2x^2+1)dx\hspace{0.2 cm}integralini\hspace{0.2 cm}hesaplayınız.\]

INPUT:
>> syms x;
>> f = 3*(x^5) + 2*(x^2) + 1;
>> sonuc = int(f);
OUTPUT:
sonuc =
x^6/2 + (2*x^3)/3 + x 

    \[\int (x^2sin(x))dx\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>> syms x;
>> f = (x^2)*sin(x);
>> sonuc = int(f);
>> sonuc
OUTPUT:
sonuc =
2*x*sin(x) - cos(x)*(x^2 - 2) 

    \[\int_{0}^1 \frac{2}{2+3x}dx\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>>syms x;
>>f = (2)/(2 + 3*x);
>>sonuc = int(f,0,1);
>>sonuc
OUTPUT:
>>sonuc =
>>log(50^(1/3)/2)    

    \[\int_{0}^{\pi/2} sin^2(3x)cos(x)dx\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>>syms x;
>>f = ((sin(3x))^2)cos(x);
>>sonuc = int(f,0,pi/2);
>>sonuc
OUTPUT:
>>sonuc =
>>17/35    

Bu tip integral hesaplamalarının dışında iki katlı ya da üç katlı integraller hesaplanabilir.

Çok Katlı İntegraller

    \[\int_{a}^{b}\int_{b}^{a}f(x,y)dxdy\]

biçimindeki iki katlı integrali hesaplamak için int(int(f(x,y),x,c,d),y,a,b) komutunun kullanılması yeterlidir. Burada dikkat edilmesi gereken husus, integral probleminde hangi değişkene göre integral önce hesaplanması gerekiyorsa, int(f(x,y),x,c,d) komutunun değişkeni ve sınırları ona göre belirlenmelidir. Eğer integral problemi ilk y değişkenine göre hesaplanması gerekseydi, içerideki komut int(f(x,y),y,c,d) şeklinde olurdu. Benzer şekilde üç katlı

    \[\int_{a}^{b}\int_{c}^{d}\int_{e}^{f}f(x,y,z)dxdydz\]

integralini hesaplamak için int(int(int(f(x,y,z),x,e,f),y,c,d),z,a,b) komutunu kullanmamız gerekir.

Örnekler

    \[\int_{0}^{3}\int_{0}^{x/4}(x^2+y^2)dydx\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>>syms x y;
>>f = (x^2) + (y^2);
>>sonuc = int(int(f,y,0,x/4),x,0,3);
>>sonuc
OUTPUT:
>>sonuc =    
>>1323/256

    \[\int_{0}^{4}\int_{0}^{5}\int_{0}^{3}(x^2y^2z^2)dxdydz\hspace{0.1 cm}integralini\hspace{0.1 cm}hesaplayınız.\]

INPUT:
>>syms x y z;
>>f = (x^2)(y^2)(z^2);
>>sonuc = int(int(int(f,x,0,3),y,0,5),z,0,4);
>>sonuc
OUTPUT:
>>sonuc =    
>>8000

Bu şekilde matlab’de herhangi bir integral problemini hesaplayabiliriz. Son olarak diferansiyel denklem çözümlerinden bahsedip yazıyı sonlandıracağım.

Matlab’de Diferansiyel Denklemler

Limit, türev, integral gibi matematik, fizik ve mühendislik alanlarında önemli bir yere sahip olan diferansiyel denklemleri matlab üzerinde çözebilmek mümkündür. Bilinmeyen fonksiyonun bir bağımsız değişkene bağlı olduğu adi diferansiyel denklemleri çözmek için Dsolve() komutu kullanılabilir. Komut içerisindeki d/dt ifadesi ‘D’ ile temsil edilir. Dsolve komutunun kullanımı Dsolve(‘Diferansiyel denklem’,başlangıç koşulları) şeklindedir. Diferansiyel denklemin matlab’de temsili aşağıdaki gibidir:

    \[y' = Dy,    y'' = D2y,     y''' = D3y,    y'''' = D4y,  … ,  = Dny\]

Örnekler

    \[y'' - 6y' + 25y = 0\hspace{0.1 cm}diferansiyel\hspace{0.1 cm}denklemini\hspace{0.1 cm}çözünüz.\]

INPUT:
>>syms x y;
>>x=dsolve('D2y-6Dy+25y=0');
>>x
OUTPUT:
>>x =
>>C1cos(4t)exp(3t) + C2sin(4t)exp(3t)    

    \[y'' - y' - 2y = e^{4t}\hspace{0.1 cm}diferansiyel\hspace{0.1 cm}denklemini\hspace{0.1 cm}çözünüz.\]

INPUT:
>>syms x y t;
>>x=dsolve('D2y-Dy-2y=exp(4t)');
>>x
OUTPUT:
>>x =
>>exp(4t)/10 + C1exp(2t) + C2exp(-t)    

    \[y'' - 8y' + 2y + 1= t\hspace{0.1 cm}diferansiyel\hspace{0.1 cm}denklemini\hspace{0.1 cm}\hspace{0.1 cm}y(0) =0\hspace{0.1 cm}ve\hspace{0.1 cm}y'(0) = -1\]

    \[koşulları\hspace{0.1 cm}altında\hspace{0.1 cm}çözünüz\hspace{0.1 cm}ve\hspace{0.1 cm}grafiğini\hspace{0.1 cm}çiziniz.\]

INPUT:
>>syms x y t;
>>x=dsolve('D2y+8Dy+2y+1=t','y(0)=0','Dy(0)=-1'); 
>>x
>>ezplot(x)
OUTPUT:
>>x =
>>t/2 + exp(t(14^(1/2) - 4))((1714^(1/2))/56 + 5/4) + (14^(1/2)exp(-t(14^(1/2) + 4))(5*14^(1/2) - 17))/56 - 5/2    

MTLBI7J25966U28A3H

Python’da Veri Tipleri

String Veri Tipi

String, çift ya da tek tırnak içerisine yazılabilen bir ya da daha fazla harf, sayı veya özel karakterlerden oluşan bir dizidir. Python’da karakter veri tipi bulunmaz. Tırnaklar arasına yazılan her karakter dizenin bir parçasıdır. Bu parçaların indeks numaralarını kullanarak her bir karaktere erişebiliriz. Aşağıda string veri tipinde bir değişken oluşturulmuş ve bir karakterin indeks numarası kullanılarak karaktere ulaşılmıştır.

INPUT:

isim = "Mehmet"

isim[4]   #İndeks numarası 4 olan karakter "e" dir.

OUTPUT:

' e '

Integer Veri Tipi

Pozitif veya negatif tam sayılardan oluşan 32 bit veri tipidir. Python’da bir tam sayı değerinin uzunluğu sistemin sahip olduğu bellek kapasitesi ile sınırlıdır. Ancak bu uzunluktan daha uzun bir sayı tanımlamak bellek kapasitesi yeterli sistemler için mümkündür.

Long Veri Tipi

Çok daha uzun tam sayıları tanımlamak için kullanılan 64 bitlik veri tipidir.

Float Veri Tipi

Ondalık sayılardan oluşan 64 bitlik veri tipidir.

Complex Veri Tipi

a+bj şeklinde gerçek ve sanal kısımdan oluşan kompleks sayıları ifade eden veri tipidir.

List Veri Tipi

List, birbirinden farklı veri tipine sahip ögeleri barındırabilen, sıralı ve değiştirilebilir veri tipidir. Listeler, [ ] arasına yazılan değerler ile tanımlanabilir. Metinsel(string) değerler “ ”(tırnak) içerisinde yazılması gerekirken numerik değerler(int,long,float) normal yazılır. Liste içerisindeki değerler birbirlerinden “ , ” (virgül) ile ayrılır. Burada da bir ögenin indeks numarası kullanılarak ögeye ulaşılabilir hatta değiştirilebilir.

Tuple Veri Tipi

Tuple, list veri tipi gibi sıralı ögelerden oluşan veri tipidir. Tuple ile list arasındaki fark ise tuple’ın değiştirilemez olmasıdır. Tuple ( ) içerisine yazılan değerler ile tanımlanır.

Dictionary (Sözlük) Veri Tipi

Sözlük, veri değerlerini (anahtar:değer) çiftlerinde tutmak için kullanılan veri tipidir. Sözlüklerin içerisindeki içerisindeki çiftler hemen hemen her veri tipinden oluşabilen, sıralanmamış ve değiştirilebilir ögelerdir. Sözlükler { } (süslü parantez) ile yazılırlar. Bir sözlük içerisindeki anahtarların değerlerini tek tek çağırabiliriz.  Ayrıca bu anahtarların tiplerini de sorgulayabiliriz.

Boolean Veri Tipi

Mantıksal bir veri tipi olan boolean, True ve False olmak üzere iki değere sahiptir. Mantıksal olarak doğru olan duruma True, yanlış olan duruma ise False değeri karşılık gelir.

Python’da kod yazarken yukarıdaki veri tiplerine uygun olarak değişkenler tanımlayabilir ya da input( ) fonksiyonunu kullanarak dışarıdan kendimiz bir değişkene değer verebiliriz. Tanımladığımız ya da dışarıdan girdiğimiz değerlerin veri tiplerini değiştirmek mümkündür. Şimdi bu durumları inceleyelim.

String Veri Tipini Integer Veri Tipine Dönüştürme

String veri tipinde bir değişken tanımlayalım:

x = "12345"

Python, x değişkeninin değerini (“ ”) arasına yazıldığından string tipinde algılayacaktır. Bu string tipindeki x değişkenini int( ) fonksiyonunun içerisine yazarsak x değişkeni artık integer tipinde olur.

INPUT:

int(x)

print(type(x))

OUTPUT:

<class 'int'>

Burada dikkat edilmesi gereken husus tanımlanan bu string değerinin her bir karakterinin sayısal olmasıdır. Yoksa bu dönüştürme işlemi gerçekleşmez.

İki adet string tipinde değişken tanımlayalım:

 x = “1”  ve y = ” 2 ” şeklinde olsun. Burada x ve y’yi toplamayı denersek normal toplama işlemindeki gibi 3 değerini elde etmeyiz. String ifadeleri topladığımızda çıktı olarak iki ifadenin yan yana yazılmış halini görürüz.

INPUT:

x = "1"

y = "2"

print(x+y)

OUTPUT:

12

Örnek olarak tanımladığımız x değişkenini 4 değeri ile çarparsak çıktı olarak 4 defa arka arkaya yazılmış 1 rakamını görürüz.

INPUT:


x = "1"

print(4*x)

OUTPUT:

1111

Böylece toplama ve çarpma işlemlerinin string ifadeler için ekleme ve arka arkaya ekleme işlevlerinde kullanılabileceğini görmüş oluruz.

String Veri Tipini Float Veri Tipine Dönüştürme

Karakterleri rakamlardan oluşan string ifadeleri float() fonksiyonu ile float tipine dönüştürebiliriz.

INPUT:

x = "20.21"

y = float(x)

print(type(y))

OUTPUT:

<class 'float'>

Float ya da Integer’dan String’e Dönüştürme

Tanımladığımız sayısal bir değere sahip olan değişkeni str() fonksiyonu ile string tipine dönüştürebiliriz.

INPUT:

x = 10

y = str(x)

print(type(x))

OUTPUT:

<class 'int'>

Boolean Veri Tipini String Ve Integer Veri Tipine Dönüştürme

Boolean, True ve False değerlerine sahip veri tipi olduğunu belirtmiştik. Aşağıdaki örnekte boolean tipinde bir değişkenin integer ve string veri tiplerine dönüştürülmesi gösterilmiştir.

INPUT:

dogru_mu = True

print(type(dogru_mu))

y = int(dogru_mu)

print(type(y))

OUTPUT:

<class 'bool'>

<class 'int'>

ya da

INPUT:

dogru_mu = False

print(type(dogru_mu))

y = str(dogru_mu)

print(type(y))

OUTPUT:

<class 'bool'>

<class 'str'>

Bu tip dönüştürmenin tersi olan integerdan boolean’a ve string’ten boolean’a dönüştürmeyi örnekle gösterelim.

1-

INPUT:

sonuc = " dogru "

print(type(sonuc))

yeni_sonuc = bool(sonuc)

print(type(yeni_sonuc))

OUTPUT:

<class 'str'>

<class 'bool'>

2-

INPUT:

x = 10

print(type(x))

y = bool(x)

print(type(y)) 

OUTPUT:

<class 'int'>

<class 'bool'>

Böylece veri tiplerini ve tip dönüştürmelerini görmüş olduk. Şimdi ise matematiksel işleçlere göz atalım. Bu işleçleri aşağıdaki tablodan inceleyebilirsiniz.

İŞLEÇLERKARAKTER
Toplama+
Çıkarma
Çarpma*
Bölme/
Tam Sayı Bölme//
Mödüler Bölme%
Kuvvet Alma**

Bu işleçlerden faydalanarak birkaç tane problem çözüp konuyu sonlandıralım.

Örnekler

1- Yarıçapı 5 olan bir dairenin çevresini hesaplayınız.

INPUT:

r = 5

pi = 3.14

dairenin_cevresi = 2*pi*r


print("Dairenin Çevresi :{}".format(dairenin_cevresi))

OUTPUT:

Dairenin Çevresi : 31.400000000000002

2- Yukarı doğru v0 hızı ile atış hareketinde, cismin herhangi bir t anındaki yüksekliği -h = v0.t – (1/2) .g.t bağıntısı ile verilir. Yukarı doğru 20 m/s hızla atılan cismin 5 saniye sonra yüksekliğini hesaplayınız. (g = 9.81 m/s2 , π = 3.14 alınız.)

INPUT:

v0 = 10

t = 3

g = 9.81

h = v0*t-(1/2)*g*(t**2)

print("5 saniye sonra yükseklik : {}".format(-1*h))

OUTPUT:

5 saniye sonra yükseklik : 14.145000000000003

3- L uzunluklu bir basit sarkacın periyodu T = 2π(L/g)(1/2) olarak verilir. 5 m uzunluklu sarkacın periyodunu hesaplayınız. (g = 9.81 m/s2 , π = 3.14 alınız.)

INPUT:

L = 5

g = 9.81

pi = 3.14

T = 2*pi*((L/g)**(1/2))

print("Sarkacın Periyodu : {}".format(T))

OUTPUT:

Sarkacın Periyodu : 4.483427405990983

Bir sonraki yazıda Python’da karşılaştırmalar ve döngülerden bahsedeceğim.

PYTN6O05URZXMNUNQC

 

Algoritma ve Akış Diyagramı Örnekleri

Algoritmaya giriş yaparken akış diyagramlarında eşkenar dörtgenlerin karar verici (karşılaştırmalı) durumlarda kullanıldığını ve ana hat itibariyle diyagramlarda temelde kullanılan 6 şekli önceki yazımızda ifade etmiştik. Farklı anlatımlarda farklı sembollerin de kullanıldığını belirterek bu yazıda da akış diyagramlarında karar verici adımların döngülerini ve örneklerini göstereceğim.



Şemsiye Almayı Mıyım Diyagramı Örneği

“Evden çıkarken şemsiye almalı mıyım” sorusu için bir algoritma ve akış diyagramı yapacak olsaydık mantık örgüsüne böyle bir akış diyagramı oluşurdu.

Adım0: Başla

Adım1: Yağmur Yağıyor Mu?

Adım2: Cevap “Evet” ise Adım4’e git

Adım3: Cevap “Hayır” ise Adım9’a git

Adım4: Şemsiye ara

Adım5: Şemsiye buldun Mu?

Adım6: Cevap “Evet” ise Adım8’e git

Adım7: Cevap “Hayır” ise Adım1’e git

Adım8: Şemsiyeyi yanına al ve Adım10’a git

Adım9: Şemsiyeyi yanına alma

Adım10: Bitir

Görüldüğü üzere karşılaştırmalı durumların oluşturduğu döngüyü de her bir adımda belirttik. Bu algoritmanın akış diyagramını yapacak olursak:

Kahve Makinesi Çalışma Diyagramı Örneği

Basit bir kahve makinesinin çalışma mantığını diyagram haline getirecek olursak:

Hastane İşleyiş Diyagramı Örneği

Farklı bir örnekle bir hastanenin işleyiş diyagramını yapacak olsaydık:

Bu örnekte dikkat edilmesi gereken fark her bir kapalı çevrimin bir döngü olduğudur. Örnek olarak Hasta Kayıtlı Mı? sorusu için eğer cevap hayırsa program hasta kaydı isteyecektir. Hasta kaydı girildikten sonra döngünün devamında ise program tekrar hasta kayıt kontrolü yapacak ve artık hasta kayıtlı olduğu için program bir sonraki adımdan devam edecektir. Aksi durumda hasta kaydı yapılmayıp bir sonraki aşamaya geçilmek istendiğinde ise program bu adımda tekrar bir döngü içine girecek ve tekrar hasta kaydı soracaktır.

Acil Yardım Hattı Diyagramı Örneği

Diğer bir örnekte acil yardım hattının işleyiş diyagramını inceleyebiliriz.

Klima Sıcaklık Kontrol Diyagramı Örneği

Bir diğer akış diyagramı örneğinde ise kapalı bir çevrimi gösteren klimanın sıcaklık kontrol diyagramını inceleyelim.

Burada ise farklı olarak veri tabanından daha önce girilen sıcaklık değerini çağırmak için silindir şekli kullanılmıştır.

Daha fazla örneği daha sonra yine buraya ekleyeceğim. Bir önceki yazı olan algoritma ve programlamaya giriş’i henüz okumadıysanız buradan okuyabilirsiniz.

ALGO4778J5DE918DYC
Python ile Temel Programlamaya Giriş

Bir önceki yazıda Python nedir ve hangi alanlarla kullanılır gibi pek çok konudan bahsetmiştim. Bu yazıda ise Python ile temel programlamaya giriş yapacağım. Python ile kod yazarken bir IDE’ye ihtiyaç duyulur. Bir IDE(Integrated Development Environment, Tümleşik Geliştirme Ortamı), yazılım geliştirme için bilgisayar programcılarına kapsamlı olanaklar sağlayan bir yazılım uygulamasıdır. Atom, Pycharm, IDLE, Jupyter, Spyder gibi IDE’leri kullanabilirsiniz. Bu yazıda sizlere örnek olarak göstereceğim kodlar Jupyter tabanlı Google Colab’ta hazırlanmıştır. Google Colab, Python kodlarını yazmaya yarayan, kurulum gerektirmeyen, ücretsiz, birçok kütüphaneyi içerisinde barındıran ve olmayan kütüphaneleri yüklemeye izin veren; web tarayıcıda çalışan ve bilgisayarınızdan GPU ve RAM kullanmayan bir geliştirme ortamıdır.

Google Colab ile ücretsiz olarak Tesla K80 GPU üzerinde uygulamalar geliştirebilirsiniz.  Çalışmalarınız Google Drive’e kaydedebilir ya da Google Drive’ınıza yüklediğiniz bir çalışmayı Google Colab’ta inceleyebilir ve düzenleyebilirsiniz. Google Colab hakkında daha fazla bilgi almak istiyorsanız buraya tıklayarak resmi sayfaya gidebilirsiniz.

Programlama Hataları

Her programlama dilinde olduğu gibi Python’da da çalışırken hata yapmamak mümkün değildir. Bir uygulama geliştirirken yazılan kodlardaki hataları bulmak ve çözmek geliştirme sürecinde en fazla zaman harcanan bölümü olabilir. Yazacağınız en küçük programda bile onlarca farklı hata çıkma ihtimali vardır. Kod yazarken karşımıza çıkabilecek hataların ne tür bir hata olduğunu bilmek hatayı daha kolay çözmemizi sağlayacaktır.

Yazım Hataları

Syntax (söz dizimi), üzerinde çalıştığımız programlama dilinin kendine has program yapısını ve bu yapının kurulmasında kullanılan kuralları ifade eder. Her programlama dilinin yazımı farklıdır. Python derleyicisi yazdığımız kodlarda bir syntax hatası fark ederse programı durdurur ve nerede syntax hatası olduğunu gösterir. Böylece bizler nerede ve ne tür bir hata yaptığımızı görmüş oluruz. Örnek olarak ad = “Mehmet yazarsak Python derleyicisi bize burada bir hata olduğunu söyleyecektir.

ad = "Mehmet

     File "<ipython-input-1-e098e0017e34>", line 1
          ad ="Mehmet
                     ^
SyntaxError: EOL while scanning string literal

Çünkü string bir değişken tanımlanmaya çalışılmış ancak doğru bir şekilde yazılmamıştır. String ifadeler (” “) arasına yazılarak tanımlanır. Doğrusu ad = “Mehmet” şeklinde olmalıdır.

Çalışma Zamanı Hataları

Bu tür hatalar kodların hatalı yazılmasından ziyade beklenilmeyen durumlarda ortaya çıkabilen hatalardır. Örnek olarak, çalışma yaptığımız bir dosya üzerinde düzenleme iznimiz yoksa ya da veritabanında çalışacak kodlar yazmışsak ve veritabanı ile bağlantı kurmamışsak program hata verecektir.

Anlamsal Hatalar

Python’da kod yazarken, yazdığımız kodlar hatasız bir şekilde çalışır ancak istediğimiz sonuçları vermez ve farklı sonuçlar verirse anlamsal hata ortaya çıkmış demektir. Bu tür hatalar farkedilmesi zor hatalardır. Örnek olarak 13 sonucunu elde edeceğiniz 6 + 20/2 işlemini Python kullanarak çözdünüz. Ancak program size 16 sonucunu verdi.  Burada program size bir hata çıktısı vermeyecektir. Çünkü bu durumda işlem önceliği hatası yapılmıştır. Program ilk olarak 20/2 işlemini gerçekleştirir, ardından bu sonuca 6 ekleyerek sonucu elde edip size gösterir. Düşündüğümüz sonucu elde etmek için ise (6+20)/2 şeklinde yazmamız gerekirdi.

Python’da Değişkenler Ve Veri Tipleri

Değişken (variable), girdiğimiz ya da atadığımız bazı değerlerin geçiçi olarak hafızada saklanması için oluşturulan alanlara denir. Bir değişkene herhangi bir değer atamak için “ = ” ifadesi kullanılır. Örnek olarak:

meslek = "Çiftçi"
dogum_yili = 1995
ondalik_sayi = 0.5

Eğer Python’da değişkene değer ataması yapılmazsa hata alınır. Yukarıda tanımlanılan üç değişkenin tipi sırasıyla string, integer ve float’tır. Burada yazılan değişkenleri kod bloğuna yazdığımızda herhangi bir çıktı göremeyiz çünkü herhangi bir komut vermedik. Ekranda çıktı görmek için print() fonksiyonunu kullanmalıyız. Böylece değişkenlerin değerlerini çıktı olarak görebiliriz. Eğer tanımladığımız bir değişkenin tipini görmek istersek type() fonksiyonunu kullanmalıyız.

type(meslek)
str

type(dogum_yili)
int

type(ondalik_sayi)
float

Tanımlanılan değişkenler harf ile başlayabilir, içerisinde sayı ve alt çizgi barındırabilir, büyük-küçük harf barındırabilirken herhangi bir sayıyla başlayamaz ve içerisinde alt çizgi hariç özel karakterler barındıramazlar. Değişken tanımlarken dikkat etmemiz gereken bir diğer hususta değişkenlere ileride hatırlanabilecek anlamlar verilerek tanımlamaktır. Örnek olarak 5 kişinin not ortalamasını hesaplayacak bir program yazmak istiyoruz. Burada ortalamayı hesaplayacak olan işlemi, alakalı bir değişkenin değeri olarak atamamızda fayda vardır.

kisi1 = 10
kisi2 = 50
kisi3 = 70
kisi4 = 85
kisi5 = 60
notlarin_toplami = kisi1 + kisi2 + kisi3 + kisi4 + kisi5
not_ortalamasi = otlarin_toplami/5
print("Notların Toplamı: ", notlarin_toplami)
print("Not Ortalaması: ", not_ortalamasi)

OUTPUT------------------
Notların Toplamı: 275
Not Ortalaması: 55.0

Python’da anahtar kelime olarak belirlenmiş kelimeleri değişken adı olarak kullanamazsınız. Bunlara örnek olarak print, if-else, class, False, none, break, import, while, for gibi kelimeler verilebilir.

Veri Tipleri

Python’da bulunan başlıca veri tipleri aşağıdaki gibidir:

  • String veri tipi (Metinsel veri tipi)
  • Integer veri tipi (Sayısal veri tipi)
  • Long veri tipi   (Sayısal veri tipi)
  • Float veri tipi (Sayısal veri tipi)
  • Complex veri tipi (Sayısal veri tipi)
  • List veri tipi
  • Tuple veri tipi
  • Dictionary veri tipi

Yukarıda sıralanan veri tiplerinden bir sonraki yazıda detaylı olarak bahsedeceğim.

 

PYTN0FBN4Y72459ALA

 

Matlab’de Dört İşlem ve Temel Fonksiyonlar

Önceki yazıda Matlab’de programlamaya giriş yapılmıştı. Bu yazıda ise Matlab içerisinde dört işlem, matematiksel fonksiyonlar ve vektör tanımlama gibi konulardan bahsedeceğim. İyi çalışmalar.

Matlab’de Dört işlem ve Uygulamalar

Her programlama dilinde olduğu gibi Matlab’de de dört işlem yapmak mümkündür. Bunun için işlem yapılacak sayıları ve işlemin operatörünü yazarsak, Matlab işlemin sonucunu hesaplayıp bize çıktı olarak verecektir. Kullanılan matematiksel operatörler :

        (+) = Toplam       (-) =  Çıkarma       (/) =  Bölme        (*) = Çarpma

Burada dikkat edilmesi gereken bir husus da işlem önceliğidir. Matematikte bilinen dört işlem önceliği burada da aynı şekilde geçerlidir. Basitçe örnekleyecek olursak:

Matematiksel Fonksiyonlar

Matlab’de kullanılmak istenen fonksiyonun ismi yazılıp, parantez içerisine parametleri verilerek fonksiyon kullanılabilir.

Trigonometrik Fonksiyonlar

Derece cinsinden Trigonometrik fonksiyonlar aşağıdaki tabloda verildiği gibi kullanılır.

Birkaç trigonometrik fonksiyon örneği:

 

 

Kuvvet Alma Fonksiyonu

Matlab’de bir ifadenin kuvvetini alabilmek için power() komutu kullanılır. Komutun kullanımı power(taban, kuvvet) şeklindedir. power() komutunu kullanmadan  “ ^ ”  sembolünü kullanarak bir ifadenin kuvvetini hesaplanabilir. Örnek olarak:

Üstel Fonksiyonlar

Tabanı euler sayısı olan fonksiyonlar mühendislikte sıklıkla kullanılır. ex fonksiyonunu hesaplamak için, Matlab’de özel bir komut olan exp( ) komutu kullanılır. Örnek olarak :

Karekök Fonksiyonu

Matlab’de karekök hesaplamak için iki yöntem kullanılır. Bunlardan ilki sqrt() fonksiyonunu kullanmaktır. Bu fonksiyon içine yazılacak ifadenin karekökünü hesaplar. İkinci yöntem ise kuvvet almaktır. Burada power() fonksiyonu ya da “ ^ ” sembolü aynı sonucu verecektir.

Örnek olarak:

Logaritmik Fonksiyonlar

Matlab’de hesaplanmak istenen logaritmik ifade e, 2 veya 10 tabanında ise aşağıdaki tabloda yer alan komutları kullanılabilir.

Eğer Matlab’de hesaplanmak istenen logaritmik ifadenin tabanı e, 2 ve 10 ‘dan farklıysa aşağıdaki gibi logaritma hesaplanabilir.

Komutları İç İçe Kullanma

Matlab’de hesaplama yapmak için kullanılan fonksiyonlar iç içe yazılarak kullanılabilir. Bu özellik hesaplamalarda büyük bir kolaylık sağlar. Örnek olarak :

Vektör Tanımlama

Tek boyutlu sayı dizilerine, tek satırdan oluşan ya da tek sütundan oluşan matrislere vektör denir. Matlab’de vektörler kullanılarak işlem yapmak mümkündür. Bunun için ilk önce vektörlerin tanımlanması gerekir.

A = [ 1 5 9 11] şeklinde bir A vektörü tanımlanabilir. Bu bir satır vektörüdür. Çok fazla elemana sahip vektörleri böyle tanımlamak kolay olmaz. Bunun için başka bir vektör tanımlama yöntemi kullanılabilir.

     :     b    :       c

a:  Başlangıç değeri,   b:  Artış,   c: Bitiş değeri

Bu yöntemle başlangıçtan bitişe kadar artış miktarına göre matlab kendisi bir vektör oluşturur. Örnek olarak:

0 : 1 : 10

Böylece çok fazla elemana sahip vektörler kolaylıkla tanımlanabilir.

Temel Komutlar

sort ( ) komutu: Verilen vektörün elemanlarını küçükten büyüğe doğru sıralar.

length ( ) komutu: Verilen vektörün uzunluğunu hesaplar.

linspace ( ) komutu: Girilen iki değer arasında, istenilen üçüncü bir değer kadar, eşit aralıklı bir vektör oluşturur.

sum ( ) komutu: Girilen vektörün elemanlarının toplamını verir.

prod ( ) komutu: Girilen vektörün elemanlarının çarpımını verir.

max ( ) komutu: Girilen vektörün elemanlarının arasından en büyük olanı verir.

min ( ) komutu: max() komutuna benzer olarak girilen vektörün elemanlarının arasında en küçük olanı verir.

mean ( ) komutu:  Girilen vektörün elemanlarının ortalamasını verir.

 

MTLB07677DGLYM3W6N
Algoritma Nedir? Program Nedir? – Programlamaya Giriş

Bu yazıda algoritma ve program nedir, akış şemaları nedir bundan bahsederek programlaya giriş yapacağım.

Algoritma Nedir?

Algoritma, yapılmak ve yaptırılmak istenen bir işlemin, adım adım sıralanarak işlem basamaklarına bölünmesidir. Algoritmaların belirli şartları sağlamaları gerekmektedir:

concepts of programming languages - Guide For New Programmers
  • Her algoritmada mutlaka bir girdi bulunmalıdır.  
  • Girdiye karşılık olarak algoritma sonucunda mutlaka bir çıktı elde edilmelidir.
  • Algoritma her basamağında açıklık ilkesine uymalı ve okuyana net bir karar verdirmelidir.
  • Çıktıya ulaştıran algoritma belirli bir basamak sayısına sahiptir.

Algoritma, kısaca bizim bilgisayara yaptıracağımız işlerin sıralı olarak nasıl yapılacağını listeleme biçimidir.

Örnek olarak, kenar uzunlukları kullanıcı tarafından girilen bir dikdörtgen prizmanın hacmini hesaplamak istediğimizi varsayalım.

Bunun için yazmamız gereken algoritma, her adımı numaralandıracak olursak:

Adım0: Başla

Adım1: Kısa kenar, uzun kenar, yükseklik ve hacim değerlerini tanımla

Adım2: Kısa kenarın uzunluğunu oku

Adım3: Uzun kenarın uzunluğunu oku

Adım4: Yükseklik uzunluğunu oku

Adım5: Sayıları çarp ve hacim değerine ata

Adım6: Hacim değerini görüntüle

Adım7: Dur

şeklinde olacaktır.

Görüldüğü üzere her adımda yazacağımız programın ne yapması gerektiğini belirleyerek hem yazan kişi için hem de programın işlemleri doğru olarak yerine getirebilmesi için belirli bir mantıksal olay örgüsü kurmuş olduk.

Peki bahsettiğimiz program nedir, programların mantığı nasıl çalışır önce onu bir inceleyelim.

Program nedir?

Bir problemin, çeşitli makine dilleri kullanılarak bilgisayar ve bilgisayar mantığında çalışan cihazlara, onların anlayabileceği şekilde işlenmesine programlama, bunun sonucunda oluşan belirli bir çalışma algoritmalarına sahip kodlara (yazılımlara) ise program denir. Bir veya birden fazla algoritma dizilerinin birleşimi bir programı oluşturur. Bu programlar, programlama dili olarak adlandırılan, makinelerin çalışma mantığına uygun olarak oluşturulan iletişim dilleri ile yazılır. Programlama dillerine ve programlama dillerinin tarihine daha sonra detaylı olarak değineceğim.

Örnek olarak yukarıda bahsettiğimiz algoritma örneğini programa dönüştürecek olsaydık.

C++ programlama dili kullanarak:

#include<iostream>
using namespace std; 
int main(){
int kisaKenar, uzunKenar, yukseklik, hacim;
cin >> kisaKenar;
cin >> uzunKenar;
cin >> yukseklik;
hacim=kisaKenar*uzunKenar*yukseklik;
cout <<hacim<<endl;
}

şeklinde olacaktır.

Aynı algoritmayı Java dilini kullanarak programa dönüştürecek olursak:

import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double kisaKenar = input.nextDouble();
double uzunKenar = input.nextDouble();
double yukseklik = input.nextDouble();
double hacim = kisaKenar*uzunKenar*yukseklik;
System.out.println("Hacim: "+hacim);
     }
}

şeklinde olacaktır. Görüldüğü üzere 2 farklı programlama dili ile aynı algoritmayı kullanarak hacim hesabı yapmak mümkündür.

Akış Diyagramları Nedir?

Algoritmaların daha iyi anlaşılabilmesi için belirli şekillerle çizilmelerine akış diyagramı denir.

Akış diyagramları oluşturulmadan önce:

  • Algoritmanın adımları belirlenmeli,
  • Her adım için kullanılacak şekiller belirlenmeli.   

Yukarıda vermiş olduğumuz algoritma için akış şeması yazacak olursak:

şeklinde olacaktır.

Bu yazıda algoritma ve programlaya giriş yaptık, akış diyagramları ve algoritma ile ilgili örneklere ise buradan ulaşabilirsiniz.

ALGO1W69O39TC88429