[c#] dodawanie ułamków

Hania_87
Użytkownik
Użytkownik
Posty: 860
Rejestracja: 18 cze 2007, o 20:57
Płeć: Kobieta
Lokalizacja: Rybnik
Podziękował: 86 razy
Pomógł: 57 razy

[c#] dodawanie ułamków

Post autor: Hania_87 »

niestety mój program nie chce skracać ułamków tak jak należy :/

Kod: Zaznacz cały

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace dodawanie_ulamkow_kons
{
    class Program
    {
        static int NWD(int a, int b)
        {
            int a0 = a;
            int b0 = b;
            while (b != 0)
            {
                int c = a % b;
                a = b;
                b = c;
            }
            return a;
        }
        static void Main(string[] args)
        {
            int a, b, c, d,l,m;
            Console.WriteLine("Dodawanie ulamkow a/b+c/d");
            Console.WriteLine("Podaj licznik pierwszego ułamka ");
            a=Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Podaj mianownik pierwszego ułamka ");
            b=Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Podaj licznik drugiego ułamka ");
            c=Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Podaj mianownik drugiego ułamka ");
            d=Convert.ToInt32(Console.ReadLine());
            l = (a * d + c * b)/NWD(b,d);
            m = (b * d)/NWD(b,d);
            Console.WriteLine("suma tych ułamków wynosi {0}/{1} ",l,m);
            Console.ReadKey();
        }
    }
}
Goter
Użytkownik
Użytkownik
Posty: 293
Rejestracja: 22 lis 2008, o 18:11
Płeć: Mężczyzna
Lokalizacja: Białystok
Podziękował: 5 razy
Pomógł: 85 razy

[c#] dodawanie ułamków

Post autor: Goter »

Dodałbym jeszcze te trzy linijki (przed samym wypisywaniem odpowiedzi):

Kod: Zaznacz cały

int p = NWD(l,m);
l = l / p;
m = m / p;
Powinno pomóc.
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

[c#] dodawanie ułamków

Post autor: spajder »

dokładnie się nie wczytywałem, ale algorytm liczenia NWD na pewno jest niewłaściwy.
Spróbuj za pomocą euklidesa
Goter
Użytkownik
Użytkownik
Posty: 293
Rejestracja: 22 lis 2008, o 18:11
Płeć: Mężczyzna
Lokalizacja: Białystok
Podziękował: 5 razy
Pomógł: 85 razy

[c#] dodawanie ułamków

Post autor: Goter »

Hmm, chyba dobrze jest... i to przecież jest właśnie algorytm Euklidesa, zobacz sobie w googlach, albo na Wikipedii, na pewno znajdziesz podobny kod.
Hania_87
Użytkownik
Użytkownik
Posty: 860
Rejestracja: 18 cze 2007, o 20:57
Płeć: Kobieta
Lokalizacja: Rybnik
Podziękował: 86 razy
Pomógł: 57 razy

[c#] dodawanie ułamków

Post autor: Hania_87 »

na NWD korzystałam z algorytmu Euklidesa
ODPOWIEDZ