Fonksiyon ile 4 işlem

İlk hatan fonksiyonların tanımlaması dönen sonuç void değildir. Fonksiyonları double olarak tanımlamalısın.
void topla(double s1,double s2)
{
cout << endl << s1 << s2 << "=" << topla (s1, s2) << endl << endl;
}

burada işlem yaptırmamışsın. topla(s1,s2) ile yine fonksiyon çağırmaya çalışmışsın.
 
1 .sourum daha var hocam ben buna aynı programda sayaç eklemek istiyorum o da fonsiyonla olacak büyük sayıdan küçük sayıya
İlk hatan fonksiyonların tanımlaması dönen sonuç void değildir. Fonksiyonları double olarak tanımlamalısın.
void topla(double s1,double s2)
{
cout << endl << s1 << s2 << "=" << topla (s1, s2) << endl << endl;
}

burada işlem yaptırmamışsın. topla(s1,s2) ile yine fonksiyon çağırmaya çalışmışsın.
aslında dedigin gibi de yaptım ama bir türlü hata verince bu şekile döndüm
ben birde aynı programda büyükten küçüge dogr usayaç yapmak istesem fonk siyonla nasıl olacak acaba aynı programa yazmak için
 
1 .sourum daha var hocam ben buna aynı programda sayaç eklemek istiyorum o da fonsiyonla olacak büyük sayıdan küçük sayıya

aslında dedigin gibi de yaptım ama bir türlü hata verince bu şekile döndüm
ben birde aynı programda büyükten küçüge dogr usayaç yapmak istesem fonk siyonla nasıl olacak acaba aynı programa yazmak için

Dediklerinizden hiçbir şey anlamadım. Siz yapmaya çalışın. Yanlışınızı düzeltmeye çalışalım.
 
C++:
#include<iostream>
#include<stdlib.h>
using namespace std;
double fCalculate(double s1,double s2,int iOperation)
{
switch(iOperation)
  {
  case 1:
  return s1+s2;
  break;
  case 2:
  return s1-s2;
  break;
  case 3:
  return s1*s2;
  break;
  case 4:
  return s1/s2;
  break;
  }
}
int main()
{
setlocale(LC_ALL,"Turkish"); //Türkçe karakter
double s1,s2, dResult;
int iOperation;
while(true)
{
cout<<"||=====================||"<< endl;
cout<<"1-) Toplama"<< endl;
cout<<"2-) Çıkarma"<< endl;
cout<<"3-) Çarpma"<< endl;
cout<<"4-) Bölme"<< endl;
cout<<"||=====================||"<< endl;
cout<<"Lütfen yapmak istediğiniz işlemi seçiniz:";
cin>>iOperation;
if (iOperation >= 1 && iOperation <= 4)
{
cout<<"Sayı 1 : ";
cin>>s1;
cout<<"Sayı 2 : ";
cin>>s2;
dResult = fCalculate(s1,s2,iOperation);
cout<<"İşlem sonucunuz: "<<dResult<<endl;
}
else
{
    string sOpenReq;
    cout<<"Yanlış işlem seçtiniz"<< endl;
    cout<<"Tekrar işlem yapmak istiyor musunuz? (E/H): ";
    cin>>sOpenReq;
    if (sOpenReq=="E")
    {
    continue;
    }
    else
    {
        break;
    }
}
}
}

Merhabalar, kodu güncelledim. Bu şekliyle yanlış işlem girilince de tekrar sormasını sağlamış olduk.
Sizin yazdığınız koddaki görebildiğim hatalı yerlerin yanına comment olarak yazıp atıyorum.

C++:
#include <iostream>
using namespace std;
void selam (); // fonksiyonu tanımladık

double topla (double s1,double s2) // void kullanırsan geri değer döndürmez, fonksiyon geri değer döndüreceği için double veri tipini kullanacağız
{
return s1+s2; // fonksiyonun return edeceği değer
}
double cikar (double s1,double s2)
{
    return s1-s2; // fonksiyonun return edeceği değer
} // fonksiyonu tanımladık
double carp  (double s1,double s2)
{
    return s1*s2; // fonksiyonun return edeceği değer
}
double bol   (double s1,double s2)
{
    return s1/s2; // fonksiyonun return edeceği değer
}
int main ()
{
double s1, s2, dResult;
char islem;
//cout<< "iki sayi giriniz:" ; // Ayrı olarak alman daha kullanışlı olur
cout<< "Sayı 1: " ;
cin >> s1;
cout<< "Sayı 2: " ;
cin >> s2;
cout<<" Lütfen yapmak istediğiniz işlemi seçiniz (+, -, *, /): ";
cin >> islem;
//topla (s1,s2) ;
//cikar (s1,s2) ;
//carp (s1 ,s2);  // burada fonksiyonları çağırmana gerek yok
//bol (s1 ,s2 ) ;

switch(islem){
case '+': // Toplama
//cout << endl << s1 << s2 << "=" << topla (s1, s2) << endl << endl; // endl = satırı sonlandırmanı sağlar. Yani bu satırda işim bitti bir alt satıra geç demek.
dResult = topla(s1,s2);
cout << "İşlem sonucunuz : " << dResult << endl;
break;
case '-': // Çıkarma
//cout << endl << s1 << s2 << "=" << cikar (s1, s2) << endl << endl;
dResult = cikar(s1,s2);
cout << "İşlem sonucunuz : " << dResult << endl;
break;
case '*': // Çarpma
//cout << endl << s1 << s2 << "=" << carp(s1, s2) << endl << endl;
dResult = carp(s1,s2);
cout << "İşlem sonucunuz : " << dResult << endl;
break;
case '/': // Bölme
//cout << endl << s1 << s2 << "=" <<bol(s1, s2) << endl << endl;
dResult = bol(s1,s2);
cout << "İşlem sonucunuz : " << dResult << endl;
break;
default:
cout << "Yanlıs islem girisi yapildi! Yeniden deneyiniz." << endl;
}

}

void selam (){
cout << "SELAM DUNYALİ:"<< endl ;
}
/*
void topla(double s1,double s2)
{
cout << endl << s1 << s2 << "=" << topla (s1, s2) << endl << endl;
}
void cikar (double s1 ,double s2) ;
{
cout << endl << s1 << s2 << "=" << cikar (s1, s2) << endl << endl;
}
void carp (double s1 ,double s2) ;
{
cout << endl << s1 << s2 << "=" << carp (s1, s2) << < endl << endl;
}
void bol (double s1 ,double s2) ;
{

cout << endl << s1 << s2 << "=" <<Bol(s1, s2) << endl << endl;
}*/
 
bu koda da bakarmısınız 40 dan 30 saydırmak istiyorum sayaç ile fonksiyon ile i tanımlanmadı diyor
#include <iostream>
using namespace std ;
void geri (int x, int y) ;
int main(){
int x=40, y=30 ;

for(i=40 ; x<=y ; i -- )
{cout << (i) ;
}



}
 
C++:
#include <iostream>
using namespace std ;
void geriSayac(); // fonksiyon tanımlama
int main(){
    
geriSayac(); // fonkisyonu cagirma

}
void geriSayac() // fonksiyonun yapacagi isi kodlama
{
    for(int i=40 ; i>=30; i--) // 40tan geriye i 30'dan büyük ya da eşit olduğu sürece -1
{
    cout << i <<endl;
}

}

Merhabalar, sizin kodun çalışmama sebebi;
1- for döngüsünün içerisinde i tanımlı değil çünkü veri tipini belirtmemişsiniz. for(int i = 40; x<=y; i--)
2- Fonksiyon yazmışsınız fakat fonksiyonun yapacağı işi kodlamamışsınız.
3- For döngüsünde belirli bir sayaç yapmak için ekstra değişkene ihtiyaç yok. Zaten kendisin for (başlangıç değeri, bitiş şartı, artış tipi) olarak yazıldığı için i>=30 derseniz 40 tan i-- yapacağı için geri sayacak ve 30'da duracaktır.

Kodu düzenleyip üstte fonksiyonlu bir şekilde yazarak paylaştım..
 
acaba hata programdan dolayımı algoritma dogru ama program izin vermiyor
 

Ekli dosyalar

  • Ekran Alıntısı.PNG
    Ekran Alıntısı.PNG
    40.3 KB · Görüntüleme: 6
acaba hata programdan dolayımı algoritma dogru ama program izin vermiyor
Merhabalar, ben de herhangi bir hata yok. Visual Studio kullanıyorum. Dev C++ kullanıyorsanız internetten araştırırsanız kaynaklara erişirsiniz. Ben aşina olmadığım için yanlış bilgilendirmek istemiyorum..
 

Ekli dosyalar

  • KkProgram.png
    KkProgram.png
    20.9 KB · Görüntüleme: 4
Hocam Guncellediginiz kod çalışıyor ama selam vermiyor 4 islemi yapıyor
acaba hata programdan dolayımı algoritma dogru ama program izin vermiyor
geri sayactan sonra return 0 ; koydum program çalıştı çok sagol hocam sorularıma baya cevap verdin
C++:
#include<iostream>
#include<stdlib.h>
using namespace std;
double fCalculate(double s1,double s2,int iOperation)
{
switch(iOperation)
  {
  case 1:
  return s1+s2;
  break;
  case 2:
  return s1-s2;
  break;
  case 3:
  return s1*s2;
  break;
  case 4:
  return s1/s2;
  break;
  }
}
int main()
{
setlocale(LC_ALL,"Turkish"); //Türkçe karakter
double s1,s2, dResult;
int iOperation;
while(true)
{
cout<<"||=====================||"<< endl;
cout<<"1-) Toplama"<< endl;
cout<<"2-) Çıkarma"<< endl;
cout<<"3-) Çarpma"<< endl;
cout<<"4-) Bölme"<< endl;
cout<<"||=====================||"<< endl;
cout<<"Lütfen yapmak istediğiniz işlemi seçiniz:";
cin>>iOperation;
if (iOperation >= 1 && iOperation <= 4)
{
cout<<"Sayı 1 : ";
cin>>s1;
cout<<"Sayı 2 : ";
cin>>s2;
dResult = fCalculate(s1,s2,iOperation);
cout<<"İşlem sonucunuz: "<<dResult<<endl;
}
else
{
    string sOpenReq;
    cout<<"Yanlış işlem seçtiniz"<< endl;
    cout<<"Tekrar işlem yapmak istiyor musunuz? (E/H): ";
    cin>>sOpenReq;
    if (sOpenReq=="E")
    {
    continue;
    }
    else
    {
        break;
    }
}
}
}

Merhabalar, kodu güncelledim. Bu şekliyle yanlış işlem girilince de tekrar sormasını sağlamış olduk.
Sizin yazdığınız koddaki görebildiğim hatalı yerlerin yanına comment olarak yazıp atıyorum.

C++:
#include <iostream>
using namespace std;
void selam (); // fonksiyonu tanımladık

double topla (double s1,double s2) // void kullanırsan geri değer döndürmez, fonksiyon geri değer döndüreceği için double veri tipini kullanacağız
{
return s1+s2; // fonksiyonun return edeceği değer
}
double cikar (double s1,double s2)
{
    return s1-s2; // fonksiyonun return edeceği değer
} // fonksiyonu tanımladık
double carp  (double s1,double s2)
{
    return s1*s2; // fonksiyonun return edeceği değer
}
double bol   (double s1,double s2)
{
    return s1/s2; // fonksiyonun return edeceği değer
}
int main ()
{
double s1, s2, dResult;
char islem;
//cout<< "iki sayi giriniz:" ; // Ayrı olarak alman daha kullanışlı olur
cout<< "Sayı 1: " ;
cin >> s1;
cout<< "Sayı 2: " ;
cin >> s2;
cout<<" Lütfen yapmak istediğiniz işlemi seçiniz (+, -, *, /): ";
cin >> islem;
//topla (s1,s2) ;
//cikar (s1,s2) ;
//carp (s1 ,s2);  // burada fonksiyonları çağırmana gerek yok
//bol (s1 ,s2 ) ;

switch(islem){
case '+': // Toplama
//cout << endl << s1 << s2 << "=" << topla (s1, s2) << endl << endl; // endl = satırı sonlandırmanı sağlar. Yani bu satırda işim bitti bir alt satıra geç demek.
dResult = topla(s1,s2);
cout << "İşlem sonucunuz : " << dResult << endl;
break;
case '-': // Çıkarma
//cout << endl << s1 << s2 << "=" << cikar (s1, s2) << endl << endl;
dResult = cikar(s1,s2);
cout << "İşlem sonucunuz : " << dResult << endl;
break;
case '*': // Çarpma
//cout << endl << s1 << s2 << "=" << carp(s1, s2) << endl << endl;
dResult = carp(s1,s2);
cout << "İşlem sonucunuz : " << dResult << endl;
break;
case '/': // Bölme
//cout << endl << s1 << s2 << "=" <<bol(s1, s2) << endl << endl;
dResult = bol(s1,s2);
cout << "İşlem sonucunuz : " << dResult << endl;
break;
default:
cout << "Yanlıs islem girisi yapildi! Yeniden deneyiniz." << endl;
}

}

void selam (){
cout << "SELAM DUNYALİ:"<< endl ;
}
/*
void topla(double s1,double s2)
{
cout << endl << s1 << s2 << "=" << topla (s1, s2) << endl << endl;
}
void cikar (double s1 ,double s2) ;
{
cout << endl << s1 << s2 << "=" << cikar (s1, s2) << endl << endl;
}
void carp (double s1 ,double s2) ;
{
cout << endl << s1 << s2 << "=" << carp (s1, s2) << < endl << endl;
}
void bol (double s1 ,double s2) ;
{

cout << endl << s1 << s2 << "=" <<Bol(s1, s2) << endl << endl;
}*/
 
Moderatör tarafında düzenlendi:

Forum istatistikleri

Konular
129,867
Mesajlar
930,872
Kullanıcılar
452,732
Son üye
erencok

Yeni konular

Geri
Üst