PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK
Giriş-Tanımlamalar Program Nedir? Tanımlanmış bir problemi bilgisayar ortamında çözen ürüne program denir. Programlama Nedir? Tanımlanmış bir problemin çözümüne dair adımlar ile çözümün oluşturulup bunun bir programlama dili ile bilgisayar ortamına aktarılmasına programlama denmektedir. Algoritma Nedir? Bir problemi çözebilmek için gerekli olan sıralı mantıksal adımların tümüne algoritma denir.
Giriş-Tanımlamalar Programlama Dili Nedir? Bir problemin algoritmik çözümünün bilgisayarın anlayabileceği şekilde uyarlanmış kurallar dizisi haline denir. Akış Şeması Nedir? Herhangi bir problemin çözümü için izlenmesi gereken adımların anlatıldığı algoritmanın, görsel olarak, sembol ya da simgelerle, ifade edilmiş şekline «akış şemaları(diyagramları)(flowcharts)» adı verilir. Derleyici Nedir? Bir programlama dili ile bilgisayara aktarılan programın bilgisayarın anlayabileceği Makine Diline çevrilmesini sağlayan ve yazılan programda söz dizim hatalarının olup olmadığını gösteren yazılımlardır.
Program Yaşam Döngüsü Program veya yazılım geliştirme sürecinde, yazılan program belli bir döngü içerisinde işlemeye devam etmektedir.
Algoritmalar Bir bilgisayar programı sıralı düzensel olarak tanımlanmış bir dizi komuttan başka bir şey değildir. Dolayısıyla yazılan program bir dizi komut ve eylemlerden oluşmaktadır. Her programda komutlar yazılan sırada gerçekleştirilir veya çalıştırılırlar. Bir program için algoritma çıkartılmadan önce yapılması gereken aşamalar vardır öncelikli olarak; Her adım belirleyici olmalıdır. Belirli adımlar sonunda algoritma sonlandırılmalıdır. Algoritmalar karşılaşılabilecek tüm ihtimaller için genel olmalıdır. Algoritmanın işleyişinde belirsizlik olmamalıdır.
Basit bir örnek Bilgisayara verilecek iki sayıyı toplayıp sonucu ekrana yazacak bir program için algoritma geliştirelim. 2. A sayısını oku 3. B sayısını oku 4. TOPLAM=A+B işlemini yap 5. TOPLAM değerini ekrana yaz 6. SON
Basit bir örnek Klavyeden girilecek iki sayıdan büyük olanından küçük olanını çıkarıp ekrana yazacak program için bir algoritma geliştirelim. 2. A sayısını oku 3. B sayısını oku 4. Eğer A büyüktür B ise SONUC=A-B Değilse SONUC=B-A 5. SONUC değerini ekrana yaz 6. SON
Akış Şemaları Algoritmanın başlangıcını veya bitişi (son) Klavye aracılığı ile giriş ya da okuma yapılması Programda bir cevap üretme ya da bir çıkış oluşturma Aritmetik veya mantıksal işlemler için karar verme Yapılacak işlerin birden fazla yinelenmesi Hesaplama veya değişkenlere değer aktarımı
Tanımlamalar Değişkenler Bellekte bir yer gösteren sembolik isimlere değişken denir. Bir değişken program içerisinde kullanılmadan önce tanımlanmalıdır. Bir değişken tanımlandığında derleyici o değişken için bellekte bir yer ayırır. Ayırdığı yerin adresini bir tabloda tutar. Derleyici daha sonra program içerisinde değişkenle karşılaştığında ona göre işlemleri uygular. Sabitler Program içerisinde doğrudan yazılan değerlere denir. Programın her yerinde aynı değeri veren ifadelerdir. Tam sayı sabitleri, kesirli sayı sabitleri, dizgi sabitleri vb.
Tanımlamalar Operatörler Derleyiciye bir işlem belirten ve bu işlemin sonucunda bir değer üreten yapılardır. Aritmetik, karşılaştırma, mantıksal operatörler olarak alt başlıklara ayrılmaktadır. Aritmetik Operatörler: Dört işlem olarak ifade edilen işleçlerden oluşmaktadırlar. * Çarpma işlemini gösteren işleçtir. Bölme ile eş önceliklidir. / Bölme işlemini gösteren işleçtir. Çarpma ile eş önceliklidir. + Toplama işlemini gösteren işleçtir. Çıkarma ile eş önceliklidir. - Çıkarma işlemini gösteren işleçtir. Toplama ile eş önceliklidir. % Mod alma işlemini gerçekleştiren operatördür. NOT: Atama Operatörü: = olarak kullanılan atama operatörü değişkenlere değer atanmasını sağlayan operatördür. Karşılaştırma Operatörleri: İki değer veya aritmetik ifadeyi birbirleriyle karşılaştırmayı sağlayan sembollerdir. == >,>= <,<=!=
Sayı Sistemleri Bir bilgisayar sisteminde tüm bilgi kayıtları ve işlemleri elektriksel devreler üzerinden gerçekleştiği için bilinen gerçek elektrik akımın varlığı veya yokluğudur. Elektrik akımının durumu matematiksel ve mantıksal olarak ikili sayı sistemine denk gelir. Çoğunlukla ikili sayı sistemindeki «0» değeri elektrik akımının olmadığını «1» değeri elektrik akımının olduğunu gösterir. Bilgisayarda oluşan tüm değer ve sonuçlar bu ikili sayı sistemiyle anlatılabilmektedir. İkili sayı sistemi (Binary) Onlu sayı sistemi (Decimal) Onaltılı sayı sistemi (Hexadecimal)
Veri Tipleri Veri tipi (data type) program içinde kullanılacak değişken, sabit, fonksiyon isimleri gibi tanımlayıcıların tipini, yani bellekte ayrılacak bölgenin büyüklüğünü, belirlemek için kullanılır. Bir programcı, bir programlama dilinde ilk olarak öğrenmesi gereken, o dile ait veri tipleridir. Çünkü bu, programcının kullanacağı değişkenlerin ve sabitlerin sınırlarını belirler.
Klavyeden girilecek X değerinden N değerine kadar olan tüm doğal sayıları listeleyen algoritmayı geliştiriniz. 2. X OKU 3. N OKU 4. X YAZ 5. X = X + 1 işlemini hesapla 6. EĞER X <=N ise 4. ADIMA GİT 7. SON
Yarıçapı klavyeden girilen bir dairenin alanını hesaplayan programın algoritmasını geliştiriniz. 2. R OKU 3. Pi=3.14 4. ALAN=R*R*Pi işlemini hesapla 5. ALAN YAZ 6. SON
Yarıçapı ve yüksekliği klavyeden girilen bir silindirin hacmini hesaplayan programın algoritmasını geliştiriniz. 2. R OKU 3. H OKU 4. Pi=3.14 5. HACİM=Pi*R*R*H işlemini hesapla 5. HACİM YAZ 6. SON
Klavyeden A ve B giriliyor. A ve B değerlerini yer değiştiren programın algoritmasını yazınız. 2. A OKU 3. B OKU 4. C = B 5. B = A 5. A = C 6. A YAZ 7. B YAZ 6. SON
Klavyeden girilen iki basamaklı bir sayının, basamaklarının karelerinin toplamını ekrana yazdıran programın algoritmasını yazınız. 2. SAYI OKU 3. A = SAYI / 10 işlemini hesapla 4. B = SAYI % 10 işlemini hesapla 5. KARTOP = (A*A)+(B*B) işlemini hesapla 6. KARTOP YAZ 7. SON
Klavyeden fahrenheit cinsinden girilen ısı değerini celcius karşılığını ekrana yazdıran programın algoritmasını yazınız. 2. FAHRENHEIT OKU 3. CELCIUS = (5*(FAHRENHEIT 32))/9 işlemini hesapla 4. CELCIUS YAZ 6. SON
Klavyeden girilen A ve B sayılarını, çarpma işlemi kullanmadan sadece toplama ve çıkarma kullanarak çarpıp sonucu ekrana yazdıran programın algoritmasını yazınız. 2. A, B OKU 3. SAY = 0 4. TOPLA = 0 5. EĞER SAY >= B ise 9. ADIMA GİT 6. TOPLA = TOPLA + A 7. SAY = SAY + 1 8. 5. ADIMA GİT 9. TOPLA YAZ 10. SON
Klavyeden «0» değeri girilinceye kadar okutulan değerlerin ortalamasını hesaplayıp ekrana yazdıran programın algoritmasını yazınız. 2. TOP = 0 3. SAY = 0 4. X OKU 5. EĞER X == 0 ise 9. ADIMA GİT 6. TOP = TOP + X 7. SAY = SAY + 1 8. 4. ADIMA GİT 9. ORT = TOP / SAY 10. ORT YAZ 11. SON
N 1 Bir N değeri için f x = x=1 x 2 algoritmasını yazınız. şeklindeki fonksiyonun değerini hesaplayıp ekrana yazan programın 2. N OKU 3. F = 0 4. X = 1 5. F = F + 1/(X*X) işlemini hesapla 6. X = X + 1 işlemini hesapla 7. EĞER X <= N ise 5. ADIMA GİT 8. F YAZ 9. SON
N 1 f x = x=1 x 2 şeklindeki fonksiyon için f x = KK şartını sağlayan en küçük X değerini bulabilecek algoritmayı geliştiriniz. KK ve N değerinin klavyeden girileceği düşünülecektir. [Düzeltme: KK değeri 1 ile 2 değerleri arasında seçilmelidir.] 2. KK OKU 3. N OKU 4. F = 0 5. X = 1 6. F = F + 1/(X*X) işlemini hesapla 7. X = X + 1 işlemini hesapla 8. EĞER F <= KK ise 6. ADIMA GİT 9. F, X YAZ 10. SON
Genel gösterimi x n = n 2 şeklinde olan bir dizinin n. Elemanına kadar tüm elemanlarını ekranda yan yana gösterecek olan programın algoritmasını yazınız. 2. N OKU 3. X = 1 4. X*X işlemini hesapla ve YAZ 5. X = X + 1 işlemini hesapla 6. EĞER X <= N ise 4. ADIMA GİT 7. SON
Klavyeden «0» değeri girilinceye kadar girilen bir dizi sayının karelerinin ortalamasını bulacak program için algoritma yazınız. 2. SAY = 0 3. TOP = 0 4. X OKU 5. EĞER X = 0 ise 9. ADIMA GİT 6. TOP = TOP + (X*X) 7. SAY = SAY + 1 8. 4. ADIMA GİT 9. ORT = TOP / SAY 10. ORT YAZ 11. SON
Bir otomobil, durgun halden harekete başlayarak 10 dakika boyunca hızlanıyor ve sonuçta hızı 60 km/s oluyor. Sonra 15 dk boyunca sabit hızla hareketine devam ediyor ve 10 dakika boyunca yavaşlayarak hızı 0 oluyor. Dışarıdan girilen herhangi bir t anı için araç hızını veren algoritmayı yazınız. 2. T OKU 3. EĞER T < 10 ise 4. ADIMA GİT, değilse 5. ADIMA GİT 4. V = 6*T işlemini hesapla 8. ADIMA GİT 5. EĞER T < 25 ise 6. ADIMA GİT, değilse 7. ADIMA GİT 6. V = 60 8. ADIMA GİT 7. V = 60 - (t-25)*6 8. ADIMA GİT 8. V YAZ 9. SON
ax 2 + bx + c = 0 ikinci derece denkleminin köklerini hesaplayan algoritmayı yazınız. 2. a, b, c OKU 3. Delta = (b*b) (4*a*c) değerini hesapla 4. EĞER delta < 0 ise 6. ADIMA GİT, değilse 5. ADIMA GİT 5. EĞER delta > 0 ise 7. ADIMA GİT, değilse 8. ADIMA GİT 6. kökler kompleks YAZ ve 9. ADIMA GİT 7. kokler reel YAZ ve 9. ADIMA GİT 8. katlı kök hali YAZ ve 9. ADIMA GİT 9. X1 = (-b + delta)/(2*a) işlemini hesapla ve değeri YAZ 10. X2 = (-b - delta)/(2*a) işlemini hesapla ve değeri YAZ 11. SON