Arekadiusz Opublikowano 15 Czerwca 2012 Opublikowano 15 Czerwca 2012 Witam! Chcem sobie napisać skrypt losujący podaną ilość znaków z podanego przedziału. Czy ktoś może wie jak to zrobić bo ja nie mam pojęcia? Wiem tylko że do losowania służy funkcja rand() ale ja potrzebuję wylosować z podanego przedziału (cyfr i liter) podaną ilość znaków. Dzięki za pomoc!
Arekadiusz Opublikowano 15 Czerwca 2012 Autor Opublikowano 15 Czerwca 2012 ( rand() % ( max - min ) ) + min; Ten kod losuje 1 liczbę z przedziału liczb a mi chodzi o losowanie wielu znaków (ilość podana ze zmiennej) z podanych liczb i liter
Administratorzy gnysek Opublikowano 15 Czerwca 2012 Administratorzy Opublikowano 15 Czerwca 2012 ASCII -> liczby -> litery.
Arekadiusz Opublikowano 15 Czerwca 2012 Autor Opublikowano 15 Czerwca 2012 ASCII -> liczby -> litery. A jak tego użyć?
Tymon Opublikowano 15 Czerwca 2012 Opublikowano 15 Czerwca 2012 No lol. Proszę Cię. char znak = ( rand() % ( 'Z' - 'A' ) ) + 'A';
Arekadiusz Opublikowano 15 Czerwca 2012 Autor Opublikowano 15 Czerwca 2012 Aaa. To trzeba było tak od razu! Dzięki, na razie wszystko działa ;)
Administratorzy gnysek Opublikowano 15 Czerwca 2012 Administratorzy Opublikowano 15 Czerwca 2012 Zobacz w wiki co to jest ASCII i jakiej cyfrze odpowiada jaka litera. Albo sprawdź np. printf("%d", 69); printf("%c", 69); przepraszam, ze w C, ale C++ słabo znam :P
Platyna Opublikowano 15 Czerwca 2012 Opublikowano 15 Czerwca 2012 Zobacz w wiki co to jest ASCII i jakiej cyfrze odpowiada jaka litera. Albo sprawdź np. printf("%d", 69); printf("%c", 69); przepraszam, ze w C, ale C++ słabo znam :P W C++ też jest biblioteka stdio (cstdio) więc tu nie ma różnicy. ;)
Mati98Hautameki Opublikowano 16 Czerwca 2012 Opublikowano 16 Czerwca 2012 Masz tu cały kod ASCII #include <iostream> using namespace std; int main() { for(int z=-255; z<255; z++) { cout << z << " " << char(z) << "." << endl; } system("pause"); return 0; }
Arekadiusz Opublikowano 18 Czerwca 2012 Autor Opublikowano 18 Czerwca 2012 No lol. Proszę Cię. char znak = ( rand() % ( 'Z' - 'A' ) ) + 'A'; Użyłem tego kodu tylko że pojawił się taki problem: Gdy włączam mój program zawsze losuje się ten sam znak. Jak temu zaradzić?
Utermiko Opublikowano 18 Czerwca 2012 Opublikowano 18 Czerwca 2012 Dołącz #include <time.h> i na początku programu: srand(static_cast<int>(time(NULL))); Wtedy ziarno generatora pseudolosowych liczb ustawia się na czas, który masz w komputerze.
Arekadiusz Opublikowano 18 Czerwca 2012 Autor Opublikowano 18 Czerwca 2012 Gdy wpisuje ten kod podczas kompilacji pojawiają mi się dwa błędy: Style of function definition is now absolete. ) expected.
Utermiko Opublikowano 18 Czerwca 2012 Opublikowano 18 Czerwca 2012 //Spróbuj srand((int)time(NULL)); //lub srand(time(NULL));
PsichiX Opublikowano 18 Czerwca 2012 Opublikowano 18 Czerwca 2012 for(int z=-255; z<255; z++) DAFUQ? ASCII to 256 znaków od 0 do 255, a nie od -255 D:
Arekadiusz Opublikowano 19 Czerwca 2012 Autor Opublikowano 19 Czerwca 2012 //Spróbuj srand((int)time(NULL)); //lub srand(time(NULL)); Żadne z powyższych też mi nie działa :( Co robić?
Tymon Opublikowano 19 Czerwca 2012 Opublikowano 19 Czerwca 2012 Nauczyć się czytać. http://www.cplusplus.com/reference/clibrary/cstdlib/srand/
Mati98Hautameki Opublikowano 20 Czerwca 2012 Opublikowano 20 Czerwca 2012 DAFUQ? ASCII to 256 znaków od 0 do 255, a nie od -255 D: No ale działa. I jest ASCII.
Administratorzy gnysek Opublikowano 20 Czerwca 2012 Administratorzy Opublikowano 20 Czerwca 2012 Działa... wiesz, jak przyczepisz do samochodu z tyłu krowę i pojedziesz, to też można powiedzieć czy działa, pytanie, czy prawidłowo... bo jak sobie sprawdzisz jakie wartości char przyjmuje to raczej nie. Ani jakie wartości ma ASCII. A to, ze coś się wyświetla, to znaczy, ze ktoś przewidział, ze się taki ktoś jak Ty znajdzie :P
Arekadiusz Opublikowano 21 Czerwca 2012 Autor Opublikowano 21 Czerwca 2012 Nauczyć się czytać. http://www.cplusplus.com/reference/clibrary/cstdlib/srand/ Wpisuje srand ( time(NULL) ); według przykładu z tamtej strony ale nie działa. Próbowałem też innych możliwości z tamtej strony ale nic nie działa. Dodam jeszcze że piszę w programie C++ Builder. Może to ma jakieś znaczenie?
CrackGM Opublikowano 21 Czerwca 2012 Opublikowano 21 Czerwca 2012 Okej, ale wiesz że srand inicjuje tylko seeda? Musisz przed losowaniem dać srand i potem rand() % x
Arekadiusz Opublikowano 21 Czerwca 2012 Autor Opublikowano 21 Czerwca 2012 Okej, ale wiesz że srand inicjuje tylko seeda? Musisz przed losowaniem dać srand i potem rand() % x Początek programu: //--------------------------------------------------------------------------- #include <vcl\vcl.h> #pragma hdrstop #include <time.h></p><p>#include "Unit1.h" //--------------------------------------------------------------------------- #pragma resource "*.dfm" Tokno *okno; int ilosc=10; srand(time(NULL)); I gdzieś w środku: char znak = ( rand() % ( 'Z' - 'A' ) ) + 'A'; Podczas kompilacji pokazują się dwa błędy: 'time' cannot start a parametr declaration. ) expected.
Mati98Hautameki Opublikowano 21 Czerwca 2012 Opublikowano 21 Czerwca 2012 Tu macie całą tablicę ASCII (kolumna DEC) http://ascii-code.com/
Administratorzy gnysek Opublikowano 21 Czerwca 2012 Administratorzy Opublikowano 21 Czerwca 2012 I nigdzie nie ma tam wartości ujemnych.
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się