C++ Not Hesaplayıcı (Bağıl Sistem)

Başlatan Tesla Coil, 08 Haziran 2014, 19:21:52

Tesla Coil

Hocalarım merhaba yardımlarınızla bir program yazmak istiyorum. Hem gündelik yaşamda kullanmak hem de C 'ye dair okuduklarımı öğrendiklerimi pekiştirmek adına.

Programı açtığımızda kullanıcı klavyeden
1- Vize notunu
2- Sınıf ortalamasını
3- Standart sapmayı
4- Son olarak da istediği harf notunu girecek.

Çıkış olarak ise mesela;
Bu dersi "CC" geçebilmek için Final sınavından 95 almalısın gibi bir çıktı verecek bir program yazmak istiyorum fakat nasıl yazmam gerektiğini kestiremedim hala çünkü ;

Sistemimizde notlar hesaplanırken

1) Hamortalamam = (Vizenotu+Finalnotu)/2;
2) Znotum = (Hamortalamm-Sinifortalamsı)/Standartsapma;
3) Tnotum = (10*Znotum+50);

Yukardaki gibi bir T notu dönüşümü yapıyoruz. Ardından yukarda ki işlemlere göre hesaplanan Tnotumuzu aşağıdaki tablodan uygun yere koyup harf notumuzu buluyoruz.
Şimdi nerden başlamalıyım ne yapmalıyım bana yardımcı olabilecek birisi varmı? Bu programı kendim yazmak istiyorum yardımlarınızla.
   


Tesla Coil

#include <stdio.h>
#include <conio.h>
#include <iostream>
//usingname space std;
int main()
{

short int Vize,Final;
float Sinifort,Stndrtsapma,Hnot,Tnot,Znot;

    printf("Vize notunuzu giriniz: ",Vize);scanf("%d",&Vize);
    printf("Final notunuzu giriniz: ",Final);scanf("%d",&Final);
    printf("Sinif ortalamasını giriniz: ",Sinifort);scanf("%d",&Sinifort);
    printf("Standart sapmayi giriniz: ",Stndrtsapma);scanf("%d",&Stndrtsapma);
   
   Hnot=(Vize+Final)/2;
   Znot=(Hnot-Sinifort)/Stndrtsapma;
   Tnot=(10*Znot)+(50);   

    printf("Bagil sisteme göre yeni Tnotunuz:\n %f",Tnot);
   
   

return(0);
}

1) Yukardaki programdaki hatalarım neler? Neden sonucu doğru gösteremedim. bkz: Resim1
2) Konunun ana başlığındaki tabloyu c de nasıl oluşturmalıyım? matrismi tanımlamam gerekiyor? Eğer matris tanımlıcaksam matris içinde aralık belirtebilirmyim?


Resim1


fatih6761

Kodun mantığında sıkıntı yok da kodlamada hata var.
float tipinde bir değişkeni scanf'e %d ile geçiyorsunuz, olmaaaz :)
float değişkenler için %d yerine %f yapıp deneyin, çalışacaktır.
Aslında derleyicinin o satırlarda uyarı vermiş olması gerekirdi.
2. sorunuz için mantıken matris namı diğer 2d dizileri kullanırsınız ama isterseniz her satırı 9 elemanlı bir dizi olarak da kullanabilirsiniz. 8 tane dizi oluşturun.
Bu dizilerin her biri bir satırı temsil etsin. Bu dizilere de ilgili satırdaki sadece üst veya sadece alt sınırları girin. Program içinde sınıf başarısına göre kullanılacak diziyi seçersiniz.
O dizide bir arama yaparak notun hangi aralıkta olduğunu bulmak kolay olacaktır...

Tesla Coil

#3
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h> // Çoban gibi ne bulduysam ekledim:(
int main()
{

int vize,final;
float sapma,tnot,sinort,znot,hnot;

printf("Vize notunuzu giriniz: ",vize);scanf("%f",&vize);
printf("Final notunuzu giriniz: ",final);scanf("%f",&final);
printf("Sinif ortalamasini giriniz: ",sinort);scanf("%f",&sinort);
printf("Standart sapmayi giriniz: ",sapma);scanf("%f",&sapma);
   
hnot = (vize+final)/2;
znot = (hnot-sinort)/sapma;
tnot = (10*znot)+50;   

printf("Bagil sisteme gore yeni Tnotunuz: %f",tnot);
   
   

system("pause");
}

Hocam dediklerini uyguladım ama hala olmadı :/. Dev-C++ da yazıyorum.

Resim2


fatih6761

@Tesla Coil, dikkat eksikliğin var herhalde :)
Mesajımda ne yazdım bir daha okuyalım:
Alıntı Yapfloat değişkenler için %d yerine %f yapıp deneyin, çalışacaktır.
Özellikle float kısmını kalın yazdım. Bu ne demek? Yalnızca float olan değişkenler için %f olacak.
Vize ve final notunu girdiğin ilk iki scanf içinde %d ;
Sınıf Ort ve StdSapma aldığın son iki scanf de ise %f olacak.

Tesla Coil

Ahh hocam ahh :)) Saolun şimdi ayıldım.