Mantık ve Döngü Kavramı
Mantıksal Akış Şemaları
Geniş ölçüde mantıksal kararları içeren şemalardır ve verilen koşulun doğru yada yanlış olmasına göre iş akışı yönlendirirler.
Örnek
(Klavyeden Girilen 2 sayıdan birincisi büyük ise çarpma, aksi durumda toplama yapan algoritma ve akış şeması)
Değişkenler;
a: birinci sayi
b: ikinci sayi
ts: toplam sonuc
başla
a gir
b gir
eğer a > b ise ts = a+b
eğer a <= b ise ts = a*b
ts yazdır
bitir
Döngüsel Akış Şemaları
Sorunun çözümü için, çözümde yer alan herhangi bir adım ya da aşamanın birden fazla kullanıldığı akış şemalarına denir. İş akışları genel olarak giriş ya da başlangıç değeri verme, hesaplama, kontrol biçiminde olmaktadır.
Örnek
Klavyeden girilen ismi ekrana 10 kez yazdırmak.
Değişkenler;
isim = isim
sayac = 1
sonDeğer = 10
1 - başla
2 - ismi oku
3 - ismi yazdır
4 - sayac += 1
5 - eğer sayac <= 10 3 adıma git
6 - bitir
Döngüsüz gösterim Döngülü gösterim
Örnek
1'den klavyeden girilen sayıya kadar olan sayıları ekranda görüntüleyen akış şeması ve sözde kod
Değişkenler
i: başlangıç değeri
x: klavyeden girilen değer
1-başla
2-x sayısını oku
3-i yazdır
4-i += 1
5-eğer i<=x ise 3 adıma geri dön
6-bitir
Örnek
1’den 10’a kadar sayıları ekranda görüntüleyen akış şemasını kontrol ve döngü ifadesi ile gösteriniz.
Kontrol İfadesi Döngü İfadesi
c# konsol uygulaması
class Program
{
static void Main(string[] args)
{
Console.WriteLine("algoritma ve programlamaya giriş");
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
}
Örnek
Klavyeden girilen 10 sayının 2 katını görüntüleyen akış şeması
Kontrol İfadesi Döngü İfadesi
c# konsol uygulaması
static void Main(string[] args)
{
int sayi;
Console.WriteLine("lütfen 10 tane sayı giriniz");
for (int i = 1; i <11 ; i++)
{
Console.WriteLine($"{i}.sayıyı giriniz: ");
sayi = int.Parse(Console.ReadLine());
sayi = sayi * 2;
Console.WriteLine(sayi);
}
Console.ReadKey();
}
Örnek
Klavyeden girilen 15 sayıdan pozitif olanların adedini bulup görüntüleyen akış şeması
Kontrol İfadesi
Döngü İfadesi
static void Main(string[] args)
{
int sayi;
int sayac = 0;
Console.WriteLine("lütfen 15 tane sayı giriniz");
for (int i = 0; i < 15; i++)
{
// Console.WriteLine($"{i+1}. sayi giriniz");
Console.WriteLine((i+1) + ".sayıyı giriniz");
sayi = int.Parse(Console.ReadLine());
if (sayi>0)
{
sayac += 1;
}
Console.WriteLine(sayac + "tane pozitif sayı var");
}
Console.ReadKey();
}
Örnek
50 öğrencinin notlarının ortalamasını bulan akış şeması
tek yada çift olduğunu bulup ekranda görüntüleyen akış şeması
Girilen 3 sayıdan hangisinin en büyük olduğunu bulan akış şeması
1-Başla
2-1.sayıyı gir.
3-2. sayıyı gir.
4-3.sayıyı gir.
5-Eğer (a>b) ve (a>c) ise
Yaz; 'büyük olan sayı'' a
Eğer bitti.
6- Eğer (b>a) ve (b>c) ise
Yaz; ''büyük olan sayı'' b
Eğer bitti.
7-Eğer (c>a) ve (c>b) ise
Yaz; ''büyük olan sayı'' c
Eğer bitti.
8-Bitir.
Faktöriyel alma
class Program
{
static void Main(string[] args)
{
int i, sayi, fakt = 1;
Console.Write("Sayı giriniz: ");
sayi = Convert.ToInt32(Console.ReadLine());
for (i = 1; i <= sayi; i++)
{
fakt = fakt * i;
}
Console.Write("Sonuç:" + fakt);
Console.Read();
}
}