Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Losowa Liczba
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
punkers
Prosze o podanie kodu w js aby losowała sie liczba od 1 - 100
Paul
Pisalem kiedys taki skrypt - podejrzyj sobie kod.
  1. <title>Skrypt losujący liczby naturalne - plusowe i minusowe</title>
  2. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" lang="pl">
  3. <script type="text/javascript">
  4. function start(){
  5. a = idiot();
  6. if(a == true){
  7. losuj();
  8. }
  9. }
  10. function idiot(){
  11. od = document.fm.od.value;
  12. doo = document.fm.doo.value;
  13. ilosc = document.fm.ilosc.value;
  14. errors= '';
  15. if(isNaN(od)){
  16. errors += '>> Pole od ma zawierac LICZBY\n\n';
  17. }
  18. if(isNaN(doo)){
  19. errors += '>> Pole do ma zawierac LICZBY\n\n';
  20. }
  21. if(isNaN(ilosc)){
  22. errors += '>> Pole ilosc ma zawierac LICZBY\n\n';
  23. }
  24. if(new Number(doo) <= new Number(od)){
  25. errors += '>> Wartosc pola od ma byc mniejsza od pola do\n\n';
  26. }
  27. if(errors != ''){
  28. alert(errors);
  29. return false;
  30. }else{
  31. return true;
  32. }
  33. }
  34. function losuj() {
  35. od = new Number(document.fm.od.value);
  36. doo = new Number(document.fm.doo.value);
  37. ilosc = new Number(document.fm.ilosc.value);
  38. warstwa = document.getElementById('warstwa2');
  39. warstwa.innerHTML = '';
  40. wynik = new Array();
  41. wyniki = new Array();
  42. wyniki2 = new Array();
  43. if(Math.abs(od) != od){
  44. przedzial = Math.abs(doo)-od+1;
  45. }else{
  46. przedzial = doo;
  47. }
  48. for(i=0; i <= przedzial; i++){
  49. if(i <= doo){
  50. wyniki[i] = 0;
  51. }
  52. if(Math.abs(od) != od && new Number('-'+i) <= doo){
  53. wyniki[new Number('-'+i)] = 0;
  54. }
  55. }
  56. for(i=0; i < ilosc; i++){
  57. if(Math.abs(od) != od){
  58. los1 = Math.abs(od)+doo;
  59. los2 = Math.round(Math.random() * (los1+1)+0.5)-1;
  60. wynik[i] = los2-Math.abs(od);
  61. }else{
  62. los1 = doo-od;
  63. los2 = Math.round(Math.random() * (los1+1)+0.5)-1;
  64. wynik[i]= los2+od;
  65. }
  66. wynik[i]= new Number(wynik[i]);
  67. }
  68. for(i=0; i <= ilosc; i++){
  69. wyniki[wynik[i]]++;
  70. wyniki2[wynik[i]] = new Number(wyniki[wynik[i]]*100/ilosc);
  71. }
  72. lay = '';
  73. for(i=od; i < wyniki.length; i++){
  74. if(wyniki[i] == 0){
  75. wyniki2[i] = 0;
  76. }
  77. if(wyniki[i] == undefined){
  78. break;
  79. }
  80. lay += '<tr><td align="right">'+i+'</td><td align="right">'+wyniki[i]+'</td><td align="right">'+wyniki2[i]+'%</td><td width="60%" height="100%"><table cellspacing="0" width="100%" class="bezmarg" height="100%" border="0" cellpadding="no"><tr><td class="bezmarg" height="100%" width="'+wyniki2[i]+'%" bgcolor="#66CC99"></td><td height="100%" class="bezmarg" width="'+new Number(100-wyniki2[i])+'%" bgcolor="#C8C8C8"></td></tr></table></td></tr>';
  81. }
  82. warstwa.innerHTML += '<table border="0" cellspacing="0" cellpadding="0" align="center" class="small"><tr><td> &nbsp;Dana liczba &nbsp;</td><td>&nbsp; Ilość wystąpień&nbsp; </td><td> &nbsp;Procent wystąpień&nbsp; </td><td align="center"> Wykres sluplowy:</td></tr>'+lay+'</table>';
  83. if(document.fm.htm.checked){
  84. alert(warstwa.innerHTML);
  85. }
  86. }
  87. <style type="text/css">
  88. .a {font-family:Verdana; font-size:10pt;}
  89. .small {font-family:Verdana; font-size:7pt;border: solid white 1px;border-collapse: collapse;}
  90. .small td{border: solid white 1px;}
  91. .bezmarg {margin-top: 0px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px; padding: 0px; border-collapse: collapse; border: solid #C8C8C8 1px;}
  92. <basefont class="a"></head>
  93. <body bgcolor="#0099FF" text="#FFFFFF" class="a">
  94. <center><table class="a"><tr><td align="right"><b>Opis:</b></td><td align="right">Skrypt losujący liczby naturalne - plusowe i minusowe.</td></tr></table></center><form name="fm" action="javascript: void start();">
  95. <table class="a" style=""><tr><td>Przedział:</td><td><input type="text" value="1" maxlength="7" name="od"> do</td><td><input type="text" maxlength="6" value="6" name="doo"> </td></tr><tr><td>Ilość cykli:</td><td><input type="text" maxlength="10" value="10" name="ilosc"></td><td align="right"><input type="checkbox" name="htm">Pokaz HTML</td></tr><tr><td colspan="3" align="right"><input type="submit" value="Losuj"></td></tr></table><br>Wyniki:<br><br><div id="warstwa2"></div>
  96. </form>
  97. </body>
  98. </html>


PS. Wyrazenie "Prosze o podanie kodu" jakos mi nie pasuje... Dlatego nie podalem az tak na tacy tongue.gif
punkers
dwa razy SZKODA
a)szkoda że niepokazałes dokąłdnie o to co mi chodziło
b)szkoda że neidziałą .. to co napsiałeś
Paul
Ten kod zawiera to co potrzebujesz - przejrzyj dokladnie funkcje losuj(). Pozatym sprawdzalem 3x czy dziala - i dziala pod IE6 i Mozilla 1.6. Teraz wlasnie sprawdzilem Opere - nie dziala - moj blad, ale nie chce mi sie tego poprawiac.
punkers
mam IE 5.0
i neidziała winksmiley.jpg
Paul
To przejdz na wlasciwa strone mocy i zainstaluj Mozille lub Mozille Firefox... winksmiley.jpg
zYm3N
TO samo powiesz wszystkim użytkownikom przeglądarek IE odwiedzających jego stronę? :-))
Paul
Chodzilo mi poprostu oto, zeby sam zrobil to co ja teraz tu podalem... Bylem przekonany, ze "jadro" wyzej wymienionego skryptu bedzie wszedzie dzialac no i nie mylilem sie... Testowane: IE6, Opera 7.23, Mozilla 1.6

  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" lang="pl">
  2. <script type="text/javascript">
  3. function losuj(od, doo) {
  4. if(Math.abs(od) != od){
  5. los1 = Math.abs(od)+doo;
  6. los2 = Math.round(Math.random() * (los1+1)+0.5)-1;
  7. wynik = los2-Math.abs(od);
  8. }else{
  9. los1 = doo-od;
  10. los2 = Math.round(Math.random() * (los1+1)+0.5)-1;
  11. wynik= los2+od;
  12. }
  13. return new Number(wynik);
  14. }
  15. </head>
  16. <body><script type="text/javascript">document.write(losuj(1,100));</script>
  17. </body>
  18. </html>
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.