Io ho strutturato cosi il codice... funziona *.*
questa è la pagina dei vocaboli e delle definizioni (quella da sostituire in qualche modo xD)
<?php
$vocaboli = array("Bit", "Hard disk", "Ram", "Linguaggio c");
$definizioni = array(
/*BIT*/ "Un bit è l'unità di misura dell'informazione, dall'inglese binary unit, definita come la quantità minima di informazione che serve a discernere tra due possibili alternative equiprobabili",
/*HARD DISK*/ "Un disco rigido, anche chiamato disco fisso o hard disk drive, è un dispositivo di memoria di massa che utilizza uno o più dischi magnetici per l'archiviazione dei dati.Il disco rigido è uno dei tipi di dispositivi di memoria di massa attualmente più utilizzati. È infatti presente nella maggior parte dei computer e anche in altri dispositivi elettronici, come ad esempio il PVR.",
/*RAM*/ "In informatica la memoria ad accesso casuale, acronimo RAM (del corrispondente termine inglese Random-Access Memory), è una tipologia di memoria informatica caratterizzata dal permettere l'accesso diretto a qualunque indirizzo di memoria con lo stesso tempo di accesso.",
/*LINGUAGGIO C*/ "Fu ideato nei Bell Laboratories della AT&T nel 1972 da Dennis Ritchie come evoluzione del linguaggio B di Ken Thompson usato per la scrittura dei primi sistemi operativi UNIX. Lo stesso Thompson nel 1970 si era a sua volta ispirato al linguaggio BCPL di Martin Richards, anch'esso pensato per scrivere sistemi operativi e software di sistema. La definizione formale si ha nel 1978 a cura di B. W. Kernighan e D. M. Ritchie. Nel 1983 iniziò il lavoro di definizione di uno standard da parte dell'American National Standards Institute, che rilasciò nel 1990 lo Standard ANSI C (ISO C89). Il C è tecnicamente un linguaggio di programmazione ad alto livello. Tuttavia, poiché esso mantiene evidenti relazioni semantiche con il linguaggio macchina e l'assembly, risulta molto meno astratto di linguaggi anche affini (appartenenti allo stesso paradigma di programmazione), come per esempio il Pascal. Per questo motivo, talvolta viene anche identificato con la locuzione (più ambigua) linguaggio di medio livello, se non addirittura (in modo certamente improprio) come macro-assembly, o assembly portabile.");
?>
Questa invece è la pagina per le ricerche e per la stampa:
<?php //inizio codice php
include("vocaboli.php"); //includo la pagina "vocabili.php"
$n=count($vocaboli); //calcolo il numero di parole presenti nel dizionario
$stringa=ucfirst(strtolower($_POST['parola'])); // strtolower($_POST['parola']); //solo la prima lettera della stringa sarà maiuscola
$vocaboli1=ordinamento_inserimento($vocaboli, $definizioni, $n);
$definizioni1=ordinamento_inserimento1($vocaboli, $definizioni, $n);
$indice=ricerca_binaria($vocaboli1, $stringa, $n); //effettuo la ricerca binaria
if($indice>=0) //se l'indice trovato è >=0 allora stampo il risultato
{
echo "<strong>$vocaboli1[$indice]:</strong> ";
echo "$definizioni1[$indice]<br>";
}
else
{
echo ("Mi dispiace ma la parola da te cercata non è presente nel nostro archivio. Segnalaci la parola così da poterla inserire al più presto."); //se la parola non c'è scrivo il relativo msg
}
?> </div>
<?php
//INIZIO FUNZIONE RICERCA BINARIA
function ricerca_binaria($vocaboli, $chiave, $len)
{
$primo=0;
$ultimo=$len;
while($primo<=$ultimo)
{
$mediano=($primo+$ultimo)/2;
if($chiave==$vocaboli[$mediano])
return $mediano;
else if($chiave<$vocaboli[$mediano])
$ultimo=$mediano-1;
else
$primo=$mediano+1;
}
return -1;
}
//FINE FUNZIONE RICERCA BINARIA
//INIZIO FUNZIONE ORDINAMENTO PER INSERIMENTO
function ordinamento_inserimento($vocaboli, $definizioni, $len)
{
for($i=1;$i<$len;$i++)
{
$el_da_ins=$vocaboli[$i];
$def_da_ins=$definizioni[$i];
$j=$i-1;
while ($j>=0 && $el_da_ins<$vocaboli[$j])
{
$vocaboli[$j+1]=$vocaboli[$j];
$definizioni[$j+1]=$definizioni[$j];
$j--;
}
$vocaboli[$j+1]=$el_da_ins;
$definizioni[$j+1]=$def_da_ins;
}
return $vocaboli;
}
//FINE FUNZIONE ORDINAMENTO PER INSERIMENTO
//INIZIO FUNZIONE ORDINAMENTO PER INSERIMENTO
function ordinamento_inserimento1($vocaboli, $definizioni, $len)
{
for($i=1;$i<$len;$i++)
{
$el_da_ins=$vocaboli[$i];
$def_da_ins=$definizioni[$i];
$j=$i-1;
while ($j>=0 && $el_da_ins<$vocaboli[$j])
{
$vocaboli[$j+1]=$vocaboli[$j];
$definizioni[$j+1]=$definizioni[$j];
$j--;
}
$vocaboli[$j+1]=$el_da_ins;
$definizioni[$j+1]=$def_da_ins;
}
return $definizioni;
}
//FINE FUNZIONE ORDINAMENTO PER INSERIMENTO
?>
ho usato 2 volte la funzione ordinamento perchè non ho idea di come creare un void function non avendo ancora un manuale sono andato per logica e così funziona, poi magari capendolo meglio lo modifico..
con l'uso di un file txt per le parole e le definizioni è possibile usare ancora questi codici??
Grazie per eventuali risposte