Bölüm 2 Temel Programlama

Slides:



Advertisements
Benzer bir sunumlar
el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
Advertisements

Yrd. Doç. Dr. Mustafa Akkol
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Değişken , Veri Türleri ve Operatörler
Değişkenler ve bellek Değişkenler
DOĞAL SAYILAR.
JavaScript Birinci Hafta.
Java Uygulamaları Konsol Uygulaması.
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
Java Uygulamalarına Giriş
Programlama-II (Java ile Bilgisayar Programlama)
Atlayarak Sayalım Birer sayalım
BEIER CÜMLE TAMAMLAMA TESTİ
Diferansiyel Denklemler
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
Atama ve Girdi/Çıktı Komutları
Bölüm 2 – Java Uygulamalarına Giriş
Bölüm 4 – Kontrol İfadeleri:1.kısım
4 Kontrol Yapıları: 1.Bölüm.
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
BPR151 ALGORİTMA VE PROGRAMLAMA - I
HİSTOGRAM OLUŞTURMA VE YORUMLAMA
Bölüm 10 Yapılar ve Birleşimler
Prof. Dr. Leyla Küçükahmet
Karar ifadeleri ve Döngüler
CAN Özel Güvenlik Eğt. Hizmetleri canozelguvenlik.com.tr.
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
BPR152 ALGORİTMA VE PROGRAMLAMA - II
1/25 Dört İşlem Problemleri A B C D Sınıfımızda toplam 49 öğrenci okuyor. Erkek öğrencilerin sayısı, kız öğrencilerin sayısından 3 kişi azdır.
Dördüncü Grup İkinci Harf B sesi sunumu Mürşit BEKTAŞ.
Bölüm 3 – Yapısal Programlama
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
TÜRKİYE KAMU HASTANELERİ KURUMU
İmalat Yöntemleri Teyfik Demir
C# Metot Overloading (Aşırı yükleme)
JAVADA PROGRAM DENET İ M İ VE OPERATÖRLER. int a ; a=4 ; // do ğ ru bir atama 4=a ; // yanlış bir atama!
PÇAĞEXER / SAYILAR Ali İhsan TARI İnş. Yük. Müh. F5 tuşu slaytları çalıştırmaktadır.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Görsel C# Programlama Güz 2009 (6. Hafta).
Bölüm 2 – Kontrol Yapıları
4 X x X X X
Mukavemet II Strength of Materials II
Akış Kontrol Mekanizmaları
Chapter 6: Using Arrays.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Gelişmiş Envanter Uygulaması.
Bir bölme işleminde bölen 8,Bölüm 7, kalan 1ise bölünen Kaçtır?
ANA BABA TUTUMU ENVANTERİ
1 DEĞİŞMEYİN !!!
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Test : 2 Konu: Çarpanlar ve Katlar
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
JAVA’DA DİZİLER Dr.Galip AYDIN.
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Veri.
HAYAT BİLGİSİ SORULARI.
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
Proje Konuları.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğrenilecekler: –Uygulamaları “method”
PÇAĞEXER / SAYILAR Ali İhsan TARI İnş. Yük. Müh. F5 tuşu slaytları çalıştırmaktadır.
VERİ TİPLERİ VE DEĞİŞKENLER
Diferansiyel Denklemler
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
JAVA PROGRAMLAMA ORNEKLER
 2006 Pearson Education, Inc. All rights reserved. Görsel C# ile Windows Programlama Güz 2009 (2. Hafta)
Görsel C# ile Windows Programlama
C Programlama Dili Bilgisayar Mühendisliği.
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
Veri Tipleri 12/4/2018.
Bilgisayar Programlama
Sunum transkripti:

Bölüm 2 Temel Programlama

Hedefler Bir önceki bölümde bir Java programı yaratmayı, derlemeyi ve çalıştırmayı gördük. Bu bölümden itibaren problemleri programsal olarak çözmeyi öğreneceğiz. Bu problemlerle uğraşırken basit Java data tiplerini ve bunlarla alakalı olarak değişkenleri, sabitleri, operatörleri, giriş ve çıkışları öğreneceğiz.

Amaçlar Basit hesaplamalar yazan Java programları yazmak(§2.2). Scanner sınıfını kullanarak konsoldan veri çekmek(§2.3). Değişkenleri, sabitleri, metotları ve sınıfları tanımlamak için tanıtıcı sözcükler (§2.4). Veri depolamak için değişken kullanma(§§2.5-2.6). Atama ifadeleri kullanarak programlama (§2.6). Verileri kalıcı olarak depolamak için sabit kullanma (§2.7). Basit Java tiplerini tanımlama: byte, short, int, long, float, double, ve char (§§2.8.1). Operatör kullanarak sayısal ifadeler tanımlama (§§2.8.2–2.8.3). Zamanı ve saati gösterme (§2.9). Operatörleri kısayollarla ifade etme(§2.10). Bir tipi başka tipe çevirme (§2.11). Kira ödemesi hesapma (§2.12). Char tipini kullanarak karakterleri simgeleme (§2.13). Kur değişikliklerini hesaplama (§2.14). String tipiyle metin yazma (§2.15). Java dökümentasyonuyla, stiliyle, isimlendirme şekliyle aşina olma (§2.16). Syntax, runtime, mantıksal ve debug hatalarını ayırt etme (§2.17). (GUI) JOptionPane aracığıyla diyalog kutularıyla veri çekme(§2.18).

Bir örnekle başlıyoruz Listing 2.1 Dairenin alanını hesaplma public class AlanHesapla { /** Main methot */ public static void main(String[] args) { double yaricap; double alan; // Yarı çapı ata yaricap = 20; // Alanı hesapla alan = yaricap * yaricap * 3.14159; // Sonucu göster System.out.println("Yarı capı " + yaricap + " olan dairenin alanı " + alan + "dır."); }

Programın çalışmasını takip etme Animasyon Programın çalışmasını takip etme Yarıçap için bellekte yer tutma public class AlanHesapla { /** Main methot */ public static void main(String[] args) { double yaricap; double alan; // Yarı çapı ata yaricap = 20; // Alanı hesapla alan = yaricap * yaricap * 3.14159; // Sonucu göster System.out.println("Yarı capı " + yaricap + " olan dairenin alanı " + alan + "dır."); } yaricap Değer yok

Programın çalışmasını takip etme animation Programın çalışmasını takip etme public class AlanHesapla { /** Main methot */ public static void main(String[] args) { double yaricap; double alan; // Yarı çapı ata yaricap = 20; // Alanı hesapla alan = yaricap * yaricap * 3.14159; // Sonucu göster System.out.println("Yarı capı " + yaricap + " olan dairenin alanı " + alan + "dır."); } Hafıza / RAM yaricap Değer yok alan Değer yok Bu sefer alan için

Programın çalışmasını takip etme animation Programın çalışmasını takip etme 20 değerini atama public class AlanHesapla { /** Main methot */ public static void main(String[] args) { double yaricap; double alan; // Yarı çapı ata yaricap = 20; // Alanı hesapla alan = yaricap * yaricap * 3.14159; // Sonucu göster System.out.println("Yarı capı " + yaricap + " olan dairenin alanı " + alan + "dır."); } yaricap 20 alan Değer yok

Programın çalışmasını takip etme animation Programın çalışmasını takip etme public class AlanHesapla { /** Main methot */ public static void main(String[] args) { double yaricap; double alan; // Yarı çapı ata yaricap = 20; // Alanı hesapla alan = yaricap * yaricap * 3.14159; // Sonucu göster System.out.println("Yarı capı " + yaricap + " olan dairenin alanı " + alan + "dır."); } Hafıza / RAM yaricap 20 area 1256.636 Alanı hesaplayıp değişkene atama

Programın çalışmasını takip etme animation Programın çalışmasını takip etme public class AlanHesapla { /** Main methot */ public static void main(String[] args) { double yaricap; double alan; // Yarı çapı ata yaricap = 20; // Alanı hesapla alan = yaricap * yaricap * 3.14159; // Sonucu göster System.out.println("Yarı capı " + yaricap + " olan dairenin alanı " + alan + "dır."); } Hafıza / RAM yaricap 20 alan 1256.636 Ekrana yazma

ComputeAreaWithConsoleInput Konsoldan veri çekme 1. Scanner nesnesi yaratma Scanner input = new Scanner(System.in); 2. next(), nextByte(), nextShort(), nextInt(), nextLong(), nextFloat(), nextDouble(), nextBoolean() metotlarını kullanarak string, byte, short, int, long, float, double, boolean değerlerini olulturma. Örneğin, System.out.print("double bir değer giriniz:"); double d = input.nextDouble(); ComputeAreaWithConsoleInput ComputeAverage

Identifier’lar (Tanımlayıcılar) Bir identifier harflerin, sayıların ve birtakım özel karakterlerin ( _ ya da $) dizilimiyle oluşur. Bir identifier sayıyla başlayamaz, özel karakter veya harfle başlayabilir. ‘Reserved’ kelimeler identifier olamaz. true, false, null kelimeleri de kullanılmaz. Identifier için uzunluk kısıtlaması yoktur.

Değişkenler // Birinci alanı hesapla yaricap = 1.0; alan = yaricap * yaricap * 3.14159; System.out.println("Yarı capı " + yaricap + " olan dairenin alanı " + alan + " dır."); // İkinci alanı hesapla yaricap = 2.0;

Değişken tanımlama int x; // x isminde bir integer double yaricap;// yarıçap isminde bir // double tanımlama; char a; // a isminde bir karakter

Atama ifadeleri x = 1; // x e bir ata; yarıcap = 1.0; // yarıcap a 1.0 ata; a = 'A'; // a ya 'A‘ ata;

Tanımlama ve atama işlemini aynı anda yapma int x = 1; double d = 1.4;

Sabitler final veritipi SABIT_ISMI = DEGERI; final double PI = 3.14159; final int SIZE = 3;

Sayısal veri tipleri

Sayısal operatörler

Bölme +, -, *, /, ve % 5 / 2 işleminin sonucu 2. 5 % 2 işleminin sonucu 1 (kalanı gösterir)

Mod Operatörü Mod operatörü oldukça faydalıdır. Örneğin çift sayılar % 2 işlemiyle 0 sonucunu verirken tek sayılar 1 verir. Böylece sayının tek ya da çift olduğu kolayca belirlenir. Diyelim ki bugün C.tesi ve arkadaşlarınızla 10 gün içinde buluşacaksınız. 10 gün sonrası hangi gündür? O günün Salı olacağını şu ifadeyle rahatça görebilirsiniz:

Problem: Zamanı gösterme Saniye verisinden saat ve dakikayı bulan programı yazın. DisplayTime

NOT Ondalıklı sayılarla yapılan işlemler yakın değerlere çekilir. Örneğin, System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1); Sonuç olarak 0.5000000000000001 gösterir, 0.5 göstermez. System.out.println(1.0 - 0.9); 0.09999999999999998 gösterir, 0.1 göstermez. Tam sayılarda böyle bir şey yoktur, her işlemin sonucu kesin olarak gösterilir.

Literal (sabitler) değerler Bir literal programın içinde doğrudan görünen sayılardır. Örneğin 34, 1,000,000, 5.0 değerleri:   int i = 34; long x = 1000000; double d = 5.0;

Integer Integer değer aralıklarında olan herhangi bir sayı int veri tipiyle tutulabilir. Mesela byte b = 1000 hata verir, çünkü 1000 değerini byte tipiyle tutamazsınız. Integer değerler -231 (-2147483648) ve 231–1 (2147483647) arasındadır. Bir sayıyı long olarak ifade etmek istiyorsanız sayının sonuna L ve l eklerseniz. Genelde büyük L tercih edilir çünkü küçük l harfi sayı olan 1 ile karışabilir.

Ondalıklı sayılar Ondalıklı sayılara double değişken muamelesi yapılır. Örneğin, 5.0 double kabul edilir. Sonuna F harfi koyarak değişkeni float tipine çevirebilirsiniz. Örneğin float olarak 100.2f veya 100.2F, double olarak 100.2d ya da 100.2D yazabilirsiniz.

Bilimsel Gösterim Örneğin, 1.23456e+2 ya da 1.23456e2, 123.456’ya eşittir, 1.23456e-2 ise 0.0123456 ya eşittir. E (ya da e) değeri büyük veya küçük harfle ifade edilebilir.

Matematiksel ifadeler Şu şekilde yazılır: (3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y)

İfade nasıl yorumlanır Matematikteki işlem sırası Java için de geçerlidir.

Problem: Sıcaklık değerlerini çevirme Fahrenheit’u Celcius’a çeviren programı yazın: FahrenheitToCelsius

Problem: Zamanı gösterme GMT’de şu anki zamanı gösteren programı yazın. (Mesela 1:45:19). currentTimeMillis metodu System sınıfındadır ve 1 Ocak, 1970 GMT’den itibaren geçen milisaniye değerini gösterir. Bu metodu şu anki saat, dakika ve saniye değerlerini bulak için kullanabilirsiniz. ShowCurrentTime

Atama operatörleri kısayolları Operatör Örnek Eş değeri += i += 8 i = i + 8 -= f -= 8.0 f = f - 8.0 *= i *= 8 i = i * 8 /= i /= 8 i = i / 8 %= i %= 8 i = i % 8

Arttırma ve Azaltma Operatörleri Operatör Tanımlama ++var Önce arttır sonra ata. var++ Önce ata, sonra arttır. --var Önce eksilt sonra ata. var-- Önce ata, sonra eksilt.

Art. ve Az. Op. Devam

Art. ve Az. Op. Devam Bu kısayolları kullanmak işlemleri kolaylaştırır ama bazen okumayı zorlaştırabilir. Şöyle ifadeler kullanmaktan kaçının: int k = ++i + i.

Sayı tipi çevirme Aşağıdaki ifadelere bakalım: byte i = 100; long k = i * 3 + 4; double d = i * 3.1 + k / 2;

Çevirme kuralları İki farklı operand kullanılarak bir işlem yapıldığında Java şu kuralları takip eder:   1.    Bir operand double ise diğeri de double’a çevrilir.. 2.    Biri float ise diğeri de float’a çevrilir. 3.    long is long’a çevrilir. 4.    Diğer durumlarda iki operand da int’e çevrilir.

Tür Dönüşümü (Type Casting) Gizli casting double d = 3; (tür genişlemesi) Açık casting int i = (int)3.0; (tür daralması) int i = (int)3.9; (Ondalıklı kısım kaybedilir) Hata nerede? int x = 5 / 2.0;

Problem: Virgülden sonra iki sayı tutma Satış değerini virgülden sonraki iki basamakla beraber ifade eden programı yazın. SalesTax

Problem: Kira ödemesi hesaplama Bu programda kullanıcı faiz oranını, yıl sayısını ve kira tutarını girip aylık ve toplam ödeme miktarını buluyor. ComputeLoan

Char data tipi char harf = 'A'; (ASCII) 16 lık sayı char harf = 'A'; (ASCII) char sayiKarakter = '4'; (ASCII) char harf = '\u0041'; (Unicode) char sayiKarakter = '\u0034'; (Unicode) NOT: Artı ve eksi operatörleri bir sonraki unicode karakterini bulmak için kullanılabilir. Örneğin b harfi şu şekilde ekrana basılabilir: char ch = 'a'; System.out.println(++ch);

Unicode Format Java characters use Unicode, a 16-bit encoding scheme established by the Unicode Consortium to support the interchange, processing, and display of written texts in the world’s diverse languages. Unicode takes two bytes, preceded by \u, expressed in four hexadecimal numbers that run from '\u0000' to '\uFFFF'. So, Unicode can represent 65535 + 1 characters. Unicode \u03b1 \u03b2 \u03b3 for three Greek letters

Problem: Unicode ların gösterimi Ekrana iki Çince üç Yunan karakteri basan programı yazınız. DisplayUnicode

Özel karakterler için kısayollar Tanım Escape Sequence Unicode Backspace \b \u0008 Tab \t \u0009 Linefeed \n \u000A Carriage return \r \u000D Backslash \\ \u005C Single Quote \' \u0027 Double Quote \" \u0022

Appendix B: ASCII Character Set ASCII Character Set is a subset of the Unicode from \u0000 to \u007f

ASCII Character Set, cont. ASCII Character Set is a subset of the Unicode from \u0000 to \u007f

Karakter ve sayısal tipler arasındaki ilişki // int i = (int)'a'; ile aynı şey int i = 'a'; // char c = (char)97; ile aynı şey char c = 97;

Problem: Parasal birimler Ekrana dolar ve sent miktarını belirten ondalıklı bir sayı girin. Bu miktarın single dollars, quarters, dimes, nickels, and pennies karşılıklarını bulun. ComputeChange Run

remainingAmount set edilir Trace ComputeChange 11.56 girilsin int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 1156 remainingAmount set edilir

numberOfOneDollars assigned animation Trace ComputeChange Suppose amount is 11.56 int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 1156 numberOfOneDollars 11 numberOfOneDollars assigned

remainingAmount güncellenir. animation Trace ComputeChange Suppose amount is 11.56 int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 56 numberOfOneDollars 11 remainingAmount güncellenir.

numberOfOneQuarters assigned animation Trace ComputeChange Suppose amount is 11.56 int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 56 numberOfOneDollars 11 numberOfOneQuarters 2 numberOfOneQuarters assigned

remainingAmount updated animation Trace ComputeChange Suppose amount is 11.56 int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 6 numberOfOneDollars 11 numberOfQuarters 2 remainingAmount updated

String tipi Char tipi tek bir karakteri ifade etmeye yarar. Birden çok karakteri ifade etmek için String tipi kullanılır.   String message = "Welcome to Java"; String System veya JOptionPane sınıfları gibi önceden Java kütüphanesinde tanımlanmıştır. String tipi primitif değil referans tipindedir. Java sınıfları değişkenleri refere ederken kullanılabilir.

String birleştirme // Three strings are concatenated String message = "Welcome " + "to " + "Java";   // String Chapter is concatenated with number 2 String s = "Chapter" + 2; // s becomes Chapter2 // String Supplement is concatenated with character B String s1 = "Supplement" + 'B'; // s1 becomes SupplementB

Programlama biçimi ve dökümantasyonu Açıklayıcı yorumlar İsimlendirme Kuralları Doğru biçimlendirme Block Styles

Yorumlar Programın başına özet olarak programın ne yaptığını, hangi özelliklere sahip olduğunu, hangi veri yapılarını barındırdığını yazın. İsminizi, biriminizi, tarihi, üstünüzü ve kısa bir açıklamayı ekleyin.

İsimlendirme Anlamlı ve açıklayıcı isimler seçin. Değişkenler ve metot isimleri: Küçük harfler kullanın. Birden fazla kelime varsa camel notation. Örnek: computeArea

devam Sınıf isimleri: Sabitler: Büyük harfle başlayın: AlanHesapla. Hepsi büyük harf ve boşluk gelmesi gereken yerlere alt tire konur. For example, the constant PI ve MAX_VALUE

Biçimlendirme Girinti Boşluk Parantezden sonra bir tab içerden başlayın. Boşluk Kod segmentleri arasında bir satır boşluk bırakın.

Block Styles Use end-of-line style for braces.  

Programlama Hataları Syntax Hataları Runtime Hataları Mantık hataları Derleyici tespit eder. Runtime Hataları Programın başarısız olmasına sebep olur Mantık hataları Hatalı sonuç üretir.

Sentaks hatası public class ShowSyntaxErrors { public static void main(String[] args) { i = 30; System.out.println(i + 4); }

Çalışma zamanı hataları public class ShowRuntimeErrors { public static void main(String[] args) { int i = 1 / 0; }

Logic Errors public class ShowLogicErrors { // Determine if a number is between 1 and 100 inclusively public static void main(String[] args) { // Prompt the user to enter a number String input = JOptionPane.showInputDialog(null, "Please enter an integer:", "ShowLogicErrors", JOptionPane.QUESTION_MESSAGE); int number = Integer.parseInt(input);   // Display the result System.out.println("The number is between 1 and 100, " + "inclusively? " + ((1 < number) && (number < 100))); System.exit(0); }

Debugging Mantık hatalarına bug denir. Hataları bulup düzeltme işlemine debugging denir. Genellikle bug ın buluduğu segmentler kullanılarak hatayı giderme yoluna gidilir. Programı okuyarak ya da basitçe ekrana birtakım değerler bastırarak küçük programları debug edebilirsiniz. Fakat büyük ve karmaşık programlar için yardımcı yazılımlar gerekir.

Debugger Debugger debugging işleminin yapıldığı birimdir. Bir zaman aralığında tek komut çalıştırma. Bir metotu takip etme ya da gerekmiyorsa atlama. Breakpoint oluşturma. Değişkenleri gösterme. Display call stack. Değişkenleri düzenleme gibi işlevleri vardır.

JOptionPane Input Derste iki tip input göreceğiz. Scanner sınıfı (konsol input) JOptionPane input diyalogları

Input diyalog kutusundan input alma String input = JOptionPane.showInputDialog( "Enter an input");

Devam String string = JOptionPane.showInputDialog( null, “Prompting Message”, “Dialog Title”, JOptionPane.QUESTION_MESSAGE);

Metotu çağırmak için iki yol : String string = JOptionPane.showInputDialog(null, x, y, JOptionPane.QUESTION_MESSAGE); x ekrana gelen soru, y kutunun başlığı. JOptionPane.showInputDialog(x); X ekrana gelen soru.

String leri integer a çevirme Integer sınıfında parseInt metotu kullanılır:   int intValue = Integer.parseInt(intString); intString bir sayısal String ifadesidir, mesela “123”.

String i double a çevirme Double sınıfından parseDouble metotu kullanılır:   double doubleValue =Double.parseDouble(doubleString); doubleString mesela “123.45” olabilir.

Problem: Input diyaloglarıyla kira hesaplama Daha önceki faiz sorusunu bu sefer diyalog kutularıyla yapalım. ComputeLoanUsingInputDialog Run

Companion Website Debugging in NetBeans Supplement II.E, Learning Java Effectively with NetBeans

Companion Website Debugging in Eclipse Supplement II.G, Learning Java Effectively with NetBeans