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



Teraz jest 13 sty 2026, o 19:27


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
 Tytuł: Tablica
PostNapisane: 28 cze 2017, o 20:09 
Offline
Użytkownik

Dołączył(a): 22 cze 2015
Posty: 50
Lokalizacja: Lubin
Pomógł: 0

W jaki sposób "wyciągnąć" z tablicy int. Ale żeby było trudniej to tylko z 3 ostatnich indeksów.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A w tablicy bądą dane typu :

A100
C200
D365
A001



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 28 cze 2017, o 20:44 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27446
Lokalizacja: Szczecin
Pomógł: 1045

sorki, nie obraź się ale albo nie wiesz o co pytasz, albo nie wiesz co piszesz ...

Manianass napisał(a):
Ale żeby było trudniej to tylko z 3 ostatnich indeksów.

Bo z tego rzekomo wynika, że tych indeksów jest więcej niż 3 a ty ile ich widzisz w tej tablicy którą pokazałeś ? ;)

Cytuj:
A w tablicy bądą dane typu :

No tutaj to już popłynąłeś - bo tablicę którą pokazałeś - to jakiego typu ma elementy wg ciebie ?

.... z ciekawości zapytam, to na jakieś zaliczenie pytanie ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 28 cze 2017, o 21:08 
Offline
Użytkownik

Dołączył(a): 22 cze 2015
Posty: 50
Lokalizacja: Lubin
Pomógł: 0

Nie, pisze program i wysyłam takie dane po rs232 i w procku che z nich "wyciągnąć" inty.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 28 cze 2017, o 21:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1041
Lokalizacja: Trójmiasto
Pomógł: 190

Musisz chyba bardziej rozwinąć to co chcesz osiągnąć, bo jak na razie z tego co napisałeś to nie wiadomo o co chodzi, nie obraź się ale dla kogoś kto nie zna całokształtu tego co robisz, to to co napisałeś jest trochę bez sensu.
Bo masz tablicę 3-elementową której elementy są typu char, a niżej piszesz że w ów tablicy będziesz przechowywał dane typu A100 to taka dana nijak się nie zmieści ani w pojedynczej komórce tablicy ani nawet w całej tablicy która jest 3-elementowa a twoja dana składa się z 4 znaków ASCI...
Już nie wspomnę o tym, że nie za bardzo wiem co miałeś na myśli pisząc, że z tej tablicy chcesz wyciągnąć int-a...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 29 cze 2017, o 04:23 
Offline
Użytkownik

Dołączył(a): 22 cze 2015
Posty: 50
Lokalizacja: Lubin
Pomógł: 0

w tablicy jest 4 elementy, pierwszy z nich to litera i potem cyfry i z tych cyferki che przypisać jakiejś zmiennej typy uint16_t



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 29 cze 2017, o 09:23 
Offline
Użytkownik

Dołączył(a): 22 cze 2015
Posty: 50
Lokalizacja: Lubin
Pomógł: 0

Dokładnie tak, wysyłam z pc dane przez rs232 i zapisuje je w mikrokontrolerże w tablicy.
Na pozycji. Zerowej tablicy jest literą a w następnych sa cyfry i przybiera to postać np D567 i teraz te 567 chce zapisać do zmiennej typu. Uint16_t



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 29 cze 2017, o 10:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Poniżej masz kod źródłowy napisany w języku C, przetestuj go sobie w dowolnym kompilatorze C online np https://www.onlinegdb.com/online_c_compiler:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Czy o coś takiego chodzi? ;)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 29 cze 2017, o 11:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1041
Lokalizacja: Trójmiasto
Pomógł: 190

Widzisz, zadajesz pytanie podając niespójne dane, a dodatkowe informacje trzeba od Ciebie wołami wyciągać!
Na początku wstawiłeś kod z deklaracją tablicy a w nawiasach kwadratowych podałeś cyfrę 3 która w tym wypadku oznacza liczbę elementów tablicy (a nie jej ostatni indeks) tak więc twoja tablica będzie miała 3 elementy o indeksach 0, 1 i 2.
Już pominę fakt że stringi przechowywane w tablicy są zakańczane pustym znakiem więc twoja tablica musi mieć minimum 5 elementów...
Gdybyś na początek dokładnie wyjaśnił co jak i gdzie, pełną odpowiedź uzyskał byś pewnie już dawno...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 29 cze 2017, o 16:28 
Offline
Użytkownik

Dołączył(a): 22 cze 2015
Posty: 50
Lokalizacja: Lubin
Pomógł: 0

z C dopiero zaczynam wiec są nieścisłość i błędne informacje , na pewno jak bym zadał pytanie j była odpowiedz ,ale napisałem tak jak umiałem przecież specjalnie nie utrudniam sobie i innym.

anshar Twój kod jest ok działa Wielkie dzieki :)

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

Ale wyświetla ostrzeżenie
../main.c:97:5: warning: implicit declaration of function 'atoi' [-Wimplicit-function-declaration]
val = atoi(tablica+1);

zenekjar kod sie kompiluje ale nie działa wyświetla mi krzaki zamiast liczb.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 29 cze 2017, o 18:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 29 cze 2017, o 18:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1041
Lokalizacja: Trójmiasto
Pomógł: 190

Manianass napisał(a):
zenekjar kod sie kompiluje ale nie działa wyświetla mi krzaki zamiast liczb.
Kolega do końca nie przemyślał choć szedł w dobrym kierunku. Powinno to wyglądać tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i tego odejmowania na końcu u kolegi zabrakło.

Co do komplikacji to może i owszem taki twór jest bardziej skomplikowany ale paradoksalnie zajmuje mniej pamięci flash (akurat w tym przypadku i u mnie na procku attiny13A kod lżejszy o 4bajty) a skomplikowanie tylko wygląda. Tablica przechowuje dane typu char czyli znaki ASCI. Kod znaku "0" to 48, znaku "1" to 49 itd. Czyli zakładając że danymi będą cyfry to od każdej danej trzeba odjąć 48 i już z kodu znaku uzyskujemy cyfrę, a że chcemy liczbę to cyfrę setek należy pomnożyć przez 100, dziesiątek przez 10 i razem z cyfrą jedności zsumować. A żeby odciążyć procka odejmowanie liczy 48 dla poszczególnych cyfr można uprościć i wyrzucić przed nawias odejmując liczbę ((48*100)+(48*10)+48) czyli 5328

Owszem w tym wypadku oszczędności są mizerne ale czasem jak liczymy każdy bajt pod mały uC to może się przydać i takie podejście.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 30 cze 2017, o 04:25 
Offline
Użytkownik

Dołączył(a): 22 cze 2015
Posty: 50
Lokalizacja: Lubin
Pomógł: 0

Dopiero przetestuje kody w niedziele wieczorem.
Dziękuje wszystkim za pomoc i zaangażowanie.


Sprawdzone jeden i drugi kod działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Tablica
PostNapisane: 8 lip 2017, o 10:32 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2605
Pomógł: 129

Xentis - fajny pomysł. Właśnie o tego typu optymalizacje chodzi przy programowaniu maluszków typu Attiny10.

Sent from my Mi-4c using Tapatalk



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: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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