BPR151 ALGORİTMA VE PROGRAMLAMA - I

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

BPR151 ALGORİTMA VE PROGRAMLAMA - I
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Değişken , Veri Türleri ve Operatörler
Değişkenler ve bellek Değişkenler
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
Birlikler ve onluklar Aşağıdaki tabloyu inceleyerek, sonuçları üzerinde konuşalım.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Değişken Tanımlamaları
Atama ve Girdi/Çıktı Komutları
OOP UYGULAMA 5.
BPR151 ALGORİTMA VE PROGRAMLAMA - I
VERİ TİPLERİ VE DEĞİŞKENLER
OOP4 LAB.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
MATEMATİKSEL PROGRAMLAMA
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
BPR151 ALGORİTMA VE PROGRAMLAMA - I
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 10 Yapılar ve Birleşimler
Namespaces and .NET Class Library (İsim Alanları Sınıf Kütüphanesi)
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
BPR152 ALGORİTMA VE PROGRAMLAMA - II
ARALARINDA ASAL SAYILAR
BPR152 ALGORİTMA VE PROGRAMLAMA - II
BPR151 ALGORİTMA VE PROGRAMLAMA - I
DİZİLER.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Erişim Denetimi, Fonksiyon
BPR151 ALGORİTMA VE PROGRAMLAMA - I Öğr. Gör. Bayram AKGÜL
BPR152 ALGORİTMA VE PROGRAMLAMA - II
HACETTEPE ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BİLGİSAYAR V ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ BTÖ411 - Proje Geliştirme ve Yönetimi I Ders Sorumlusu: Prof. Dr. Arif.
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
BPR151 ALGORİTMA VE PROGRAMLAMA - I
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
HABTEKUS' HABTEKUS'08 3.
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
BPR152 ALGORİTMA VE PROGRAMLAMA - II
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Temel Veri Türleri ve Operatörler
Akış Kontrol Mekanizmaları
Chapter 6: Using Arrays.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller Aslı Ergün.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 2: Koşula Göre İşlem Yapma
C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme
Diferansiyel Denklemler
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
NESNEYE YÖNELİK PROGRAMLAMA
BTP205 – Görsel Programlama
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
İSMİN HALLERİ.
Toplama Yapalım Hikmet Sırma 1-A sınıfı.
C# Veri Tipleri ve Değişkenler
CEBİRSEL İFADELERİ ÇARPANLARINA AYIRMA
VERİ TİPLERİ VE DEĞİŞKENLER
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
Değerler ve Değişkenler
JAVA PROGRAMLAMA ORNEKLER
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
BTP206– Görsel Programlama II
2. HAFTA 2. Hafta.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
3- VERİ TİPLERİ - OPERATÖRLER Nesne Yönelimli Programlama - i
Veri Tipleri 12/4/2018.
MTM216 GÖRSEL PROGRAMLAMA
MTM216 GÖRSEL PROGRAMLAMA
Sunum transkripti:

BPR151 ALGORİTMA VE PROGRAMLAMA - I Öğr. Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr http://bmyo.bartin.edu.tr/akgul

Bugünkü konular Tip Dönüştürme Belirtmeden Tip Dönüştürme Belirterek Tip Dönüştürme Convert sınıfı Parse(string) Metodu TryParse(string) Metodu

Tip Dönüştürme C#'ta düşük kapasiteli bir değişken, sabit ya da değişken ve sabitlerden oluşan matematiksel ifade daha yüksek kapasiteli bir değişkene atanabilir. Buna belirtmeden tip dönüşümü denir. Aşağıdaki tabloda belirtmeden otomatik tip dönüşümü ile ilgili ilişki verilmiştir.

Sayısal Veri Tipleri ve Özellikleri Veri tipi boyut Aralık sbyte 1 byte -128 : 127 byte 0 : 255 short 2 byte -32768 : 32767 ushort 0 : 65535 int 4 byte -2147483648 :2147483647 uint 0 : 4294967295 long 8 byte -9223372036854775808 : 9223372036854775807 ulong 0 : 18446744073709551615 float (7 basamak) 1.175494e-38 :3.402823e+38 double (15-16 basamak) 2.225074e-308 :1.797693e+308 decimal (28-29 basamak)

Değişken Tipi Kategorileri Veri Tipi Kategori Son Ek bool Boolean char İşaretsiz, Sayısal, Tam sayı byte sbyte İşaretli, Sayısal, Tam sayı short ushort int uint U veya u long L veya l ulong UL veya ul float Sayısal, virgüllü sayı F veya f double D veya d decimal Sayısal, decimal M veya m

Belirtmeden Tip Dönüştürme Tablosu Kaynak Hedef sbyte short, int, float, long, double, decimal byte short, ushort, int, uint, long, ulong, float, double, decimal short int, long, float, double, decimal ushort int, uint, long, ulong, float, double, decimal int long, float, double, decimal uint long, ulong, float, double, decimal long, ulong float, double, decimal char ushort, int, uint, long, ulong, float, double, decimal float double

Belirtmeden Tip Dönüştürme Matrisi (a = b; tablosu)   HEDEF (a) KAYNAK (b) sbyte byte short ushort char int uint long ulong float double decimal - + ushort char

Belirtmeden Tip Dönüştürme üzerine Notlar byte, sbyte, short ve ushort türündeki değişkenlerle yapılan matematiksel işlemlerde oluşan matematiksel ifade sonucu int leşir char türünü kendisinden daha kapasiteli bir sayısal türe belirtmeden dönüştürebiliriz. Bu durumda ilgili karakterin Unicode karşılığı ilgili sayısal değişkene atanacaktır. double ve decimal belirtmeden hiçbir tipe dönüştürülemez!

Belirterek Tip Dönüştürme Belirterek tip dönüşümü genellikle derleyicinin izin vermediği durumlarda kullanılır. Belirterek tip dönüşümüyle küçük tipin büyük tipe dönüştürülmesi sağlanabilse de aslında bu gereksizdir, çünkü aynı şeyi belirtmeden tip dönüşümüyle de yapabilirdik Örnek: int a=5; byte b=(byte)a; // normal Örnek 2: int a=500; byte b=(byte)a; // ne olur ?

Tip dönüştürmede veri kaybı int a = 16909320; // 00000001 00000010 00000100 00001000 byte b = (byte)a; Console.WriteLine(b); Ekrana 8 yazacaktır.

Convert sınıfı System isim alanının altındaki Convert sınıfı içinde tür dönüşümü yapabileceğimiz birçok metot bulunur. Bu metotlarla hemen hemen her türü her türe dönüştürebiliriz. Bunun için değişken türlerinin sınıf karşılıklarını bilmeliyiz. Değişken türleri ve Sınıf isimlerinin karşılıkları aşağıdaki tabloda listelenmiştir.

Veri Tipi Sınıf İsmi bool Boolean byte Byte sbyte SByte short Int16 ushort UInt16 int Int32 uint UInt32 long Int64 ulong UInt64 float Single double Double decimal Decimal char Char

Convert.ToXXX(x) Convert.ToBoolean(x) Convert.ToByte(x) Convert.ToSbyte(x) Convert.ToInt16(x) Convert.ToUInt16(x) Convert.ToInt32(x) Convert.ToUInt32(x) Convert.ToInt64(x) Convert.ToUInt64(x) Convert.ToSingle(x) Convert.ToDouble(x) Convert.ToDecimal(x) Convert.ToChar(x) XXX yerine herhangi bir veri tipi yazılabilir. Parantez içine de herhangi veri tipindeki bir değer yazılabilir.

Convert.ToBoolean(x) Burada parantez içindeki değerin sayısal değeri 0 ise sonuç false değilse true olur. Sayı haricindeki diğer değerler her zaman hata verecektir. bool b1 = Convert.ToBoolean(132); bool b2 = Convert.ToBoolean("-132"); bool b3 = Convert.ToBoolean(0); bool b4 = Convert.ToBoolean("a123"); bool b5 = Convert.ToBoolean("True"); bool b6 = Convert.ToBoolean("False"); bool b7 = Convert.ToBoolean("Deneme"); b1 ve b5’in değeri True b3 ve b6’nin değeri False b2 , b4 ve b7 hata verir. (True veya False haricindeki tüm stringlerde hata verir.)

Convert.ToByte(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı byte tipine dönüştürür. Eğer sayısal değer byte sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. byte b1 = Convert.ToByte(123); byte b2 = Convert.ToByte(1234); byte b3 = Convert.ToByte("-123"); byte b4 = Convert.ToByte("123"); byte b5 = Convert.ToByte("123.12"); byte b6 = Convert.ToByte(123.12); byte b7 = Convert.ToByte(0); byte b8 = Convert.ToByte("sds"); b1 ve b4 ve b6’nın değerleri 123, b7’in değeri 0 diğerleri hata verir.

Convert.ToSByte(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı sbyte tipine dönüştürür. Eğer sayısal değer sbyte sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. sbyte b1 = Convert.ToSByte(123); sbyte b2 = Convert.ToSByte(1234); sbyte b3 = Convert.ToSByte("-123"); sbyte b4 = Convert.ToSByte("1234"); sbyte b5 = Convert.ToSByte(0); sbyte b6 = Convert.ToSByte("sds"); sbyte b7 = Convert.ToSByte("123.12"); sbyte b8 = Convert.ToSByte(123.12); b1 ve b8’in değerleri 123, b3’ün değeri -123, b5’in değeri 0 diğerleri hata verir.

Convert.ToInt16(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı short tipine dönüştürür. Eğer sayısal değer short sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. short b1 = Convert.ToInt16(123); short b2 = Convert.ToInt16(1234); short b3 = Convert.ToInt16("-123"); short b4 = Convert.ToInt16("1234"); short b5 = Convert.ToInt16(0); short b6 = Convert.ToInt16("sds"); short b7 = Convert.ToInt16("12323434"); short b8 = Convert.ToInt16("123.12"); short b9 = Convert.ToInt16(123.12); b6, b7 ve b8 hata verir, diğerlerinde sorun olmayacak.

Convert.ToUInt16(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı ushort tipine dönüştürür. Eğer sayısal değer ushort sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. ushort b1 = Convert.ToUInt16(123); ushort b2 = Convert.ToUInt16(1234); ushort b3 = Convert.ToUInt16("-123"); ushort b4 = Convert.ToUInt16("1234"); ushort b5 = Convert.ToUInt16(0); ushort b6 = Convert.ToUInt16("sds"); ushort b7 = Convert.ToUInt16("12323434"); ushort b8 = Convert.ToUInt16("123.12"); ushort b9 = Convert.ToUInt16(123.12); b3, b6, b7 ve b8 hata verir, diğerlerinde sorun olmayacak.

Convert.ToInt32(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı int tipine dönüştürür. Eğer sayısal değer int sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. int b1 = Convert.ToInt32(123); int b2 = Convert.ToInt32(1234); int b3 = Convert.ToInt32("-123"); int b4 = Convert.ToInt32("1234"); int b5 = Convert.ToInt32(0); int b6 = Convert.ToInt32("abc"); int b7 = Convert.ToInt32("123234342344323"); int b8 = Convert.ToInt32(123.4); int b9 = Convert.ToInt32("123.4"); b6, b7 ve b9 hata verir, diğerlerinde sorun olmayacak.

Convert.ToUInt32(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı uint tipine dönüştürür. Eğer sayısal değer uint sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. uint b1 = Convert.ToUInt32(123); uint b2 = Convert.ToUInt32(1234); uint b3 = Convert.ToUInt32("-123"); uint b4 = Convert.ToUInt32("1234"); uint b5 = Convert.ToUInt32(0); uint b6 = Convert.ToUInt32("abc"); uint b7 = Convert.ToUInt32("123234345645642344323"); uint b8 = Convert.ToUInt32(123.4); uint b9 = Convert.ToUInt32("123.4"); b3, b6, b7 ve b9 hata verir, diğerlerinde sorun olmayacak.

Convert.ToInt64(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı long tipine dönüştürür. Eğer sayısal değer long sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. long b1 = Convert.ToInt64(123); long b2 = Convert.ToInt64(123423423423423423445456234234433); long b3 = Convert.ToInt64("-123"); long b4 = Convert.ToInt64("1234"); long b5 = Convert.ToInt64(0); long b6 = Convert.ToInt64("abc"); long b7 = Convert.ToInt64("12323434234432334455344565465464"); long b8 = Convert.ToInt64(123.4); long b9 = Convert.ToInt64("123.4"); b2, b6, b7 ve b9 hata verir, diğerlerinde sorun olmayacak.

Convert.ToUInt64(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı ulong tipine dönüştürür. Eğer sayısal değer ulong sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. ulong b1 = Convert.ToUInt64(123); ulong b2 = Convert.ToUInt64(123423423423423423423456232344433); ulong b3 = Convert.ToUInt64("-123"); ulong b4 = Convert.ToUInt64("1234"); ulong b5 = Convert.ToUInt64(0); ulong b6 = Convert.ToUInt64("abc"); ulong b7 = Convert.ToUInt64("12323434234432334534523443465464"); ulong b8 = Convert.ToUInt64(123.42); ulong b9 = Convert.ToUInt64("123.4"); b2, b3, b6, b7 ve b9 hata verir, diğerlerinde sorun olmayacak.

Convert.ToSingle(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı float tipine dönüştürür. Eğer sayısal değer float sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. float b1 = Convert.ToSingle(123); float b2 = Convert.ToSingle(123423423423423423423454566234433); float b3 = Convert.ToSingle("-123"); float b4 = Convert.ToSingle("1234"); float b5 = Convert.ToSingle(0); float b6 = Convert.ToSingle("abc"); float b7 = Convert.ToSingle("12323434234432334534545643465464"); float b8 = Convert.ToSingle(123423.423); float b9 = Convert.ToSingle("123234.342"); b2, b6 ve b7 hata verir, diğerlerinde sorun olmayacak.

Convert.ToDouble(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı double tipine dönüştürür. Eğer sayısal değer double sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. double b1 = Convert.ToDouble(123); double b2 = Convert.ToDouble(1234234234234234234245543456234433); double b3 = Convert.ToDouble("-123"); double b4 = Convert.ToDouble("1234"); double b5 = Convert.ToDouble(0); double b6 = Convert.ToDouble("abc"); double b7 = Convert.ToDouble("12323434234432334534543465443535464"); double b8 = Convert.ToDouble(123423.423); double b9 = Convert.ToDouble("123234.342"); b2, b6 ve b7 hata verir, diğerlerinde sorun olmayacak.

Convert.ToDecimal(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı decimal tipine dönüştürür. Eğer sayısal değer decimal sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. decimal b1 = Convert.ToDecimal(123); decimal b2 = Convert.ToDecimal(12342342342342342342345623443345); decimal b3 = Convert.ToDecimal("-123"); decimal b4 = Convert.ToDecimal("1234"); decimal b5 = Convert.ToDecimal(0); decimal b6 = Convert.ToDecimal("abc"); decimal b7 = Convert.ToDecimal("123423423423423423423456234433435"); decimal b8 = Convert.ToDecimal(123423.423); decimal b9 = Convert.ToDecimal("123234.342"); b2, b6 ve b7 hata verir, diğerlerinde sorun olmayacak.

Convert.ToChar(x) Parantez içerisine girilen her hangi bir sayısal veya rakamlardan oluşmuş yazıyı char tipine dönüştürür. Eğer sayısal değer char (0-65535) sınırlarının dışında ise taşma hatası verir. Eğer dönüştürülemeyecek bir değer ise tip dönüştürme hatası verir. char b1 = Convert.ToChar(123); char b2 = Convert.ToChar(123423423); char b3 = Convert.ToChar("1234"); char b4 = Convert.ToChar(0); char b5 = Convert.ToChar("abc"); char b6 = Convert.ToChar("a"); char b7 = Convert.ToChar(1234.423); char b8 = Convert.ToChar("12.3"); b1, b4 ve b6 geçerli, diğerleri hata verir!

Tip.Parse(string) String tipini parse metodunu kullanarak herhangi bir tipe dönüştürebiliriz. Örnek: int a = int.Parse(“123”); uint a = uint.Parse(“123”); double b = double.Parse(“123.12”); Burada dikkat edilmesi gerekenler: parantez içindeki string in dönüştürülmek istenen tipe uygun yazılmış olmasıdır. Tam sayılar için sayı virgüllü olmamalıdır! İşaretsiz sayılar için sayı negatif olmamalıdır! Rakamların başında veya sonunda boşluk olabilir, fakat aralarında boşluk olmamalıdır!

Parse Örnek using System; class Program { /* inch’i santimetreye dönüştürme */ static void Main() double inch; double santimetre; string değer; Console.Write("inch gir: "); değer = Console.ReadLine(); // girilen değeri okuyor inch = double.Parse(değer); // tip dönüştürülüyor santimetre = inch * 2.54; Console.WriteLine("{0} inch {1} santimetre eder" ,inch, santimetre); }

Tip Dönüştürme Üzerine Nolar Console.Write("inch gir: "); string değer = Console.ReadLine(); // girilen değeri okuyor double inch = double.Parse(değer); // tip dönüştürülüyor Yukarıdaki kod ile kullanıcıdan inch girilmesi isteniyor. Kullanıcının uygun bir sayı gireceği varsayılıyor. Peki ya kullanıcı rakamlar yerine harf girerse ne olacak? veya girilen sayı double sınırları dışında ise ne olacak? Çok Basit: Hata verecek

tip.TryParse() TryParse() metodunu kullanın! Bu durumda girilmiş yazı double tipine dönüştürülebilirse, dönüştürülüp inch değişkenine atanmış olacak. Eğer dönüştürülemeyecek ise, yani geçersiz bir sayı veya sınırlar dışında ise inch değişkeni 0 olarak kalacaktır. TryParse diğer tüm tipler için de geçerlidir. TryParse metodu tipi dönüştürmeye başlamadan önce geçerli olup olmadığını kontrol eder. double inch; Console.Write("inch gir: "); string değer = Console.ReadLine(); // girilen değeri okuyor double.TryParse(değer, out inch); // tip dönüştürülüyor

TryParse örnek: using System; class Program { /* inch’i santimetreye dönüştürme */ static void Main() double inch; double santimetre; string değer; Console.Write("inch gir: "); değer = Console.ReadLine(); // girilen değeri okuyor double.TryParse(değer, out inch); // tip dönüştürülüyor santimetre = inch * 2.54; Console.WriteLine("{0} inch {1} santimetre eder" , inch, santimetre); }

Dinlediğiniz için teşekkürler… Öğr. Gör. Bayram AKGÜL