Program Nedir?(1) Programlamaya Giriş

Benzer belgeler
Bilgisayarda Programlama. Temel Kavramlar

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-1 Temel Kavramlar ve Algoritma

PROGRAMLAMA TEMELLERİ

1.1. Yazılım Geliştirme Süreci

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

ALGORİTMA VE PROGRAMLAMA I

BİLGİSAYAR ORGANİZASYONU

Hafta 1 Programlamaya Giriş

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Hafta 1 Programlamaya Giriş

Yrd. Doç. Dr. İlhan AYDIN Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü

Dr. Fatih AY Tel: fatihay@fatihay.net

4. Bölüm Programlamaya Giriş

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

Programlama Dili Nedir?

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

Ünite-3 Bilgisayar Yazılımı.

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

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

BİL1002 Bilgisayar Programlama PROF.DR.TOLGA ELBİR

1. PROGRAMLAMAYA GİRİŞ

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü

Bilgisayar Programı Nedir?

C# nedir,.net Framework nedir?

Bilgisayar Programlama Dilleri

Java Temel Özellikleri

Bilgisayar Programlama. 1.Hafta

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

Bahar. BM 211 Programlama Dilleri 3 1

2. Bölüm Programlama Bilgisi

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Ana Bellek (RAM) İşlemci (CPU) Depolama

Fen ve Mühendislik Uygulamalarında MATLAB

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

BÖLÜM 1: PROGRAMLAMAYA GİRİŞ

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

1.PROGRAMLAMAYA GİRİŞ

Yazılım (software); DİZGE YAZILIMLARI YAZILIM TÜRLERİ VE ÖNEMİ İŞLETİM SİSTEMİ YAZILIMI. Program nedir? BİLGİSAYAR PROGRAMLAMA NEDİR?

Öğr. Gör. Serkan AKSU 1

Bilgisayar Temelleri ve Programlamaya Giriş Yard.Doç.Dr. Metin HASDEMİR İstanbul-2008 PROGRAMLAMAYA GİRİŞ

KODLAMAYA HAZIRLIK MODÜLÜ 1. YAZILI SINAV ÇALIŞMA SORULARI VE MODÜL ÖZETİ

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK

TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

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

C Dersi Bölüm 1. Bilgisayar Donanımı

10.DERS Yazılım Gerçekleştirme

1. Bölüm Sayı Sistemleri

GÖRSEL PROGRAMLAMA - I

BLG 1306 Temel Bilgisayar Programlama

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

Yazılım Mühendisliği 1

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

Algoritma ve Akış Diyagramları

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

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

Programlama Dilinin Özellikleri

Genel Programlama I

TEMEL BİLGİSAYAR BİLİMLERİ

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

Bölüm1. İlk Bilgiler ISBN

Algoritmalar ve Programlama. Algoritma

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1

PROBLEM ÇÖZME PROGRAMLAMA ve ÖZGÜN ÜRÜN GELİŞTİRME

Bilgisayar Programlama. Programlama nedir? Program nasıl yazılır?

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

HATA YAKALAMAK VE AYIKLAMAK GİRİŞ HATA AYIKLAMA. Hata Yakalamak ve Ayıklamak

Bölüm 1. Ön Hazırlıklar ISBN

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA. Yazılım Nedir Algoritma Akış Seması Örnekler

C PROGRAMLAMA DİLİ. Hedefler

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1

Programlama dilleri. Programlama dili: İnsan-makina ve makina- makina arasındaki iletişimi sağlar.

C++ Dersi: Nesne Tabanlı Programlama

Programlama Temelleri. Ders notları. Öğr.Gör. Hüseyin Bilal MACİT 2017

Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi

KBÜ. TBP101 Programlama Temelleri. Öğr. Gör. Dr. Abdullah ELEN KARABÜK ÜNİVERSİTESİ.

PROGRAMLAMA DİLLERİ. Teknoloji Fakültesi Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR. Öğr.Gör.Günay TEMÜR

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

Windows Programlama Güz Dönemi

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Transkript:

Programlamaya Giriş Arş. Gör. Muhammet BAYKARA Program Nedir?(1) Bir program bilgisayara ne yapması gerektiğini söyleyen bir dizi komuttur. Bilgisayarlar işlemlerin kendi anlayacağı dilde (makine dili) açıkça yazılmasını isterler. Ancak bu işlemlerin makine dilinde bir programcı tarafından yapılması yerine programlamanın yapısal biçimde bir dil aracılığıyla yapılmasını ve daha sonra çevrilerek bilgisayara anlatılması işlemini programlama dilleri üstlenirler. Bu çevirme işlemine derleme (compile) ya da yorumlama (interpreting) denir. 1

Program Nedir?(2) Kullanım amaçları ve yerlerine göre birçok değişik program türü vardır: Sistem programları: Her program, bir işletim sistemi üzerinde çalışır. İşletim sistemi, diğer programların çalışması için gerekli olan kaynakları ve ortamı sağlar. Sürücüler: İşletim sistemi ile donanım aygıtları arasında iletişim sağlayan programlardır. Klavye ile yazılan yazıların algılanması için, klavyenin sürücü programı kullanılır. Uygulamalar: İşletim sistemi üzerinde çalışan, kullanıcıların ihtiyaç duyduğu işlevleri sağlayan programlardır. Programcı kimdir? Belirli işlevlere sahip programlar geliştiren kişilere programcı denir. Programcı, kullanılan teknolojiyi, platformu iyi tanıması gerekir. Programcılar 3 grupta incelenir: 1- Mimar: Programların yazılması için gerekli teknolojileri belirler. 2- Geliştirici: Programı yazan kişidir. 3- Analist: Programın geliştirilmesi aşamasında, hatanın kaynaklarını bulan ve geliştiricilere raporlayan programcıdır. 2

Programlama Dili Nedir? Programlama dili, programcının bir bilgisayara ne yapmasını istediğini anlatmasının standartlaştırılmış bir yoludur. Programlama dilleri, programcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar. Şu ana kadar 2500 den fazla programlama dili yapılmıştır. Bunlardan bazıları: Pascal, Basic, C, C#, C++, Java, Cobol, Perl, Python, Ada, Fortran, Delphi,Visual Basic programlama dilleridir. Derleyici(Compiler) Nedir?(1) Derleyici;"Kaynak kodu (Source Code) makine koduna (Machine Code) çeviren uygulama" olarak tanımlanabilir. Kaynak kod, belirli bir bilgisayar dilinin kurallarına uyularak yazılan koddur. Makine kodu, belirli donanım(lar) tarafından çalıştırılabilen komutların bulunduğu yapıdır. 3

Derleyici Nedir?(2) Örneğin, şu satırı bir programın kaynak kodunda (programın okunabilir hali) düşünelim: X = 2 + Y Alttaki assembly'de yazılmış satırlar, aynı programın derlenmiş halidir: LOAD A [0] ;; belleğin 0 adresindeki veriyi A siciline yükle ADD A BX ;; A siciline BX sicilindeki adreste bulunan veriyi ekle STOR A [100] ;; sonucu 100 adresine yaz Bu örnekte çevirinin hedefi, programcının anladığı kaynak kodundan işlemcinin anladığı 0 ile 1 den oluşan makina dili kodunu üretmek (LOAD,ADD ve STOR komutları 0001, 0011 ve 0010 olarak yorumlanır) 0001 01 00 00000000 0011 01 10 00000010 0010 01 00 00000100 ---- -- -- --------- bellek adresi işaret sicil komut Derleyici Çeşitleri Bi program yazılmak istenirse mutlaka bir derleyiciye ihtiyaç vardır. Örnek olarak Netbeans(java), Dev(C ve C++) Visual Basic, Delphi vs.. verilebilir. 4

Yorumlayıcı(interpreter) nedir? Yorumlayıcı (interpreter), kaynak kodunu satır satır makine koduna çeviren ve çalıştıran yazılım türüne verilen addır. Derleyiciler (compiler) ile Yorumlayıcılar (Interpreter) arasındaki farklar: Basitçe, bir kaynak kodu hedef koda çevirdikten sonra çalıştıran ve dolayısıyla koddaki hataları yakalama işlemini ve kodun iyileştirilmesini daha kod çalıştırmadan yapan çeviricilere derleyici, kodu satır satır veya bloklar halinde çalıştırıp sırası gelmeyen satırları hiç çalıştırmayan bu satırlardaki hataları hiçbir zaman göremeyen ve kodun bütününe ait iyileştirmeleri yapamayan çeviricilere de yorumlayıcı (interpreter) adı verilmektedir. Genel kanının tersine bir dilin derleyici veya yorumlayıcı özelliği yoktur. Yani C dili için sadece derleyicisi bulunan bir dildir demek yanlış olur. Bu durum bütün diller için geçerlidir. Her dil için bir derleyici veya yorumlayıcı tasarlanabilir. Ama daha genel bir bakışla, her dilin aslında yorumlayıcı (interpreter) yapısında bir çalışması olduğunu söylemek yanlış olmaz. Sonuçta bilgisayarın işlemcisinde anlık olarak tek bir işlem yapılabilmektedir ve çalışması istenen kod, işlemciye sırayla verilecek ve satır satır çalıştırılacaktır. 5

Programlama Dillerinin Sınıflandırılması Programlama dilleri kendi aralarında sınıflara ayrılmışlardır. İnsanın en zor öğrenebileceği, anlayabileceği yani 1100101 gibi makina kodlarına yakın diller en düşük seviyeli(low level) programlama dilleri, insanın en kolay anlayıp kullanabileceği ve insan diline yakın özellikler gösteren diller ise en yüksek seviyeli(high level) programlama dilleridir. Bu sınıflandırmaya örnek verecek olursak; Çok yüksek seviyeli diller : VisualBasic, VB.NET, Acces, Foxpro... Yüksek seviyeli diller: Pascal,Basic,Fortran... Orta seviyeli diller: C,C++, C#, Java,ADA... Düşük seviyeli diller: Assembly... Makina dilleri: Bilgisayarın çalışma dilleri 1 ve 0'lardan oluşur... Web Tabanlı Programlama Dilleri Günümüzde internet bir iletişim aracı olarak oldukça önemli bir etkiye sahiptir. İnternet üzerinden bilgi paylaşabilmek için web sayfaları adı verilen özel bir kodla (HTML) yazılmış sayfalara ihtiyaç vardır. Bu kodla hazırlanmış sayfalara statik web sayfaları denmektedir. Fakat zamanla kullanıcının tercihlerine göre şekillenen sayfaların yapılması ihtiyacı doğmuştur. Bu tür sayfaları yapabilmek için web tabanlı programlama dilleri geliştirilmiştir. Günümüzde en popüler diller arasında ASP ve PHP diller gelmektedir. 6

Algoritma Nedir? Algoritma, elimizdeki sorunun çözümüne gidebilmek için tasarlanan yollar,yöntemlerdir. Önceki slaytlarda bahsedilen programlama dillerinin kendine göre yazım kuralları vardır. Fakat yaptıkları işler bakımından ortaktırlar. Yaptıkları işler ise herhangi bir sorunun çözümüdür. Program Yazım Aşamaları Bir bilgisayar programı yazmak için belli aşamalar vardır ve bu aşamalar geçildiğinde kodlamaya başlanabilir. Bunlar: Analiz Algoritma Dil Seçimi Kodlama Analiz ile gerçekleştirilmek istenen proje tasarımlanır ve parametreleri araştırılır. Algoritma ile adımlar tayin edilir. Dil seçimi ile en uygun programlama dili seçilir. Ve kodlamaya başlanır... Kod yazıldıktan sonra da bazı aşamalardan geçer bunlar da genel olarak : Test ve Debug Pilot denemeler ve ilk versiyon denemeleri Hazır halde çalışır programı sunma 7

Sayı Sistemleri Giriş Bilindiği gibi bilgisayar için en uygun sayı sistemi sadece iki rakamı (0 ve 1) olan ikili sayı sistemidir. Aslında bilgisayar 1 ve 0 ın ne olduğunu bilmez. En eski yarı mekanik hesap makinelerinden günümüzdeki mikroçip teknolojisinin en üst düzeyde kullanıldığı elektronik bilgisayarlara kadar bütün bilgisayarlar olup bitenleri tek bir sorgulamayla anlar. Devre açık mı, kapalı mı? yani Elektrik akımı geçiyor mu, geçmiyor mu?. Devre açık yani akım geçmiyor durumunu 0 ; devre kapalı yani akım geçiyor durumunu da 1 ile temsil ederiz. Burada 0 bilgi yok, 1 ise bilgi var anlamındadır. O halde, örneğin 137 sayısını 1 ve 0 ları kullanarak nasıl ifade edeceğiz? 8

Sayı Sistemleri (Herhangi bir tabandan 10luya çevirme) Bizim kullandığımız sayı sistemi on tabanında yani onlu sayı sistemidir. Peki beş tabanında bir sayıyı nasıl on tabanına çeviririz? Buna ilişkin açıklama aşağıdadır: (443012) 5 = (2 * 5 0 ) + (1 * 5 1 ) + (0 * 5 2 ) + (3 * 5 3 ) + (4 * 5 4 ) + (4 * 5 5 ) (443012) 5 = (2 * 1) + (1 * 5) + (0 * 25) + (3 * 125) + (4 * 625) + (4 * 3125) (443012) 5 = 2 + 5 + 375 + 2500 + 12500 (443012) 5 = (15382) 10 2 liden 10 luya çevirme Aşağıdaki örnekte 2li tabandan 10lu tabana çevrilme örneği verilmiştir. (101011) 2 = (1 * 2 0 ) + (1 * 2 1 ) + (0 * 2 2 ) + (1 * 2 3 ) + (0 * 2 4 ) + (1 * 2 5 ) (101011) 2 = (1 * 1) + (1 * 2) + (0 * 4) + (1 * 8) + (0 * 16) + (1 * 32) (101011) 2 = 1 + 2 + 8 + 32 (101011) 2 = 43 9

2 liden 10 luya çevirme örnek (10010)2=(?)10 2 liden 10 luya çevirme örnek (10010)2=(18)10 10

2 liden 10 luya çevirme örnek (11001101)2=(?)10 2 liden 10 luya çevirme örnek (11001101)2=(205)10 11

Bit-Byte Kavramı İkili sayı düzenindeki her basamağa yani her 0 veya 1 e bir BIT (BInary digit)denir. Sekiz basamaklı yani 8 BIT den oluşan 0 255 arası değerler alabilen bellek birimlerine ise BYTE (bayt) adı verilir. Örnek (11110110) 2 =? (11110110) 2 = 0+2+4+16+32+64+128 = 246 10 ludan 2 liye Çevirme Herhangi bir sayı 10 tabanından 2 tabanına çevrilirken yapılan işlem şudur: Sayı sürekli 2ye bölünür. Ve kalan işaretlenir. Artık bölünecek sayı kalmayınca işaretlenen sayılar sondan başa doğru alınır. Örnek:(197)10=(?)2 197/2=98 kalan 1 98/2=49 kalan 0 49/2=24 kalan 1 24/2=12 kalan 0 SONUÇ:11000101 12/2=6 kalan 0 6/2=3 kalan 0 3/2=1 kalan 1 Son kalan 1 12

Bellek Birimleri Daha önce de belirtildiği gibi bellek byte lardan oluşmuştur. Ancak byte ların sayısı arttıkça hesap kolaylığı için üst birimler tanımlanmıştır. Tıpkı gram, kilogram gibi byte da başına kilo (bin), mega (milyon), giga (milyar), tera (trilyon) gibi ekler alır. Ancak byte lar ikili sistem üzerine kurulduğu için gramda olduğu gibi 1000 er 1000 er değil, bunun yerine 2 nin 1000 e en yakın üssü olan 2 10 = 1024 er 1024 er artarlar. 1 TeraByte = 1024 GigaByte 1 GigaByte = 1024 MegaByte 1 MegaByte = 1024 KiloByte 1 KiloByte = 1024 Byte Ara dönüşümler de klasik yöntemle hesaplanabilir. 1 MegaByte = 1024 x 1024 Byte = 1048576 Byte 1 TeraByte = 1024 x 1024 x 1024 KiloByte = 1073741824 KiloByte Onaltılı Sayı Sistemi Sayı sistemleri genellikle rakamlardan oluşur. Ancak onaltılı sayı sistemi gibi on tabanını aşan bir sistem söz konusu ise bu durumda harfleri de işin içine katmamız gerekir. 16 lı sayı sisteminde 0 dan 9 a kadar olan sayıları kullandıktan sonra 10 a ulaşabilmek için A, B, C, D, E ve F harfleri kullanılır. Bu kural bütün basamaklar için geçerlidir. 10 lu sistem 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 lı sistem 0 1 2 3 4 5 6 7 8 9 A B C D E F 13

16lı sayı sistemi (CB7D) 16 = (?) 10 (D x 16 0 ) + (7 x 16 1 ) + (B x 16 2 ) + (C x 16 3 ) D = 13, B = 11, C = 12 olduğuna göre; (13 x 16 0 ) + (7 x 16 1 ) + (11 x 16 2 ) + (12 x 16 3 ) (13 x 1) + (7 x 16) + (11 x 256) + (12 x 4096) = 13 + 112 + 2816 + 49152 = 52093 (CB7D) 16 = (52093) 10 10ludan 16lıya çevirme (52093)10=(?)16 10 tabanlı sayı sürekli 16 ya bölünür ve kalan işaretlenir. Son olarak tersten yazılır. 52093/16=937 kalan 15 937/16=58 kalan 9 58/16=3 kalan 10 Son kalan 3 3 10 9 15 3 A 9 F SONUÇ:3A9F Kaynak bilisimogrenci.com 14