Vein [ Sannin ]
problem z c++ - wyświetlanie liczb na "wyświetlaczu"
hmm chciałęm napisać programik który by wyświetlał liczbe używając plików bmp, ale by nie trzeba było robić 150 bitmap (od 0-149) chciałem by skłądał liczbe trzycyfrową z 3 bitmap, miałby do wyboru 10 (0-9) i wyświetlał... i tutaj zaczyna sie problem, jak to zrobić, jak oddzielić jedności dziesiątki i setki od siebie by wyszły to same cyfry... programik w c++...
JackSmith [ ]
jeden ze sposobów (nie wiem czy najlepszy) to
krok 0: licznik składa się z 3 bitmap (zatem robisz tylko 10 obrazków od 0-9)
krok 1: piszesz funkcję ładującą odpowiednią bitmapę w zależności od przekazanej do tej fuknkcji wartości (od 0 do 9)
krok 2: traktujesz Twoją liczbę z licznika jako string (tablicę znaków) i ładujesz 3x napisaną wcześniej funkcję przekazując do niej odpowiedni parametr
na przykład (to niej jest kod w cpp) coś na kształt
$string = '123';
LoadLicznikBMP($string0) LoadLicznikBMP($string1) LoadLicznikBMP($string2);
pozdr
Vein [ Sannin ]
tyle to i ja sie domyslilem, ale chodzi tutaj JAKIEJ funkcji uzyć... porpostu nie ma mpojęcia... jeszcze za bardzo nie jstem w temacie by znac taka funkcje...
JackSmith [ ]
;-) najepsza będzie funkcja .... którą sam napiszesz
a wewnątrz tej funkcji którą napiszesz, powinno znaleźć się:
- do wyboru bitmapy - chociażby case ewentualnie if
- a do ładowania samej bitmapy ..... - nie napisałeś co prawdza gdzie to będzie ładowane (WinForms, plik, html, console a może jeszcze gdzieś indziej) ale przypuszczam że bedzie to zwykłe windowsowe okno formularza, zatem najwygodniej posłużyć się API z MS - poniżej sznureczek do przykładu i wyjasnienia który wyszukał dla mnie google :-)
powodzenia
Mały Miś [ Konsul ]
napisze ogólnie jak podzielić liczbe 3 cyfrową na C++ sam to będziesz musiał sobie przetłumaczyć
A -liczba 3 cyfrowa (przy większej ilości cyfr wzór trzeba rozbudować)
A1 -setki, A2 -dziesiątki, A3 -jedności
LICZBA.CAŁKOWITA to funkcja która obcina liczbę do liczby całkowitej, usuwając z niej jej część ułamkową
A1=LICZBA.CAŁKOWITA(A/100)
A2=LICZBA.CAŁKOWITA(A/10)-A1*10
A3=A-A1*100-A2*10
Vein [ Sannin ]
jacksmith - neistety bedzie to okienko dosowe :P
Mały Miś - dzieki, nie pomyslalem by podzielićliczbe przez np 100 i usunąć ułamek :P ... hmm ale będzie problem jeżeli liczba będzie np mniejsza niż 100 ... wtedy będe musiał użyć funkcji if...
Mały Miś [ Konsul ]
nie będzie żadnego problemu, jeśli liczba będzie mniejsz niż 100 po prostu pierwszą cyfrą będzie zero