akış diyagramı - Cihaddemirli.com
Download
Report
Transcript akış diyagramı - Cihaddemirli.com
Programlama
(Hatırlamalar)
Yard.Doç.Dr. Cihad DEMİRLİ
Sunu İçeriği Kaynağı: Vatansever, F. (2010). Algoritma Geliştirme ve Programlamaya Giriş, (7. Baskı), Seçkin Yayıncılık, Ankara
Program nedir?
İşlenecek değerler ve kullanılacak çözüm
yöntemleri; bilgisayara, insan tarafından
program ile bildirilir.
İnsanla bilgisayar arasındaki iletişim
aracıdır.
2
Program nedir?
Program; giriş değerlerini kullanarak
istenilen çıkış değerlerinin elde
edilebilmesi için bilgisayara iletilen
komutlar dizisidir.
Bilgisayar
Veri
Program
Sonuç
İnsan
3
İşlemler
Programlar ile gerçekleştirilen işlemler üç
gruba ayrılır:
◦ Matematiksel (aritmetik) işlemler
◦ Karşılaştırma (karar) işlemler
◦ Mantıksal (lojik) işlemler
4
Matematiksel İşlemler
5
İşlem
Matematik
Bilgisayar
Toplama
a+b
a+b
Çıkarma
a-b
a-b
Çarpma
a.b
a*b
Bölme
a÷b
a/b
Üs alma
ab
a^b
Matematiksel İşlem Öncelik Sıraları
İşlem öncelik sıraları
6
Sıra
İşlem
Bilgisayar dili
1
Parantezler
((……))
2
Üs alma
a^b
3
Çarpma ve bölme
a*b ve a/b
4
Toplama ve çıkarma
a+b ve a-b
Karşılaştırma İşlemleri
Matematiksel işlemlerin yanı sıra karar
modelleri de söz konusudur.
Bu nedenle kararlara ilişkin bazı
operatörler kullanılmaktadır.
7
Karşılaştırma İşlemleri
8
İşlem Sembolü
Anlamı
=
Eşittir
<>
Eşit değildir
>
Büyüktür
<
Küçüktür
>= veya =>
Büyük eşittir
<= veya =<
Küçük eşittir
Mantıksal İşlemler
Aritmetik ve karşılaştırma işlemlerinin
sonuçlarını alabilen bilgisayar, temel mantık
işlemlerini de yerine getirebilir.
Bunlar;VE,VEYA, DEĞİL
9
Mantıksal İşlemler
10
Mantıksal
İşlem
Komut
Matematiksel
Sembol
VE
AND
.
VEYA
OR
+
DEĞİL
NOT
‘
Program Yazma Adımları
1.
2.
3.
4.
İş/problem iyice irdelenir.
Programlamaya en uygun (en az komutla, en kısa
sürede, en doğru-hassas sonuç) çözüm yolu
seçilir/belirlenir.
Programın algoritması hazırlanır veya akış diyagramı
çizilir.
Algoritma veya akış diyagramı, programcının bildiği
veya tercih ettiği bir programlama diliyle kodlanarak
program oluşturulur.
11
Algoritma ve Akış Diyagramı
Algoritma, bilgisayardaki bir
işlemin/işlemlerin gerçekleştirilmesinde
izlenecek adımlar dizisine denir.
Algoritmanın özel geometrik şekillerle
çizilmiş hali de “akış diyagramı” olarak
adlandırılır.
12
Algoritma (Ardışık Çarpma Örnek)
Klavyeden girilen N sayısının faktöriyelini hesaplayan programın algoritmasını
yazınız.
1.
Başla
2.
N sayısını gir
3.
Faktoriyel=1
4.
S=0
5.
Eğer S>N-1 ise git 9
6.
S=S+1
7.
Faktoriyel=Faktoriyel*S
8.
Git 5
9.
Yaz Fak
10.
Dur
13
Akış Diyagramı Kullanılan Şekiller
Başla / Dur
Başla
Dur
Başla ve Dur işaretleri standarttır.
İşlemler bu iki şekil arasında açıklanır.
Akış Diyagramı Kullanılan Şekiller
Veri girişi
Veri
Dışarıdan veri girişini temsil eder.
Şeklin içine klavyeden girilecek değerin aktarılacağı
değişken(ler)in ismi yazılır.
Birden fazla değişken ismi girilmesi istendiğinde
değişkenler virgül ile ayrıştırılır (örn. A,B,C)
Akış Diyagramı Kullanılan Şekiller
İşlem
İşlem
Programın çalışması sırasında yapılacak işlemler
yazılır.
İşlem cümleleri şekil içerisine aynen yazılır.
Birden fazla işlem aralarına virgül konarak
yazılabilir.
Akış Diyagramı Kullanılan Şekiller
Döngü
i=1,N,1
İşlem
Belirli işlem
bloklarının ardışık
değerlerle ve bazı
koşullar sağlayıncaya
kadar tekrarlanması
için kullanılır.
Döngü değişkeni= başlangıç değeri, bitiş değeri,
adım
Akış Diyagramı Kullanılan Şekiller
Döngü (Artan)
I = 1,20,3
Başlangıç değeri, bitiş değerinden küçüktür
ve adım değeri (+) pozitiftir.
Akış Diyagramı Kullanılan Şekiller
Döngü (Azalan)
j = 30,4,-2
Başlangıç değeri, bitiş değerinden büyüktür
ve adım değeri (-) negatiftir.
Akış Diyagramı Kullanılan Şekiller
Döngü (İç içe)
İç döngü
i=1,N,1
j=1,N,1
Dış döngü
İşlem
Akış Diyagramı Kullanılan Şekiller
Karar (Karşılaştırma)
arar verme (kontrol etme,
karşılaştırma yapma) işlemlerini
temsil eder.
Koşul
Koşul
E
İşlem 1
H
İşlem 2
Akış Diyagramı Kullanılan Şekiller
Yazdır/Çıktı
Yazdır
Ekrana veya yazıcıya bilgi/veri yazdırmak için
kullanılır.
Akış Diyagramı Kullanılan Şekiller
Bağlantı
Farklı yerlere dallanan işlem akışlarını toplamak
Akış diyagramı bir sayfaya sığdırılamadığında
diğer sayfadaki akış diyagramı ile bağlantı
kurmak
Parça parça çizilen akış diyagramları arasında
bağlantı yapmak
Akış Diyagramı Kullanılan Şekiller
İşlem akış yönleri
İşlem akışının hangi yönde olduğunu
göstermek amacıyla kullanılırlar.
Akış Diyagramı Bir Örnek
Başla
T=0
I=1,2,1
T
Dur
T=5
J=1,3,1
T=T+I*J
Algoritma/Akış diyagramı Avantajları
Program yazmayı kolaylaştırır.
Hatalı kodlama oranını azaltır.
Program yazımı için geçen süreyi kısaltır.
İşlem akışını bir şekilde gösterdiğinden program kontrolünü
kolaylaştırır.
Sonradan yapılacak düzenlemelerde kolaylıklar sağlar.
26
Programlamada Veri Tipleri
VERİ
Sayısal
Tamsayı
Alfasayısal
Ondalıklı sayı
Karakter
Karakter dizisi
Sayısal veriler
Sayısal ağırlığı (değeri) olan verilerdir.
10 veya 16 tabanında ya da üstel biçimde
aktarılabilir.
Sayının hangi tabanda olduğunu belirtmek için
sayının önüne belirli simgeler/karakterler yazılır.
Taban
C++
10 (decimal)
-
16 (hexadecimal)
0xsayı veya 0Xsayı
Üstel
eüs veya Eüs
Alfasayısal veriler
Herhangi sayısal ağırlığı (değeri) olmayan
verilerdir.
Harfler, kelimeler, cümleler ve simgeler yer
alır.
Sayısal veri/bilgi
Alfasayısal veri/bilgi
2010
İstanbul
-222
C
1.78
:
326
“1978”
Sayısal veri tipleri
Tamsayı veri tipleri
En küçük
En büyük
Kapladığı alan
(byte)
byte
0
255
1
sbyte
-128
127
1
short
-32768
32767
2
int
-2147483648
2147483647
4
long
-2147483648
2147483647
4
Veri tipi
Sayısal veri tipleri
Ondalıklı sayı veri tipleri
En küçük
En
büyük
Kapladığı alan
(byte)
Duyarlılık
(hane)
float
3,4.10-38
3,4.1038
4
7
double
1,7.10-308
1,7.10308
8
15
Veri tipi
Sayısal veri tipleri
Tip sıfatları
Tip sıfatı
Anlamı
Signed
İşaretli
Unsigned
İşaretsiz
Short
Kısa
Long
Uzun
En küçük
En büyük
Kapladığı alan (byte)
Unsigned short
0
65535
2
Unsigned int
0
4294967295
4
Unsigned long
0
4294967295
4
1,7.10-308
1,7.10308
8
Veri tipi
Long double
Alfasayısal veri tipleri
Veri tipi
Tanımlama
char
char değişken [n]
string
string değişken
Alfasayısal veriler dizi şeklinde de kullanılabilirler
Veri tipi
Kapladığı alan
Kapasite/duyarlılık
decimal
8 byte
Finansal bilgi (28 hane)
bool
1 byte
true / false
Tip Dönüşümü
Bilinçsiz tip dönüşümü
Küçük
büyük
Büyük
küçük
İsteğe bağlı tip dönüşümü
(dönüştürülecek_tip) değişken_ya_da_sabit
[ToString() metodu ve System.Convert sınıfı kullanımı]
Tip Dönüşümü
Tip
Dönüşebileceği tipler
sbyte
short, int, float, long, double, decimal
byte
short, ushort, int, unit,long, ulong,float,double,decimal
short
int,long,float,double,decimal
ushort
int,unit,long,ulong,float,double,decimal
int
long,float,double,decimal
unit
long,ulong,float,double,decimal
long,ulong
float,double,decimal
char
ushort,int,unit,long,ulong,float,double,decimal
float
double
Tip Dönüşümü
Tip
Dönüşemeyeceği tipler
bool
decimal, double
herhangi bir tip
char
float
herhangi bir tip (double hariç)
decimal
herhangi bir tip
checked {}
unchecked {}
kontrol mekanizması
Operatörler (?)
Önceden tanımlanmış matematiksel ya da
mantıksal işlemleri yapmak için kullanılan
özel karakterler topluluğudur.
Bir, iki ya da daha fazla karakterden
oluşurlar.
Operatörler operandlara ihtiyaç duyalar
◦ (Örn. ++ operatörü bir a operandına ihtiyaç duyar ++a
gibi…)
Operatörlerin Sınıflandırılması
(Yapılarına göre)
Unary (tek operand)
(),[],++(ön ekli),--(ön ekli),(son ekli)++,(son ekli)--,+,,!,,new,checked,unchecked,typeof,sizeof
Binary (iki operand)
*,/,%,+,-,<,>,<=,>=,as,is,<<,>>,==,!=,&,^,&&,=,*=,/=,%=,+=,=,<<=,>>=,&=,^=
Ternary (üç operand)
?:
Operatörlerin Sınıflandırılması
(İşlevlerine göre)
Aritmetik
◦ +,-,*,/,%,++,--
Karşılaştırma
◦ <,>,<=,>=,==,!=,as,is
Mantıksal
◦ ||,&&,!
Bitsel
◦ |,&,,^,<<,>>
Atama ve İşlemli Atama
◦ =,*=,/=,%=,+=,-=,<<=,>>=,&=,^=
Özel Amaçlı
◦ ?:,(),[],+,-,&,*,., new,checked,unchecked,typeof,sizeof
devam edecek…