PROBLEM NEDİR?

Günlük hayatta karşılaştığımız, çözüme ulaştırılması gereken ve çözümü bulmak için bilgi, deneyim, mantık veya dikkat isteyen durumlara problem denir. Yani çözülmesi gereken her sorun bir problemdir.

Bazı Problem Örnekleri: 

Erken uyanamama
Bilgisayarın sürekli donması
Bilgisayara virüs girmesi gibi.
İki sayının toplanması

PROBLEM ÇÖZME NEDİR?

Problem belirlenerek çözüm yollarının aranması ve sonuca ulaştırılması sürecidir.

PROBLEM ÇÖZME BASAMAKLARI

1.Problemi Anlama

Bir problemi doğru bir şekilde çözüme ulaştırmanın ilk aşaması problemi anlamak 

ile başlar.

2.Plan Yapma

Her problemin farklı çözüm yolları bulunmaktadır.

3.Planı Uygulama

Sonuç başarısız olsa da yapılan denemeler öğrenmenin bir parçasıdır.

4.Çözümü Değerlendirme

Çözümün etkili olup olmadığı gibi değerlendirmeler yapılır.

ÖRNEK PROBLEM

1.Problemi Anlama: 

Ahmet’in Microsoft Word programını kullanırken zorlanması

2.Plan Yapma: 

Ahmet’in bu sorunu çözmek için internetten farklı çözümler araştırması

3.Planı Uygulama: 

Ahmet’in Microsoft Office eğitimi veren bir kursa yazılması

4-Çözümü Değerlendirme: 

Ahmet’in problemin çözüldüğünü tespit etmesi

COMMODORE 64 VE KODLAMANIN YAYGINLAŞMASI

Commodore 64, tüm zamanların en çok satan kişisel bilgisayar modeli. Ocak 1982'de Commodore Business Machines tarafından ilk olarak tanıtıldı. 64 KB RAM’i bulunmaktadır.



Erken yaşta kodlama öğrenmek önemlidir, çünkü:

•Analitik düşünme becerileri kazandırır.
•Olay veya durumlar arasındaki ilişkileri görmeyi sağlar.
•Özgün düşünmeye yardımcı olur.
•Problem çözme yeteneğini artırır.
•Sistemli düşünmeyi sağlar.
•Makinaların çalışma mantığını kavramaya yardımcı olur.



PROGRAMLAMA

Bilgisayarda bir işlemi yaptırabilmek için yazılan komutlar bütünüdür.

PROGRAMLAMA DİLİ

Bilgisayarda kullandığımız programların, oyunların ve uygulamaların oluşturduğu kurallar bütünüdür.

* Java
* Python
* Android
* Asp
* Php
* C Sharp
* C Plus
* Objective C

BLOK TABANLI PROGRAMLAMA

*CODE
*Google Blockly
*Scratch
*App Inventor
*Ozo Blockly

METİN TABANLI PROGRAMLAMA

*Python
*C Sharp
*C Plus
*Java
*Perl
*Android
*Delphi

GOOGLE BLOCKLY :

Google Blockly, programlamaya giriş yapacaklar için hazırlanmış, eğitici oyunların 
bulunduğu bir platformdur. https://blocklygames.appspot.com/ adresine girerek kullanabilirsiniz.

SABİT VE DEĞİŞKENLER

Sabit: İlk biçimiyle kalan, değişmeyen ifade ve nesnelerdir.

Değişken: İlk biçimiyle kalmayan, yeni değerler alabilen ifade ve nesnelerdir.

Örnek:

Sabit: Top sayısı, Oyuncu sayısı
Değişken: Basket sayısı, Faul sayısı



Atama; bilgi alanına veri yazma ve bir ifadenin sonucunu başka bir değişkene atamak için kullanılan 
operatördür.

Değişken = İfade

Örnek i= ( a*b ) / 2 

Yukarıdaki satırda Değişken herhangi bir sabitin/değişkenin ismini, İfade ise matematiksel veya
metinsel değerleri temsil etmektedir. “=” sembolü atama operatörüdür ve sağdaki değeri soldaki değişkene atar.

SAYISAL DEĞİŞKEN TİPLERİ

Çok sayıda sayısal değişken tipi mevcuttur. 
Ancak bunların içerisinde en çok kullanılanları byte, int, long ve double tipleridir.

METİNSEL DEĞİŞKEN TİPLERİ

C#’ta metinsel ifadeleri tutmak için 2 değişken tipi mevcuttur. char tipi tek bir karakter 
buyutuna sahipken, string tipi sınırsız sayıda karakter saklayabilir. 

char – 2 baytlık tek bir karakteri tutar.
string – Sınırsız metin tutar.

MANTIKSAL DEĞİŞKEN TİPLERİ

Doğru/yanlış gibi mantıksal ifadeleri taşıyan değişken tipi bool (boolean) değişkenlerdir.
bool 4 byte – true/false değerleri alır.

C# değişkenleri tanımlanırken belirli kurallara uymak gerekir. 

1- Öncelikle değişkenin tipi belirtilmek zorundadır. 
2- Değişken ismi alt tire ya da metinsel bir karakter ile başlamak zorundadır. 
3-Türkçe ve diğer özel karakterler kullanılamaz. 
4- Değişken ismi içerisinde sayısal karakter kullanılabilir. 

Yani 1numara gibi bir değişken ismi kullanılamazken, numara1 gibi bir değişken ismi kullanılabilir. 

OPERATÖRLER VE EŞİTLİKLER

Programlama dillerinde tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine katkıda bulunan karakter ya da karakter topluluklarına operatör denir. Kodlamada matematiksel ve mantıksal operatörler yer almaktadır.Örneğin a+b ifadesinde + işareti bir operatördür.

Operatörlerin etki ettikleri sabit ya da değişkenlere ise operand denir.

Aritmetik Operatörler

+ Toplama
– Çıkarma
* Çarpma
/ Bölme
++ 1 arttırma
— 1 çıkarma

Örnek:

// C#
int toplam = 6 + 3; 
int carpma = 6 * 3; 
int bolme = 6 / 3; 
int arttirma = 6;
arttirma++; 

Atama Operatörleri

= Değeri değişkene atar.
+= Değeri değişkenin değerinin üzerine ekler.
-= Değeri değişkenin değerinden çıkarır.
*= Değeri değişkenin değeri ile çarpar.
/= Değeri değişkenin değerine böler.

Karşılaştırma Operatörleri

İf else yapısı ile sıklıkla kullanılan karşılaştırma operatörleri ifade doğru ise true,
değilse false sonucu üretirler. 

== Eşittir
!= Eşit değil
> Büyüktür
< Küçüktür
>= Büyük veya eşittir
<= Küçük veya eşittir

Örnek:

int sayi = 5;
sayi += 1; 
sayi -= 1; 
sayi *= 2; 
sayi /= 5; 

Mantıksal Operatörler

Birden çok mantıksal koşulu birlikte kontrol etmek için kullanılır. Mantıksal ve ile kontrol edilen şartların tamamı doğru olduğunda ifade doğru sayılır. Mantıksal veya operatöründe ise kontrol edilen şartlardan biri doğru olduğunda ifade doğru kabul edilir.

Mantıksal ve: &&
Mantıksal veya: ||

Örnek:

if (5 > 3 && 2 == 2)

Console.WriteLine ( " Hesaplama Doğru " );

else if (5 < 3 && 2 == 2)

Console.WriteLine ( " Hesaplama Yanlış " );

OPERATÖRLER KULLANIMI

using System;
class Operatorler
{
static void Main ( )
{
int i= 3*5/7;
Console.Write ( i );
bool sonuc;
int ilkSayi = 10, ikinciSayi = 20;

// VEYA operatörü

sonuc = ( ilkSayi == ikinciSayi ) || ( ilkSayi > 5 );
Console.WriteLine ( sonuc ) ;

// VE operatörü

sonuc = ( ilkSayi == ikinciSayi ) && ( ilkSayi > 5 );
Console.WriteLine ( sonuc ) ;
} } 

DİJİTAL SORU ???

Kodlama dilleri neden Türkçe olarak yazılmıyor? 

Şöyle izah edeyim; hani sandalye kapmaca oyunu vardır ya, ilk kim sandalyeyi 
kaparsa o oturur, zamanında bu programlama dilleri ilk bulunduğunda ilk bulan 
kişiler İngilizce konuştuğu için, ana omurgası İngilizce olmuştur. Yani neler 
içerisinde “if” geçiyor “for” geçiyor bunlar, İngilizce. Ancak programlama çok dil 
kullanılan bir alan değildir. Kendine has kelimeleri olan bir alandır. Yani, 
İngilizcesi iyi olmayan,fakat iyi kodlama yapan bir sürü insan var. Yani kodlama 
ona bağlı değil. Ancak ilk başta onlar kapmış sandalyeyi ve o diller 
yaygınlaşmıştır. 

Şu an Türkçe bir dil de geliştirebiliriz. Ancak önemli olan insanların bunu 
kullanması. Milyonlarca insanı buna alıştırmak zor dolayısı ile mevcut olan dilleri, 
“C++” “javascript” gibi dilleri kullanıyoruz ve bu diller İngilizce. Çok çok iyi bir 
İngilizce bilmeye gerek yok. Ancak belgeleri anlamak için İngilizce bilgisi 
gerekmektedir.

ALGORİTMA

Bir problemin çözümü için izlenmesi gereken yol ve işlem basamaklarıdır.

Örnek Bilgisayarı Kapatma Algoritması 

Adım 1 Başla
Adım 2 Başlat Menüsüne Tıkla
Adım 3 Kapat Seçeneğini Tıkla 
Adım 4 Bilgisayarın Kapandığını Kontrol Et
Adım 5 Elektrik Fişini Çek
Adım 6 Bitir

Örnek İki Sayıyı Toplama Algoritması 

Başla
Sayısal S1, S2, Toplam
Oku S1
Oku S2
Toplam=s1+s2
Yaz Toplam
Bitir

Visual Studio Nedir?

Visual Studio, birçok programlama dilini kullanarak program, uygulama ya da 
web sitesi yapabileceğiniz bir IDE yani entegre geliştirme ortamıdır. 

Microsoft Windows için bilgisayar programları, web siteleri,
web uygulamaları, web hizmetleri ve mobil uygulamalar geliştirmek için kullanılır.

Visual Studio Bazı Yazılım Kelimeleri 

Label: Etiket 
Textbox: Metin Kutusu 
Properties: Özellikler 
Exit: Çıkış
Convert: Dönüştürmek 
Button: Buton
Hide: Gizlemek
Show: Göstermek
Locked: Kilitli
Align: Hizala
Click: Tıklayın
Sender: Gönderen

Kaydedilen 8500+ programlama dili arasından yaklaşık 2400’ü ABD’de, Birleşik Krallık’ta 600, 
Kanada’da 160 ve Avustralya’da 75 geliştirildi. Başka bir deyişle, tüm programlama dillerinin 
üçte birinden fazlası öncelikle İngilizce bilen bir ülkede geliştirildi. 

AKIŞ ŞEMASI / AKIŞ DİYAGRAMI

Problemlerin çözümüne yönelik oluşturulan algoritmaların şekil veya sembollerle gösterilmesidir.




İKİ SAYININ TOPLAMINI HESAPLAYAN PROGRAMIN
ARAYÜZÜ VE ALGORİTMASI



Değişkensiz Algoritma

Adım 1 Başla
Adım 2 Birinci Sayıyı Gir
Adım 3 İkinci Sayıyı Gir
Adım 4 İki Sayıyı Topla
Adım 5 Sonucu Ekrana Yazdır 
Adım 6 Bitir

Değişkenli Algoritma

Adım 1 Başla
Adım 2 Birinci Sayıyı Gir, S1
Adım 3 İkinci Sayıyı Gir, S2
Adım 4 Toplam= S1 + S2
Adım 5 Toplam Değerini Ekrana Yazdır 
Adım 6 Bitir 


İKİ SAYININ TOPLAMINI HESAPLAYAN 
PROGRAMIN C# ( C SHARP KODU )

//textbox ve labelden okuyup sayi1 ve sayi2 değişkenlerine aktarma

double sayi1 = Convert.ToDouble(textBox1.Text) ;
double sayi2 = Convert.ToDouble(textBox2.Text) ;

//sayıları toplayıp label nesnelerine ekliyoruz.

label1.Text = Convert.ToString(sayi1 + sayi2) ; 

NOT ORTALAMASI HESAPLAYAN PROGRAMIN ARAYÜZÜ VE ALGORİTMASI


Adım 1 Başla
Adım 2 Birinci Yazılı Notunu Gir
Adım 3 İkinci Yazılı Notunu Gir
Adım 4 Performans Notunu Gir
Adım 5 Notları Topla VE 3’e Böl
Adım 6 Sonucu Ekrana Yazdır
Adım 7 Bitir 

FLOW CHART VISUAL PROGRAMMING LANGUAGE

Flow Chart programıyla akış şemaları düzenleyebilir ve
uygulamalar yaparak exe uzantılı çıktılar alabiliriz. 


FLOW CHART İLE ÜÇGENİN ALANI 

Yükseklik ve taban uzunluğu klavyeden girilince üçgenin alanını hesaplayan 
programın algoritmasını akış şemasıyla birlikte oluşturunuz.

Programın Algoritması:

Adım 1 Başla
Adım 2 Yükseklik Değerini Gir, h
Adım 3 Taban Uzunluğu Değerini Gir, t
Adım 4 Yükseklik ve Taban Uzunluğunu Çarp
Adım 5 Çarpım Sonucunu 2^ye Böl
Adım 6 Sonuç Değerini Ekrana Yazdır
Adım 7 Bitir

Not: Flow Chart programında dalgalı dörtgen şeklinin karşılığı «paralel kenar, out» nesnesidir.




BONUS SORU !!!

- Aşağıda akış şeması verilen program çalıştırılınca ekran çıktısı nasıl olacaktır? 



CEVAP:


HAVA DURUMUNU GÖSTEREN VE
OKULA GİTME DURUMUNU EKRANA YAZDIRAN

PROGRAMIN ALGORİTMASI

Adım 1 Başla
Adım 2 Butona Basınca Rastgele 4 Adet Sayı Üret
Adım 3 Her Sayıya 1 Hava Durumu Tanımla
Adım 4 Eğer Hava Güneşli İse Güneş Resmi Göster ve
Okula Git Yazdır, Adım 8’e git
Adım 5 Eğer Bulutlu İse Bulut Resmi Göster ve
Okula Git Yazdır, Adım 8’e git
Adım 6 Eğer Karlı İse Kar Resmi Göster ve
Okula Gitme Yazdır, Adım 8’e git
Adım 7 Eğer Fırtınalı İse Fırtına Resmi Göster ve
Okula Gitme Yazdır
Adım 8 Bitir

PROGRAMIN KODU

private void button1_Click(object sender, EventArgs e)
{
Random rastgelesayi = new Random( ); //değişkenle rastgele sayı üretiyorum.
int sayi = rastgelesayi.Next(1, 5); //bu sayı 1 ile 5 arası olsun istiyorum.
this.rastgelesayim.Text = Convert.ToString(sayi); //sayıyı labele yazdırıyorum. 
//not: rastgelesayim adında label eklemeyi unutma.
if (sayi == 1) //sayi 1 ise güneşli desin istiyorum.
{
pictureBox3.Show(); //güneş resmini gösteriyoruz.
pictureBox4.Hide(); //diğer resimleri gizliyoruz. 
pictureBox5.Hide();
pictureBox6.Hide();
havasonucu.Show(); //hava sonucunu gösteriyoruz ve aşağıda yazdırıyoruz.
havasonucu.Text = Convert.ToString("Hava açık. Okula Gidebilirsin.");
havasonucu.ForeColor = Color.Yellow; //hava sonucunu rengini değiştiriyoruz.

if (sayi == 2) //sayi 2 ise bulutlu desin istiyorum.
{
pictureBox4.Show(); //bulut resmini gösteriyoruz.
pictureBox3.Hide(); //diğer resimleri gizliyoruz. 
pictureBox5.Hide();
pictureBox6.Hide();
havasonucu.Show(); //hava sonucunu gösteriyoruz ve aşağıda yazdırıyoruz.
havasonucu.Text = Convert.ToString("Hava bulutlu. Okula Gidebilirsin.");
havasonucu.ForeColor = Color.Blue; //hava sonucunu rengini değiştiriyoruz.
}
if (sayi == 3) //sayi 3 ise karlı desin istiyorum.
{
pictureBox5.Show(); //kar resmini gösteriyoruz.
pictureBox3.Hide(); //diğer resimleri gizliyoruz. 
pictureBox4.Hide();
pictureBox6.Hide();
havasonucu.Show(); //hava sonucunu gösteriyoruz ve aşağıda yazdırıyoruz.
havasonucu.Text = Convert.ToString("Yollar kapalı. Okula Gidemezsin.");
havasonucu.ForeColor = Color.Snow; //hava sonucunu rengini değiştiriyoruz.
}

if (sayi == 4) //sayi 4 ise fırtınalı desin istiyorum.
{
pictureBox6.Show(); //fırtına resmini gösteriyoruz.
pictureBox3.Hide(); //diğer resimleri gizliyoruz. 
pictureBox4.Hide();
pictureBox5.Hide();
havasonucu.Show(); //hava sonucunu gösteriyoruz ve aşağıda yazdırıyoruz.
havasonucu.Text = Convert.ToString("Fırtına var. Okula Gidemezsin.");
havasonucu.ForeColor = Color.Black; //hava sonucunu rengini değiştiriyoruz.
}