[FLASH] zamiana liczb na system dziesiątkowy

Kamil_dobry
Użytkownik
Użytkownik
Posty: 146
Rejestracja: 28 paź 2007, o 12:46
Płeć: Mężczyzna
Lokalizacja: Piotrków Trybunalski
Podziękował: 50 razy

[FLASH] zamiana liczb na system dziesiątkowy

Post autor: Kamil_dobry »

Nie pytajcie po co, ale muszę napisać skrypt zamieniający daną liczbę w danym systemie (od 2 do 9) z daną dokładnością po przecinku na system dziesiątkowy. Może ktoś ma gotowy i mógłby podać. Byłoby miło. Pozdrawiam
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[FLASH] zamiana liczb na system dziesiątkowy

Post autor: soku11 »

Ogolnie jak chcesz zamienic na dziesietny, to masz wzor:
\(\displaystyle{ \mbox{a_na_{n-1}\ldots a_2a_1}_{(b)}=(a_n\cdot b^{n-1}+a_{n-1}\cdot b^{n-2}+\ldots+a_2\cdot b+a_1\cdot b^0)_{(10)}\\}\)

Czyli np chcemy zamienic liczbe 101 binarna na dziesietny:
\(\displaystyle{ 101_{(2)}=1\cdot 2^2+0\cdot 2^1+1\cdot 2^0=4+0+1=5_{(10)}}\)

Albo 23 piatkowo na dziesienty:
\(\displaystyle{ 23_{(5)}=2\cdot 5^1+3\cdot 5^0=10+3=13}\)

Pozdrawiam.
Kamil_dobry
Użytkownik
Użytkownik
Posty: 146
Rejestracja: 28 paź 2007, o 12:46
Płeć: Mężczyzna
Lokalizacja: Piotrków Trybunalski
Podziękował: 50 razy

[FLASH] zamiana liczb na system dziesiątkowy

Post autor: Kamil_dobry »

Dzięki za pomoc, ale muszę Ci napisać, ja to wszystko wiem. Wiem jak się zamienia. Ale języki programowania nie są takie,że wystarczy wpisać wzór (nie wątpie w to że jesteś tego świadom). Action script nie jest jakiś super przyjemmny zwłaszcza do takich zadań. I nie wiem jak ten wzór 'ubrać' w składnię Action Scriptu.
Pozdrawiam.
daro256
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 2 lis 2006, o 17:20
Płeć: Mężczyzna
Lokalizacja: Kołobrzeg
Pomógł: 1 raz

[FLASH] zamiana liczb na system dziesiątkowy

Post autor: daro256 »

Jak to action script nie jest przyjemny...jest aż za bardzo
Musisz zrobić tak:

Wczytujesz liczbę i system w jakim została podana. Załóżmy, że dane użytkownik wprowadza w pola tekstowe o nazwach pole1 i pole2, leżące na głównej linii czasu.

system = _root.pole1.text;
liczba = _root.pole2.text;

Liczbę musisz traktować jako tekst. Najpierw sprawdzasz ile jest cyfr w liczbie (czyli jak długi jest tekst)

dlugosc = liczba.lenght;

Masz już wszystko co jest potrzebne do obliczeń, więc liczymy:

for(i = dlugosc; i>0; i--)
{
wynik = wynik + (liczba.charAt(i)*system^(i-1));
}

Gotowe. Możliwe że wyrażenie liczba.charAt(i) będizesz musiał przekonwertować na liczbę. W helpie jest napisane jak to zrobić (mi się nie chce zaglądać )

Wszystkie powyższe skrypty powinieneś zamieścić w jakimś przycisku w taki sposób aby wykonywały się po kliknięciu:

on(release)
{
...
}

Wypadało by jeszcze wyprowadzić wynik na jakieś pole tekstowe. Np pole o nazwie tx_wynik
_root.tx_wynik.text = wynik;
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[FLASH] zamiana liczb na system dziesiątkowy

Post autor: soku11 »

Action scripta nie pamietam (mialem to bodajze w gimnazjum), wiec napisze jak ja bym to zrobil w jezykach wysokiego poziomu. (Oczywiscie zakladam, ze nie istnieje funkcja, ktora automatycznie konwertuje liczbe na dany system)
1. Jesli liczbe przetrzymujesz w zmiennej typu liczbowego, to przekonwertuj ja na postac ciagu znakow, tzn na np. "123".
2. Policzenie dlugosc tego ciagu znakow da ci zmienna n ze wzoru (ilosc cyfr).
3. Ustawiasz zmienna b na wartosc 1 oraz zmienna wynik na 0.
3. Piszesz petle iterowana n razy.
4. W petli zaczynasz konwertowac od ostatniego znaku w tablicy ('3' z przykladu).
5. Bierzesz ten znak, odejmujesz od niego kod znaku '0' (nie wiem jak z tym jest w AS - normalnie korzysta sie z tablicy ASCII i dlatego trzeba odjac), przemnazasz przez zmienna b. Dosumowujesz wynik rezultatem.
6. Zmienna b przemnazasz przez podstawe systemu (np. b*=5 dla piatkowego).
7. I tak w kolko az nie skoncza ci sie liczby.
8. W zmiennej wynik masz liczbe dziesietna.

Pozdrawiam.
daro256
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 2 lis 2006, o 17:20
Płeć: Mężczyzna
Lokalizacja: Kołobrzeg
Pomógł: 1 raz

[FLASH] zamiana liczb na system dziesiątkowy

Post autor: daro256 »

W jakim to gimnazjum flasha uczą ?
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[FLASH] zamiana liczb na system dziesiątkowy

Post autor: soku11 »

Hehe nie znasz W kazdym badz razie to polegalo bardziej na wklejaniu jakichs rzeczy i przepisywaniu z tablicy.
Pozdrawiam.
Kamil_dobry
Użytkownik
Użytkownik
Posty: 146
Rejestracja: 28 paź 2007, o 12:46
Płeć: Mężczyzna
Lokalizacja: Piotrków Trybunalski
Podziękował: 50 razy

[FLASH] zamiana liczb na system dziesiątkowy

Post autor: Kamil_dobry »

No chłopaki wielkie dzięki za pomoc, o to mi chodziło Rozumiałem całą procedurę ale nie wiedziałem jakich funkcji użyć. Nasz informatyk pokazał inną metodę (on pokazuje kawałek kodu resztę mamy sami przemyśleć) ale ta mi się bardziej podoba No właśnie dla mnie to totalna pomyłka uczyć flasha przez pół roku, zwłaszcza, że jestem na mat-infie On nie robi z nami zadań do matury tylko różne (może i przydatne) rzeczy:)
Pozdrawiam.


PS. a i dodam, że to liceum
Piotr__11
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 20 paź 2009, o 21:47
Płeć: Mężczyzna
Lokalizacja: Łódzkie
Podziękował: 5 razy

[FLASH] zamiana liczb na system dziesiątkowy

Post autor: Piotr__11 »

Tutaj mam kod przycisku który zamienia z (10) po przecinku na dowolny:
Ukryta treść:    
A tu dowolny na (10) niestety narazie bez przecinków:
Ukryta treść:    
PS: Pozdro dla I LO w Piotrkowie
ODPOWIEDZ