C++ yardım

Sargonn

Üye
Katılım
8 Mar 2020
Mesajlar
36
Puanları
1
Yaş
33
meslek yüksekokulu ögrencisiyim şöyle bir ödevim var algoritmasında istediginizi yapabilirrsiniz yani özgürsünüz dedi hoca ama bu 3 şartları göstedigi için bu şartlara uyacaksınız dedi
bende bu şekil yazdım ama hem yazdıgımım baya karıştıgının farkındayım hem de algoritmayı tam oturtamadım
Kod:
#include <iostream>

using namespace std ;

void yil_hesapla (int yil1,int yil2){

  

    sonuç= yil2-yil1 ;

    if(yil2-yil1=16){

        cout<< "Üniversite mezunusun" ;

    }

    else if (yil2-yil1=12) {

        cout<< "Lise mezunusun:" ;

    }

  

    else if(yil2-yil1 =8){

        cout<< "ortaokul mezunusun:";

    }

  

    else if(yil2-yil1 < 8){

cout<< "mezun degilsin!! :"<< endl ;



}

else if(yil2-yil1 < 8){



int main()

  {

      setlocale(LC_ALL, "Turkish");

      cout<< "Eğitim hayatına başladığınız yılı giriniz!!!!:"<<endl ;

      cin>> yil1 ;

      cout<< "Mezun olduğunuz yılı giriniz!!!:"<< endl ;

      cin>> yil2 ;

    

}

    void yil_hesapla ()
 

Ekli dosyalar

  • Ekran Alıntısı12e.PNG
    Ekran Alıntısı12e.PNG
    21.7 KB · Görüntüleme: 11
Moderatör tarafında düzenlendi:
* yil_hesapla' nın içinde sonuc = yil2-yil1 dediğiniz için artık if'lerin içinde if(yil2-yil1) demenize gerek yok.

* sondaki else if ne için? gerek yok bence

* yil1 ve yil2 değişkenleri tanımlanmamış. onları tanımlayın

*en alttaki void yil_hesapla prototip bildirimine gerek yok. zaten fonksiyonun tamamını mainden önce yazmışsınız. ( fonksiyonun tamamını mainden sonra yazsaydınız bu sefer prototip bildirimini main'den üstte bildirmeniz gerekecekti)

*son satırdaki cin>>yil2 ' den sonra fonksiyonu çağırmanız gereklidir -> yil_hesapla(yil1,yil2);

* hocanız bir döngü istemiş ama siz kullanmamışsınız. main içinde bir while(1){} ekleyip, cout ve cin leri onun içine alıp, en son satıra da cout<<"devam etmek istiyor musunuz ? (e/h)"; diye bir soru ekleyebilirsiniz. sonra da if koşulu ile kullanıcının girdiği harfi sorgulayın 'h' ise return 0 deyip çıkış yapın, 'e' ise hiç bişey yapmaya gerek yok. program tekrar başa dönecektir. böylece hocanızın döngü kullanma şartını yerine getirmiş olursunuz.
 
* yil_hesapla' nın içinde sonuc = yil2-yil1 dediğiniz için artık if'lerin içinde if(yil2-yil1) demenize gerek yok.

* sondaki else if ne için? gerek yok bence

* yil1 ve yil2 değişkenleri tanımlanmamış. onları tanımlayın

*en alttaki void yil_hesapla prototip bildirimine gerek yok. zaten fonksiyonun tamamını mainden önce yazmışsınız. ( fonksiyonun tamamını mainden sonra yazsaydınız bu sefer prototip bildirimini main'den üstte bildirmeniz gerekecekti)

*son satırdaki cin>>yil2 ' den sonra fonksiyonu çağırmanız gereklidir -> yil_hesapla(yil1,yil2);

* hocanız bir döngü istemiş ama siz kullanmamışsınız. main içinde bir while(1){} ekleyip, cout ve cin leri onun içine alıp, en son satıra da cout<<"devam etmek istiyor musunuz ? (e/h)"; diye bir soru ekleyebilirsiniz. sonra da if koşulu ile kullanıcının girdiği harfi sorgulayın 'h' ise return 0 deyip çıkış yapın, 'e' ise hiç bişey yapmaya gerek yok. program tekrar başa dönecektir. böylece hocanızın döngü kullanma şartını yerine getirmiş olursunuz.
Döngüsü burada nasil kullanacağımı bilmedigim için yapamadım
 
kodlarınızı bu şekilde yazmayı deneyin:
Kod:
#include <iostream>

using namespace std ;



void yil_hesapla (int yil1,int yil2){

sonuc= yil2-yil1;



if(sonuc=16){

cout<< "Üniversite mezunusun" ;

}

if (sonuç=12) {

cout<< "Lise mezunusun:" ;

}

if(sonuç =8){

cout<< "ortaokul mezunusun:";

}

if(sonuç < 8){

cout<< "mezun degilsin!! :"<< endl ;

}



int main()

{

setlocale(LC_ALL, "Turkish");

//degisken tanımlarını yapın.



while(1){

cout<< "Eğitim hayatına başladığınız yılı giriniz!!!!:"<<endl ;

cin>> yil1 ;

cout<< "Mezun olduğunuz yılı giriniz!!!:"<< endl ;

cin>> yil2 ;

//yil_hesapla fonks. cagir..



//tamam mı devam mı sorgusunu ekle



}

}
 
Moderatör tarafında düzenlendi:
tamam hemen deniyorum .
iflerde hata var bir tane if gerisi else if olmayacak mı e/h bundda hata gösteriyor
 
Son düzenleme:
son derlediğiniz kodu buraya yapıştırır mısınız? beraber düzeltmeye çalışalım
visual studio mu kullanıyorsunuz?
 
işteyim de play storedan c ++ programı kurdum telden yazmaya çalısiyorum
Kod:
#include <iostream>

using namespace std ;

void yil_hesapla (int yil1,int yil2)



sonuc= yil2-yil1 ;

if(sonuc == 16){

cout<< "Üniversite mezunusun!!!!" ;

}

if (sonuc == 12) {

cout<< "Lise mezunusun:" ;

}

if(sonuc == 8){

cout<< "ortaokul mezunusun!!!:";

}



if(sonuc < 8){

cout<< "mezun degilsin!!!! :"<< endl ;



}





int main()

{

setlocale(LC_ALL, "Turkish");

int yil1;

int yil2;

while(1){

cout<< "Eğitim hayatına başladığınız yılı giriniz!!!!:"<<endl ;

cin>> yil1 ;

cout<< "Mezun olduğunuz yılı giriniz!!!:"<< endl ;

cin>> yil2 ;



}

void yil_hesapla (yil1,yil2){

    cout<<''Devam etmek istiyor musunuz ??? (e/h)";

    if('h'){

         return 0;

    }

    if('e')
 
Moderatör tarafında düzenlendi:
1)
else if şart değil, böyle de çalışır. ama siz fonksiyonun küme parantezini unutmuşsunuz.
void yil_hesapla (int yil1,int yil2)
{ //unutmuşsunuz
sonuc= yil2-yil1 ;
if(sonuc == 16){
cout<< "Üniversite mezunusun!!!!" ;
}
if (sonuc == 12) {
cout<< "Lise mezunusun:" ;
}
if(sonuc == 8){
cout<< "ortaokul mezunusun!!!:";
}

if(sonuc < 8){
cout<< "mezun degilsin!!!! :"<< endl ;
}
} //unutmuşsunuz

************************
2)
burda void kullanmayacaksınız. fonksiyon çağırma yapıyorsunuz.void'i silin. küme parantezi kullanmadan sonuna ';' koyun
yil_hesapla (yil1,yil2); //fonksiyon böyle çağırılır.


cout<<''Devam etmek istiyor musunuz ??? (e/h)"; //bu doğru

//böyle sorgu olmaz.
if('h'){
return 0;
if('e')

//int yil2'in altında char tipinde bir değikşen tanımlayın(char secim; gibi) sonra şöyle sorgulayın;

if (secim == 'e')
cout << "\n\n\n"; //evet ise 3 satır alta indirdirdik. hiç bişe yazmazsak hata verir.
else
return 0;

//else yerine if(secim=='h') de diyebiliriz ama kullanıcı o,p,r,g..vs girebilir. o zaman program hata verirdi. o yüzden else kullanarak 'e' haricinde bir giriş olursa program sonlanacak.
 
1)
else if şart değil, böyle de çalışır. ama siz fonksiyonun küme parantezini unutmuşsunuz.
void yil_hesapla (int yil1,int yil2)
{ //unutmuşsunuz
sonuc= yil2-yil1 ;
if(sonuc == 16){
cout<< "Üniversite mezunusun!!!!" ;
}
if (sonuc == 12) {
cout<< "Lise mezunusun:" ;
}
if(sonuc == 8){
cout<< "ortaokul mezunusun!!!:";
}

if(sonuc < 8){
cout<< "mezun degilsin!!!! :"<< endl ;
}
} //unutmuşsunuz

************************
2)
burda void kullanmayacaksınız. fonksiyon çağırma yapıyorsunuz.void'i silin. küme parantezi kullanmadan sonuna ';' koyun
yil_hesapla (yil1,yil2); //fonksiyon böyle çağırılır.


cout<<''Devam etmek istiyor musunuz ??? (e/h)"; //bu doğru

//böyle sorgu olmaz.
if('h'){
return 0;
if('e')

//int yil2'in altında char tipinde bir değikşen tanımlayın(char secim; gibi) sonra şöyle sorgulayın;

if (secim == 'e')
cout << "\n\n\n"; //evet ise 3 satır alta indirdirdik. hiç bişe yazmazsak hata verir.
else
return 0;

//else yerine if(secim=='h') de diyebiliriz ama kullanıcı o,p,r,g..vs girebilir. o zaman program hata verirdi. o yüzden else kullanarak 'e' haricinde bir giriş olursa program sonlanacak.
Ama hocam yazdikalriniza kontrol edemedi de şöyle.bir.durum mesela kullanıcı okula basladiginyil 1990
Mezun olduğu yıl 2020 sonuç 30 çıkacak 30 içinde biz bir şey yazmadik
 
Hoca o kadar profesyonel birşey istemişse onları da düşünmek lazım tabiki. Sınıf tekrarı yapmış olma ihtimali de var. Bu da düşünülmeli mesela... Ama önce ilk olarak buraya kadar çalışan kodu oluşturun. Ek özellikler duruma göre eklenir. Telefondaki derleyici çok doğru sonuç vermeyebilir. Bilgisayardan kontrol etme imkanınız varsa daha iyi olur. şu kodları deneyin:
Kod:
#define _CRT_SECURE_NO_WARNINGS

using namespace std;

#include <iostream>



void egitimSeviyeHesapla(int mezuniyet,int baslama);



int baslamaYili, mezuniyetYili;

char secim;



int main()

{

  



    while (1) {

        cout << "Birinci sinif'a basladiginiz yili giriniz: ";

        cin >> baslamaYili;

        cout << "\nEn son mezun oldugunuz yili giriniz: ";

        cin >> mezuniyetYili;



        egitimSeviyeHesapla(mezuniyetYili, baslamaYili);

        cout << "\nDevam etmek istiyor musunuz ? (y/n): ";

        cin >> secim;

      

        if (secim == 'y')

            cout << "\n\n\n";

        else

            return 0;

    }



  

}



void egitimSeviyeHesapla(int mezuniyet, int baslama) {

    int farkYil = mezuniyet - baslama;



    if (farkYil < 8) {

        cout << "\nmezun degilsiniz";

    }



    if (farkYil == 8) {

        cout << "\nortaokul mezunusunuz";

    }

    if (farkYil == 12) {

        cout << "\nlise mezunusunuz";

    }

    if (farkYil == 16) {

        cout << "\nuniversite mezunusunuz";

    }



}
 
Moderatör tarafında düzenlendi:

Forum istatistikleri

Konular
128,105
Mesajlar
915,012
Kullanıcılar
449,805
Son üye
berkayk304

Yeni konular

Geri
Üst