Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 11 lut 2025, o 08:05


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 30 gru 2013, o 20:47 
Offline
Użytkownik

Dołączył(a): 22 sie 2013
Posty: 64
Pomógł: 1

Czy istnieje jakiś algorytm albo sposób aby z 2 zmiennych zrobić 1 zmienną składającą się z tych 2 zmiennych.
Język programowania w tym przypadku może być obojętny.
Np.
int a
int b
c=ab

a=3
b=4

c=34


a=2
b=7

c=27



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2013, o 21:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Może spróbuj taki algorytm
int przekształć na stringa
połącz dwa stringi
i przekształć stringa na int



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2013, o 21:01 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2013, o 21:13 
Offline
Użytkownik

Dołączył(a): 22 sie 2013
Posty: 64
Pomógł: 1

Dzięki właśnie o to mi chodziło.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2013, o 21:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

Vitor Borba napisał(a):
Czy istnieje jakiś algorytm albo sposób aby z 2 zmiennych zrobić 1 zmienną składającą się z tych 2 zmiennych.


można tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ale to nie będzie działać gdy z wartości dziesiętnych np. 3 i 8 chcesz mieć 38 (w tym przypadku liczba12 wyniesie 3*256+8 {łączenie binarne})

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2013, o 22:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Jako początkujący chciałbym się upewnić czy mój sposób byłby poprawny
tzn. czy efekt byłby taki o jaki autorowi postu chodzi
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

czy w takim przypadku zmienna c będzie miała wartość 27 ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2013, o 23:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Przedstawionego fragmentu kodu Kol. Zaba nie testowałem (dla podanych danych wydaje się być poprawny), jednak mam kilka uwag:
  • tablice numerowane są od 0
  • funkcja itoa zwraca łańcuch znakowy zakończony znakiem jego końca tj '\0'
  • dla liczb większych lub równych 10 przekroczony zostaje zakres tablicy i kto wie co się później może stać ;)
Dla podanego przypadku, element tablicy o indeksie 0 przyjmie wartość znaku '2', natomiast index 1 będzie równy '\0', ale kolejna funkcja itoa go nadpisze wartością '7', po czym do elementu o ind 2 wpisze swoje '\0', przez co przekroczyliśmy zakres tablicy i możemy mieć problem...
Jednak sama idea dość ciekawa, mimo że "pamięciożerna".
Jeśli źle myślę proszę mnie poprawić, również chciałbym się czegoś nauczyć ;)

Bardziej ogólny kod przedstawiony przez Krauser'a może wyglądać następująco:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Oczywiście muszą istnieć zmienne a, b i c oraz posiadać odpowiednie typy, tak aby nie "przękręcić" zmiennej i ;)

Zapis z zerowaniem zmiennej i jest oczywiście żartem z mojej strony - kod jest z pełni działający, ale powinna tam być instrukcja break, aby zminimalizować wynikowy kod. Ot taki myk :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2013, o 23:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2013
Posty: 93
Lokalizacja: Piotrków Trybunalski
Pomógł: 1

Polecam przetestować kod wg. zamysłu Zaba :) Sam wiele razy tak robiłem i śmigało, później postaram się coś nakreślić :P Jest to wg mnie jedno z najfajniejszych rozwiązań do tego szybkich i sprawdzonych :) Suma dwóch stringów daje stringa, który ma w sobie wypisane po kolei znaki z każdej ze zmiennej, w zadanej kolejności (a+b != b+a) :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO