Red de conocimientos turísticos - Información de alquiler - 〖Pide consejo〗Experiencias en el aprendizaje de matemáticas avanzadas y lenguaje C

〖Pide consejo〗Experiencias en el aprendizaje de matemáticas avanzadas y lenguaje C

(1) Aprender un idioma significa programar según su gramática. Para programar, por supuesto, necesita usar la computadora para verificar la exactitud de su programa. Por lo tanto, es muy importante usar la computadora para ejecutar el programa que escribió mediante los pasos de Compilar (Ctrl F7), Construir (F7), Ejecutar programa (Ctrl F5), completar el objetivo del programa que escribió y finalmente lograr tu objetivo. Y al ejecutar el programa, encontrará errores en el programa, para que pueda comprender las deficiencias en el conocimiento que ha aprendido. Al mismo tiempo, debe aprender a corregir los errores en el programa en función de los errores generados durante la compilación. , para que no cometas el mismo error la próxima vez. .

(2) Parte gramatical del lenguaje C. Esta parte del contenido es la base para aprender bien el lenguaje C. Solo aprendiendo estas sintaxis podrás escribir y leer programas. Por lo tanto, para un principiante, esta parte del contenido es bastante importante, por lo que debes estar familiarizado con cada sintaxis y poder programar de acuerdo a estas sintaxis. Pero si ha aprendido el lenguaje C o ha aprendido otros lenguajes antes, entonces no debería haber grandes problemas para aprender esta parte. Así que no diré mucho más aquí.

(3) Ahora permítanme hablar sobre los puntos clave, las dificultades y las áreas propensas a errores del aprendizaje del lenguaje C. Por supuesto, esto es sólo para mí personalmente. En el proceso de aprendizaje del lenguaje C, la atención se centra en matrices, punteros y estructuras. Por supuesto, también son difíciles, pero las matrices y estructuras siguen siendo bastante simples, por lo que hablaré principalmente sobre mis puntos de vista sobre los punteros.

Puntero: (la esencia del lenguaje C)

1 El concepto de puntero es en realidad la dirección de una variable. Todos sabemos que si se define una variable en un programa, el sistema asignará una unidad de memoria a la variable cuando se compile el programa. Esta unidad de memoria es la dirección de esta variable. Como acabo de decir, un puntero es en realidad la dirección de una variable. Entonces el puntero apunta a esta variable a través de esta dirección. En otras palabras, un puntero es una dirección y una variable de puntero es una variable que almacena la dirección.

2 Defina una variable de puntero: tipo base * nombre de la variable de puntero; como float *p1; //p1 es una variable de puntero que apunta a una variable de tipo flotante. no int. O tipo char. int a; float *p1; p1=amp; //Esto no es posible.

3 El papel de los punteros (las variables de puntero se utilizan como parámetros de función) Ahora compare los dos programas siguientes: //Este programa es correcto. Se puede lograr el propósito de intercambiar dos números. swap(int *p1, int *p2) en realidad intercambia los valores de dos variables (a y b). Entonces el propósito se puede lograr. #incluye lt; stdio.hgt; swap(int *p1, int *p2) {int temp=*p1; *p2=temp; *puntero_1, *puntero_2; scanf("d,d",amp;a,amp;b); puntero_1=amp;a;puntero_2=amp;b; if(alt;b) swap(puntero_1,puntero_2); "\nd, d\n", a, b); } //Este programa no logra el propósito del intercambio. Porque cambiar el valor del parámetro formal del puntero no cambia el valor del parámetro real del puntero.

#incluye lt; stdio.hgt; swap(int *p1, int *p2) {int *p; p1=p2; p2=p; *puntero_2; scanf("d,d",amp;a,amp;b); puntero_1=amp;a;puntero_2=amp;b; if(alt;b) swap(puntero_1,puntero_2); , d\n", *pointer_1, *pointer_2); } Se debe prestar especial atención a: No intente cambiar el valor del parámetro real del puntero cambiando el valor del parámetro formal del puntero.

4 Para hacer referencia a un elemento de matriz, puede utilizar el método de subíndice o el método de puntero como int a[10]; int *p=a; matriz, use *(a i), *(p i), a[i] son ​​todos aceptables.

5 Resumen: Si hay un grupo de parámetros real y desea cambiar el valor de los elementos de esta matriz en la función, hay cuatro situaciones en las que la correspondencia entre los parámetros reales y formales es : ① Tanto los parámetros formales como los parámetros reales usan nombres de matriz ② usan nombres de matriz para parámetros reales y variables de puntero para parámetros formales ③ usan variables de puntero para parámetros reales y parámetros formales ④ usan variables de puntero para parámetros reales y nombres de matriz para parámetros formales

6 Arreglos multidimensionales El lenguaje C permite Una matriz bidimensional se descompone en múltiples matrices unidimensionales para su procesamiento. Ahora vamos a ilustrarlo con un ejemplo detallado.

int a[3][4]={{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}} //Entonces La matriz a se puede descomponer en tres matrices unidimensionales, a saber, a[0], a[1], a[2]. Cada matriz unidimensional contiene cuatro elementos. Por ejemplo, la matriz a[0] contiene cuatro elementos: a[0][0], a[0][1], a[0][2] y a[0][3]. Suponga que la primera dirección de la matriz a es 1000. Las direcciones de la matriz y los elementos de la matriz se expresan de la siguiente manera: desde la perspectiva de una matriz bidimensional, a es el nombre de la matriz bidimensional y a representa la primera dirección de toda la matriz bidimensional, que también es la matriz bidimensional 0 La primera dirección de la línea es igual a 1000. un 1 representa la primera dirección de la primera línea, que es igual a 1008. a[0] es el nombre de la matriz y la primera dirección de la primera matriz unidimensional, por lo que también es 1000. *(a 0) o *a es equivalente a a[0]. Representa la primera dirección del elemento 0 de la matriz unidimensional a[0], que también es 1000. amp; a[0][0] es la primera dirección del elemento en la fila 0 y la columna 0 de la matriz bidimensional a, que también es 1000. Por lo tanto, a, a[0], *(a 0), *a y a[0][0] son ​​iguales. De la misma manera, un 1 es la primera dirección de la fila 1 del arreglo bidimensional, la cual es igual a 1008. a[1] es el nombre de la matriz y la primera dirección de la segunda matriz unidimensional, por lo que también es 1008. amp; a[1][0] es la dirección del elemento de la fila 0 y la columna 1 de la matriz bidimensional a, que también es 1008. Por lo tanto a 1, a[1], *(a 1), amp; Se puede concluir que: a i, a[i], *(ai), amp; Además, &a[i] y a[i] también son equivalentes. Porque en una matriz bidimensional, a [i] no puede entenderse como la dirección del elemento a [i] y el elemento a [i] no existe. El lenguaje C estipula que es un método de cálculo de direcciones que representa la primera dirección de la i-ésima fila de la matriz a. De esto concluimos: a[i], amp; a[i], *(ai) y a i también son equivalentes. Además, a[0] también se puede considerar como a[0] 0, que es la primera dirección del elemento 0 de la matriz unidimensional a[0], y a[0] 1 es la primera dirección del elemento 1. de una dirección [0], se puede concluir que a [i] j es la primera dirección del elemento j de la matriz unidimensional a [i], que es igual a amp; De a[i]=*(ai) j, obtenemos a[i] j=*(ai) j.

Dado que *(a i) j es la primera dirección del elemento en la fila i y la columna j de la matriz bidimensional a, el valor de este elemento es igual a *(*(a i) j). Preste especial atención a la diferencia entre ellos y comprenda si representa una dirección o un valor numérico.

Los puntos clave del aprendizaje de matemáticas avanzadas se resumen a continuación: en términos sencillos, es un objeto, un concepto, un método, una operación, una distinción y una conexión. ¡Eso es lo que quiero llamar los “seis unos”!

Objetos se refiere a los objetos de investigación de las matemáticas avanzadas, que ya no son números simples, sino vectores y matrices.

Concepto hace referencia al concepto de espacio, que es una colección especial. Es una combinación de objetos y operaciones de investigación.

Método se refiere al método de simplificar las cosas difíciles. Abarca toda la matemática superior y es el punto de partida de muchos métodos de investigación.

Operación se refiere a la operación extrema, que es la encarnación de un pensamiento filosófico y el símbolo principal que distingue las matemáticas avanzadas de las matemáticas elementales.

La diferencia se refiere a la diferencia entre discreto y continuo, que también es la piedra angular del desarrollo posterior de la informática.

El contacto se refiere a las conexiones generalizadas en las matemáticas superiores. Sólo conectando todas las ramas podemos realmente aprender bien las matemáticas avanzadas. De hecho, son un todo indivisible.