C++ 3 Parametreli Hesaplama Fonksiyonu Hazırlama Ödevi

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Onaylı Üye
Katılım
6 Nis 2020
Mesajlar
73
Tepki puanı
3
Ödüller
2
6 HİZMET YILI
Herkese Merhaba Arkadaşlar,

Elektrik-Elektronik Mühendisliği öğrencisiyim. Algoritma ve Programlamaya Giriş dersi alıyorum ama dersi Corona muhabbetinden dolayı işlemediğimiz için hocanın vermiş olduğu ödevleri yapamıyorum. Bana bu konuda yardımcı olabilecek bir arkadaş varsa eğer dilediği bir konuda bende ona yardımcı olmak isterim. Şimdiden teşekkür ediyorum.


3.png
3-2.png
 
Moderatörün son düzenlenenleri:
Słyszę, słyszę letni powiew.
Kurucu
Katılım
20 Haz 2015
Mesajlar
7,666
Çözümler
136
Tepki puanı
20,725
Ödüller
25
10 HİZMET YILI
Şimdi kullanıcı t olarak input verdi ise, ve ilk belirlediği sayı 10, ikinci belirlediği sayı 11 ise 11+10 = 21 diyen bir fonksiyon yazacağız anladığım kadarıyla. Çünkü arasındaki sayılar demiş ama girdiğimiz sayılar da dahil demiş.O zaman iki sayıyı 10 ve 10 verdik diyelim, birbirine eşit. Sonuç gene 10 dönecek. Doğru anladım sanırım.
 
Onaylı Üye
Katılım
11 Mar 2018
Mesajlar
111
Çözümler
2
Tepki puanı
8
Ödüller
8
8 HİZMET YILI
Şimdi kullanıcı t olarak input verdi ise, ve ilk belirlediği sayı 10, ikinci belirlediği sayı 11 ise 11+10 = 21 diyen bir fonksiyon yazacağız anladığım kadarıyla. Çünkü arasındaki sayılar demiş ama girdiğimiz sayılar da dahil demiş.O zaman iki sayıyı 10 ve 10 verdik diyelim, birbirine eşit. Sonuç gene 10 dönecek. Doğru anladım sanırım.
C++:
#include <iostream>

#include <conio.h>

#include <math.h>

using namespace std;

int x,y,t,o,u,k;

string islem;

void hesapla1(){

    int toplam = 0;

    for (x;x <= y; x++) {

        toplam = toplam+x;

        cout << x << " ";

    }

    cout << "sayilarinin toplami: " << toplam;

}

void hesapla2(){

int toplam,sayi = 0;

    for (x;x <= y; x++) {

        toplam = toplam+x;

        cout << x << " ";

      

    }

sayi = x-y+2;

cout <<"Arasindaki sayilarin ortalamasi"<<toplam/sayi;

}

void hesapla3(){

    for (x;x <= y; x++) {

          if(x%3==0){

        

             cout<<pow(x,2);

     }



}

}

void hesapla4(){

  

}

int main(){

    cout<<"'t' girilirse iki sayinin arasindaki sayilar toplanacak.\n";

    cout<<"'o' girilirse iki sayinin arasindaki sayilarin ortalamasi bulunacak.\n";

    cout<<"'u' girilirse iki sayinin arasindaki 3 ile tam bolunen tek sayilarin karelerinin toplami bulunacak.\n";

    cout<<"'k' girilirse iki sayinin arasindaki cift sayilarin karekoklerinin toplami bulunacak.\n";

  

    cout<<"Islem yapmak istediginiz sayi araligini ve islem terchinizi giriniz:"<<endl;

    cin>> x;

    cin>> y;

    cin>> islem;

if (islem == "t"){

hesapla1();

}

else if (islem == "o"){

hesapla2();

}   

else if (islem == "u"){

hesapla3();

}   

else if (islem == "k"){

hesapla4();

}   

else{

    cout<<"Gecersiz islem..."<<endl;

}

}
Abi belki işine yarar ben t ve o'yu yaptım zaten onlar kolay ama u ve k yı kafam kaldırmadı.
 
Moderatörün son düzenlenenleri:
Słyszę, słyszę letni powiew.
Kurucu
Katılım
20 Haz 2015
Mesajlar
7,666
Çözümler
136
Tepki puanı
20,725
Ödüller
25
10 HİZMET YILI
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int x,y,t,o,u,k;
string islem;
void hesapla1(){
int toplam = 0;
for (x;x <= y; x++) {
toplam = toplam+x;
cout << x << " ";
}
cout << "sayilarinin toplami: " << toplam;
}
void hesapla2(){
int toplam,sayi = 0;
for (x;x <= y; x++) {
toplam = toplam+x;
cout << x << " ";

}
sayi = x-y+2;
cout <<"Arasindaki sayilarin ortalamasi"<<toplam/sayi;
}
void hesapla3(){
for (x;x <= y; x++) {
if(x%3==0){

cout<<pow(x,2);
}

}
}
void hesapla4(){

}
int main(){
cout<<"'t' girilirse iki sayinin arasindaki sayilar toplanacak.\n";
cout<<"'o' girilirse iki sayinin arasindaki sayilarin ortalamasi bulunacak.\n";
cout<<"'u' girilirse iki sayinin arasindaki 3 ile tam bolunen tek sayilarin karelerinin toplami bulunacak.\n";
cout<<"'k' girilirse iki sayinin arasindaki cift sayilarin karekoklerinin toplami bulunacak.\n";

cout<<"Islem yapmak istediginiz sayi araligini ve islem terchinizi giriniz:"<<endl;
cin>> x;
cin>> y;
cin>> islem;
if (islem == "t"){
hesapla1();
}
else if (islem == "o"){
hesapla2();
}
else if (islem == "u"){
hesapla3();
}
else if (islem == "k"){
hesapla4();
}
else{
cout<<"Gecersiz islem..."<<endl;
}
}
Abi belki işine yarar ben t ve o'yu yaptım zaten onlar kolay ama u ve k yı kafam kaldırmadı.
Dostum bu şekilde olmayacak, tek fonksiyonda halledeceksin hepsini return olarakta maine döndüreceksin elde ettiğin değeri. İslem kontrolünü falan hesapla fonksiyonunun içinde yapıcaksın,hoca öyle demiş. Ben yapıyorum şuan zaten sabret biraz xd
 
Onaylı Üye
Katılım
6 Nis 2020
Mesajlar
73
Tepki puanı
3
Ödüller
2
6 HİZMET YILI
Şimdi kullanıcı t olarak input verdi ise, ve ilk belirlediği sayı 10, ikinci belirlediği sayı 11 ise 11+10 = 21 diyen bir fonksiyon yazacağız anladığım kadarıyla. Çünkü arasındaki sayılar demiş ama girdiğimiz sayılar da dahil demiş.O zaman iki sayıyı 10 ve 10 verdik diyelim, birbirine eşit. Sonuç gene 10 dönecek. Doğru anladım sanırım.
Evet bu şekilde olacak. t-o-u-k harflerine fonksiyon tanımlanacak sadece
 
Illumination
Onaylı Üye
Katılım
18 Haz 2016
Mesajlar
118
Tepki puanı
24
Ödüller
6
Yaş
26
9 HİZMET YILI
Słyszę, słyszę letni powiew.
Kurucu
Katılım
20 Haz 2015
Mesajlar
7,666
Çözümler
136
Tepki puanı
20,725
Ödüller
25
10 HİZMET YILI
C-like:
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
char islem_def;
double hesapla(int baslangic,int bitis,char islem) {

    double matematiksel_islem = 0;

    if (islem == 't') { //iki sayi arasındaki toplam
        for (int i = baslangic; i <= bitis; i++)
        {
            matematiksel_islem = matematiksel_islem + i;
        }
    
        return matematiksel_islem;
    }

    if (islem == 'o') { // ortalama
        double numbercount = 0;
        for (int i = baslangic; i <= bitis; i++)
        {
            matematiksel_islem = matematiksel_islem + i;
            numbercount++;
        }
        double ortalama = matematiksel_islem / numbercount;
        return ortalama;
    }

    if (islem == 'u') { //üç ile tam bölünebilen tek sayıların kareleri toplamı
        for (int i = baslangic; i <= bitis; i++)
         {
                if ((i % 3) == 0 && (i % 2 != 0))  //sayı üçe tam bölünebiliyorsa ve çift sayı değilse, yani tek sayıysa
                matematiksel_islem = matematiksel_islem + pow(i,2);

         }
         return matematiksel_islem;
        }

        if (islem == 'k') { //çift sayıların kareköklerinin toplamı
            for (int i = baslangic; i <= bitis; i++)
            {
                if (i % 2 == 0)  //sayı eğer çiftse
                    matematiksel_islem = matematiksel_islem + sqrt(i);

            }
            return matematiksel_islem;
        }
    return nan("");
}

int baslangic, bitis;
int main()
{
    cout << "'t' girilirse iki sayi arasindaki sayilar toplanacak, \n";
    cout << "'o' girilirse iki sayi arasindaki sayilarin ortalamasi bulunacak, \n";
    cout << "'u' girilirse iki sayi arasindaki 3 ile tam bolunen tek sayilarin kareleri toplami bulunacak, \n";
    cout << "'k' girilirse iki sayi arasindaki cift sayilarin karekoklerinin toplami hesaplanir. \n \n";
 
     kontrol:
    cout << "Baslangic sinirini giriniz: ";
    cin >> baslangic;
    cout << "Bitis sinirini giriniz: ";
    cin >> bitis;
    if (baslangic == bitis){
        printf("Lutfen baslangic ve bitis sayilari birbirlerine esit olmasin ! Sayilari tekrar giriniz \n");
        goto kontrol;
    }
    kontrol_1:
    cout << "Yapilacak islemi belirleyiniz:";
    cin >> islem_def;
    double sonuc = hesapla(baslangic, bitis, islem_def);
    if (!isnan(sonuc)) {
        printf("Islem sonucu = %f \n", sonuc);
    }
    else {
        printf("Belirlenmeyen isleme karsilik gelen harf girdiniz, lutfen tekrar islem seciniz \n");
        goto kontrol_1;
    }
        system("pause");
}
1592846513103.png

1592846602351.png


Ek olarak girilecek iki sayıdan herhangi biri negatif olabilir, fakat eğer sınırlardan bir tanesi negatif ise k işlemi nan value döndürecektir. Çünkü işin içine complex sayılar giriyor. Hoca o kadar profesyonelce bir şey istememiş o yüzden böyle bıraktım.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst