Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2004.12.12;
Descargar: [xml.tar.bz2];

abajo

Matrices dinámicas Encontrar ramas similares


Tazik   (2004-11-28 15:48) [0]

Escribo la solución de dicho problema en D7 (en la consola): le doy un número a la computadora y ese al dividir un segmento por dos anidados lo encuentra. Yo uso una matriz dinámica (números) como un fragmento de yaazov. Sus bordes (arriba - arriba y abajo - abajo) entro durante la ejecución del programa. Luego entro en el bucle para que se llene la matriz y al mismo tiempo miro el relleno:
para I: = bot to top do comenzar números [i]: = i; WriteLN (números [i]); fin
Al final, cuando pregunto algunas caras, mi último elemento de la matriz se llena con un gran número:

output:
1
2
...
15
16
874353445

algo como esto ¿Cómo evitarlo?
Y es posible registrarse de esta manera:
SetLength (números, 0); SetLength (números, longitud (FstArr)); Números: = FstArr;
FstArr es la mitad de la matriz de números. Hasta este punto, determiné la longitud de FstArr igual a la mitad de los números.
Gracias!



begin...end ©   (2004-11-28 16:13) [1]

> Tazik (28.11.04 15: 48)

> finalmente, cuando pregunto algunas facetas, tengo la última
> elemento de matriz se llena con un gran número

Quizás yendo más allá de la matriz. Habilite la comprobación de rango en la configuración del compilador.

> ¿Y es posible registrarse como:
>
> SetLength (números, 0);
> SetLength (números, longitud (FstArr));
> Números: = FstArr;

Puedes, pero ¿qué quieres lograr?



raidan ©   (2004-11-28 16:42) [2]

> Tazik (28.11.04 15: 48)
El hábito de expresar sus pensamientos claramente y revisar la ortografía con puntuación en Word le dará un efecto mucho mayor (y número de respuestas) que arrojar sus problemas con un montón de "de todos modos".



begin...end ©   (2004-11-28 17:33) [3]

> Tazik (28.11.04 15: 48)

Según tengo entendido, se enfrenta a la tarea de encontrar un número en una serie de números ordenados en orden ascendente dividiéndolos por la mitad. Si es así, no es necesario crear nuevas matrices dividiendo las antiguas. Es suficiente trabajar con variables que contienen los límites actuales de la matriz izquierda y derecha.

Aquí está una de las soluciones (lejos de ser la mejor):

var
Números: conjunto de enteros;
Número: entero;
Izquierda, derecha, medio: entero;

comenzar
{Rellenar matriz}
{...}
Izquierda: = bajo (números);
Derecha: = Alto (Números);
si bien es cierto
comenzar
Mid: = (Izquierda + Derecha) div 2;
si Números [Medio] <Número entonces
Izquierda: = Media
de lo contrario, si Numbers [Mid]> Number entonces
Derecha: = Media
otra cosa
Romper
fin
fin.

Después del final del ciclo, la variable Mid contendrá el índice del número deseado en la matriz. Naturalmente, el ciclo puede terminar solo si el número deseado realmente está en la matriz. Además, esta opción es adecuada para números enteros, pero no es adecuada, por ejemplo, para números reales, porque en el caso de estos últimos una comparación simple no es suficiente.

PD Y escucha a [2].



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2004.12.12;
Descargar: [xml.tar.bz2];

arriba





Memoria: 0.56 MB
Tiempo: 0.055 c
9-1092392415
Monolife
2004-08-13 14:20
2004.12.12
La función funciona extraña ...


4-1098727684
Anti
2004-10-25 22:08
2004.12.12
Trabajar con servicios


9-1090249442
maestro de descanso
2004-07-19 19:04
2004.12.12
Megamaze


14-1100871966
Sh-k
2004-11-19 16:46
2004.12.12
Actualizar aplicaciones en la red local.


8-1094629162
dedMazDie
2004-09-08 11:39
2004.12.12
Cargando parte de la imagen





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish French
gallego georgiano Alemán Griego criollo haitiano Hebreo hindi Húngaro islandés Indonesian irlandés Italiano Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese Rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español