Ders - 2 Algoritim

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 31

ALGORİTMALAR ve

PROGRAMLAMA
Dr. Öğr. Üyesi Durmuş ÖZDEMİR
E-Posta: durmus.ozdemir@dpu.edu.tr

“DEĞİŞKENLER VE VERİ TÜRLERİ”


Değişken Nedir?

 Belirsiz bir değeri ifade eden sembollere DEĞİŞKEN denir.


 Örneğin: Aklımdan iki tane sayı tuttum. Birinci sayıya üç ekleyip ikiyle çarparsam,
ikinci sayının bir fazlasını elde ediyorum. Buna karşılık, ikinci sayıya bir ekleyip
ikiye bölersem, 16 sayısını elde ediyorum. Buna göre tuttuğum ilk sayı kaçtır? PROGRAMCI
AÇISINDAN
(x+3)*2=y+1 DEĞİŞKEN İSE
(y+1)/2=16 ESASINDA,
x=? y=? BİLGİSAYARIN
BELLEĞİNDE
 Bu denklem x birinci sayıyı, y ise ikinci sayıyı simgeliyor. Yani hangi değeri AYRILMIŞ BİR
alacağını henüz bilmediğim için x ve y diye iki harf kullanmış olduk. ALANDAN BAŞKA
 Burada x ve y harfleri DEĞİŞKENLERİ simgeliyor. BİRŞEY DEĞİLDİR.
Değişken Adları

 yumurtaSayisi=yumurtaSayisi-2;
Bu işlemin sonucunda yumurtaSayisi’nın daha önceki değerine
göre 2 azalmaktadır.
 Program içinde x, y, z, a, b, c gibi anlam ifade etmeyen
değişken isimlerini kullanmaktan kaçınmalıyız. Programa daha
sonra baktığımızda hangi değişkenin ne amaçla kullanıldığını
anlayabilmeliyiz.
 Örneğin, bir değişken sayma amacıyla kullanılacaksa değişlen
adı sayaç olabilir.
DEĞİŞKENLER VE VERİ TÜRLERİ

 Değişkenler, bir programdaki sayılar ve karakterler gibi verileri saklamak ve


göstermek için kullanılırlar. Her değişkenin bir türü (tipi) vardır.
 Değişken tanımlama kuralı:

Ozel_anahtar_kelime Veri_tipi degisken_adi;

 Özel anahtarlar public, private, protected, static gibi değişkenin geçerlilik


kuralları ileride daha detaylı bakıcaz.
 Veri tipleri Byte, Short, Int, float, long, double, string, char vb.
 Değişken adı ise belirli kurallara uyarak kendimiz belirliyoruz.
Değişken Adı Kurallar

1-) Her değişken adı bir veri tipine sahip olmalıdır

a=10;
Hata mesajı a cannot be resolved to a variable
System.out.println(a);

2-) Değişkenler değer atamadan kullanılamazlar.

int a; Hata mesajı The local variable a may not have


System.out.println(a); been initialized

3-) Değişken isimleri sayı ile başlayamaz ve değişken isminde boşluk olmamalıdır.
JAVA’daAdlar ya bir harf ile başlamalı ya da ($) simgesi veya (_) simgesiyle BAŞLAYABİLİR… (BAZI DİLLERDE FARKLI)
int $x; // doğru kullanım
int _b; // doğru kullanım Dikkat program içinde ya da başta değer almak kaydıyla

String degisken adi=‟Ahmet Yakupoglu”; //HATA VERİR


String 45adi=‟Frig Vadisi”; //HATA VERİR
Değişken Adı Kurallar-Devam
 Anahtar ve saklı sözcükler ad olamaz. (java ya ait ifadeler, if,
while, class) yani keywords ya da reserved words olamaz.
 Java’da adlar büyük-küçük harf ayrımına duyarlıdır.
 Türkçe karakter kullanmaktan kaçınalım… büyük İ, KÜÇÜK ı,
ö, ğ, vb.
 Java doğrudan diğer dillerdeki gibi Türkçe karaktere hata
vermese de kullanılan işletim sisteminde ve ortak çalışılan
farklı platformlarda hata verme ihtimali vardır.
 Değişken isimleri anlamlı, mümkün olduğunca kısa, olmalıdır.
Sonradan programa bakıldığında çağrışım yapmalıdır.
Belirleyiciler
 Bir programlama dilinde kullanılan isimlere BELİRLEYİCİ
denir.
 Bu isimler değişkenler, metotlar, nesneler ve sınıflardır.
 GENEL KABUL GÖREN YAKLAŞIMA GÖRE;
 Değişken adları, metor adları ve nesne adları küçük harfle
başlar, sınıf adları ise BÜYÜK harfle başlar.
 buBirDegiskenAdiOrnegidir=8;
 class BuBirSinifAdiOrnegidir
 Eğer pi sayısı gibi değişmez kullanılacaksa, tamamı Büyük
Harfle (PI, LOG_2,..vb.)
Temel Veri Türleri

 Birdeğişkenin türü onun ne tür tür veri


tutabileceğini gösterir. Eğer değişkenin türü int ise
bu değişkende tam sayılar saklanabilir. Double ise
değişken ondalıklı sayıları tutar.
 Bellektedeğişkenin türünün gereksinim duyduğu
kadar yer ayrılması gerekir.
 Değişken_türü birinci_değişken, ikinci_değişken,…;
 int yumurtaSayisi, toplamYumurta;
Temel Veri Türleri

byte a=5;
byte b=125; Sizce ?
System.out.println(a+b);
″ ;″ işareti anlamlı bir Java deyiminin sonunu
Temel Veri Türleri gösterir.

 char veri türü Java’da klavyeden girilebilen tüm karakterleri içerir. Bu


karakterler sayı, harf ve diğer noktalama işaretlerinden oluşur. char türü
değerler tek tırnak içinde gösterilir. Örnek: ‛h’
 public class VeriTurleriDenemesi
{
public static void main (String[] args)
{
int x=12, y=11, z;
z=x*y; Ekran çıktısı:
System.out.println(″ x= ″+ x + ″ y= ″+y+ ″ z= ″+z ); x = 12 y=11 z=132
char simge = ‛!’; !
System.out.println(simge); true
boolean sonuc; false
sonuc=true;
System.out.println(sonuc);
sonuc=false;
System.out.println(sonuc);
}
}
Aritmetik İşlemler
Aritmetik İşlemler
public class DortIslem
{
public static void main (String [] args)
{
int birinciSayi = 20;
int ikinciSayi = 10;
int toplam = birinciSayi + ikinciSayi;
int fark = birincSayi – ikinciSayi;
int carpim = birincSayi * ikinciSayi;
int bolum = birincSayi / ikinciSayi;

System.out.println(toplam);
System.out.println(fark);
System.out.println(carpim);
System.out.println(bolum);

}
}
Bölünen Bölen
% (Bölme Kalanı) İşleci(operatörü)
public class BasamaklarToplami
{ Kalan
public static void main (String [] args)
{
 15 % 5 = 0
int sayi= 356, toplam;
 1%4=1
int yuzlerBasamagi, onlarBasamagi, birlerBasamagi;
 21 % 13 = 8 yuzlerBasamagi = sayi / 100;
 Bu operatör yanlızca int türünde sayi = sayi – yuzlerBasamagi *100;
değişkenlerde uygulanabilir.
onlarBasamagi = sayi / 10;
birlerBasamagi = sayi % 10;
toplam = yuzlerBasamagi+onlarBasamagi+
birlerBasamagi;
System.out.println(″Basamaklar Top=″+toplam);
}
}
Giriş/Çıkış İşlemleri ve Atama
 System.out.println(″JAVA″); // Kursör bir alt satıra geçer
 System.out.print(″JAVA″); //aynı satırda kalır

 Örnek: System.out.print(″JAVA″);
JAVA PROGRAMLAMA
 System.out.print(″PROGRAMLAMA″);

 Örnek: String yazi = ″Java ile Programlama″;


 System.out.println(yazi);
Giriş/Çıkış İşlemleri ve Atama
int a = 5, b = 17, c = 4;
System.out.println(a);
5
System.out.println(b);
17
System.out.print (″a =″ +a);
a =5, a + b = 517
System.out.println(″, a + b = ″ + a + b);
System.out.println(″a + b = ″ + (a + b));
a + b =22
System.out.print( a + b + ″ ″);
22 5 17 26
System.out.print(a + ″ ″+ b + ″ ″);
a= 13, b= 17, c= 4
System.out.println (a + b + c);
a=b-c;
System.out.println(″a= ″+ a + ″, b= ″+ b +″, c= ″+c);
Klavyeden Veri Okunması: Scanner(Tarayıcı) Sınıfı

 Klavyeden veri girişine olanak sağlayan Scanner sınıfı, aynı zamanda


yazıların taranması ve parçalara ayrılması için kullanılır.
 Scanner sınıfı java.util paketinin (kütüphanesinin) içinde yer alır ve
kullanılması için aşağıdaki iki satırdan birinin programın başına
eklenmesi gerekir.

import java.util.*;
import java.util.Scanner;
Klavyeden Veri Okunması: Scanner(Tarayıcı) Sınıfı

 Scanner sınıfına ait bir nesne aşağıdaki gibi oluşturulur.

Scanner klavye = new Scanner (System.in);

 Oluşturulan nesne Scanner sınıfının metodları ile veri almak ya


da okumak için aşağıdaki şekilde çağrılır.
Scanner klavye = new Scanner (System.in);
int a = klavye.nextInt();
 HEP nextInt mi kullanılır? a değişkeni ile ilişkisi nedir?
Scanner(Tarayıcı) Sınıfının Bazı Metodları

 .nextByte ()  Klavyeden byte türünde sayı okur


 .nextShort ()  Klavyeden short türünde bir sayı okur.
 .nextInt ()  Klavyeden int türünde bir sayı okur.
 .nextLong ()  Klavyeden long türünde bir sayı okur.
 .nextFloat ()  Klavyeden Float türünde ondalıklı sayı okur.
 .nextDouble ()  Klavyeden Double türünde ondalıklı sayı okur.
 .next ()  Klavyeden String türde bir sözcük okur.
 .nextLine ()  Klavyeden String türde bir satır okur.
 nextBoolean  Klavyeden boolean türünde bir önerme okur.
Scanner(Tarayıcı) Sınıfı Örnek
import java.util.Scanner;
double ondalikliSayi;
Public class ScannerKullanmaOrnegi System.out.println(″Bir ondaliklı sayı girin:″);
{ ondalikliSayi = klavye.nextDouble ();
public static void main (String [ ] args) System.out.println(″Girilen sayi:″+ondalikliSayi);
{
String adi, soyadi;
int birinciSayi, ikinciSayi;
System.out.println(″Adinizi ve soyadıinizi girin ″);
Scanner klavye = new Scanner (System.in);
adi= klavye.next();
soyadi= klavye.next();
System.out.println (″Aralarında boşluk bulunan″); System.out.println(″Adiniz″+adi);
System.out.println (″İki sayma sayısı giriniz″); System.out.println(″Soyadiniz″+soyadi);

birinciSayi=klavye.nextInt();
String satirSonu= klavye.nextLine ();
ikinciSayi=klavye.nextInt();
System.out.println(″bir satır giriniz″);
System.out.println(″Birinci sayi:″+birinciSayi); System.out.println(klavye.nextLine());
System.out.println(″İkinci sayi:″+ikinciSayi); }
}
Scanner(Tarayıcı) Sınıfı Örnek 2

Bu örnekte ilk sayının


girilmesi beklendiği
sırada, kullanıcı boşluk
bırakarak ikinci sayıyı
girerse program b
değişkeni için
kullanıcıyı beklemez
ve boşluktan sonraki
sayıyı b değişkenine
atar.
Atama ifadeleri
değişken = ifade ;
tutar = 50;
ilkHarf = ‘D’;
sonuc = kartSayisi+eksikKart;
toplamYumurta = toplamYumurta-8;
Burada değişkene eşitliğin sağ tarafındaki ifadenin değeri atanmaktadır.
Atama cümlelerinde dikkat edilmesi gereken durum, = işleci ile bilgisayardan
değişkenin içinde saklanan eski değeri bırakıp yerine yeni atanan değeri
koymasını isteyen emirdir.
Özel Atama İşaretleri

 AMAÇ: KOLAYLIK OLMASI AÇISINDAN KISALTMA İŞLEMİ YAPILMIŞTIR, tamamen


aynı şekilde çalışır.
 Sayac = sayaç + 1; ifadesi ile daha kısa olan sayaç +=1; ifadesinin görevi sayac
değişkeninin değerini bir artırır.
Çoğaltma ve Azaltma İşleçleri
 Diğer dillerde de olduğu gibi Java’da sayma işlemi oldukça çok kullanıldığı için
çeşitli işlevsel kısaltmalar kullanılmıştır.
Örnek:

*
-
İşlemlerde Öncelik Sırası
Öncelik Sırası Örnek
Değişkenin Değerini Sabitleme (final)

 DEĞİŞMEZLER BÜYÜK HARFLERLE YAZILIR, ANCAK BÜYÜK YAZDINIZ DİYE DEĞİŞKENİN DEĞERİ SABİT
KALACAK ANLAMINA GELMEZ, BU KODU OKUYAN KİŞİNİN YORUMLAMASINI KOLAYLAŞTIRIR.
double PI_SAYISI = 3.14159;
PI_SAYISI +=1;
System.out.println(PI_SAYISI);

PROGRAMCI DEĞERİN HİÇ BİR ŞEKİLDE DEĞİŞMESİ İSTENMİYORSA;


final double PI_SAYISI = 3.14159;
PI_SAYISI +=1;  yazılamaz derleyici hata verir
Artırma Azaltma ?

int x = 5; int a = 2; int a = 2;


int b = 5; int b = 5;
int sayi = x++;
int sonuc; int sonuc;
System.out.println (″sayi = ″ + sayi); sonuc= a* (b--); sonuc= a* (--b);
System.out.println (″x = ″ + x); System.out.println (sonuc); System.out.println (sonuc);

System.out.println (sayi++);
System.out.println (++sayi);
 sonuçlar

10 8
Sayi=5
X=6
5
7

Neden?
HAFTAYA KONU İLE İLGİLİ UYGULAMAYA HAZIR
OLUN…

You might also like