Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Algoritmi - stringa di 12 cifre (lettere e numeri)!!!!!!!!!!!!
Forum - Algoritmi - stringa di 12 cifre (lettere e numeri)!!!!!!!!!!!!

Avatar
apprendista (Normal User)
Newbie


Messaggi: 5
Iscritto: 19/06/2011

Segnala al moderatore
Postato alle 23:41
Domenica, 19/06/2011
salve sono nuovo di qui quindi non so se sn nel posto giusto pero volevo sapere una cosa.
E da un po di tempo che sto studiando il pascal allora volevo provare a fare un programma x generare stringhe di 12 cifre tra numeri e lettere e volevo sapere come impostare il programma grx!!!!!!!!!

----------------------------------------------------------------------------------

scusate non so ancora utilizzare sto forum cmq il commento non lo potevo continuare quindi lo continuo qui!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

codice ascii corrispondente.
dopo che mi da il numero a caso aggiungo alla prima variabile 1 e ripeto il tutto fino a quando questa non e uguale a 12 questo mi funziona solo ke quando ripete questo passaggio al momento ke gli dico di darmi il numero a caso mi da sempre lo stesso per cio spuntano 12 numeri tutti uguali.

potresti aiutarmi???????

Ultima modifica effettuata da apprendista il 21/06/2011 alle 11:15
PM
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Up
3
Down
V
Segnala al moderatore
Postato alle 0:02
Lunedì, 20/06/2011
Il linguaggio da usare è secondario, ma una buona base.
Hai già qualche idea?
Come faresti tu ?
Butta giù qualche idea, parliamone, ci sono diverse strade possibili, vediamo cosa riusciamo a tirare fuori
G.

gia avevo in mente un idea.per prima prendo una variabile e la faccio valere 0 poi un'altra variabile attribuisco i valori da 0 a 9 e da 97 a 122 e dico al computer di darmi un numero a caso tra questi se il numero e tra 0 e 9 scrivi il numero se e compreso tra 97 e 122 allora scrivi il codice ascii - apprendista - 21/06/11 11:08
scusa per la mia ignoranza ho sbagiato ho inviato il comento a meta perche non lo potevo continuare l'altra parte si trova su ne mio mex iniziale - apprendista - 21/06/11 11:17


Ibis redibis non morieris in bello
PM
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Up
1
Down
V
Segnala al moderatore
Postato alle 13:46
Martedì, 21/06/2011
Probabilmente ti manca l'istruzione Randomize e tutto dovrebbe funzionare.
Ti metto un programmino con 2 diverse soluzioni al tuo problema.
Con la soluzione 1 mi definisco sia i numeri sia i caratteri da selezionare, mentre la seconda soluzione si basa sulla tabella ascii
Il codice è poco commentato, ma credo che sia abbastanza chiaro.

Codice sorgente - presumibilmente Delphi

  1. program Numeri;
  2.  
  3. uses
  4.   SysUtils;
  5. type
  6.   aNumeri = array [0..9] of integer;
  7.   aLettere = array [0..9] of Char;
  8.  
  9. Const
  10.   aTotNumeri:aNumeri = (0,1,2,3,4,5,6,7,8,9);
  11.   aTotLettere:aLettere = ('A','B','C','D','E','F','G','H','I','H');
  12.   CS_NUMERI = 12;
  13. Var sStringa: String[CS_NUMERI];
  14.     y, z: Integer;
  15. Function genera(n:Integer): Integer;
  16. begin
  17.   Result := Random(n)+1;
  18. end;
  19.  
  20. Procedure Soluzione1;
  21. Var x: Integer;
  22.     nRand: Integer;
  23. begin
  24.     for x := 1 to CS_NUMERI do  // per 12 volte
  25.     begin
  26.       nRand := Genera(1);
  27.       if nRand=0 then  //numero
  28.         sStringa:=sStringa+(IntToStr(aTotNumeri[Genera(High(aTotNumeri))]))
  29.       else
  30.         sStringa:=sStringa+(aTotLettere[Genera(High(aTotLettere))])
  31.     end;
  32.     sStringa := IntToStr(y)+') '+ sStringa;
  33.     Writeln(sStringa);
  34.     sStringa := '';
  35. end;
  36.  
  37. Procedure Soluzione2;
  38. Var x: Integer;
  39.     nRand: Integer;
  40. begin
  41.     x:=0;
  42.     while not (x=CS_NUMERI) do  // x 12 volte
  43.     begin
  44.       nRand:= Genera(122); // scrivo solo se sono nel range
  45.       if ((nRand in [48..57]) or (nRand in [65..90]) or (nRand in [97..122])) then
  46.       begin
  47.         sStringa:=sStringa+Chr(nRand);
  48.         inc(x);
  49.       end;
  50.     end;
  51.     sStringa := IntToStr(y)+') '+ sStringa;
  52.     Writeln(sStringa);
  53.     sStringa := '';
  54. end;
  55.  
  56. begin
  57.   Randomize;                  
  58.   Writeln('Ripetizioni');
  59.   Readln(z);
  60.   Writeln('-----------------------');
  61.   Writeln('***** Soluzione 1 *****');
  62.   for y := 1 to z do
  63.     Soluzione1;
  64.   Writeln('------------------------------');
  65.   Writeln('***** Soluzione 2 *****');
  66.   for y := 1 to z do
  67.     Soluzione2;
  68.   readln;
  69. end.


scusa ma nn ho cpt nnt il delphi nn lo conosco - apprendista - 21/06/11 14:00
E' pascal, il forum ha scritto presumibilmente Delphi - Goblin - 21/06/11 14:07
a nn me ne ero accorto cmq sn riuscito a farlo grx lo stesso!!! - apprendista - 22/06/11 13:17


Ibis redibis non morieris in bello
PM