ATNEL tech-forum
https://forum.atnel.pl/

Funkcja rand w języku C?
https://forum.atnel.pl/topic19065.html
Strona 1 z 1

Autor:  Eposas [ 25 sie 2017, o 16:21 ]
Tytuł:  Funkcja rand w języku C?

Witajcie, ostatnio zacząłem naukę programowania w języku c z książki tzw "blubuka" i chcę zrobić taki nieduży program aby na wyświetlaczy 7seg. losowały się liczby, znaczy żeby raz się wylosowały np 4,7,1,0 i dopiero kiedy nacisnę switcha to wtedy nastąpi reset i ponowne losowanie. Przesyłam wam mój kod znaczy próby napisania :). Liczę na pomoc podpowiedzi itd aaa zaznaczam że nawet mi to nie odpaliło, nie wiem dlaczego. Bym zapomniał robię na płytce startowej od Mirka rev. 1.04

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


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



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

Autor:  SunRiver [ 25 sie 2017, o 16:29 ]
Tytuł:  Re: Funkcja rand w języku C?

Kody wklejamy na forum uzywająć znacznika syntax=c jest przycisk proszę poprawić
wtedy łatwiej bedzie udzielić pomocy ..

Autor:  Eposas [ 25 sie 2017, o 17:38 ]
Tytuł:  Re: Funkcja rand w języku C?

Faktycznie nie wiedziałem że tu takie cuda można robić, poprawione i bardziej przejrzyste pozdro dla wszystkich. :D

Autor:  andrews [ 25 sie 2017, o 18:43 ]
Tytuł:  Re: Funkcja rand w języku C?

Ten kod, którego autorem jest Mirosław Kardaś, to bym jednak nie publikował na forum z oczywistych (mam nadzieję) względów.

Autor:  mirekk36 [ 25 sie 2017, o 19:14 ]
Tytuł:  Re: Funkcja rand w języku C?

andrews napisał(a):
Ten kod, którego autorem jest Mirosław Kardaś, to bym jednak nie publikował na forum z oczywistych (mam nadzieję) względów.

No tak nawet tego nie zauważyłem, dzięki ... nieco okroiłem ;)

Autor:  Eposas [ 25 sie 2017, o 20:13 ]
Tytuł:  Re: Funkcja rand w języku C?

Wiem wiem, mój błąd, ale ja już byłem zdesperowany bo nie chciało mi odpalić to dałem led c ctr ctr v i trochę zmieniłem ale autorze zapomniałem ;), no ale dalej nie wiem nawet jakiej funkcji użyć albo co robić aby losować zmienne cyfry z tablicy

Autor:  wojtekr51 [ 25 sie 2017, o 20:15 ]
Tytuł:  Re: Funkcja rand w języku C?

Eposas napisał(a):
(rand() * 10) % 1

Wynikiem tego działania będzie zawsze 0. Wykonujesz operację '%' modulo. W wyniku otrzymujesz resztę z dzielenia przez 1.

Autor:  Eposas [ 25 sie 2017, o 20:24 ]
Tytuł:  Re: Funkcja rand w języku C?

acha, dobra więc co proponujesz

Autor:  wojtekr51 [ 25 sie 2017, o 20:39 ]
Tytuł:  Re: Funkcja rand w języku C?

Jeżeli funkcja rand zwraca losową liczbę z jakiegoś zakresu np. 0-255, to żeby otrzymać pseudolosową liczbę z zakresu 0-9 możesz wykonać takie działanie:
rand() % 10
Chyba już jasne jaki będzie wynik. :)
W powyższym przykładzie (jeżeli rand zwraca od 0 do 255) cyfry 0-5 będą nieco częściej wypadać niż cyfry 6-9.

Autor:  Eposas [ 28 sie 2017, o 11:07 ]
Tytuł:  Re: Funkcja rand w języku C?

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

Sorry za brak odpowiedzi ale nie miałem czasu, wracjąc do problemu dalej nie działa :) przypomnę tylko o co mi chodzi chcę aby na wyświetlaczu led pokazało mi wylosowane cyfry od 0-9 z tablicy. A jeśli ktoś widzi błędy w moim kodzie to niech pisze bo nawet nie chce się odpalić.

Autor:  Marhef [ 28 sie 2017, o 11:10 ]
Tytuł:  Re: Funkcja rand w języku C?

Eposas napisał(a):
nawet nie chce się odpalić
Ale co to znaczy, że nie chce się odpalić? Kompiluje się? Wgrywa się do procka? Wyświetla się cokolwiek na wyświetlaczach?

Autor:  mirekk36 [ 28 sie 2017, o 11:29 ]
Tytuł:  Re: Funkcja rand w języku C?

Eposas napisał(a):
A jeśli ktoś widzi błędy w moim kodzie to niech pisze bo nawet nie chce się odpalić.

A jeśli postarałbyś się lepiej opisywać problem to byłoby znacznie lepiej ci coś podpowiedzieć - a nie tak jak napisał wyżej kolega - co to ma oznaczać "nie chce się odpalić" ? .. no jak tak można zadawać pytanie panie kochany ? ;)

Autor:  Eposas [ 28 sie 2017, o 11:33 ]
Tytuł:  Re: Funkcja rand w języku C?

kompiluje się wszystko (brak błędów) tylko nic nie pokazuje na wyświetlaczu, i właśnie nie wiem o co chodzi czy w kodzie mam coś pokichane czy co. :)

Autor:  Marhef [ 28 sie 2017, o 11:37 ]
Tytuł:  Re: Funkcja rand w języku C?

A jak podłączyłeś wyświetlacze? Pod odpowiednie wyprowadzenia procka?

Autor:  Eposas [ 28 sie 2017, o 11:57 ]
Tytuł:  Re: Funkcja rand w języku C?

Jakby to powiedzieć na początku robiłem wszystko po swojemu czyli na płytce stykowej i nie działało, zakupiłem płytkę startową i też nic mimo że program Pana Mirka działa, i wtedy skopiowałem wszystkie podłączenia z Pana projektu na swój, dlatego komentarze mogą się nie zgadzać bardzo.Wysyłam zdj podłączenia.

Autor:  micky [ 28 sie 2017, o 11:58 ]
Tytuł:  Re: Funkcja rand w języku C?

Zdjęcia wklejamy na forum.

Autor:  Marhef [ 28 sie 2017, o 12:05 ]
Tytuł:  Re: Funkcja rand w języku C?

Eposas napisał(a):
Wysyłam zdj podłączenia
Wyślij jeszcze raz. Wg tego poradnika: topic44.html
Próbowałeś wyświetlić cokolwiek? Nie używając funkcji rand()?

Autor:  Eposas [ 28 sie 2017, o 12:36 ]
Tytuł:  Re: Funkcja rand w języku C?

Nie chce mi sie wgrać nie jak dam obrazek, ale opisze jak mam podłączone, płytka startowa najnowsza i do anody od led mam podlączone do portB 0,1,2,3,4

Autor:  Marhef [ 28 sie 2017, o 13:08 ]
Tytuł:  Re: Funkcja rand w języku C?

A segmenty też masz podłączone? W miejscach zaznaczonych ramką i strzałką na screenie
Obrazek

Autor:  Eposas [ 28 sie 2017, o 13:20 ]
Tytuł:  Re: Funkcja rand w języku C?

Tak zapomniałem o tym też napisać, i oczywiście anody od 0-3 :), wcześniej pisałem że jak wgrywam projekt z ksiazki Mirka to działa normalnie więc nikłe szanse żeby coś źle było podłączone choć wszystko możliwe. Mi się wydaje że wina leży w kodzie

Autor:  Marhef [ 28 sie 2017, o 13:27 ]
Tytuł:  Re: Funkcja rand w języku C?

Brakuje mi jeszcze jednego: jak działa funkcja rand()?

Autor:  Eposas [ 28 sie 2017, o 13:38 ]
Tytuł:  Re: Funkcja rand w języku C?

jak wyczytałem i kolega jeden mowił to polega na losowaniu pseudolosowych liczb z jakiegoś zakresu, a ja chciałem losowac te liczby z tablicy

------------------------ [ Dodano po: 15 minutach ]

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

Autor:  Marhef [ 28 sie 2017, o 13:55 ]
Tytuł:  Re: Funkcja rand w języku C?

Ja pytam, jak działa Twoja funkcja rand(). W pliku main.c w 14. linijce w pierwszym listningu pierwszego posta masz
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli deklaracja funkcji rand(). A nie ma definicji tej funkcji. Więc jest to pusta funkcja?

EDIT:

Usuń tą linijkę i spróbuj jeszcze raz.
Jeżeli chcesz liczbę z zakresu 0 - 9, daj w kolejnych linijkach
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  Eposas [ 28 sie 2017, o 13:58 ]
Tytuł:  Re: Funkcja rand w języku C?

no właśnie jak czytałem na forach to nie mieli ani deklaracji int rand, tylko w jednym przypadku to było więc zastosowałem z myślą że pomoże.

------------------------ [ Dodano po: 2 minutach ]

Dalej nic nie działa, wyświetlacz nie włączył się nawet

------------------------ [ Dodano po: 6 minutach ]

Ja już jestem głupi :), dobra idę do pracy dlatego nie będę mógł odpisywać ale jak coś jeszcze znajdziecie to będę wdzięczny :)

Autor:  Marhef [ 28 sie 2017, o 16:52 ]
Tytuł:  Re: Funkcja rand w języku C?

I Tobie ten kod się skompilował?! Dobry jesteś :P
Znalazłem problem. Losowe wartości przypisujesz do zmiennych cy1, cy2, cy3 i cy4. Resztę załatwia oryginalna bluebookowa biblioteka.
Jest tylko jeden problem - każdorazowo, po resecie, wyświetla te same wartości. Gdzieś w czeluściach forumowych lochów był temat z próbą zrobienia generatora bardziej losowych liczb. Poszukaj, może będzie bardziej nieprzewidywalnie.

Autor:  Krystek [ 4 wrz 2017, o 15:42 ]
Tytuł:  Re: Funkcja rand w języku C?

Proponuję zrobić generator losowych liczb za pomocą przetwornika ADC wbudowanego w mikrokontroler :) Albo zwiększaj w przerwaniu zmienną o 1 i po naciśnięciu przycisku wyświetlaj ją w głównym programie wysyłając na 7 seg :)

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/