Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat] Skrypt losujacy cyfry, numery, numerki w przedziale wpisanych liczb
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
mThW
Witam serdecznie.

Myślę nad skryptem losującym numery, które nie będą się powtarzać w jakimś przedziale.. np 1-150.
(Skrypt muszę zdobyć na ocenę końcową 6 z informatyki, ponieważ wybieram się na profil inf-mat do liceum i nie mam rewelacyjnych ocen z matmy i angielskiego.)

Wygląd i działanie skryptu:

1. Przez wpisanie hasła mamy dostęp do wypełnienia pól:
Uczeń:
-Imię
-Nazwisko
-Klasa
-Liczba uczniów (do tej liczby skrypt ma losować numery i wykreślać je, by się nie powtórzyły w losowaniu [jak w totolotku;]])
2. Przed i po wpisaniu hasła, widzimy pod miejscem logowania tabele, w której znajdują się uczniowie z przydzielonym numerkiem, np.

Kod
Lp. | Nazwisko | Imię | Klasa | Wylosowany numerek | Data losowania
1.  | Kowalski | Jan  |  3 A  |         6          | 12.03.2008



Uczniowie posortowani w kolejności alfabetycznej, wg nazwiska.
3. Po wpisaniu ustawionego w skrypcie hasła, wypełniamy pola (pkt 1.) i naciskamy przycisk 'Losuj'.
4. Skrypt losuję numerek, po czym zapisuje dane, z pól wypisanych w (pkt 1.), które zostają zapisane gdzieś (nie wiem czy pliki txt czy MySQL) i wyświetlane w tabelce...

Skrypt jest potrzebny dla szkoły, ponieważ co roku odbywają sie egzaminy klas 3 (próbne i normalne), jak i próbne w klasach 2... Uczeń w zależności jaki wylosował numerek trafia do odpowiedniej klasy, by napisać egzamin. Nauczyciele nie mogą sami decydować, który uczeń gdzie ma się znajdować.



PS.
OD RAZU mówię, że nie jestem programistą i nie znam tego języka programowania. Bez owijania: szukam kogoś kto mi to napisze.

Szukałem już na forum, dużo osób pytało o takie działanie. Wyczytałem, że można użyć funkcji rand().

  1. <?php
  2. echo rand(0,150); //skrypt losuje od 0 do 150
  3. ?>


Ale numery będą się powtarzać..

Może to się przyda:
http://www.php.rk.edu.pl/w/p/podstawy-skladni-php/
Cytat
Pomiędzy nawiasami kwadratowymi wprowadzić musimy wyrażenie określające indeks tablicy, który chcielibyśmy odczytać. Możemy teraz pokusić się o napisanie skryptu losującego elementy:

  1. <?php
  2. $tablica = array(=> 5, 3, 8, 7, 9, 24, 15, 2, 19);
  3. echo 'Pod numerem X kryje się wartość '.$tablica[rand(0, 8)];
  4. ?>


(Do moda: jeżeli popełniłem jakiś błąd to proszę nie usuwać tematu, tylko w miarę cennego czasu, napisać mi o nim na pw a na pewno to poprawie :-)


Pozdrawiam i dziękuję z góry za pomoc.
pyro
jak dla mnie to dział "Gotowe rozwiązania" smile.gif
mThW
Nie wiem.. tutaj też widzę podobne tematy. Moderator to zrobi jak jest w nieodpowiednim dziale.

Czekam na odpowiedzi :-)

Pzdr.
LBO
Cytat(pyro @ 1.06.2008, 13:36:23 ) *
jak dla mnie to dział "Gotowe rozwiązania" smile.gif

Cytat
OD RAZU mówię, że nie jestem programistą i nie znam tego języka programowania. Bez owijania: szukam kogoś kto mi to napisze.

A mi sie wydaje, że raczej "Giełda Ofert" smile.gif
Cysiaczek
@pyro i @LBO - Jest przycisk "raportuj", z którego należy korzystać i to wystarczy - wstyd, żebyście jeszcze tego nie wiedzieli...

@mThW - Pokaż mi, gdzie niby tu widzisz tematy będące ofertami pracy za free? Ja nigdzie. Przenoszę na Giełda ofert -> Poszukuję i opatruję stosownym tagiem
sagittariuspl
hej, dla mnie to jest śmieszne - wiem nie powinienem komentować
ale jak się chce 6tke to trzeba coś umieć więcej, a nie żyć na gotowcach - żenada...

gdzie te czasy jak ja się specjalnie uczyłm c++ borlanda by dostać szóstkę...

wystarczy do tablicy dopisywać kolejne losowane liczby i jeżeli już liczba wylosowana jest w tablicy - losujemy do skutku
mThW
Cytat(sagittariuspl @ 3.06.2008, 22:45:29 ) *
wystarczy do tablicy dopisywać kolejne losowane liczby i jeżeli już liczba wylosowana jest w tablicy - losujemy do skutku


Ok, a co zrobisz jak bedzie wylosowanych 140 numerow i bedziesz potrzebowac wylosowac jeszcze 10, a skrypt bedzie Ci wyrzucal 140 razy wylosowane juz cyfry?
Taki program juz mamy, napisany w c++, ktory losuje, ale nieunikalnie...


Jezeli ktos moze pomoc, to powinien mi wystarczyc skrypt bez zapisow do tabeli... Czyli sam skrypt do unikalnego losowania numerow w przedziale wpisanych liczb do od 1 do 150.

Da rade ktos to napisac? Moge wrzucic reklame na www.aktivelife.pl a strona sie ciągle rozwija.
nospor
Cytat
Czyli sam skrypt do unikalnego losowania numerow w przedziale wpisanych liczb do od 1 do 150.

  1. <?php
  2. //tworzymy numerki
  3. $numerki = range(1,150);
  4.  
  5. //losujemy 10 numerkow
  6. $losowe = array_rand($numerki, 10);
  7.  
  8. //wyswietlamy
  9. foreach ($losowe as $num){
  10. echo $numerki[$num].'<br />';
  11. }
  12. ?>


Cytat
Moge wrzucic reklame na www.aktivelife.pl a strona sie ciągle rozwija.
To ja poprosze: http://nospor.pl smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.