Introducción
Una matriz dispersa es una matriz en la que el número de 0's es mayor que el número de elementos no nulos. En este laboratorio paso a paso, aprenderemos a verificar si una matriz bidimensional es una matriz dispersa o no utilizando el lenguaje de programación C.
Nota: Debes crear el archivo
~/project/main.ctú mismo para practicar la codificación y aprender a compilar y ejecutarlo utilizando gcc.
cd ~/project
## crear main.c
touch main.c
## compilar main.c
gcc main.c -o main
## ejecutar main
./main
Creación de una matriz bidimensional
En este paso, crearemos una matriz bidimensional para almacenar los elementos de nuestra matriz. Pediremos la entrada del usuario para el número de filas y columnas y luego le pediremos al usuario que ingrese los elementos de la matriz uno por uno utilizando un bucle for anidado.
#include <stdio.h>
int main()
{
int matrix[10][10], row, column, i, j;
printf("Ingrese el número de filas y columnas de la matriz:\n");
scanf("%d%d", &row, &column);
printf("Ingrese los elementos de la matriz:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &matrix[i][j]);
}
}
// Verificando si la matriz es dispersa o no
int counter = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
if (matrix[i][j] == 0)
counter++;
}
}
if(counter > (row * column) / 2)
printf("La matriz es una matriz dispersa\n");
else
printf("La matriz no es una matriz dispersa\n");
return 0;
}
Imprimir la matriz
Aquí, imprimiremos la matriz utilizando el bucle for anidado en el que ya hemos tomado la entrada del usuario.
#include <stdio.h>
int main()
{
int matrix[10][10], row, column, i, j;
printf("Ingrese el número de filas y columnas de la matriz:\n");
scanf("%d%d", &row, &column);
printf("Ingrese los elementos de la matriz:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &matrix[i][j]);
}
}
// Imprimiendo la matriz
printf("La matriz:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// Verificando si la matriz es dispersa o no
int counter = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
if (matrix[i][j] == 0)
counter++;
}
}
if(counter > (row * column) / 2)
printf("La matriz es una matriz dispersa\n");
else
printf("La matriz no es una matriz dispersa\n");
return 0;
}
Completar el programa
Aquí agregaremos los toques finales a nuestro programa. Verificaremos si la matriz proporcionada por el usuario es una matriz dispersa o no. Luego imprimiremos el resultado de si es una matriz dispersa o no.
#include <stdio.h>
int main()
{
int matrix[10][10], row, column, i, j;
printf("Ingrese el número de filas y columnas de la matriz:\n");
scanf("%d%d", &row, &column);
printf("Ingrese los elementos de la matriz:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &matrix[i][j]);
}
}
// Imprimiendo la matriz
printf("La matriz:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// Verificando si la matriz es dispersa o no
int counter = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
if (matrix[i][j] == 0)
counter++;
}
}
if(counter > (row * column) / 2)
printf("La matriz es una matriz dispersa\n");
else
printf("La matriz no es una matriz dispersa\n");
return 0;
}
Resumen
En este laboratorio paso a paso, hemos aprendido cómo verificar si una matriz bidimensional es dispersa o no. Hemos aprendido sobre el concepto de una matriz dispersa y cómo codificar en el lenguaje de programación C para determinar si una matriz es dispersa o no. Creamos una matriz bidimensional, tomamos la entrada del usuario, imprimimos la matriz y, finalmente, escribimos la lógica para comprobar si la matriz proporcionada es dispersa o no.



