28 Nisan 2015 Salı

Lise Ağırlık Notu Hesaplayan Program (C++)

    Program yazmak kolay olduğu kadar bir o kadarda zordur. Program yazmak için döngülerin kullanımı ve dizilerin içine nasıl eleman atanacağı, elemanların birbiriyle nasıl matematiksel işlemlerin yapılacağını bilmek gerek. Eğer program yazmaya yeni başlıyorsanız; yazacağınız programın akış diyagramını çizip hangi adımda nereye gideceğini ve sonraki adımda hangi değişkenle hangi işlem yapılacağı önceden kestirmek mümkün oluyor ve program yazma aşamasını baya kısaltmış oluyor. Oldu ki akış diyagramı çizmeden yazılım yazmaya başladınız. Bu yazma sürenizin baya uzayacağı anlamına geliyor. Akıllarda bir soru belirmiş olabilir. Hemen açıklık getirelim bu mevzuya. Akış diyagramında döngülerin nereye gideceği, koşul ifadeleri gerçekleşmediğinde ne yapılacağı gibi konularda benim gibi önceden tahmin etme yeteneğiniz zayıfsa ve programı yazacaksanız geriye bir ihtimal kalıyor. Oda "Deneme - Yanılma" yöntemi. Bilirsiniz ki plansız bir iş yapılıyorken aksilik çıkması halinde hemen geriye yani başa dönüş yapılır ve buda işin bitme zamanını uzatır. O yüzden bir bilgisayar programcısı akış diyagramı olmadan düşünülemez. Benim üniversite 1. sınıf bahar döneminde yazmış olduğum (başlık da adı gecen) basit bir program ama bunu yazmam yaklaşık 6 saatimi almıştı akış diyagramı olmadan yazmaya kalkışmış olmamdan. Aynı programın biraz daha geliştirilmiş hali koşul ifadeleri ile kullanıcıya verilen mesajlar ve programdan kaynaklanan Türkçe karakterleri düzeltilmiş hali akış diyagramı çizilirken ki süre hariç %80 daha kısalmıştı. Tabi o zamanlar yazılım bilgim azda olmasının katkısı vardı zamanda ama ben en çok akış diyagramı çizilmeden başlanmasına bağlıyorum zamanın bu kadar uzun olmasını. Uzun lafın kısası "Bir programa dili bilmek kadar önemli olan tek şey varsa AKIŞ DİYAGRAMI' dır." Yazdığım programın C++ Source File kodları.


#include<stdio.h>
#include<conio.h>
int main ()
{
int topla2,tds,n,hds=0,hds2=0;
int i,ss,d,topla=0;
int ders[d];
float ort2,ort,an,son;
printf("Toplam Ders Sayisi = ");
scanf("%d",&tds);
printf("\n");
for(n=0;n<tds;n++)
{
printf("Dersinizin sinav sayisini giriniz = ");
scanf("%d",&ss);
printf("\n");
printf("Dersinizin haftalik ders saatini giriniz = ");
scanf("%d",&hds);
printf("\n");
for(d=0;d<ss;d++)
{
printf("Sinav notunu giriniz = ");
scanf("%d",&ders[d]);
printf("\n");
topla=topla+ders[d];
}
ort=topla/d;
ort2=ort*hds;
printf("Girdiginiz Dersin Ortalamasi = %0.2f\n",ort2);
printf("\n");
an=ort2+an;
topla=0;
hds2=hds+hds2;
}
son=an/hds2;
printf("Agirlik Notunuz = %0.2f\n",son);
printf("\n");
if(son=0 && son<75)
printf("Belge Almaya Hak Kazanamadiniz.\n");
else if(son>=75 && son<85)
printf("Tesekkur Belgesi Almaya Hak Kazandiniz. Tebrikler...\n");
else
printf("Taktir Belgesi Almaya Hak Kazandiniz. Basarilarinizin Devamini Dileriz.\n");
return 0;
getch(); 
}