Program Kodlamaya Hazırlık

Download Report

Transcript Program Kodlamaya Hazırlık

BPR151 ALGORİTMA VE
PROGRAMLAMA - I
Öğr. Gör. Bayram AKGÜL
[email protected]
http://bmyo.bartin.edu.tr/akgul
Bugünkü konular
• Program Kodlamaya Hazırlık
– Temel Programlama Kavramları
• Syntax
• Değişken
– MS Visual Studio Kullanımı
– İlk Program
– C# Program yapısı
2
Programlama Dilleri(PL)
•
Programlama dilleri algoritmaları bilgisayarlara
uygulamak için kullanılan kurallar bütünüdür.
–
–
–
Bu kurallar syntax olarak adlandırılır. (veya
programlama dilinin yazım kuralları olarak
isimlendirilir.)
Her programlama dilinin kendine has yazım kuralları
vardır.
Syntax: yazım kuralı
3
C#
si şarp diye okunur :)
• Microsoft tarafından geliştirilmiş olan bir
programlama dilidir.
• C++ ve Java dillerine oldukça benzer, ancak
C#'ın bu dillere benzerliği yanında farkları
da vardır.
• C#,
– C++'dan farklı olarak % 100 nesne yönelim
tekniğine sahiptir.
– Java'dan farklı olarak ise C#'ta gösterici
(pointer) kullanılabilir. Böylelikle eski yazılım
bileşenleriyle uyumlu bir şekilde çalışılabilir.
.NET Framework
• C# kodları, normal programlama dillerinden
farklı olarak direkt makine koduna derlenmez.
– Önce IL (Intermediate Language) denilen bir ara
koda derlenir.
– Derlenen bu kodun dosyasına assembly denir ve
uzantısı exe veya dll'dir.
• Bu program çalıştırılmak istendiğinde .Net
Framework devreye girer ve IL kodu makine
koduna dönüştürür, böylelikle bilgisayar kodu
anlayabilir.
• Bu yüzden yazdığımız programın bir
bilgisayarda çalışması için o bilgisayarda .Net
Framework programının kurulu olması gerekir.
C# kodunun çalıştırılması
C# Kodu
• C# derleyici
IL kod
• .Net
Framework
Makine
Kodu
.NET Framework
• .Net Framework, oluşturduğu makine
kodlarını geçici bir süreliğine belleğe koyar,
eğer aynı kodlar tekrar çalıştırılmak
istenirse tekrar IL koddan makine koduna
dönüşüm yapmak yerine bu belleğe
kaydettiği makine kodlarını kullanır.
– Bu yüzden oluşturduğumuz programımızı ilk
çalıştırdığımız zaman programımız biraz yavaş
çalışabilir, ancak daha sonraki çalışmalarda
oldukça hızlanacaktır.
C# ile yapabileceklerimiz
•
•
•
•
•
Konsol uygulaması geliştirme
Windows uygulaması geliştirme
ASP.NET uygulaması geliştirme
Web servisleri yazma
Mobil uygulama geliştirme (PDA, cep
telefonları vb. için)
• DLL yazma
İlk Program
class SelamVer
{
static void Main()
{
System.Console.Write("Merhaba Sınıf!");
}
}
Program Başlangıcı
• class SelamVer
satırıyla SelamVer adında yeni bir sınıf
oluştururuz.
• C#'ta yazdığımız her programın en az bir
sınıf içermesi zorunludur.
{ } Süslü Parantezler
• { ve } işaretleri herhangi bir sınıfın veya
metodun içeriğini belirtmek için kullanılır.
• İlk { karakteriyle önceki satırda açtığımız
SelamVer adlı sınıfımızın içeriğine alınacak
kodların başladığını, programın son
satırındaki } karakteriyle de sınıfımızın
içeriğine alınacak kodların sona erdiğini
belirtiyoruz.
Ana Metod
• static void Main() satırıyla program
sınıfının içine Main adlı bir metot
yerleştirildi.
– Bu metodun adı mutlaka Main olmalı, yoksa
program çalışmaz.
– Bu metot mutlaka oluşturulan sınıfın içinde
olmalı.
• { ve } karakterleriyle metodun içeriği
belirtildi.
– Dikkat ettiyseniz bir iç içe { ve } karakterleri
söz konusu. Bu durumda koyulan ilk } karakteri
son açılan { karakterini kapatır.
Çalışan Kod
• Programımızın pratikte iş yapan tek kısmı:
System.Console.Write("Merhaba Sınıf!");
satırıdır.
– Bu satırla konsol ekrana Merhaba Sınıf! yazdırılmaktadır.
• Bunun için .Net Framework kütüphanesindeki hazır
bir metottan yararlanılmaktadır.
– Bu metot, System isim alanının altındaki Console sınıfında
bulunuyor, ismi Write ve konsol ekranına yazı yazdırmaya
yarıyor.
• Bu metod parantezler arasındaki çift tırnaklar
arasına alınan metni ekrana yazdırıyor.
• Satırın sonundaki noktalı virgül (;) karakterini
ise { ve } karakterleri açıp kapatmayan bütün C#
satırlarında kullanmamız gerekiyor.
Programın İkinci Versiyonu
using System;
class SelamVer
{
static void Main()
{
Console.Write("Merhaba Sınıf!");
}
}
using Deyimi
• Bu programımızın işlevsel olarak ilk
programdan herhangi bir farkı yoktur.
– Yani ikisi de aynı şeyi yapıyor.
• Ancak kodda bir farklılık var.
– En üste
using System;
satırı eklenmiş ve
System.Console.Write("Merhaba Sınıf!");
satırındaki System kalkmıştır.
using Deyimi
• using deyimi C#'ta isim alanı
kullanma hakkı elde etmek için
kullanılan bir anahtar sözcüktür.
– Yani aynı isim alanında kullanacağımız
birden fazla sınıf varsa bu isim
alanını using anahtar sözcüğüyle
belirtiyoruz.
• Böylece bu isim alanının sınıflarını
kullanırken isim alanının adını yazmak
zorunda kalmayız.
16
Programın Üçüncü Versiyonu
using System;
class ilk_Program
{
static void Main()
{
Console.WriteLine("Enter tuşuna basın!");
Console.ReadLine();
Console.WriteLine("Enter tuşuna bastınız!");
}
}
ReadLine Metodu
• Bu programımız önce ekrana Enter tuşuna
basın! yazar. Kullanıcı enter tuşuna bastığında
da Enter tuşuna bastınız! yazıp kendini
kapatır.
• Console sınıfına ait olan ReadLine metodu
programın kullanıcıdan bilgi girişi için
beklemesini sağlar, yani programı enter tuşuna
basılana kadar bekletir.
• Kullanıcı enter tuşuna bastığında da diğer
satıra geçilir.
– Dikkat ettiyseniz ReadLine metodunda parantezlerin
arasına hiçbir şey yazmıyoruz. C#'ta bazı metotların
parantezleri arasına bir şeyler yazmamız gerekirken,
bazı metotlarda da hiçbir şey yazılmaması gerekir.
Örnek C# Programı
PROBLEM
İnch’i santimetreye
dönüştür.
using System;
namespace ilk_program
{
class Program
{
/* inch’i santimetreye dönüştürme */
Başla
static void Main()
{
Kullanıcıya inch girmesini bildir
double inch;
double santimetre;
İnch’i al
Console.Write("inch gir: ");
inch = double.Parse(Console.ReadLine());
santimetre = inch * 2.54
santimetre = inch * 2.54;
Console.WriteLine("{0} inch {1} santimetre eder"
,inch, santimetre);
inch ve Santimetreyi
ekrana yazdır.
}
}
}
Bitiş
19
Örnek C# Programını anlama
Standart işlemler
kütüphanesini yükle
using System;
namespace ilk_program
{
class Program
{
Program alanı ve sınıf adı
// inch’i santimetreye dönüştürme
static void Main()
{
Açıklamalar: /* …. */ arasında
Veya // ile başlar
double inch;
double santimetre;
Main(): Programın nerden
başlayacağını gösterir
Console.Write("inch gir: ");
Süslü parantezler
Bir kod bloğunun başlangıç ve
bitişini işaret eder.
Console.WriteLine("{0} inch {1} santimetre eder"
,inch, santimetre);
inch = double.Parse(Console.ReadLine());
santimetre = inch * 2.54;
}
}
}
20
Örnek C# Programını anlama (devam)
using System;
Değişkenler
• değişken bir hafıza alanıdır.
İçeriği programın çalışması
süresince doldurulabilir ve
değiştirilebilir.
• double bir değişken tipidir
• inch ve santimetre değişken
adlarıdır.
namespace ilk_program
{
class Program
{
/* inch’i santimetreye dönüştürme */
static void Main()
{
double inch;
double santimetre;
İfadeler
• program adımlarıdır.
• her ifade noktalı virgül ile
biter (;)
Console.Write("inch gir: ");
inch = double.Parse(Console.ReadLine());
santimetre = inch * 2.54;
Console.WriteLine("{0} inch {1} santimetre eder"
,inch, santimetre);
}
}
}
21
Örnek C# Programını anlama (devam)
using System;
Output - Çıktı
Ekrana bir şeyler yazdırmak
için Console.Write veya
Console.WriteLine
fonksiyonunu kullanacağız
namespace ilk_program
{
class Program
{
/* inch’i santimetreye dönüştürme */
static void Main()
{
Input - Girdi
Klavyeden bir şeyler okumak
için Console.ReadLine
fonksiyonunu kullanacağız.
double inch;
double santimetre;
Console.Write("inch gir: ");
inch = double.Parse(Console.ReadLine());
santimetre = inch * 2.54;
Hesaplamalar
Hesaplamalar için matematiksel
ifadeleri/operatörleri
kullanacağız.
Console.WriteLine("{0} inch {1} santimetre eder"
,inch, santimetre);
}
}
}
22
Örnek C# programının Çalışması
using System;
namespace ilk_program
PROGRAM
{
class Program
{
/* inch’i santimetreye dönüştürme */
static void Main()
{
double inch;
double santimetre;
Console.Write("inch gir: ");
VERİLER
inch
?
15.4
santimetre
?
39.116
inch = double.Parse(Console.ReadLine());
santimetre = inch * 2.54;
Console.WriteLine("{0} inch {1} santimetre eder",inch,santimetre);
}
}
}
inch gir: 15.4
15.4 inch 39.116 santimetre eder
23
Örnek C# programının Çalışması
using System;
namespace ilk_program
PROGRAM
{
class Program
{
/* inch’i santimetreye dönüştürme */
static void Main()
{
double inc;
double cm;
Console.Write("inch gir: ");
VERİLER
inc
?
15.4
cm
?
39,116
inc = double.Parse(Console.ReadLine());
cm = inch * 2.54;
Console.WriteLine("{0} inch = {1} cm ",inc,cm);
}
}
}
Inch gir: 15.4
15.4 inch = 39,116 cm
24
C# Program Yapısı
using System;
/* program alan adı olmak zorunda değil*/
namespace ilk_program
{
// program sınıfı olmak zorunda
class Program
{
/* Main olmak zorunda */
static void Main()
{
/* Değişkenler programda kullanılacak verileri tutar. */
Değişken Tanımlama;
/* Program basamakları: I/O, hesaplamalar (ifadeler) */
ifade1;
ifade2;
…
ifadeN;
}
}
}
25
Değişken Nedir?
• İçeriği programın çalışması
boyunca doldurulabilen ve
değiştirilebilen bir hafıza alanıdır.
– Her değişkenin bir tipi ve ismi vardır.
– Tip o hafıza alanında saklanacak
verinin tip bilgilerini ifade eder.
– İsim o hafıza bölgesine ulaşmamız için
bir etikettir.
Hafıza
sayi1
name
sayi2
– int sayi1;
/* bir tam sayıyı depolar (152) */
– float sayi2; /* bir ondalıklı sayıyı depolar (65.324) */
26
Değişken Tanımlama
• Temel değişken tanımlama formatı
veritipi veriAdı, veriAdı, ... ;
veritipi aşağıdakiler olabilir
int
/* tam sayıları tutar, 34532 */
float /* gerçek sayıları tutar, 15.342 */
double /* gerçek sayıları tutar, fakat çok daha hassas*/
/* 345.22359573943 */
char
string
/* bir karakter tutar, ‘A’ */
/* yazıları tutar, "Merhaba sınıf" */
27
Değişken İsimleri
• C# değişkenleri harf ve rakam
kombinasyonlarından oluşabilirler fakat:
– İlk karakter rakam olamaz!
• fahrenheit, santigrat, toplam, a123, i1, i2, i3, _12abc
– Büyük veya küçük harfler kullanılabilir
– Küçük ve büyük harfler aşağıdaki gibi kullanılabilir
• toplam, Toplam, TOPLAM
– Alt çizgi (_) ilk karakter olabilir veya arada/sonda
kullanılabilir.
• ogrenci_no, _ogrNo, __ogr_no_
28
Değişken İsimleri (devam)
• C# değişken isimleri harf ve rakamların
birleşiminden oluşabilir, fakat:
– Değişken isimleri boşluk, tire veya tırnak içeremez
• “ogrenci” : tırnaklar(“) geçersiz
• ogrenci-no : geçersiz karakter ( - )
• ogrenci no: arada boşluk kullanılmamalı (ogrenci_no)
– Değişken isimleri büyük/küçük harf duyarlıdır
• toplam, Toplam ve toplaM hepsi farklı değişkenlerdir.
29
C# Temel Veri Tipleri
• Tam sayılar
– int, uint, short, ushort, long, ulong, byte, sbyte
• Virgüllü sayılar (gerçek sayılar)
– float, double, decimal
• Boolean tipi (doğru/yanlış) (true/false)
– bool
• Yazı tipleri
– char
– string
30
Haftaya
• Veri tipleri ve özellikleri
• Değişken tanımlama ve değer atama
31
DINLEDIĞINIZ IÇIN
TEŞEKKÜRLER…
Öğr. Gör. Bayram AKGÜL
32