Ejemplo de como recorrer matrices en C
Hay un lenguaje muy famoso que es C y que tenía mucho intereses de escribir en mi blog, porque es el lenguaje de programación que más ha influenciado a otros lenguajes o incluso sistema operativo como Unix y Linux.
Este lenguaje lo aprendí en la Universidad en el primer Cuatrimestre (Facultad de Ciencias de la Computación BUAP super recomendada) y es un lenguaje bonito, que sirve también para aprender a programar, principalmente la lógica de la programación, no requiere licencia para utilizarlo es decir es gratuito.
Este lenguaje fue creado por Deniss Ritchie en 1969 y 1978 en los laboratorios Bell.
Deniss Ritchie y Brian Kernighan escribieron el libro El lenguaje de programación C o en ingles The C Programming Language, el libro fue publicado en 1978 y aquí nace nuestro programa más famoso Hello,World u Hola Mundo, que fue un ejemplo que se menciona en el libro es la Biblia de C y creo que casi o todos los que hemos tenido estudios de programación hemos leído este libro.
En el libro también hacen mencionar a escribir los programas de modo indentados es decir se respeta una sangría entre bloques de código o secciones para que sea fácil de leer. Cosa que se ha mantenido como una buena práctica de programación.
Ejercicio de Programación
Después de platicarles un poco de este lenguaje, les comparto un ejemplo de como programar en C, en este ejemplo tenemos una matriz de horas trabajadas por 4 becarios en una semana de 5 días, donde se quiere conocer la suma total de horas trabajadas por día, total de horas trabajadas por becario, promedio de horas trabajadas por día, promedio de horas trabajadas por cada becario y el Total global de horas trabajadas. Datos que se muestran en la siguiente imagen
Análisis del Problema
- Los datos de entrada son una matriz de datos enteros, la matriz es de 5 columnas que son los días y 4 filas que son los becarios. Si quieren ver un poco más de que es una matriz o arreglo les dejo la liga del blog Estructuras-en-programacion.html
- Se tiene que hacer una suma por cada becario es decir podríamos llevar el dato en un variable que tendríamos que inicializar en cero al visitar los datos de cada becario.
- Se tiene que hacer una suma por cada día es decir por cada fila y de igual forma limpiar la variable para mostrar solo esa suma.
- Se tiene que hacer una suma general de todas las columnas, es decir una variable que no vamos a limpiar o a dejar en cero. O se pude sumar todas las filas.
- Para obtener el promedio es base a la suma y en que momento estemos recorriendo si filas o columnas dividir entre 5 por lo días o entre 4 por los becarios.
- Como consejo a mi me gusta validar los datos que me dan en los problemas, para hacer el ejercicio manualmente para saber como lo calcularía y para validar que los datos que me dan son correctos.
- Ahora con esto ya se puede hacer un programa.
Datos de C
- Librerías #include <stdio.h> son programas que contienen funciones ya definidas y que podemos utilizar en el programa sin tener que crear estas funciones de cero.
- Tipos de datos, en C hay diferentes tipos de datos que utilizaremos para definir nuestras variables tenemos los siguientes tipos
- int, para definir datos enteros 16 bits
- float, para definir datos decimales o flotantes 16 bits
- char, para caracteres
- double, para números decimales pero hasta 32 bits
- long, para decimales hasta 32 bit
- para hacer comentarios utilizamos "//" dos diagonales y lo que este escrito a la derecha son instrucciones que no se ejecutaran o comentarios que queremos dejar en nuestro programa para cuando alguien lo lea
- printf, esta instrucción nos servirá para escribir en pantalla
- scanf, con esta palabra reservada podemos leer datos del teclado que se ingresan e irlo almacenando en variables.
- {} estas llaves en C sirve para definir el inicio de un bloque del programa { y para cerrarlo } , un bloque puede ser un ciclo for, un if, una función
Compilar online lenguaje C
Primer paso para poder compilar y probar el programa, puedes hacerlo instalando Dev-C que es un ID gratuito para desarrollo, pero como se que también hay quienes no tienen su propia computadora o que no pueden instalar porque ya no tienen espacio en su equipo, pueden utilizar alguna opción online, yo les puedo recomendar onlinegdb https://www.onlinegdb.com/online_c_compiler#, el ejemplo que les explicare en este post, lo hice en esta plataforma
Programa Ejemplo programa en C
#include <stdio.h>
int main (){
int matriz [4][5];
int i,j, horas_total = 0, suma=0;
float prom_total = 0.0, promedio = 0.0, promedio_total = 0.0;
for (i=0; i<4; i++){
for (j=0; j<5; j++) {
printf ("Horas trabajadas por el becario %d en el dia %d: ", i+1, j+1);
scanf ("%d", &matriz[i][j]);
}
}
for (i=0; i<4; i++) { //filas
suma = 0;
promedio = 0.0;
for (j=0; j<5; j++) { //columnas
suma= suma + matriz[i][j];
horas_total = horas_total + matriz[i][j];
}
promedio = suma / 5.0;
promedio_total = promedio_total + promedio;
printf ("Total Horas trabajadas %d por el becario %d: \n", suma, i+1);
printf ("Promedio Horas Trabajadas %f por el becario %d: \n", promedio, i+1);
}
promedio_total = promedio_total / 4.0;
printf ("Total Horas trabajadas %d por los becarios: \n", horas_total);
printf ("Promedio Horas trabajadas %f por los becarios: \n", promedio_total);
promedio_total = 0.0;
for (i=0; i<5; i++) { //columnas
suma = 0;
promedio = 0.0;
for (j=0; j<4; j++) { //filas
suma = suma + matriz[j][i];
//printf("valor %d ", matriz[j][i]);
}
promedio = suma / 4.0;
promedio_total = promedio_total + promedio;
printf ("Total Horas trabajadas %d por dia %d: \n", suma, i+1);
printf ("Promedio Horas Trabajadas %f por dia %d: \n", promedio, i+1);
}
promedio_total = promedio_total / 5.0;
printf ("Promedio Total Horas Trabajadas %f: \n", promedio_total);
return (0);
}
Espero les haya servido este blog para aprender acerca del lenguaje C y puedan hacer un primer programa por ustedes mismos, compártanos y déjenos sus comentarios. Nos leemos.
Comentarios
Publicar un comentario