Skocz do zawartości

Nwd C++


andrew.wisla

Rekomendowane odpowiedzi

Mam pytanie :?: Mam zadanie polegające na napisaniu programu w C++, który wyszukuje Największego Wspólnego Dzielnika 2 liczb zapisanych binarnie. Wynik też ma być zapisany binarnie. I jeszcze jedno, program nie ma polegać na tym ze zamieniamy dane wejsciowe na normalne liczby, szukamy ich NWD i wypisujemy NWD w systemie binarnym. Mam nadzieję że to dobrze opisałem. Czekam na odpowiedź :lol:

Odnośnik do komentarza
Udostępnij na innych stronach

Jak nie czekasz na kod to zajrzyj na google http://pl.wikipedia.org/wiki/Największy_wspólny_dzielnik i tutaj prosty algorytm http://www.math.edu.pl/algorytm-euklidesa . Jeśli chodzi o zamianę liczb binarna-dziesiętna i dziesiętna-binarna to na pewno są już gotowe funkcje do tego w odpowiednich klasach tylko trzeba poszukać, ewentualnie, sama zamiana nie jest trudna i można się pokusić o napisanie własnych metod.

Odnośnik do komentarza
Udostępnij na innych stronach

thof -> w zadaniu chodzi o to aby nie zamieniac tych liczb na dziesiatne tylko obliczac NWD na "orginałach" binarnych

To w takim razie co rozumiesz pod pojeciem "oryginaly binarne"? Wprowadzasz liczbe jako np 3 i w programie dokonujesz operacji na bitach czy jako tablice czy ciag 1 i 0 czyli zamiast 3 podajesz 11?

Odnośnik do komentarza
Udostępnij na innych stronach

thof -> w zadaniu chodzi o to aby nie zamieniac tych liczb na dziesiatne tylko obliczac NWD na "orginałach" binarnych
A rzeczywiście nie doczytałem byłem zmęczony. W takim razie zadanie jest IMO dziwne, nie wiem jaki sens bawić się w kompilator :) .

 

Odnośnik do komentarza
Udostępnij na innych stronach

można łatwo zamienić na ósemkowe, szesnastkowe i dziesiętne, ale binarne? być może trzeba to jakoś oflagować i działać tak samo jak przy dziesiętnych, no ale nie ma takiej flagi, więc proponuję napisac bibliotekę do której będziesz odnosił się w programie :D

 

aż sam się tym zainteresowałem :P

Odnośnik do komentarza
Udostępnij na innych stronach

Z tego co mi wiadomo to procesor operuje tylko na liczbach binarnych , więc w czym problem ?

 

To w jakiej formie je widzimy to tylko kwestia interpretacji.

A wczytanie i wyświetlenie ich w tej formie nie powinno być problemem.

 

edit:

Czym różnią się normalne liczby od binarnych ?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 weeks later...

Tia mieliśmy podobne zadanie ale na liczbach DEC (dziesiętnych) no i w Pascalu bo C ponoć ma być w drugiej klasie <_<

Również podpowiedź brzmiała algorytm Euklidesa

Mam pomysła takiego...

Dać mu wprowadzanie jako 100100101 (BIN), potem by sobie to przeliczył na DEC obliczył NWD i wynik wywalił po przeliczeniu spowrotem na BIN

Skoro można konwertować BIN <---> DEC na papierze to czemu by nie w komputerze??? :D

Jeśli chcesz to zrobić bez przeliczania nawet jak nie będzie tego widać przy uruchomieniu programu to nie wiem...trzebaby "nauczyć" program najpierw operowania na BIN, co w C/C++ zapewne jest wykonalne prędzej niż w Pascalu xD

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...