Red de conocimiento informático - Conocimiento del nombre de dominio - Buscamos urgentemente información sobre el grupo de popularización de la escuela secundaria pascal

Buscamos urgentemente información sobre el grupo de popularización de la escuela secundaria pascal

Prueba preliminar NOIP Charla 1 Preguntas de opción múltiple

El conocimiento es la base, la habilidad es lo más importante

Hay tres puntos de conocimiento en la prueba preliminar NOIP: Conocimientos Básicos de Computación, operaciones informáticas básicas y conocimientos básicos de programación. Específicamente: las preguntas de opción múltiple evalúan algunos conocimientos informáticos básicos, operaciones básicas y algunas estructuras de datos básicas y algoritmos básicos en programación, mientras que las preguntas para completar espacios en blanco prestan más atención a las habilidades (especialmente estructuras de datos como colas, pilas y árboles binarios, problemas matemáticos y método de inducción, secuencia y razonamiento lógico, etc., leer el programa y escribir los resultados de ejecución prueban la comprensión y el seguimiento del programa, centrándose en la capacidad de análisis y razonamiento. Las cuatro preguntas en los programas de lectura a menudo tienen un cierto nivel. Los programas presentados en el examen no son complicados y el significado de las declaraciones es fácil de entender. Sin embargo, los concursantes con buena comprensión siempre pueden comprender rápidamente las ideas de diseño del programa. y encuentre la respuesta correcta. La respuesta es que los estudiantes que imitan mecánicamente las computadoras y calculan manualmente los resultados paso a paso a menudo lo hacen muy lentamente, lo que resulta en tiempo insuficiente y errores fáciles. Mejorar el programa es probar la capacidad de programación; cómo programar en condiciones de algoritmos y estructuras de datos claros. Los programas de lectura y su mejora deben mejorarse en el estudio diario. Lea, discuta y estudie periódicamente los excelentes programas de otras personas para mejorar su propia comprensión y velocidad. Experiencia en resolución de problemas de varios tipos de preguntas (tomando como ejemplos las preguntas de los exámenes de 2002 y 2001) Preguntas de opción múltiple (30 puntos = 20*1,5)

Generalmente es más fácil calificar, así que no te lo pierdas. ¡él!

La mayor parte del conocimiento en programación se aprende en la enseñanza ordinaria en el aula de informática o en actividades extracurriculares. Se recomienda buscar preguntas del Examen Nacional de Rango de Computación (Nivel 1 y Nivel 2) para practicar, que generalmente. no excede el nivel 2 de conocimiento, el conocimiento debe revisarse sistemáticamente. El nuevo plan de estudios y los exámenes de los últimos dos años ya no evalúan DOS, pero los jugadores con experiencia en DOS pueden tener una ligera ventaja porque algunas preguntas se pueden juzgar según la experiencia. Además, en el proceso de desarrollo a un nivel superior, todavía se necesitan los conocimientos y comandos de DOS necesarios. Distribución: 5-6 conocimientos básicos de estructuras de datos o algoritmos (¡¡¡más para el grupo de secundaria!!!);

Charla preliminar 2 de NOIP Completa los espacios en blanco

Rellena los espacios en blanco (alrededor de 15 puntos, Preguntas 2-3)

Esta parte de las preguntas tiene requisitos matemáticos más altos y, a menudo, prueba problemas matemáticos (como transformaciones algebraicas, combinaciones, estadísticas introductorias, etc.), secuencia (generalmente prueba sobre recursividad, recursividad, inducción, etc.), también se prueban algunos conocimientos de algoritmos y estructuras de datos (como colas, pilas, árboles binarios); Te sugiero que dediques más tiempo a hacerlo y trates de hacerlo bien.

1. La dirección de la matriz A es 20000, entonces la dirección de A es: _______________. Si se almacena en la columna principal, esta es: _______________.

Respuesta: Supongamos que la primera dirección de la matriz es El número de filas anteriores * el número de columnas en cada fila (el número de serie en esta fila) * la longitud de la primera dirección de cada elemento

Entonces: X=13340 Usando la fórmula anterior, no es difícil calcular: Dirección de A[60, 90]: 33340

Almacenamiento de prioridad de columna, siempre que la fórmula anterior sea ligeramente modificado, el resultado se abrevia. Se examinó el método de almacenamiento de la matriz en la estructura de datos. También puedes probar el caso en el que el tipo base de la matriz es registro, y puedo hacerte la misma pregunta o preguntarte cuánto espacio ocupa.

2. (Grupo de escuela secundaria de 1998) Suponga que el estado inicial de la pila S está vacío y que hay una secuencia de cinco elementos {1, 2, 3, 4, 5}. , la pila S Realice las siguientes operaciones en secuencia (comenzando desde 1 en la secuencia, sin empujar después de hacer estallar): empujar a la pila, empujar a la pila, empujar a la pila, hacer estallar a la pila, empujar a la pila , sacar a la pila, empujar a la pila La secuencia de elementos que se extraerán de la pila es: _________, el valor del puntero en la parte superior de la pila es ______ y ​​el elemento en la parte superior de la pila es: ____________________.

Respuesta: La secuencia emergente es {3, 4}, el valor del puntero en la parte superior de la pila es 3 y el elemento en la parte superior de la pila es 5. Examinó la pila en la estructura de datos. ¡También puedes realizar la prueba combinando pilas y colas! Las siguientes preguntas:

3. Por ejemplo, en el grupo de secundaria de 2002: Supongamos que el estado inicial de la pila S y la cola Q está vacío. Los elementos e 1, e 2, e 3, e 4, e 5 y e 6 pasan a través de la pila S en secuencia. Después de que un elemento sale de la pila, ingresa a la cola Q. Si el orden de eliminación de la cola es e 2, e 4, e 3, e 6, e 5, e 1, la capacidad de la pila S debe ser al menos ______________.

Respuesta: Son 3.

4. (Grupo de escuela secundaria en 2000) Supongamos que el rango de subíndice de la matriz en la cola circular es 1...n, y sus punteros de cabeza y cola son f y r respectivamente, entonces el número de sus elementos es: ____________________.

Respuesta: (r-f n) mod n examina colas en estructuras de datos.

5. Expresiones infijas, expresiones de prefijo y expresiones de sufijo (grupo de secundaria de 1997)

(1) Expresiones infijas conocidas: A B*C/D

¿Encontrar su expresión de prefijo y expresión de sufijo?

(2) Expresión de prefijo conocida: △A*B△C {Nota △ representa el signo negativo del operador unario, es decir, △A representa -A}

Encuentra su ¿Centrar expresiones infijas y expresiones postfijas?

Respuesta: La expresión infija es un recorrido en orden, la expresión de prefijo es un recorrido en preorden y la expresión postfija es un recorrido en postorden.

Dibuja un árbol de expresión (binario). Primero busque el signo (,-) de derecha a izquierda (no busque el símbolo entre paréntesis, si lo encuentra, divida las partes izquierda y derecha del símbolo en dos partes). árbol, el lado izquierdo es el subárbol izquierdo y el lado derecho es el subárbol derecho. Si no se encuentra, busque (*, /) y realice la misma operación. Si aún no se puede encontrar, solo quedan números o corchetes, entonces se pueden eliminar los corchetes.

El resultado de (1): A*B/CD; ABCD/*

Primero puedes ver △A como un todo y luego descomponer △A.

Los resultados de (2): (-A) B* (-C); A△BC△* examinaron el árbol de expresión en la estructura de datos.

6. (Grupo de secundaria de 1998) Dada una secuencia U1, U2, U3...Un..., a menudo se puede encontrar un valor K mínimo y K números a1, a2,... , ak, de modo que la secuencia a partir de un determinado elemento satisfaga: U(n k)=a1*U(n k-1)+a2*U(n k-2)...+akUn (Fórmula A)

Por ejemplo, en la secuencia 1, 1, 2, 3, 5... se puede encontrar que cuando K=2, a1=1, a2=1, a partir del 3er ítem (Ngt; = 1 ) satisface:

U(n 2)=U(n 1) + Un

Pruebe la secuencia logarítmica 1^3, 2^3, 3^3,..., N ^3,..., encuentre K y a1, a2,...ak, de modo que se establezca la fórmula A.

Respuesta: Para resolver la ecuación, primero suponga K=2 y enumere el sistema de ecuaciones:

a1*23 a2*13=33

a1* 33 a2* 23=43

El sistema de ecuaciones anterior no tiene solución entera. Supongamos K=3 nuevamente y enumere el sistema de ecuaciones:

a1*02 a2*12 a3*22=32

a1*12 a2*22 a3*32=42

a1*22 a2*32 a3*42=52

La solución entera de la ecuación anterior es: a1=1, a2=-3, a3=3, en este momento K= 3. La esencia es tomar un examen de matemáticas.

7. (Grupo de secundaria de 1998) Dado el recorrido en orden de un árbol binario: DBGEACHFI y el recorrido posterior al orden: DGEBHIFCA, dibuje este árbol binario.

8. (Grupo de secundaria en 1996) El siguiente es un árbol binario que utiliza las características de un árbol binario completo y se almacena en una tabla de secuencia. Los datos del nodo son de tipo carácter (el nivel del nodo es). de pequeño a grande, y la misma capa de izquierda a derecha). Almacenar en orden de derecha, # representa un nodo vacío, @ representa el final del almacenamiento de datos).

Nodo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Datos A B C # # D E # # # # # G F @

Por favor Dibuja el árbol binario correspondiente.

Respuesta: Los diagramas de las dos preguntas anteriores son los siguientes: La esencia de las dos preguntas anteriores es probar el árbol binario en la estructura de datos. ¡También pruebo a menudo el recuento de árboles binarios! Las siguientes preguntas:

9. Por ejemplo: (Grupo de escuela secundaria en 2000) Se sabe que el resultado de atravesar un árbol binario en orden es: abc Pregunte: ¿Cuántas formas diferentes de árboles binarios pueden obtener este resultado transversal y dibuje estos árboles binarios?

Respuesta: 5 tipos, las formas son las siguientes:

10. (Grupo de escuela secundaria de 1999) En la estructura de directorios del disco, llamamos grado al número de directorios asociados con un determinado subdirectorio. Por ejemplo, la siguiente imagen

Esta imagen expresa la estructura de directorios de la unidad A: D1, Dll,..., D2 representan los nombres de los subdirectorios. Aquí, el grado del directorio raíz es 2, el grado del subdirectorio D1 es 3, el grado del subdirectorio D11 es 4 y los grados de D12, D2, D111, D112 y D113 son todos 1. Independientemente del nombre del subdirectorio, la estructura de árbol se puede ilustrar simplemente de la siguiente manera:

Si sabe que en la estructura de directorios de un disco, hay dos subdirectorios con grado 2 y grado 3, hay 1 subdirectorio de, y hay 3 subdirectorios con grado 4.

Pregunta: ¿Cuántos subdirectorios tienen grado 1?

Respuesta: Una forma es hacer un dibujo; además, se puede deducir en función de la propiedad de que el grado de entrada = el grado de salida de todo el árbol (porque cualquier borde asociado conecta dos nodos) , excepto para el nodo raíz El grado de entrada de cada nodo es 1, por lo que el grado de entrada total = 1*x 1*2 1*1 1*3-1 el grado de salida de cada nodo de hoja es 0, y el grado de salida del nodo de rama es Grado -1, el grado de salida del nodo raíz es su grado, por lo que el grado de salida total = 0*x (2-1)*2 (3-1)*1 ( 4-1)*3 1; calcular: x =9. Se examinan el concepto y las propiedades de "grado" en la estructura de directorios y la estructura de árbol en las computadoras.

11. (Grupo de escuela secundaria de 1998) Utilice la matriz de adyacencia/lista de adyacencia para representar el siguiente gráfico dirigido/no dirigido (omitido). Se examina la representación de gráficos en estructuras de datos.

12. (Escuela Secundaria 1999) Según el teorema de Nocomachns, el cubo de cualquier entero positivo n debe expresarse como la suma de n números impares consecutivos.

Por ejemplo:

13=1

23=3 5

33=7 9 11

43 =13 15 17 19

Aquí, si se llama al número impar más pequeño en cada fórmula

Respuesta: X=n*(n-1) 1 ¡Pon a prueba tus habilidades de álgebra y recursividad!

13. (Grupo de secundaria en 2000) Hay una escalera con n escalones. En cada escalón, alguien puede tomar 1 nivel, 2 niveles o 3 niveles. La fórmula recursiva se utiliza para indicar que alguien comienza desde abajo. subir todas las escaleras.

Por ejemplo: cuando n = 3, *** tiene 4 formas de moverse, a saber, 1 1 1, 1 2, 2 1, 3.

Respuesta: Hay dos métodos: uno es "adivinar" y "inventar", a partir del n = 1, 2, 3 específico..., solo se puede calcular de manera relativamente simple y fácil. cometer errores; el otro es usar Para la derivación usando matemáticas combinatorias e inducción, generalmente se supone que F (n) = a*F(n-1) b*F(n-2) c*F(n-3). .., y luego calcula a, b, c... Termina hasta que un cierto coeficiente = 0, y luego lo sustituye en la fórmula.

F (1) = 1 F (2) = 2 F (3) = 4

F (N) = F (N-3) + F (N - 2) + F (N-1) (N≥4)

14. (Grupo de secundaria en 2000) Hay un cuadrado rectangular de 2 × n y se usa una ficha de dominó de 1 × 2 para llenar el cuadrado. Por ejemplo, cuando n=3, es una cuadrícula de 2×3. En este momento, se usa una ficha de dominó de 1 × 2 para cubrir el cuadrado. Hay 3 formas de pavimentarlo:

Intente encontrar el número total de métodos de pavimentación para cualquier n (ngt; 0) dado. Fórmula de recursividad.

Respuesta: F(1)=1 F(2)=2

F(n)=F(n-2) F(n-1)(n≥3) ¡Las dos preguntas anteriores examinan la relación recursiva entre el principio de suma inductiva y el principio de multiplicación! Este es un problema común en los últimos años.

15. (Grupo de escuela secundaria de 2002) Alinee N bolas rojas y M bolas amarillas. Por ejemplo: N=2, M=3 puede obtener los siguientes 6 arreglos: rojo, rojo, amarillo, amarillo, amarillo, rojo, amarillo, rojo, amarillo, rojo, amarillo, amarillo, rojo, amarillo, amarillo, rojo, amarillo , amarillo, amarillo, rojo, amarillo, rojo, amarillo, amarillo, amarillo, rojo, rojo.

Pregunta: ¿Cuántos arreglos diferentes hay cuando N=4, M=3? (No es necesario enumerar cada arreglo)

Respuesta: ¡35 permutaciones, combinaciones y estadísticas de probabilidad!

16. (1999 High School Group) define Ln como el número máximo de áreas que se pueden determinar con n rectas en un plano.

Por ejemplo: cuando n=1, L1=2, consideración adicional, usando n líneas rectas dobladas en ángulos (cualquier ángulo), colocadas en un plano, ¿cuál es el número máximo de áreas Zn que se pueden determinar? Por ejemplo: cuando n=1, Z1=2 (como se muestra en la siguiente figura)

Cuando se proporciona n, escriba la siguiente expresión:

1 Ln = ______________< / p>

2 Zn = _______________

Respuesta: La esencia de esta pregunta es encontrar el número máximo de áreas divididas por una línea recta o una polilínea en un plano. Considere dos aspectos:

(1 ) Encuentra el número máximo de áreas que se pueden determinar con n rectas en un plano;

n=1, L1=2, F(1)=2

n=2, L2=4, F(2)=F(1) 2

n=3, L3=7, F(3)=F(2) 3

n=4, L4=11, F(4)=F(3) 4

……

Entonces, F(n)=F(n-1) n

Suma las n ecuaciones anteriores a izquierda y derecha, y simplifica para obtener: F(n)=2 2 3 4... n

Es decir: L(n)= n*(n 1)/ 2 1

(2) Encuentra el número máximo de áreas que se pueden determinar usando n polilíneas en un plano;

n=1, Z1=2 , F(1)=0 2

n=2, Z2=7, F(2)=1*(2*2-1) 4

n=3, Z3 =16, F(3) =2*(2*3-1) 6

n=4, Z4=29, F(4)=3*(2*4-1) 8

……

Entonces, F(n)=(n-1)*(2*n-1) 2*n

Es decir: Z(n )=(n-1)* (2*n-1) 2*n ¡Combinatoria de inducción geométrica!

17. (Grupo de secundaria en 1998) Hay 50 estudiantes en una clase. A cada estudiante se le entrega una tarjeta de encuesta con los títulos de tres libros a, byc escritos en ellos. Los libros que han leído están marcados con la estadística. los resultados son los siguientes: sólo 8 personas han leído a; 4 personas han leído sólo b; 3 personas han leído sólo c; 4 personas han leído ambos libros a y b; a y c Hay 2 personas; hay 3 personas que han leído los libros b y c Pregunta:

(1) ¿Cuál es la cantidad de personas que han leído a (2) ¿Cuántas personas han leído? no leer un libro.

Respuesta: (1) 12 personas (2) 30 personas

Método: El razonamiento o expresión establecida es el siguiente:

a=8; ; c =3; abc=2; ab=4-abc=2; ac=2-abc=0; bc=3-abc=1;

El número de personas que han leído a es: a ab abc ac= 8 2 2 0=12

Para aquellos que no han leído este libro: 50-a-b-c-abc-ab-ac-bc=30 ¡Operaciones y transformaciones de conjuntos de razonamiento lógico! Ejemplos de preguntas para completar en blanco para la competencia preliminar de NOIP en los últimos dos años:

Escuela secundaria en 2002 (1)

Hay números 1, 2, en la estantería. . . , n de n libros. Ahora retire los n libros y luego vuelva a colocarlos. Al volver a colocarlos, cada libro no debe colocarse en su posición original. Por ejemplo: cuando n = 3:

La posición original es: 1 2 3

Cuando se devuelve, solo puede ser: 3 1 2 o 2 3 1

Pregunta: ¿Cuántas formas hay que satisfacen las condiciones anteriores cuando n = 5? (No es necesario enumerar todos los métodos de ubicación)

Respuesta: f(n)=n*f(n-1) -1(ngt; 1, tómelo cuando n es un número par, tome cuando n es un número impar -)

f(1)=0

Entonces, cuando n=5, hay 44 formas de satisfacer las condiciones anteriores.

2002 High School (2)

Supongamos que hay un árbol k-ario, en el que solo hay dos nodos con grados 0 y k. Sean n 0 y n k respectivamente los grados. 0. y el número de nodos con grado k, intente encontrar la relación entre n 0 y n k (n 0 = expresión matemática, la expresión matemática solo contiene n k, k y números).

Respuesta: La relación entre n0 y nk es: n0=(k-1) nk 1.

Escuela secundaria en 2002 (1)

Como se muestra a continuación, hay una pila infinita S, con 1, 2, 3, 4, 5*** dispuestos a la derecha lado de la pila. Cada vagón puede caminar hacia la izquierda o entrar en la pila S para dejar pasar los siguientes vagones. Ahora se sabe que el primer vagón que llega a la salida es el vagón número 3. Anote el número total de todos los arreglos posibles para llegar a la salida (no es necesario dar todos los arreglos).

Exportar ← ← 1 2 3 4 5

S↓

Respuesta: 9

Secundaria en 2002 (2)

Alinea N bolas rojas y M bolas amarillas en una línea. Por ejemplo: N=2, M=3 puede obtener los siguientes 6 arreglos: rojo, rojo, amarillo, amarillo, amarillo, rojo, amarillo, rojo, amarillo, amarillo, amarillo, rojo, amarillo, rojo, rojo, amarillo, amarillo , amarillo, rojo, amarillo, rojo, amarillo, amarillo, amarillo, rojo

Pregunta: ¿Cuántos arreglos diferentes hay cuando N=4, M=3 (No es necesario enumerar cada arreglo)

Respuesta: 35

Escuela secundaria en 2001 (1)

Se sabe que los nombres de los nodos de un árbol binario son letras mayúsculas en inglés y el orden de -El recorrido de orden y posorden son: CBGEAFHDIJ y CGEBHFJIDA respectivamente. Entonces el orden de recorrido de preorden del árbol binario es:

Respuesta: ABCEGDFHIJ

2001 High School (2). )

Hay tres rectas paralelas en el plano. Cada recta tiene 7, 5 y 6 puntos respectivamente, y ninguno de los tres puntos de la recta está en la misma recta. . ¿Cuántos cuadriláteros diferentes se pueden formar usando estos puntos como vértices?

Respuesta: 2250

Escuela secundaria en 2001 (1)

Entre los seis elementos a, b, c, d, e, f, presione la siguientes Los elementos que se pueden seleccionar según las condiciones son: .

(1) a y b deben ser al menos iguales

(2) a y d no se pueden tomar al mismo tiempo

(3) a , e, f deben ser Hay 2 elementos

(4) Elija b y c, o ninguno

(5) Elija el mismo elemento de c y d

(6) Si no se selecciona d, entonces tampoco se selecciona e

Respuesta: a, b, c, f

Escuela secundaria en 2001 (2)

Hay tres rectas en el plano. Rectas paralelas, cada recta tiene 7, 5 y 6 puntos respectivamente, y los tres puntos de diferentes rectas no están en la misma recta. ¿Cuántos triángulos diferentes se pueden formar usando estos puntos como vértices?

Respuesta: 751.

Charla preliminar 3 de NOIP Leyendo el programa

Lee el programa y escribe los resultados de ejecución (unos 25 minutos, 3-4 preguntas)

De hecho, Es muy fácil, el propósito es casi otorgar puntos y representan muchos puntos, pero la tasa de puntuación no es necesariamente alta. ¡¡¡Es fácil perder (todos) tus puntos sin saber por qué!!!

Esta parte del programa prueba tres aspectos:

1. El propio lenguaje de programación, como bucles, recursividad, parámetros de valores y variables, variables de seguimiento, etc.;

2. Capacidad para generalizar y realizar operaciones matemáticas;

3. ¿Ha dominado el marco de algunos algoritmos de uso común (segmentos de programa)?

4. Cualidades psicológicas como cuidado y paciencia; inspiración, cantidad de programación, etc.;

Generalmente, el núcleo de hacer este tipo de preguntas es encontrar el propósito del programa:

Es decir, lo que el programa quiere hacer. Las preguntas que he respondido hasta ahora no han sido "escritas al azar", siempre hay algún "propósito de escritura". Una vez que lo comprenda, no sólo será más fácil obtener la respuesta, sino que también tendrá más confianza en sus resultados.

Los pasos generales para la resolución de problemas son los siguientes:

1. Leer el programa en su totalidad y comprender aproximadamente el propósito y el algoritmo del programa;

2. Adivine el papel de las variables, realice un seguimiento de los cambios en los valores de las variables principales (lista) y descubra las reglas;

3. Dividir el programa en segmentos y aclarar la función y el propósito de cada segmento (inspiración, comprensión de expresiones y declaraciones clave);

4. Ver la entrada con claridad, escribir los resultados según el formato de salida;

5. Regrese al programa con los resultados obtenidos para su inspección;

Aquí se muestran algunos ejemplos.

1. Preguntas básicas (pruebe el lenguaje en sí, especialmente el anidamiento de bucles).

1999 Grupo de Escuela Secundaria)

Programa excpl;

var

x, y, y1, jk, j1, g, e: Entero;

a: matriz[1..20] de 0..9;

comenzar

x:= 3465; y:= 264; /p> p>

para j1:=1 a 20 haz a[j1]:= 0;

mientras que y lt;gt 0 comienza

y1:= y mod 10 ;

y:= y div 10;

mientras que y1 lt;gt; 0 comienza

g:= x;

para e:=Jk downto 1 comenzar

g:= g a[e];

a[e]:= g mod 10;

g: = g div 10

fin;

y1:= y1 - 1

fin;

jk:= jk - 1

fin;

j1 := 1

mientras que a[j1] = 0 hacer j1 := j1 1; para Jk: =j1 a 20 escriba(a[jk]: 4);

writeln

end.

El resultado de la ejecución del programa es:_________________________.

Respuesta:

El trámite no es largo, pero sí algo difícil. Los expertos pueden entender el significado del programa en medio minuto como máximo, pero los principiantes a menudo calculan durante mucho tiempo y obtienen resultados incorrectos. Primero analicemos este programa como principiante. Recuerde, no simule la computadora para "ejecutar" declaraciones una por una desde el principio ------- ¿Alguna vez ha calculado su propia CPU Hz? !

Lo primero es mirar los nombres de las variables. Desafortunadamente, las variables en la pregunta de la liga de división son i o j, lo cual es muy molesto. i y j generalmente se usan como contadores de bucles y tienen poco significado, así que déjelos en paz. Luego observe dónde aparece la variable en el programa, concéntrese en su relación de referencia mutua con otras variables y adivine su función. Por ejemplo, en la pregunta anterior: x solo aparece en g:=x. No te preocupes por ahora, porque probablemente sea solo un dato inicial. Hay tres lugares para y: 1) while ylt; gt; 0 do

2) y1:=y mod 10;

3) y:=y div 10;

Obviamente, a y le falta el último dígito cada vez y le da este número a y1. Los jugadores experimentados deberían haber experimentado esto, pero continuemos.

Ahora sabemos: el efecto de y en el programa es: proporcionar el último bit a y1 cada vez, es decir, el valor de y1 cada vez es: 4, 6, 2

Luego mira y1 nuevamente, aparece en dos lugares:

1)mientras y1lt;gt;0 lo

2)y1=y1-1

Obviamente ¡Son solo una serie de ciclos! ¡Repita y1 veces!

Mira jk otra vez:

1) para e: =jk downto 1 do

2)jk: =jk-1

Como valor inicial del ciclo, jk es en realidad menos de una vez... El motivo necesita más análisis.

Mira j1 nuevamente:

1) para j1: =1 a 20 haz a[j1]: =0

2) j1: =1; ;

3)mientras a[j1]=0 haz j1:=j1 1

4)para Jk:=j1 a 20 escribe(a[jk]:4) ;

Obviamente, j1 no tiene conexión con otras variables. 1) es la inicialización, 2) 3) 4) es la matriz de salida a.

Mira g nuevamente: la ubicación está dentro de varias capas de bucles, ¡debería ser muy importante! ¡Lo analizaré más tarde!

Mira e de nuevo: como variable de bucle, no tiene sentido.

A través del análisis de variables, sabemos que x, y son datos, y proporciona el último bit a y1 cada vez y repite y1 veces. Es necesario analizar el papel de j1 y g.

Basándose en la estructura del programa, el programa se divide en varios bloques y se estudia uno por uno. El segmento de programa más importante es un bucle FOR anidado dentro de dos bucles WHILE, ¡un bucle triple! ! ! De hecho, la capa más externa es muy clara: determina cuándo terminará (y=0). El anverso y el reverso son muy simples e incluyen la inicialización, entrada, salida, etc. de algunas variables y matrices. Lo siguiente se centra en el análisis de los segmentos principales del programa.

1) x:=3465; y:=264; jk:=20;

para j1:=1 a 20 haga a[j1]:=0;

No se preocupe por la inicialización de entradas, variables y matrices.

2) while y gt; 0 comienza

y1:= y mod 10;

y:= y div 10;

mientras que y1lt;gt;0 comienza

g:= x;

for e:=Jk downto 1 comienza

g:= g a [e];

a[e] := g mod 10;

g := g div 10

fin

y1:= y1 – 1;

fin;

jk:= jk - 1;

fin;

3)

j1:=1;

mientras que a[j1]=0 haga j1:=j1 1;

para Jk:=j1 a 20 escriba(a[ jk]: 4);

writeln

Comenzando desde adelante hacia atrás, encuentre la posición de lt; gt; e ignorarlo.

El bloque 2 es el más importante.

La idea es: tomar la mayor cantidad de dígitos y1 de Y cada vez, realizar la operación gt; y1 veces y reducir jk en 1 cada vez.

Lo más importante ahora es ¿qué se está haciendo en el cálculo?

¡Preste atención al último resultado a[] y preste atención a los cambios en a[]!

a[e] siempre toma el dígito de las unidades (g mod 10), g es un dígito menos cada vez y se suma a a[e-1] (¡no olvides que e está en bucle! )...

¿Es... una adición de alta precisión? ¡BIEN!

¡Se ejecuta y1 veces, y y1 es el dígito de las unidades de y cada vez! Bien. El programa está haciendo x*y

Entonces la respuesta es 3465*264=914760

Mira su formato de salida, la salida debería ser: ___9___1___4___7___6___0

En hecho Si tienes experiencia, puedes ver el nombre de la variable g y las oraciones simbólicas g:=g a[e] a[e]:=g mod 10;. Podrá comprender inmediatamente el propósito del programa.

Para resumir esta pregunta: concéntrese en el proceso de ejecución de bucles anidados y los métodos básicos de cocientes y restos en las operaciones de división; los segmentos principales del programa pueden comprender los cambios en las variables a través de listas; ¡La pregunta en sí tiene poco valor que valga la pena estudiar! ! ! Pero algunas preguntas prueban puramente ideas algorítmicas, como los siguientes ejemplos: 2. Preguntas de algoritmo

programa ex2;

var i, j, n: longint;

b: matriz [0..31] de 0..1;

comenzar

n=1999

i: =0; >

mientras nlt; gt; 0 comienza

b[i]:=n mod 2;

i:=i 1;

n : =n div 2

fin

para j: =i-1 hasta 0 escribir(b[j]); p >

¿Qué es la producción?

Respuesta: Obviamente, el número entero decimal se convierte en un número binario, por lo que el resultado es 11111001111. 3. Algunas preguntas son sobre matemáticas u operaciones repetidas basadas en algunas reglas básicas. Por ejemplo:

programa exp1 (entrada, salida);

var

i, s, max: entero

a: matriz [1..10] de entero;

comenzar

para i:=1 a 10 leer (a[i]); = a[1]; s:=a[1];

para i:=2 a 10 comienza

si 0 entonces s:=0; >

s:= s a[i];

if sgt; max entonces max:=s

end

writeln('max=' , max)

fin

Entrada: 8 9 -1 24 6 5 11 15 -28 9

Salida: max=

Respuesta: Esta pregunta implica principalmente la acumulación: s: = s a[i]; luego juega el juego según el resultado.

Pero la afirmación más crítica es: si slt; 0 entonces s: = 0; su función es enmascarar (establecer en 0) la suma de los primeros elementos de slt; Una vez que entiendes esto, la pregunta es muy simple. Los pasos son los siguientes:

slt; 0? s=8 sgt; max? max=8

I=2 N 8 9=17 Y max=17; p>

I=3 N 17-1=16 N max=17;

I=4 N 16 24=40 Y max=40;

I=5 N 10 6= 46 Y max=46;

I=6 N 46 5=51 Y max=51;

I=7 N 51 11=62 Y max=62;

I=8 N 62 15=77 Y máx=77;

I=9 N 77-28=49 N máx=77;

I=10 N 49 9 =58 N max=77;

Entonces el resultado es: 77.

Resumen: La esencia es encontrar una subsecuencia continua de x longitud de una secuencia entera de n longitud, ¡y se requiere que la suma de las subsecuencias sea la más grande!

Nota: s y max! ! ! Además, los datos de entrada proporcionados en esta pregunta son relativamente simples, por lo que muchas personas pueden calcular el resultado correcto sin comprenderlo completamente. Cambie los datos a lo siguiente: -1 12 -103 65 34 -4 -27 8 -1234 9. ¿Cuál es el resultado? Respuesta: 9! ! ! 4. Considere las llamadas a subrutinas, especialmente aquellas que son recursivas o tienen parámetros (los valores participan en parámetros variables), como:

PROGRAMA EX3

CONST N=10; /p>

VAR S, I: ENTERO;

FUNCIÓN CO(I1: ENTERO): ENTERO;

VAR J1, S1: ENTERO

COMENZAR

S1:=N;

PARA J1:= (N-1) HACIA ABAJO (N-I1 1) HACER

S1:= S1* J1 DIV ( N-J1 1);

CO:=S1

FIN

COMIENZO

S:=N 1;

PARA I:= 2 A N DO S:=S CO(I);

WRITELN('S=',S);

END.

Proceso de respuesta:

(1) Si hay una subrutina, generalmente lea primero el programa principal para comprender cuándo el programa principal llama a la subrutina. ¿Qué hacer? ¿Cuántas veces lo han llamado? ¡Esta pregunta se llama n-1 veces y el valor de retorno de la función se acumula!

(2) Leer la subrutina por separado, analizar las variables, parámetros y valores de retorno, y determinar su función. La función de esta pregunta parece relativamente complicada a primera vista, pero completa la multiplicación y división acumulativa a través de una estructura de bucle. ¡Analicémosla en detalle a continuación!

(3) A través de la lista, observe los cambios de variables en la subrutina para conocer las reglas y determinar el papel de la subrutina. La pregunta es la siguiente:

CO (2) = 10*9/2

CO (3) = 10*9*8/2/3

CO ( 4) =10*9*8*7/2/3/4

...

Descubrí que parece ser una fórmula de combinatoria matemáticas: CO (i) = 10! /(i!*(10-i)!)

Es decir: C(m, n)=m!/(n!*(m-n)!)=m*(m-1)* … …*(m-n 1)/n!

(4) Entonces el resultado es claro: C(10,0) C(10,1) …… C(10,9) C(10, 10) =722

Resumen: ¡La inspiración proviene de una rica base matemática y experiencia!