EE-107
BİLGİSAYAR PROGRAMLAMA
2+1 (T+U)
5 AKTS
GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ
DR ÖĞRETİM ÜYESİ MERAL ÖZARSLAN YATAK
 KAYNAKLAR
 C Programlama Dili, Şerafettin Arıkan, Seçkin Yayıncılık
 C ve C++, Harvey M. Deitel, Paul J. Deitel, Sistem Yayıncılık, 2011
 İşte C Programlama Dili, Rifat Çölkesen, Papatya
 Yarıyıl Çalışmaları Sayısı Katkı
 Ara Sınav 1 % 48
 Ödev 1 % 12
 Uygulama 0 % 0
 Projeler 0 % 0
 Pratik 0 % 0
 Kısa Sınav 0 % 0
 Yarıyıl Sonu Sınavı 1 %40
Bu dersin başarılı bir şekilde tamamlanmasıyla
yapabileceklerimiz:
 Algoritma ve programlama mantığını anlamak,
 Bir problemin akış diyagramını oluşturmak,
 Akış diyagramı oluşturulmuş bir problemin programını gerçekleştirmek,
 Programlama geliştirme ortamını kullanarak program yazmak.
 HaftaKonu
 1 Programlamaya giriş
 2 Algoritma ve akış diyagramları
 3 C dilinin yapısı, ekran çıktı komutları, değişkenler
 4 Temel giriş komutları, diziler, dizgiler
 5 Operatörler, karşılaştırma yapıları(if, if-else, switch)
 6 Tekrarlı yapılar(for, while, do-while), break, continue, goto deyimler
 7 Matematiksel işlemler ve hafıza yönetimi
 8 Örneklerle genel tekrar, Ara sınav
 9 Çözümlü örneklerle genel tekrar
 10 Yapılar, sınıflar
 11 Dosya işlemleri
 12 Göstergeler (Pointer)
 13 C# Programlama diline giriş
 14 C# ile masaüstü ve web programlama
 PROGRAMLAMAYA GİRİŞ
 Bilgisayar Nedir?
Bilgisayar belli komutlara göre verileri işleyebilen ve çeşitli ortamlarda
depolayabilen bir makinedir. Temel bilgisayar mimarisi Şekil 1’de görülmektedir.
Şekil 1. Temel bilgisayar mimarisi
Bilgisayar en genel haliyle yazılım ve donanım olarak iki kısma ayrılabilir. Donanım
bilgisayarın tüm fiziksel parçalarıdır. Yazılım ise bilgisayar donanımının çalışabilmesi için
gerekli olan komutlar bütünüdür.
 Program bilgisayarın belli bir hedefi/işlemi gerçekleştirmesine yönelik
komutlar bütünüdür.
 Bilgisayarlar aslında oldukça gelişmiş elektronik devrelerdir. Örneğin
gelişmiş bir işlemcinin içerisinde yaklaşık 1.000.000.000 civarında transistör
 Bilgisayar programları da aynı şekilde ikili sayı sistemiyle çalışır.
 İkili sayı sistemiyle yazılmış bir programa makine dili adı verilir.
 İşlemci tarafından çalıştırılan bütün programlar makine dilinde yazılmıştır.
 Üst düzey programlama dilleri kullanılarak geliştirilmiş bir program makine diline dönüştürüldükten sonra çalıştırılabilir.
 Özetle, Makine kodu (yada makine dili) bilgisayarın işlemcisine ne yapacağını direk olarak söyleyen okunabilirliği
düşük ve olabilecek en alt seviye programlama dilidir.
 NOT: Kodun işlemciye direk geçmesi ve okunabilirliğinin azalması onu daha alt seviye yapar, okunabilirliği yüksekse üst seviye
programlama dilidir.
 Makine kodunda arada hiçbir çevirme yoktur. Yani direk olarak CPU ile iletişim kurarsınız.
 Bilgisayar işlemcisinin anladığı tek dil makine dilidir.
Programlama Dilleri
 İşlemci tarafından çalıştırılan programa makine dili veya makine kodu denir.
 Makine dili 0 ve 1’lerden oluşan ve insan tarafından yazılması, okunması, anlaşılması
ve değişiklik yapılması oldukça zor olan bir dildir.
 Makine dilinde yazılmış örnek bir program aşağıda yer almaktadır. Aşağıdaki program
1024. ve 1025. adreslerdeki verileri çarpıp üzerine 1026. adresteki veriyi ekleyen ve
sonucu 1027. adrese kaydeden bir programdır.
1. 00010000000000000000010000000000
2. 00100100000000000000010000000001
3. 00100011000000000000010000000010
4. 00010001000000000000010000000011
 Makine dili okunabilirliğinin ve
yazılışının kolaylaştırılması amacıyla
16’lık sayı sistemiyle (hex :
hexadecimal) ifade edilir.
 Yanda 16 sayı düzeninde kodlanmış
örnek bir makine dili programı
görülmektedir.
:1000000083161F3085000730860083120301950197
:10001000A401A5019401A101A201A3011130A20034
:100020006128A20115109510910192019301061DFE
:10003000A1280518282885182B2805192E28851988
:100040003128051A34280618432886184A286D28AE
:100050000130A20037280230A20037280330A20066
:1000600037280430A20037280530A2003728910B2A
:100070001728920B17289514930A1308093C031D9F
:10008000172815148615910B1728920B1728940A18
:1000900074201128910B1728920B172894037420B1
:1000A000112815109510220889001408880083165D
:1000B000081555308900AA30890088140811831268
:1000C0000800151095108312220889008316081461
:1000D00083120808940074201128861115185120E5
:1000E00095186128742011281408A100211882286D
:1000F00086120617A50B7928A5010613A50B7D28E6
:10010000A501842886167928A10C21189128861229
:100110000617A50B8828A5010613A50B8C28A50199
:10012000932886168828A40A2408073C031D8428DF
:10013000A4018617A50B99288613A50B9C28A50159
:1001400008001130A2001408A30051200000A628C6
:00000001FF
 Makine dilinde program yazılması ve hata takibi çok zor olduğu için komutların
kısaltmalarla (mnemonic) ifade edilebildiği bir dil geliştirilmiştir. Bu dil assembly
dilidir.
 Assembly dilinde yazılan programlar assembler adı verilen dönüştürücü
programlarla makine diline dönüştürülür.
 Makine diline göre daha anlaşılır ve kolay olan assembly dilinde de program
yazmak çok kolay değildir. Örnek olarak verilen 4 satırlık programın assembly
dilinde yazılmış hali aşağıdadır.
1. MOV A, ACC
2. MUL B, ACC
3. ADD C, ACC
4. STO ACC, X
1. 00010000000000000000010000000000
2. 00100100000000000000010000000001
3. 00100011000000000000010000000010
4. 00010001000000000000010000000011
Assembly Dili Makine Dili
 Buradaki komutlar mov (move : taşı), mul (multiply : çarp), add (add : ekle), sto (store : depola)
şeklinde kısaltmalardır.
 Ekrana Elektronik yazdıran bir programın x86 assembly kodu aşağıda verilmiştir.
SECTION .data
msg: db "Elektronik",10
len: equ $-msg
SECTION .text
global main
main:
mov edx,len
mov ecx,msg
mov ebx,1
mov eax,4
int 0x80
mov ebx,0
mov eax,1
int 0x80
 Örnekten de anlaşılacağı gibi Assembly dilinde de program yazmak
oldukça zor ve zahmetlidir.
 Bu nedenle daha çok günlük hayatta kullanılan kelimelerin yer aldığı
programlama dilleri geliştirilmiştir.
 Makine dili ve assembly diline alt düzey diller denirken günlük hayatta
kullanılan ifadelerle programların yazıldığı dillere üst düzey diller denir.
 Üst düzey dillere Fortran, Basic, Pascal, C gibi diller örnek olarak
verilebilir.
Şekil 2. Üst düzey ve alt düzey programlama dilleri
 Hangi dilde yazılmış olursa olsun bir programın çalıştırılabilmesi için
makine koduna dönüştürülmesi gerekmektedir.
 Bu işlem yapılırken assembly dilinde yazılan programların
dönüştürülmesinde assembler adı verilen programlar kullanılır.
 Üst düzey dillerde yazılan programların makine koduna
dönüştürülmesinde ise derleyici (compiler) ve yorumlayıcılar
(interpreter) kullanılır. Bazı diller hem derleyici hem de yorumlayıcıya
sahiptir.
 Derleyiciler bir programı bütünüyle ele alarak hatalara karşı denetler ve
makine koduna dönüştürür.
 Yorumlayıcılar ise programın o anda çalıştırılacak satırını makine
dönüştürür.
Program Geliştirmenin Aşamaları
 Bir bilgisayar programı geliştirilirken belli aşamaların takip edilmesi gerekir.
Bu aşamalar: problemin belirlenmesi, problemin analizi, algoritma ve akış
şemasının tasarımı, programın kodlanması (yazılması) ve test işletimi yani
denenmesidir. Bir program için bazen bu safhaların tümü veya bir kaçı
tekrarlanabilir.
 1. Problemin Belirlenmesi
 Bilgisayar programı geliştirilmesinde birinci aşama geliştirilecek programın
hangi problemle ilgili olduğudur. Problemin iyi belirlenmesi, eldeki verilerin
ve istenen verilerin anlaşılması gerekmektedir.
 2. Analiz
 Problemin belirlenmesinden sonra çözüm metodunun belirlenmesi
gerekmektedir. Hangi giriş verilerine karşılık hangi çıkış verilerinin istendiği
belirlenmelidir. Çözümün elde edilmesinde kullanılacak yöntem
belirlenmelidir. Bu amaçla benzer problemlerin çözümünden de
yararlanılabilir.
 3. Tasarım
 Analiz safhasında belirlenen çözüm metodunun adımları detaylandırılır.
Programın ne tür bir akış mantığıyla ilerleyeceği belirlenir. Bu safhada
algoritma ve akış şemasının tasarımı yapılır
 4. Kodlama
 Tasarım safhasında belirlenen algoritma/akış şemasındaki adımlar
programın yazılacağı dilin komutları ve kuralları göz önünde bulundurularak
bulundurularak kod haline dönüştürülür.
 5. Test İşletimi
 Yazılan program çalıştırılarak, bütün olasılıklara göre testleri yapılır. Verilen
giriş verilerine karşı istenen çıkış verilerini doğru bir biçimde sağlayıp
sağlayamadığı tespit edilir. Varsa programın istisnai durumlarda ürettiği çıkış
tespit edilir. Bu testlere bağlı olarak programın eksiklikleri ve hataları
giderilerek son şekli verilir.
GTU week 1 bullshits  about somethings that ı dont know

More Related Content

PDF
Kodlamaya hazırlık
PDF
programlama giris C++ Ders notu fonksiyon
PDF
C ders-notlari-necati-ergin
DOC
bi̇li̇şi̇m hukuku
PPTX
programming language software developer handbook
PPTX
Mikroprogramlanmis kontrol
PPTX
Algoritma - akış diyagramları - sözde kod
DOC
Programlama Temelleri
Kodlamaya hazırlık
programlama giris C++ Ders notu fonksiyon
C ders-notlari-necati-ergin
bi̇li̇şi̇m hukuku
programming language software developer handbook
Mikroprogramlanmis kontrol
Algoritma - akış diyagramları - sözde kod
Programlama Temelleri

Similar to GTU week 1 bullshits about somethings that ı dont know (20)

PPTX
Algoritmalarve programlamai ders_1
PPT
Programlama Dilleri
PPT
başlıkk 11111
PPTX
programming language software developer handbook
PDF
C programlama
PPTX
Roket Yazılımı Eğitimi Hafta 1
PPTX
Programlamaya Giriş, Algoritma ve Akış Şeması Diyagramı
PPTX
Eğitimde Small Basic Kullanımı
PDF
Microcontroladores: Compilador PI C Compiler.pdf
PDF
Python Programlama Diline Giriş Güncelleme 2024
PDF
Algoritma ve akış şemaları
PDF
Python programlama
PPTX
matlab5.haftadocumentationformatlabsimul
PDF
INFTEC-2024 Python Programlama Giriş Kursu
PPT
Programlama dili temel_kavramlar
PDF
C projeleri
PPTX
XUUM.pptx
PDF
Pic programlama-2011
PDF
C-Sharp.pdf
PDF
C dilini-taniyalim
Algoritmalarve programlamai ders_1
Programlama Dilleri
başlıkk 11111
programming language software developer handbook
C programlama
Roket Yazılımı Eğitimi Hafta 1
Programlamaya Giriş, Algoritma ve Akış Şeması Diyagramı
Eğitimde Small Basic Kullanımı
Microcontroladores: Compilador PI C Compiler.pdf
Python Programlama Diline Giriş Güncelleme 2024
Algoritma ve akış şemaları
Python programlama
matlab5.haftadocumentationformatlabsimul
INFTEC-2024 Python Programlama Giriş Kursu
Programlama dili temel_kavramlar
C projeleri
XUUM.pptx
Pic programlama-2011
C-Sharp.pdf
C dilini-taniyalim
Ad

GTU week 1 bullshits about somethings that ı dont know

  • 1. EE-107 BİLGİSAYAR PROGRAMLAMA 2+1 (T+U) 5 AKTS GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ DR ÖĞRETİM ÜYESİ MERAL ÖZARSLAN YATAK
  • 2.  KAYNAKLAR  C Programlama Dili, Şerafettin Arıkan, Seçkin Yayıncılık  C ve C++, Harvey M. Deitel, Paul J. Deitel, Sistem Yayıncılık, 2011  İşte C Programlama Dili, Rifat Çölkesen, Papatya  Yarıyıl Çalışmaları Sayısı Katkı  Ara Sınav 1 % 48  Ödev 1 % 12  Uygulama 0 % 0  Projeler 0 % 0  Pratik 0 % 0  Kısa Sınav 0 % 0  Yarıyıl Sonu Sınavı 1 %40
  • 3. Bu dersin başarılı bir şekilde tamamlanmasıyla yapabileceklerimiz:  Algoritma ve programlama mantığını anlamak,  Bir problemin akış diyagramını oluşturmak,  Akış diyagramı oluşturulmuş bir problemin programını gerçekleştirmek,  Programlama geliştirme ortamını kullanarak program yazmak.
  • 4.  HaftaKonu  1 Programlamaya giriş  2 Algoritma ve akış diyagramları  3 C dilinin yapısı, ekran çıktı komutları, değişkenler  4 Temel giriş komutları, diziler, dizgiler  5 Operatörler, karşılaştırma yapıları(if, if-else, switch)  6 Tekrarlı yapılar(for, while, do-while), break, continue, goto deyimler  7 Matematiksel işlemler ve hafıza yönetimi  8 Örneklerle genel tekrar, Ara sınav  9 Çözümlü örneklerle genel tekrar  10 Yapılar, sınıflar  11 Dosya işlemleri  12 Göstergeler (Pointer)  13 C# Programlama diline giriş  14 C# ile masaüstü ve web programlama
  • 5.  PROGRAMLAMAYA GİRİŞ  Bilgisayar Nedir? Bilgisayar belli komutlara göre verileri işleyebilen ve çeşitli ortamlarda depolayabilen bir makinedir. Temel bilgisayar mimarisi Şekil 1’de görülmektedir. Şekil 1. Temel bilgisayar mimarisi Bilgisayar en genel haliyle yazılım ve donanım olarak iki kısma ayrılabilir. Donanım bilgisayarın tüm fiziksel parçalarıdır. Yazılım ise bilgisayar donanımının çalışabilmesi için gerekli olan komutlar bütünüdür.
  • 6.  Program bilgisayarın belli bir hedefi/işlemi gerçekleştirmesine yönelik komutlar bütünüdür.  Bilgisayarlar aslında oldukça gelişmiş elektronik devrelerdir. Örneğin gelişmiş bir işlemcinin içerisinde yaklaşık 1.000.000.000 civarında transistör
  • 7.  Bilgisayar programları da aynı şekilde ikili sayı sistemiyle çalışır.  İkili sayı sistemiyle yazılmış bir programa makine dili adı verilir.  İşlemci tarafından çalıştırılan bütün programlar makine dilinde yazılmıştır.  Üst düzey programlama dilleri kullanılarak geliştirilmiş bir program makine diline dönüştürüldükten sonra çalıştırılabilir.  Özetle, Makine kodu (yada makine dili) bilgisayarın işlemcisine ne yapacağını direk olarak söyleyen okunabilirliği düşük ve olabilecek en alt seviye programlama dilidir.  NOT: Kodun işlemciye direk geçmesi ve okunabilirliğinin azalması onu daha alt seviye yapar, okunabilirliği yüksekse üst seviye programlama dilidir.  Makine kodunda arada hiçbir çevirme yoktur. Yani direk olarak CPU ile iletişim kurarsınız.  Bilgisayar işlemcisinin anladığı tek dil makine dilidir.
  • 8. Programlama Dilleri  İşlemci tarafından çalıştırılan programa makine dili veya makine kodu denir.  Makine dili 0 ve 1’lerden oluşan ve insan tarafından yazılması, okunması, anlaşılması ve değişiklik yapılması oldukça zor olan bir dildir.  Makine dilinde yazılmış örnek bir program aşağıda yer almaktadır. Aşağıdaki program 1024. ve 1025. adreslerdeki verileri çarpıp üzerine 1026. adresteki veriyi ekleyen ve sonucu 1027. adrese kaydeden bir programdır. 1. 00010000000000000000010000000000 2. 00100100000000000000010000000001 3. 00100011000000000000010000000010 4. 00010001000000000000010000000011
  • 9.  Makine dili okunabilirliğinin ve yazılışının kolaylaştırılması amacıyla 16’lık sayı sistemiyle (hex : hexadecimal) ifade edilir.  Yanda 16 sayı düzeninde kodlanmış örnek bir makine dili programı görülmektedir. :1000000083161F3085000730860083120301950197 :10001000A401A5019401A101A201A3011130A20034 :100020006128A20115109510910192019301061DFE :10003000A1280518282885182B2805192E28851988 :100040003128051A34280618432886184A286D28AE :100050000130A20037280230A20037280330A20066 :1000600037280430A20037280530A2003728910B2A :100070001728920B17289514930A1308093C031D9F :10008000172815148615910B1728920B1728940A18 :1000900074201128910B1728920B172894037420B1 :1000A000112815109510220889001408880083165D :1000B000081555308900AA30890088140811831268 :1000C0000800151095108312220889008316081461 :1000D00083120808940074201128861115185120E5 :1000E00095186128742011281408A100211882286D :1000F00086120617A50B7928A5010613A50B7D28E6 :10010000A501842886167928A10C21189128861229 :100110000617A50B8828A5010613A50B8C28A50199 :10012000932886168828A40A2408073C031D8428DF :10013000A4018617A50B99288613A50B9C28A50159 :1001400008001130A2001408A30051200000A628C6 :00000001FF
  • 10.  Makine dilinde program yazılması ve hata takibi çok zor olduğu için komutların kısaltmalarla (mnemonic) ifade edilebildiği bir dil geliştirilmiştir. Bu dil assembly dilidir.  Assembly dilinde yazılan programlar assembler adı verilen dönüştürücü programlarla makine diline dönüştürülür.  Makine diline göre daha anlaşılır ve kolay olan assembly dilinde de program yazmak çok kolay değildir. Örnek olarak verilen 4 satırlık programın assembly dilinde yazılmış hali aşağıdadır. 1. MOV A, ACC 2. MUL B, ACC 3. ADD C, ACC 4. STO ACC, X 1. 00010000000000000000010000000000 2. 00100100000000000000010000000001 3. 00100011000000000000010000000010 4. 00010001000000000000010000000011 Assembly Dili Makine Dili
  • 11.  Buradaki komutlar mov (move : taşı), mul (multiply : çarp), add (add : ekle), sto (store : depola) şeklinde kısaltmalardır.  Ekrana Elektronik yazdıran bir programın x86 assembly kodu aşağıda verilmiştir. SECTION .data msg: db "Elektronik",10 len: equ $-msg SECTION .text global main main: mov edx,len mov ecx,msg mov ebx,1 mov eax,4 int 0x80 mov ebx,0 mov eax,1 int 0x80
  • 12.  Örnekten de anlaşılacağı gibi Assembly dilinde de program yazmak oldukça zor ve zahmetlidir.  Bu nedenle daha çok günlük hayatta kullanılan kelimelerin yer aldığı programlama dilleri geliştirilmiştir.  Makine dili ve assembly diline alt düzey diller denirken günlük hayatta kullanılan ifadelerle programların yazıldığı dillere üst düzey diller denir.  Üst düzey dillere Fortran, Basic, Pascal, C gibi diller örnek olarak verilebilir. Şekil 2. Üst düzey ve alt düzey programlama dilleri
  • 13.  Hangi dilde yazılmış olursa olsun bir programın çalıştırılabilmesi için makine koduna dönüştürülmesi gerekmektedir.  Bu işlem yapılırken assembly dilinde yazılan programların dönüştürülmesinde assembler adı verilen programlar kullanılır.  Üst düzey dillerde yazılan programların makine koduna dönüştürülmesinde ise derleyici (compiler) ve yorumlayıcılar (interpreter) kullanılır. Bazı diller hem derleyici hem de yorumlayıcıya sahiptir.  Derleyiciler bir programı bütünüyle ele alarak hatalara karşı denetler ve makine koduna dönüştürür.  Yorumlayıcılar ise programın o anda çalıştırılacak satırını makine dönüştürür.
  • 14. Program Geliştirmenin Aşamaları  Bir bilgisayar programı geliştirilirken belli aşamaların takip edilmesi gerekir. Bu aşamalar: problemin belirlenmesi, problemin analizi, algoritma ve akış şemasının tasarımı, programın kodlanması (yazılması) ve test işletimi yani denenmesidir. Bir program için bazen bu safhaların tümü veya bir kaçı tekrarlanabilir.  1. Problemin Belirlenmesi  Bilgisayar programı geliştirilmesinde birinci aşama geliştirilecek programın hangi problemle ilgili olduğudur. Problemin iyi belirlenmesi, eldeki verilerin ve istenen verilerin anlaşılması gerekmektedir.  2. Analiz  Problemin belirlenmesinden sonra çözüm metodunun belirlenmesi gerekmektedir. Hangi giriş verilerine karşılık hangi çıkış verilerinin istendiği belirlenmelidir. Çözümün elde edilmesinde kullanılacak yöntem belirlenmelidir. Bu amaçla benzer problemlerin çözümünden de yararlanılabilir.
  • 15.  3. Tasarım  Analiz safhasında belirlenen çözüm metodunun adımları detaylandırılır. Programın ne tür bir akış mantığıyla ilerleyeceği belirlenir. Bu safhada algoritma ve akış şemasının tasarımı yapılır  4. Kodlama  Tasarım safhasında belirlenen algoritma/akış şemasındaki adımlar programın yazılacağı dilin komutları ve kuralları göz önünde bulundurularak bulundurularak kod haline dönüştürülür.  5. Test İşletimi  Yazılan program çalıştırılarak, bütün olasılıklara göre testleri yapılır. Verilen giriş verilerine karşı istenen çıkış verilerini doğru bir biçimde sağlayıp sağlayamadığı tespit edilir. Varsa programın istisnai durumlarda ürettiği çıkış tespit edilir. Bu testlere bağlı olarak programın eksiklikleri ve hataları giderilerek son şekli verilir.