Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Konwertowanie ułamków ósemkowych na ułamki dzisiętne

Ostatnio zmodyfikowano 2017-11-16 22:34
Autor Wiadomość
Crispo
Temat założony przez niniejszego użytkownika
Konwertowanie ułamków ósemkowych na ułamki dzisiętne
» 2017-11-16 19:57:11
Co muszę zrobić?
Napisać program który konwertuje ułamki ósemkowe na ułamki dziesiętne. Metodologia:
Wpisujemy np. 0.75(8) i przelicza to na (10)
7 * 1/8 + 5 * 1/64 i tak dalej. Każda kolejna cyfra jest mnożona przez kolejną minusową potęgę 8 czyli 3 cyfra po kropce mnożona jest razy 1/512. Natomiast liczby przed . mnożone są w ten sposób: np. 31.75  ---> 1 * 8^0 + 3 * 8^1

Czego potrzebuję?
Chcę w string wpisywać daną wartość np. podane wyżej 0.75.Za pomocą getline chciałbym zapisywać wartość przed . i po . W jaki sposób mam to zrobić? Wiem, że wartość do kropki mogę pobrać w ten sposób:
getline(cin, n, '.');
Jak pobrać wartość po kropce? Jak zapisać to w tablicy i pobierać następne elementy z tablicy? To problem którego nie umiem sam przeskoczyć żeby przejść do dalszej części pisania. Nie musi być podany cały kod, ale chociaż wskazanie jak dojść do tego bo jestem zielony :/ Z góry dziękuję i liczę na szybką odpowiedź.
P-166919
mateczek
» 2017-11-16 22:34:32
C/C++
int main()
{
    string liczba = "123.123";
    double wynik = 0;
    bool doKropki = true;
    for( int i = 0; i < liczba.size(); i++ ) {
        if( liczba[ i ] == '.' ) {
            doKropki = false;
            continue;
        }
        if( doKropki ) {
            wynik = wynik * 8 + liczba[ i ] - '0';
        } else {
            //po kropce;
        }
       
    }
    cout << wynik;
}
P-166923
« 1 »
  Strona 1 z 1