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
Python-zamiana systemu dziesiętnego na dowolny inny.
-
- Posty: 9
- Rejestracja: śr mar 18, 2020 11:20 pm
Python-zamiana systemu dziesiętnego na dowolny inny.
Ostatnio zmieniony czw mar 19, 2020 12:42 am przez paula.0120, łącznie zmieniany 1 raz.
OpenOffice 3.1 na Windows
Re: Python-zamiana systemu dziesiętnego na dowolny inny.
Ł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ź.
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ź.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
-
- Posty: 9
- Rejestracja: śr mar 18, 2020 11:20 pm
Re: Python-zamiana systemu dziesiętnego na dowolny inny.
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źć
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)
Ostatnio zmieniony czw mar 19, 2020 10:27 am przez paula.0120, łącznie zmieniany 2 razy.
OpenOffice 3.1 na Windows
Re: Python-zamiana systemu dziesiętnego na dowolny inny.
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`.
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.
Kod: Zaznacz cały
n n mod d
13 1
6 0
3 1
1 1
0
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`.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
-
- Posty: 9
- Rejestracja: śr mar 18, 2020 11:20 pm
Re: Python-zamiana systemu dziesiętnego na dowolny inny.
Już mi wszystko działa. Dziękuję
OpenOffice 3.1 na Windows