Bölüm 2. İlkel veri türleri ve basit G/Ç (Giriş/Çıkış)

Benzer belgeler
Bölüm 2. İlkel veri türleri ve basit G/Ç (Giriş/Çıkış)

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

PROGRAMLAMAYA GİRİŞ DERS 2

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Nesne Tabanlı Programlama

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

HSancak Nesne Tabanlı Programlama I Ders Notları

Bölüm 3. Akış denetimi (flow of control)

Nesne Tabanlı Programlama

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Nesne Yönelimli Programlama

#include <stdio.h> int main(void) { float sayi; float * p; p = &sayi; printf("deger girin:"); scanf("%f", p); printf("girilen deger:%f\n", *p);

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

C Programlama Dilininin Basit Yapıları

Temel Veri Türü İşlemleri

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

BASİT VERİ TÜRLERİ, STRİNGLER, VE KONSOL GİRİŞ/ÇIKIŞ

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri


// hataları işaret eden referans

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Nesne Yönelimli Programlama

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

C++ Operatörler (Operators)

PASCAL PROGRAMLAMA DİLİ YAPISI

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

Genel Programlama II

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

C PROGRAMLAMA DİLİNE GİRİŞ

En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder

C PROGRAMLAMA D İ L İ

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Pros and Cons of Pointers. Pointers. Avantajlar. Dezavantajlar

Her veri tipine yetecek ve ancak o kadar anabellek alanı ayrılır. Programcı, ana bellekte ayrılacak adresin büyüklüğünü bilerek değişkenlerini

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Adım Adım SPSS. 1- Data Girişi ve Düzenlemesi 2- Hızlı Menü. Y. Doç. Dr. İbrahim Turan Nisan 2011

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

OPERATÖRLER Alıştırmalar

Java da İşleçler, Ders #3 (4 Kasım 2009)

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

YZM 2105 Nesneye Yönelik Programlama

EMT2226 Nesne Yönelimli Programlamaya Giriş

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

Java: printf() Metodu İle Çıktıyı Biçemleme

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Hafta 8 C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Lambda İfadeleri (Lambda Expressions)

JAVADA DİZİ İŞLEMLERİ

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

İnternet Programcılığı Dersi 2.Dönem Ders Notu

C#(Sharp) Programlama Dili

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

Pascal Programlama Dili

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

IDENTITY MANAGEMENT FOR EXTERNAL USERS

Veri Tanımları ve Mantıksal İşlemler

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

Programlama Dillerinde Kullanılan Veri Tipleri

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Bölüm 7. İfadeler ve atamalar ISBN

BİLGİSAYAR PROGRAMLAMA DERSİ

Java da Program Denetimi ve Operatörler

Karşılaştırma İşlemleri ve Koşullu İfadeler

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Mantıksal (Logic) Operatörler

Transkript:

Bölüm 2 İlkel veri türleri ve basit G/Ç (Giriş/Çıkış) İlkel veri türleri (primitive data types) Dizgiler: bir sınıf (Strings: a class) Aktarma/Atama (assignment) İfadeler (expressions) Klavye ve ekran G/Ç (keyboard and Screen I/O) Belgeleme ve tarz (documentation & style) Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 1

Program değişkeni (variable) nedir? Veri saklamak için adlandırılmış bellek konumu (A named location to store data)» Veri saklama kabı, kutusu (a container for data) Yalnızca bir türde veri saklayabilir (It can hold only one type of data)» Örneğin sadece tamsayılar (integers), sadece kayan noktalı sayılar (floating point, real) ya da sadece karakterler (characters) Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 2

Değişken tanımlama (Creating Variables) Bütün değişkenler ilk kullanımdan önce bildirilmelidir (must be declared). Değişken bildirimi bellekteki bir saklama konumu ile bir değişken adını eşleştirir ve tutacağı veri tipini belirler: tip1 degiskenadi1; tip2 degiskenadi2, degiskenadi3, ; Örneğin; sepet sayısı, bir sepetteki yumurta sayısı ve toplam yumurta sayısını tutacak üç tam sayı değişken tanımlamak için: int sepetsayisi, sepetteyumurtasayisi, toplamyumurtasayisi; Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 3

Değişkenin değerini değiştirme Genellikle bir değişkenin değeri program içerisinde bir yerlerde değişir (değişkene farklı bir değer atanır). Diğer değişkenlerin değerleri kullanılarak: toplamyumurtasayisi = sepetsayisi * sepetteyumurtasayisi; yada klavyeden girilen veri ile: Scanner klavye = new Scanner (System.in); toplamyumurtasayisi = klavye.nextint(); Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 4

Java da iki ana veri tipi ilkel (primitive) veri tipleri En basit türlerdir. Diğer türlere ayrıştırılamaz. Yalnızca değer alırlar, yöntemleri (methods) yoktur. Örnekler: int tam sayı double - reel sayı char - karakter sınıf (class) veri tipleri Daha karmaşıktır. Diğer türlerin bileşiminden oluşur (primitive or class types) Hem değer saklanır hem de yöntemleri (methods) vardır. Örnekler: Scanner String Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 5

Adlandırmalar (Identifiers) Java programı içerisinde kullanılan bir değişken, bir nesne, bir yöntem gibi şeylere birer ad verilir. Adlandırmada uyulması gerekli bazı yazım kuralları (syntax rules) vardır. Derleyici açısından zorunlu olmayan fakat programcılar arasında zamanla oluşmuş bazı adlandırma gelenekleri (naming conventions) vardır. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 6

Adlandırmada uyulması zorunlu yazım kuralları Adlar Ayrılmış sözcüklerden olamaz (örneğin, if, for, not ). Yalnızca harf, rakam ve alt çizgi _ karakterlerinden oluşabilir. İlk karakter rakam olamaz. Anlamlı ve makul bir ad için yeterli uzunlukta bir sınır vardır. Büyük ve küçük harf ayrımına karşı duyarlıdır!» junk, JUNK, ve Junk adları üç geçerli ve ayrı değişken adlarıdır. Kullanırken de dikkat etmek gerekir. Boşluk ve nokta karakterleri kullanılamaz. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 7

Adlandırma gelenekleri Anlamlı adlar kullanılmalı, örneğin final notu tutmak için kullanılacak bir değişken adı olarak sadece x, yerine finalnotu demek daha açıklayıcı olur. Sadece harflari ve rakamları kullanmak. Çok kelimeden oluşan bir adın ara kelimelerinin ilk harflerini büyük yapmak. Örneğin finalnotu. Sınıf (class) adlarını büyük harf ile başlamak.» Her Java programı aynı zamanda birer sınıftırlar. public class Daire { Değişken, nesne (objects) ya da yöntem (methods) adlarını küçük harf ile başlamak. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 8

İlkel sayısal veri türleri integer tam sayı örnekler: 0, 1, -1, 497, -6902» Dört tip olabilir: byte, short, int, long kayan-noktalı sayı kesirli kısmı vardır. örnekler : 9.99, 3.14159, -5.63, 5.0» Not: Kesir kısmı sıfır olsa da 5.0 bir kayan noktalı sayıdır.» İki tip olabilir : float, double Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 9

char Veri türü char veri türü print edilebilir tek bir karakter tutabilir. Örneğin: char cevap = `y`; System.out.println(cevap); Ekrana şunu yazar: y Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 10

İlkel veri tipleri Tür adı Değer çeşidi Kullanılan bellek alanı Değer aralığı byte integer 1 byte -128 to 127 short integer 2 bytes -32768 to 32767 int integer 4 bytes -2,147,483,648 to 2,147,483,647 long integer 8 bytes -9,223,372,036,854,775,808 to 9,223,374,036,854,775,808 float floating point 4 bytes +/- 3.4028 x 10 +38 to +/- 1.4023 x 10-45 double floating point 8 bytes +/- 1.767 x 10 +308 to +/- 4.940 x 0-324 char single character (Unicode) 2 bytes all Unicode characters boolean true or false 1 bit not applicable Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 11

En çok kullanılan ilkel veri türleri int» Sadece tam sayılar.» Pozitif ya da negatif olabilir.» Kesir kısmı yoktur. char» Tek bir karakter.» tek tırnak ile kullanılır. örneğin char harfnotu = `A`; double» Pozitif ya da negatif reel sayılar» Kesir kısmı vardır» İki biçimde olabilir: Kesir noktalı : 514.061 e (veya bilimsel, veya kayan noktalı floatingpoint) notasyonu ile, Örnek 5.14061 e2, bu 5.14061 x 10 2 anlamına gelir. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 12

Aktarma (Atama) Deyimleri = (Assignment Statements) Bir değişkenin değerini değiştirmenin en kestirme yoludur. degiskenadi = ifade (expression) cevap = 42; ilkharf = B ; sepetsayisi = sepetsayisi 2; = aktarma işaretidir. aktarma işaretinin sağ tarafındaki ifade (işlem) değerlendirilir. aktarma işaretinin sol tarafındaki değişkene, ifadenin değeri yeni değer olarak aktarılır. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 13

Aktarma işareti = Aktarma işareti cebirdeki eşit işareti ile aynı değildir. Anlamı - Sağ taraftaki ifadenin değerini sol taraftaki değişkene aktar. Aktarma işaretinin her iki tarafında da aynı değişken olabilir: int sayac = 10; sayac = sayac - 1; sayac değişkeninin son değeri 10-1 = 9 Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 14

Özelleştirilmiş aktarma işaretleri (Specialized Assignment Operators) Kestirme yoldan aktarma yöntemleridir. Genel biçimi: degiskenadi <isaret>= ifade; Eşdeğeri şudur: degiskenadi = degiskenadi < isaret > ifade; Burada <isaret> +, -, *, /, ya da % olabilir. Örnekler: miktar += 5; Eşdeğeri: miktar = miktar + 5; double x=5, y=2.5, z=0.5; Z *= x+y/z; miktar *= 1 + faizoranı; Eşdeğeri: miktar = miktar * (1 + faizorani); Sağ taraftaki ifadenin bir bütün olarak değerlendirildiğine (ifadenin tümü parantez içindeymiş gibi) dikkat ediniz. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 15

Getirilmiş Değer (Returned Value) İfadeler değer getirirler(return): Bir ifadeden elde edilen sayı getirilmiş değer (return value) dir. int sepetsayisi,sepetteyumurtasayisi,toplamyumurtasayisi; sepetsayisi = 5; sepetteyumurtasayisi = 8; toplamyumurtasayisi= sepetsayisi * sepetteyumurtasayisi;» Son satırda sepetsayisi 5 değerini getirir, sepetteyumurtasayisi 8 değerini getirir.» sepetsayisi * sepetteyumurtasayisi bir ifadedir ve 40 tam sayı değerini getirir. Benzer biçimde yöntemler de değer getirir. klavye.nextint(); klavyeden girilen tam sayı değeri getiren bir yöntemdir. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 16

Aktarmada uyum (Assignment Compatibility) Yuvarlak deliğe kare biçimindeki parçayı yerleştiremezsiniz. int tipli bir değişkene double değer koyamazsınız. Bir tipteki değeri başka tipteki bir değişkene kaydedebilmek için dönüştürme (conversion) yapılmalıdır. Bir değeri bir türden başka bir türe dönüştürmeye, kalıba dökerek değiştirme anlamında casting denir. İki çeşit casting vardır: 1. otomatik ya da örtülü (implicit casting) 2. açık (explicit casting ) Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 17

Casting: getirilmiş değerin veri tipini değiştirme Casting getirilmiş değerin yalnızca o andaki tipini değiştirir, değişkenin değil. Örneğin: double x; int n = 5; x = n; n tam sayı ve x double tipli olduğundan, örneğin son satırında n tarafından getirilen değer x e aktarılmadan önce double tipine dönüştürülür. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 18

Otomatik, örtülü (implicit) casting düşük tür verinin yüksek tür veriye dönüştürmesi otomatik olarak yapılır. Veri tipi hiyerarşisi (düşükten yükseğe): byte short int long float double int tipli bir değer double tipli bir değere otomatik olarak dönüştürülür. double tipli bir değer int tipli bir değere otomatik olarak dönüştürülemez. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 19

Otomatik dönüştürme (implicit casting) Örneği: int den double a double x; int n = 5; x = n; Veri tipi hiyerarşisi: byte short int long float double n tarafından getirilen değer double tipine dönüştürülür, sonra x e aktarılır. x e 5.000 değeri aktarılır. int veri tipi hiyerarşide double veri tipinden düşük olduğu için dönüştürme otomatik olarak yapılır. n değişkeninin veri tipi değişmemiştir hala int dir. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 20

Bir ifade içindeki farklı veri türleri: Otomatik dönüştürme Bazı ifadelerde farklı veri türleri bulunabilir. Hesaplama yapmadan önce bütün değerler otomatik olarak ifade içindeki en üst düzeydeki veri türüne Örneğin: double a; int n = 2; float x = 5.1; double y = 1.33; a = (n * x)/y; Çarpma ve bölme işlemlerinden önce n ve x otomatik olarak double veri tipine dönüştürülür. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 21

Açık dönüştürme (Explicit Casting) Açık dönüştürme de bir değişkenin sadece o andaki değerini değiştirir. Değişken adının önüne parantez içerisinde yeni veri türü belirtilir: degiskenadi» Veri tipi, getirilmiş değerin tek bir kullanımı için (veritipi) ne dönüştürülür. Örneğin: int n; double x = 2.0; n = (int)x n ye aktarılmadan önce x in değeri double dan int e dönüştürülür. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 22

Açık dönüştürme, yüksek tipi düşük tipe aktarmak için gereklidir. KURAL DIŞI: Düşük tipe otomatik dönüştürme. int n; double x = 2.1; n = x; //java için kural dışıdır! data type hierarchy: byte short int long float double KURALA UYGUN: Düşük tipe açık dönüştürme. int n; double x = 2.1; n = (int)x; //java için kurala uygun. Otomatik dönüştürmenin yapılabileceği heryerde açık dönüştürme de yapılabilir ancak gereksizdir. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 23

double dan int e dönüştürürken budama (truncation) double dan int e dönüştürürken yuvarlama değil budama yapılır.» kesir kısmı atılır. Örneğin:» n nin değeri artık 2 dir. int n; double x = 2.99999; n = (int)x;» Burada dönüştürme tercih değil gereklilikdir. Her ne kadar budama anlamsız bir işlem gibi görülse de, Otomatik satış makinası gibi bazı uygulamalarda işe yaramaktadır. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 24

Tamsayı olarak karakterler Karakterler bir özel kod sistemine göre tamsayı olarak tutulurlar.» Her yazılabilir karaktere (harf, rakam, imla işaretleri, boşluk ve tab) farklı tamsayı kodları atanmıştır.» Büyük ve küçük harfler için farklı kodlar atanmıştır.» Örneğin a nın kod değeri 97 iken, A nın 65 dir. ASCII ve Unicode yaygın kullanılan karakter kodlarıdır. Unicode, ASCII kodlarının yanısıra İngilizce dışındaki dillerin alfabelerindeki karakterlerin kodlarını da içerir. Java Unicode kullanır. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 25

char dan int e dönüştürme Bir char değerini int dönüştürmek bir ASCII/Unicode değeri üretir. Örneğin, aşağıdaki Java satırları uygulandığında ne yazılır? char cevap = `y`; System.out.println(cevap); System.out.println((int)cevap); Ekran: >y >89 > Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 26

Değişkenlere başlangıç değeri atama Değişken bildirimi sırasında gerek duyulan değişkenlere başlangıç değerler atanabilir. //Bildirimde başlangıç değer atanmamış. int toplamyumurtasayisi,sepetsayisi,sepetteyumurtasayisi; //Bildirimde başlangıç değer atanmış. int toplamyumurtasayisi = 0; int sepetsayisi = 0; int sepetteyumurtasayisi = 0; Programlama ipucu: değişkenlere başlangıç değer atamak iyi bir alışkanlıktır. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 27

Self Test Questions 1. Aşağıdakilerden hangileri Java değişken adı olarak kullanılabilir? rate1, 1stPlayer, myprogram.java, long, TimeLimit, numberofwindows Geçerli adlar: rate1, TimeLimit, numberofwindows TimeLimit adlandırma geleneğine uyup küçük harf ile başlamadığı için kötü bir tercih. timelimit daha iyi bir tercih olurdu. 2. Bir Java programı avariable ve avariable gibi aynı iki değişken ismine sahip olabilir mi? Evet 3. İnt tipli count adında bir değişken bildirimi yapınız. Bildirim sırasında değişkene 0 başlangıç değeri veriniz. int count=0; Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 28

Self Test Questions 4. Give the declaration for two variables of type double. The variables are to be named rate and time. Both variables should be initialized to zero in the declaration. double rate=0.0, time=0.0; double rate=0, time=0; 5. Write the declaration for two variables called miles and flowrate. Declare the variable miles to be type int and initialize it to zero in the declaration. Declare the variable flowrate to be double and initialize it to 50.56 in the declaration. int miles=0; double flowrate=50.56; 6. Write a Java assignment that will set the value of the variable interest to the value of the variable balance multiplied by 0.05. interest=0.05*balance; Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 29

Self Test Questions 7. What is the output produced by the following lines of program code? char a,b; a= b ; System.out.println(a); b= c ; System.out.println(b); a=b; System.out.println(a); b c c 8. What is the output produced by the following code? int result=10; result*=3; System.out.println( result is + result); result is 30 Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 30

Aritmetik İşlemler toplama (+), çıkartma (-), çarpma (*), bölme (/) Tam sayılara, kayan noktalı sayılara ve bunların karmasından oluşan sayılara uygulanabilir. Sonucun tipi, ifade içindeki sayılardan veri tipi en yüksek olan tiptir. Örnek: bakiye - odeme» Eğer her ikisi de int ise sonuç da int dir.» Eğer biri int diğeri float ise sonuç float dur. data type hierarchy: byte short int long float double Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 31

Tamsayı bölmelerde budama Bölme işleminde sayılardan en azından biri float ya da double ise (bütün değerler tipler arasında en yüksek olana dönüştürülür) budamaya gerek kalmaz sonuç kesirli olabilir. Sayıların her ikisi de tamsayı ise budama yapılır. Örneğin: int a = 4, b =5, c; double x = 1.5, y; y = b/x;// b nin getirdiği değer double a dönüşür. // y yaklaşık 3.33333 c = b/a;// bütün değerler int dolayısıyla // budama yapılır: c nin değeri 1 dir! Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 32

Mod İşlemi: a % b Tamsayı türlerle kullanılır a nın b ye bölümünün kalanını getirir. Örneğin: int a = 57; b = 16, c; c = a % b; 57 nin 16 ya bölümünden kalan 9 olduğundan, c nin değeri 9 dur. İşe yarayan bir işlemdir: Otomatik Satış Makinasi örneği. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 33

Aritmetik İşlem Öncelikleri ve Parantezleme Java ifadelerinin hesaplanmasında reel sayı cebrine benzer kurallar uygulanır. Öncelik sırasında değişiklik yapmak için parantezler kullanılır. Öncelik doğru ve açıkça görünüyorsa gereksiz parantez kullanarak ifadeyi kalabalıklaştırmayınız. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 34

Aritmetik İşlem Öncelikleri ve Parantezleme Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 35

İfade Örnekleri Matematiksel ifade Java ifadesi (tercih edilen biçimi) Gereksiz parantezli Java ifadesi rate 2 + delta rate*rate + delta (rate*rate) + delta 2(salary + bonus) 2 * (salary + bonus) 2 * (salary + bonus) 1 time 3mass 1/(time + 3 * mass) 1/(time + (3 * mass)) a - 7 t 9v (a - 7) / (t + 9 * v) (a - 7) / (t +( 9 * v)) Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 36

Otomatik Satis Makinası İlgili programdan alınmış bir parçadır: int miktar, orjinalmiktar, yirmibeslik, onluk, beslik, birlik; // kullanıcıdan miktar alan kod burada gosterilmemektedir. orjinalmiktar = miktar; yirmibeslik = miktar /25; miktar = miktar %25; onluk = miktar /10; miktar = miktar %10; beslik = miktar /5; miktar = miktar %5; birlik = miktar; Eğer miktar 90 ise, 90/25 = 3 olduğundan, üç yirmibeslik verilmelidir. Eğer miktar 90 ise, 90/25 kalanı 15 olduğundan, 15 kuruş daha verilmelidir. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 37

Self Test Questions 1. What is the output produced by the following lines of program code? int quotient,remainder; quotient=7/3; remainder=7%3; System.out.println( quotient = + quotient); System.out.println( remainder = + remainder); quotient = 2; remainder = 1; 2. What is the output produced by the following code? double result; result=(1/2)*2; System.out.println( (1/2) * 2 equals + result); (1/2) * 2 equals 0.0 // because 1/2 is integer division, produces 0 instead of 0.5 3. What is the output produced by the following code? int result=11; result/=2; System.out.println( result is + result); result is 5 Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 38

Artırma ve azaltma işlemleri Yaygın olarak kullanılan sayaç değişkenlerine ilişkin bir kısa gösterimdir. Bazı sayaçlar aşağı, bazıları yukarı yönlüdür. Ancak her iki türlüsü de tam sayıdır. Sayaç değişkeninin değeri kullanılmadan önce ya da sonra artırılır (ya da azaltılır). int sayac; ++sayac kullanmadan önce artırma: sayac = sayac + 1 sayac++ kullandıktan sonra artırma: sayac = sayac + 1 --sayac kullanmadan önce azaltma: sayac = sayac - 1 sayac-- kullandıktan sonra azaltma: sayac = sayac - 1 Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 39

Artırma ve azaltma işlemleri Örnekler int n = 3; int m = 4; int sonuc; Aşağıdaki komut satırları işletildiğinde m ve sonuc değişkenlerinin değerleri ne olacaktır? (a) sonuc = n * ++m; (b) sonuc = n * m++; (c) sonuc = n * --m; (d) sonuc = n * m--; Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 40

Answers to Increment/Decrement Operator Questions (a) 1) m = m + 1;//m = 4 + 1 = 5 2) sonuc = n * m;//sonuc = 3 * 5 = 15 (b) 1) sonuc = n * m;// sonuc = 3 * 4 = 12 2) m = m + 1;//m = 4 + 1 = 5 (c) 1) m = m - 1;//m = 4-1 = 3 2) sonuc = n * m;// sonuc = 3 * 3 = 9 (b) 1) sonuc = n * m;// sonuc = 3 * 4 = 12 2) m = m - 1;//m = 4-1 = 3 Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 41

Increment and Decrement Operator Examples 1. What is the output produced by the following lines of program code? int x=5; int sayi=x++; System.out.println( sayi = + sayi); System.out.println( x = + x); System.out.println(sayi++); System.out.println(++sayi); sayi = 5 x = 6 5 7 Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 42

String Sınıfı A string is a sequence of characters The String class is used to store strings The String class has methods to operate on strings String constant: one or more characters in double quotes Examples: char charvariable = `a`;//single quotes String stringvariable = "a";//double quotes String sentence = "Hello, world"; Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 43

String Variables Declare a String variable: String greeting; Assign a value to the variable greeting = "Hello!"; Use the variable as a String argument in a method: System.out.println(greeting); causes the string Hello! to be displayed on the screen Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 44

Concatenating (Appending) Strings Stringing together strings - the + operator for Strings: String name = "Mondo"; String greeting = "Hi, there!"; System.out.println(greeting + name + "Welcome"); causes the following to display on the screen: >Hi, there!mondowelcome > Note that you have to remember to include spaces if you want it to look right: System.out.println(greeting + " " + name + " Welcome"); causes the following to display on the screen: >Hi, there! Mondo Welcome > Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 45

Indexing Characters within a String The index of a character within a string is an integer starting at 0 for the first character and gives the position of the character The charat(position)method returns the char at the specified position substring(start, End)method returns the string from position Start to position End For example: String greeting = "Hi, there!"; greeting.charat(0)returns H greeting.charat(2)returns, greeting.substring(4,6)returns the H i, t h e r e! 0 1 2 3 4 5 6 7 8 9 Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 46

Escape Characters How do you print characters that have special meaning? For example, how do you print the following string? The word "hard" Would this do it? System.out.println("The word "hard""); No, it would give a compiler error - it sees the string The word between the first set of double quotes and is confused by what comes after Use the backslash character, \, to escape the special meaning of the internal double quotes: System.out.println("The word \"hard\""); //this works Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 47

More Escape Characters Use the following escape characters to include the character listed in a quoted string: \" Double quote. \' Single quote. \\ Backslash. \n New line. Go to the beginning of the next line. \r carriage return. Go to the beginning of the current line. \t Tab. White space up to the next tab stop. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 48

Screen Output: print and println Sometimes you want to print part of a line and not go to the next line when you print again Two methods, one that goes to a new line and one that does not System.out.println( );//ends with a new line System.out.print( );//stays on the same line For example: System.out.print("This will all "); System.out.println("appear on one line"); System.out.print() works similar to the + operator: System.out.println("This will all " + "appear on one line, too"); Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 49

Self Test Questions 1. What is the output produced by the following lines of program code? String greeting= How do you do ; System.out.println(greeting + Seven of Nine. ); How do you doseven of Nine. 2. What is the output produced by the following code? String test= abcdefg ; System.out.println(test.length()); System.out.println(test.charAt(1)); 7 b 3. What is the output produced by the following code? abc def System.out.println( abc/ndef ); 4. What is the output produced by the following code? System.out.println( abc//ndef ); abc/ndef Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 50

Self Test Questions 5. What is the output produced by the following lines of program code? String s1= Hello John ; String s2= hello john ; if (s1.equals(s2)) System.out.println( Equal ); System.out.println( End ); End 6. What is the output produced by the following code? String s1= Hello John ; String s2= hello john ; s1=s1.touppercase(); s2=s2.touppercase(); if (s1.equals(s2)) System.out.println( Equal ); System.out.println( End ); Equal End Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 51

Program I/O I/O - Input/Output Keyboard is the normal input device Screen is the normal output device Classes are used for I/O They are generally add-on classes (not actually part of Java) Some I/O classes are always provided with Java, others are not Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 52

I/O Classes We have been using an output method from a class that automatically comes with Java: System.out.println() But Java does not automatically have an input class, so one must be added Scanner klavye = new Scanner (System.in); sepetsayisi = klavye.nextint();» Scanner is a class specially written to do keyboard input Scanner class is provided in java.util package Examples of Scanner methods for keyboard input: nextint() nextdouble() nextline() Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 53

Girdi örneği : Otomatik Satış Makinası programından İlgili programdan alınmış bir parçadır: int miktar, orjinalmiktar, Kullanıcıyı girmesi gereken değer hakkında uyarıyor. yirmibeslik, onluk, beslik, birlik; System.out.println("Bir tamsayı giriniz..."); System.out.println("Girdiğiniz miktar paraya karşılık "); System.out.println("size madeni paralar verilecektir..."); Scanner klavye = new Scanner (System.in); miktar = klavye.nextint(); Kullanıcının bir tam sayı girmesini sağlar ve o orjinalmiktar = miktar; değeri miktar değişkenine kaydeder. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 54

Self Test Questions 1. Write some Java code that will read a line of text and then output the line with all lowercase letters changed to uppercase. String line; System.out.println( Enter a line of input: ); Scanner klavye = new Scanner (System.in); line = klavye.nextline(); line=line.touppercase(); System.out.println( With all uppercase, that is: ); System.out.println(line); Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 55

Documentation and Style Use meaningful names for variables, classes, etc. Use indentation and line spacing as shown in the examples in the text Always include a prologue (an brief explanation of the program at the beginning of the file) Use all lower case for variables, except capitalize internal words (eggsperbasket) Use all upper case for variables that have a constant value, PI for the value of pi (3.14159 ) (see text for more examples) Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 56

Comments Comment text in a program that the compiler ignores Does not change what the program does, only explains the program Write meaningful and useful comments Comment the non-obvious Assume a reasonably knowledgeable reader // for single-line comments /* */ for multi-line comments Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 57

Named Constants Named constant using a name instead of a value Example: use MORTGAGE_INTEREST_RATE instead of 8.5 Advantages of using named constants» Easier to understand program because reader can tell how the value is being used» Easier to modify program because value can be changed in one place (the definition) instead of being changed everywhere in the program.» Farklı bir amaç için kullanılan aynı rakamın yanlışlıkla değiştirilmesine engel olur. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 58

Defining Named Constants public static final double PI = 3.14159; public no restrictions on where this name can be used static must be included, but explanation has to wait final the program is not allowed to change the value The remainder of the definition is similar to a variable declaration and gives the type, name, and initial value. A declaration like this is usually at the beginning of the file and is not inside the main method definition. Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 59

Summary Part 1 Variables hold values and have a type» The type of a Java variable is either a primitive type or a class» Common primitive types in Java include int, double, and char» A common class type in Java is String» Variables must be declared Parentheses in arithmetic expressions ensure correct execution order Use Scanner methods for keyboard input» Scanner is not part of standard Java Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 60

Summary Part 2 Good programming practice:» Use meaningful names for variables» Initialize variables» Use variable names (in upper case) for constants» Use comments sparingly but wisely, e.g. to explain nonobvious code» Output a prompt when the user is expected to enter data from the keyboard» Echo the data entered by the user Chapter 2 Java: an Introduction to Computer Science & Programming - Walter Savitch 61