Strona 1 z 1
Python-zamiana systemu dziesiętnego na dowolny inny.
: śr mar 18, 2020 11:27 pm
autor: paula.0120
Napisz program, który po wczytaniu z klawiatury liczby naturalnej n, przedstawi ją w postaci binarnej.
Program ma być napisany w Pythonie.
Bardzo proszę o pomoc
Re: Python-zamiana systemu dziesiętnego na dowolny inny.
: śr mar 18, 2020 11:50 pm
autor: Jan_J
Łał. Lubię takie pytania. Zadania są po to, żeby się czegoś przy nich nauczyć.
Czy zrobiłaś choć raz konwersję zapisu „na papierze”, by wiedzieć na czym ona polega? Czy wiesz, jakich operacji potrzebujesz, by „bez komputera” wykonać to zadanie?
Np. (13)_10 = (111)_3 = (16)_7 = (1101)_2
Kiedy się dowiesz, poszukaj, jakie działania na odpowiednich danych (jakich typów: string?, int?) realizują te operacje w Pythonie.
A może zanim się weźmiesz do Pythona, warto spróbować to samo zadanie rozwiązać w arkuszu kalkulacyjnym (np. w Calc)? Uniwersalność mniejsza, ale mniejszy też stres (jak rozumiem), a pożytek jakiś będzie ze zrozumienia. A potem Python.
Kiedy będzie coś przemyślane, poszukane, napisane, przyjdzie czas na przedstawienie tego, co się zrobiło, na opisanie tego, co nie wychodzi mimo prób (warto wskazać jakich, i co w nich nie wyszło), i na poszukiwanie pomocy. Wtedy szacunek i podpowiedź.
Re: Python-zamiana systemu dziesiętnego na dowolny inny.
: czw mar 19, 2020 12:10 am
autor: paula.0120
Oczywiście, że rozpisywałam sobie to wszystko na kartce.
Zdefiniowałam wszystkie potrzebne funkcje typu push,pop itp.
I początek mam taki:
Ale gdzieś jest błąd i nie potrafię go znaleźć
Kod: Zaznacz cały
n = input('Podaj liczbe Naturalna: ')
d = input('Podaj liczbe z zakresu (1,10) : ')
s = stack(100)
x = int(n) / int(d)
r = int(n) % int(d)
Re: Python-zamiana systemu dziesiętnego na dowolny inny.
: czw mar 19, 2020 12:18 am
autor: Jan_J
Użycie mod i div, czyli % i // to dobry pomysł.
Użycie / to zły pomysł, w Pythonie dzielenie int / int daje ułamek zmiennopozycyjny (float).
Użycie round to efekt rozpaczy, spowodowanej pojawianiem się ułamków w /. W algorytmie dzielenia z resztą nie ma powodu, by stosować zaokrąglenia. Tym bardzej takie, które mają szansę pójść „w górę”.
Dlaczego nie zrobisz sobie n = int(input(czegoś tam)) i d = int(input(czegoś tam)), tylko za każdym dzieleniem wymuszasz konwersję?
Zrób sobie tabelkę dla jakiegoś przykładu, np. (13)_10 ==> (....)_2.
wynik: (1101)_2
i przełóż metodę jej wypełniania na pythoński.
Z tym że jak widzę zadanie `zamień podstawę z 10 na d` to nie jestem pewien, czy wolno mi używać wartości liczby n, czy tylko ciągu jej cyfr. Ale to zależy kto, dla kogo i po co postawił zadanie.
No i dowolna d < 10 to nie jest `dowolna inna d`.
Re: Python-zamiana systemu dziesiętnego na dowolny inny.
: czw mar 19, 2020 12:37 am
autor: paula.0120
Już mi wszystko działa. Dziękuję
