SlideShare a Scribd company logo
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

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

C dilini-taniyalim
C dilini-taniyalimC dilini-taniyalim
C dilini-taniyalim
AliBaran6
 
Yazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeliYazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeli
Zafer Düzen
 
Mikroprogramlanmis kontrol
Mikroprogramlanmis kontrolMikroprogramlanmis kontrol
Mikroprogramlanmis kontrol
Aykut Gündoğdu
 
Csharpnedir
CsharpnedirCsharpnedir
Csharpnedir
bykezza
 
cofaso Kullanım Kılavuzu
cofaso Kullanım Kılavuzucofaso Kullanım Kılavuzu
cofaso Kullanım Kılavuzu
VitorCordova
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
Uğur Tılıkoğlu
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Ahmet Yanik
 
C sharp-teknikeri
C sharp-teknikeriC sharp-teknikeri
C sharp-teknikerisersld30
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri Tanıtım
Atilla Özgür
 
Açikkaynak
AçikkaynakAçikkaynak
Açikkaynak
eturkay
 
C-Sharp.pdf
C-Sharp.pdfC-Sharp.pdf
C-Sharp.pdf
Bayram Eker
 
C programlama
C programlamaC programlama
C programlama
Turgay Erbay
 
Nesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya girişNesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya girişErol Dizdar
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme Teknolojileri
Yusuf AYTİN
 

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

C dilini-taniyalim
C dilini-taniyalimC dilini-taniyalim
C dilini-taniyalim
 
Yazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeliYazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeli
 
Mikroprogramlanmis kontrol
Mikroprogramlanmis kontrolMikroprogramlanmis kontrol
Mikroprogramlanmis kontrol
 
Basit kodlar
Basit kodlarBasit kodlar
Basit kodlar
 
Csharpnedir
CsharpnedirCsharpnedir
Csharpnedir
 
cofaso Kullanım Kılavuzu
cofaso Kullanım Kılavuzucofaso Kullanım Kılavuzu
cofaso Kullanım Kılavuzu
 
ders bilgi
ders bilgiders bilgi
ders bilgi
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)
 
C sharp-teknikeri
C sharp-teknikeriC sharp-teknikeri
C sharp-teknikeri
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri Tanıtım
 
Açikkaynak
AçikkaynakAçikkaynak
Açikkaynak
 
Bilgi sis..
Bilgi sis..Bilgi sis..
Bilgi sis..
 
TÜBİTAK 2209
TÜBİTAK 2209TÜBİTAK 2209
TÜBİTAK 2209
 
C-Sharp.pdf
C-Sharp.pdfC-Sharp.pdf
C-Sharp.pdf
 
ARM Programlama
ARM ProgramlamaARM Programlama
ARM Programlama
 
C programlama
C programlamaC programlama
C programlama
 
Nesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya girişNesne tabanlı programlamaya giriş
Nesne tabanlı programlamaya giriş
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme Teknolojileri
 
Fonksiyonlar
FonksiyonlarFonksiyonlar
Fonksiyonlar
 

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.