| |
|
|
p.specht
| Lo son gefinkelte Such- y Sortieralgorithmen, el neben simplen Suchvektoren auch el Inhalte el Datenfelder incluso berücksichtigen. Wenn un hombre z.B. una Telefonbuch aufschlägt en una Wort con "Z..." a suchen, se él vermutlich no vorne, no mittig, sonder más weit hinten a suchen beginnen. Algorithmen como z.B. "FastSearch" treffen en XProfan aber en zwei Problemas: Anders como en C++ oder en Ensamblador puede Cuerdas no rasch y simplemente como Zahlenwerte ausgelesen voluntad. El zweite Schwierigkeit stellt esta auch el en PCs verwendete "verkehrte" INTEL-Zahlenformat dar. Mag ser, daß lo como Tricks son, el me todavía no bekannt son. In Vorbereitung para el Fastsearch-Algorithmus (para vorsortierte, gleichverteilte Archivos) Yo me einstweilen folgendermaßen beholfen:
Título de la ventana "Distanzen zwischen String-Anfängen (erste 4 Signo) ermitteln."
'(DW) Demoware/Testware 2015-01 by P.Pájaro carpintero, Wien (AT); Ohne jede Gewähr!
Ventana de Estilo 24:Ventana 0,0-%maxx,%maxy-40:randomize
var n&=40
declarar stra$[n&-1],tmp$,i&,j&,vec&,su$,tmp&
imprimir "\n Ihr Basiswort (z.B. 1-4 Signo ihres Vornamens) Por favor,: ";
input su$:su$=lower$(su$)
imprimir "\n Generierung de ";n&;" alphabetischen Zufalls-Cuerdas el Longitud [1..8], ... ";
whileloop 0,n&-1:tmp$="":whileloop 1+rnd(6):tmp$=tmp$+chr$(97+rnd(26))
endwhile :stra$[&Loop]=tmp$:endwhile
Imprimir "\n el zwecks Überprüfbarkeit nun después de Stringdistanzwerten sortiert voluntad."
whileloop 0,n&-1:i&=&Loop
whileloop 0,n&-1:j&=&Loop
if ASC4(stra$[i&]) < ASC4(stra$[j&])' if stra$[i&] < stra$[j&] 'Sort-Test
tmp$=stra$[i&]:stra$[i&]=stra$[j&]:stra$[j&]=tmp$
endif
endwhile
endwhile
' Edición:
whileloop 0,n&-1:j&=&Loop
imprimir tab(3);chr$(34)+stra$[j&]+chr$(34);\
tab(14);" es de ";chr$(34)+su$+chr$(34);tab(35);str$(int( ASC4(stra$[j&])-ASC4(su$)));\
tab(50);" mögliche 4-Ketten lejos."
endwhile
waitinput
end
proc ASC4 :parámetros x$
'Stringwert el ersten vier ASCII-Signo ermittlen (passen en un Largo-Variable)
declarar x&',xl&:xl&=if(len(x$)<4,len(x$),4)
seleccionar if(len(x$)<4,len(x$),4)
caseof 0:x&=0
caseof 1:x&=byte(addr(x$),0)<<23
caseof 2:x&=byte(addr(x$),1)<<15 | byte(addr(x$),0)<<23
caseof 3:x&=byte(addr(x$),2)<<7 | byte(addr(x$),1)<<15 | byte(addr(x$),0)<<23
caseof 4:x&=byte(addr(x$),3)>>1 | byte(addr(x$),2)<<7 | byte(addr(x$),1)<<15 | byte(addr(x$),0)<<23
otherwise :imprimir "select error"
endselect :volver x&
ENDPROC
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 12.05.2021 ▲ |
|
|
|