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(); 
}

19 Mart 2015 Perşembe

Vücut Kitle İndeksi Hesaplayan Programın C++ Console Kodları Ve Akiş Diyagramı

#include<stdio.h>
#include<conio.h>
int main()
{
                float boy,kg,sonuc;
                printf("Boy Giriniz :");
                scanf("%f",&boy);
                printf("Kilo Giriniz :");
                scanf("%f",&kg);
                sonuc=kg/(boy*boy)*10000;
                printf("%f",sonuc);
                              
if(sonuc>=0 && sonuc<=18.4)
{printf("\n Dusuk Kilolu");}
else if(sonuc>=18.5 && sonuc<=24.9 )
{printf("\n Normal");}
else if(sonuc>=25&&sonuc<=29.9)
{ printf("\n Fazla Kilolu");}
else if(sonuc>=30&&sonuc<=40)
{printf("\n Obez");}
else if(sonuc>=40.0)
{ printf("\n Asiri Obez");}
else
{ printf("Lutfen Gecerli Degerler giriniz..");}
    getch();
    return 0;
}

15 Şubat 2015 Pazar

Vize Ve Finalin Ortalamasını Hesaplayan Program (C#)

    Vizenin %40'ını, Finalin %60'ını, Vize Ve Final Notlarının 0 ile 100 arasında olmaması durumunda hata mesajı verip yeniden not isteyen program.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VizeFinal
{
class Program
{
static void Main(string[] args)
{
double vize, final, ort;
b:
basadon:
Console.WriteLine("Klavyeden Öğrencinin Vize Notunu Giriniz");
vize = Convert.ToInt32(Console.ReadLine());//Vize notunu klavyeden girilen değeri değişkene atama işlemi yapılıyor.
if(vize>=0 && vize<=100)// vize notu 0 ile 100 arasında olup olmaması kontrol ediliyor. { vize = vize * 0.40;// Vizenin %40 alınıyor } else { Console.WriteLine("Vize Notu 0 ile 100 Arasında Olmalıdır"); goto b;//Eğer not 0 ile 100 arasında değilse tekrar not istiyor. } c: Console.WriteLine("Klavyeden Öğrencinin Final Notunu Giriniz"); final = Convert.ToInt32(Console.ReadLine());//Final notunu klavyeden girilen değeri değişkene atama işlemi yapılıyor. if (final >= 0 && final <= 100)// Final notu 0 ile 100 arasında olup olmaması kontrol ediliyor.
{
final = final * 0.60;//Finalin % 60 Alınıyor.
}
else
{
Console.WriteLine("Final Notu 0 ile 100 Arasında Olmalıdır");
goto c;//Eğer not 0 ile 100 arasında değilse tekrar not istiyor.
}
ort = vize + final;//ort değişkenine vize ve finalin toplamı atanıyor.
Console.WriteLine("Öğrencinin Ortalaması {0}", ort);//Notu ekrana yazdırıyor.
goto basadon;//Tekrardan hesaplama için programı başa döndürüyor.
Console.ReadLine();
}}}

31 Ocak 2015 Cumartesi

Akrep İle Yelkovan Arasındaki Açı Hesaplama (C++)



Akrep ile yelkovanın arasındaki açıyı hesaplayan saat 12 ve dakika 59 dan büyükse hata verip yeniden değer isteyen Programın kodları:

#include<stdio.h>
int main()
{
int saat,dakika;
double aci;
git:
printf(“Acisini bulmak istediginiz Saat(0-12) ve Dakikayi(0-59) giriniz:”);
scanf(“%d%d”,&saat,&dakika);
if (saat>12)
{
printf(“Saat 0 ile 12 arasında olmalidir.\n”);
goto git;
}
else if(dakika>59)
{
printf(“Dakika 0 ile 59 arasinda olmalidir.\n”);
goto git;
}
else
aci = (saat*30)-(dakika*5.5);
if(aci<0)
{
aci = (dakika*5.5)-(saat*30);
}
if(aci>180)
{
aci=360-aci;
}
printf(“Saat %d : %d iken akrep ile yelkovan arasindaki aci %2.f’dir”,saat,dakika,aci);
getchar();
return 0;
}