Solución: traspuesta de una matriz
procedimiento trasponer (E/S m: matriz, E n: entero)
{Traspone la matriz m de dimensión nxn}
variables
fila, columna: entero;
auxiliar: real;
principio
para fila:=1 hasta n hacer
{En cada fila considera los elementos situados a la derecha de la diagonal}
para columna:= fila+1 hasta n hacer
{permuta cada elemento con su simétrico}
auxiliar:=m[fila, columna];
m[fila, columna]:=m[columna, fila];
m[columna, fila]:=auxiliar;
fpara
fpara
fin
Solución: producto de dos matrices
procedimiento multiplicar_matrices (E m1: matriz, E m2: matriz, E a: entero, E b: entero, E c: entero, S m: matriz)
{multiplica las matrices m1 y m2 de dimensiones axb y bxc, asignando el resultado a la matriz m que tendrá una dimensión axc}
variables
fila, columna, i: entero;
principio
para fila:=1 hasta a hacer
{Considera cada una de las filas}
para columna:=1 hasta c hacer
{Multiplica escalarmente la fila por la columna}
m[fila, columna]:=0.0;
para i:=1 hasta b hacer
m[fila, columna]:=m[fila,columna]+m1[fila,i]*m2[i,columna];
fpara
fpara
fpara
fin
Vectores en C
En C el tipo usado como índice así como los valores que puede tomar ese índice están totalmente restringido: sólo se puede usar el tipo entero y el indice tomará valores enteros empezando en 0.
Es decir, si me quiero declarar un vector v de cualquier tipo de datos de 20 componentes, necesariamente los índices utilizados irán de 0 a 19 y los datos estarán guardados en v[0], v[1], ..., v[19].
Al estar tan limitado el tipo de datos que se puede utilizar como índice y los valores que puedo escoger (que no puedo), no es necesario declararme un tipo de datos de tipo vector sino que directamente puedo declararme una variable especificando el tipo de componenetes y el número de componentes.
Ejemplos:
- int v[10], /* Estoy declarando un vector de 10 componentes (0...9) de tipo entero*/
-float w[100] /*Estoy declarando un vector de 100 componentes (0...99) de tipo real*/
-char y[50][40] /* Estoy declarando una matriz de dimensiones 50x40 (50 filas de 0.49 y 40 columnas 0.39) El hecho de que sean 50 filas y 40 columnas lo estpoy decidiendo yo por el tratamiento que haré, podría considerarlo al revés, aunque normalmente se consideran primero las filas y luego las columnas*/
Para usarlos en el programa, sin más indicamos la variable vector afectada y ponemos entre corchetes la componenete que queremos usar, (Con los ejemplos anteriores: v[5], w[43], y[7][4].
Con una componente de un vector puedo hacer exactamente lo mismo que con una variable que sea del mismo tipo de datos que el vector en cuestión.
Cadenas de caracteres en C
Recordar que dijimos que una cadena de caracteres en C no es más que un vector de caracteres que guarda el carácter especial '\0' en alguna de sus componentes, indicando que esa es la posición en la que termina la cadena.
Podemos acceder a cada una de esas componentes como si fueran simples vectores, siempre y cuando respetemos que la cadena termine con ese carácter especial.
Programación
by Unknown
Related Posts:
Explicaciones Introducen un texto por pantalla. ej. Hola, yo soy un texto. 1234 Y presionan enter. Hasta que no presionan enter el texto no va a parar hasta una se… Read More
Continuación de punteros Punteros y matrices Es la misma idea que cuando hemos hablado de vectores y punteros. Una matriz es un puntero al primer elemento más una reserva d… Read More
Usar elementos XHTML desde C Página recomendada Se debe instalar la libreria libxml-config -- cflags / -- libs Nos dirigimos al instalador MinGW: … Read More
Tema 5cFunción Open Uso de fopen() FILE*fich; fich=fopen("ejemplo.txt", "r"); if (fich==NULL) printf("Error en la apertura del fichero\… Read More
Punteros en CDespués de 9 días de faltar a clase por aumento de trabajo (pocas vacaciones he tenido.. :( ) Hay varias cosas que necesitare para poner al día el blo… Read More
0 comentarios:
Publicar un comentario