C++ ödevi yardım

Başlatan Xeno, 23 Kasım 2020 - 11:31:31

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Xeno

"Kullanıcıdan payı ve paydasını aldığı kesirli ifadeleri bölme adında bir nesne dizisine atan ve eleman
fonksiyonlar yardımıyla bu kesirli ifadelerin ondalıklı sayı karşılığını ekrana gösteren programı
oluşturunuz." Böyle bi ödev verdiler bi yere kadar bişeyler yaptım ama gerisi gelmedi yardımcı olurmusunuz.
#include <iostream>
using namespace std;
struct rasyonel
{
int pay, payda;
};
rasyonel carp(rasyonel a, rasyonel b)
{
rasyonel s;
s.pay = a.pay * b.pay;
s.payda = a.payda * b.payda;
return s;
}
int main()
{
rasyonel sayi1, sayi2;
cout << "1. sayinin pay ve paydasini giriniz:";
cin >> sayi1.pay >> sayi1.payda;
cout << "2. sayinin pay ve paydasini giriniz:";
cin >> sayi2.pay >> sayi2.payda;
rasyonel sonuc = carp(sayi1, sayi2);
cout << "Sonuc = ";
cout << sonuc.pay << "/" << sonuc.payda << endl;
return 0;
}

TheFumiu

Hata şu sanirim. 2 kesri bulurken ters çevirip çarpık lazim.
Ama direk bolme yapsan da olur sanirim.

7hr33l3t73r

#include <iostream>
#include <vector>

using namespace std;

class Fraction {
    private:
        int pay;
        int payda;
    public:
        Fraction(int pay, int payda) {
            this->pay = pay;
            this->payda = payda;
        }

        double toDecimal() {
            return (double)pay / payda;
        }
};

int main() {
    vector<Fraction> fractions;

    while (true) {
        cout << "Lütfen bir pay değeri girin (çıkmak için 'q'): ";
        string payInput;
        getline(cin, payInput);
        if (payInput == "q") {
            break;
        }

        cout << "Lütfen bir payda değeri girin: ";
        int payda;
        cin >> payda;
        cin.ignore();

        Fraction fraction(stoi(payInput), payda);
        fractions.push_back(fraction);
    }

    for (Fraction fraction : fractions) {
        cout << fraction.toDecimal() << endl;
    }

    return 0;
}
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

programmer

Kesirli sayıyı yazdırırken (-) (+) durumunu ayrıca hesaplayıp yqzdırsanız daha güzel olur belki de. 2/(-3) ve (-2)/3  ikisi de (-)2/3 eşittir gibi