Introducción a Algoritmos y Programación
La Programación en C es una disciplina fundamental para la formación informática universitaria. Esta guía ofrece conceptos clave del lenguaje C, ejemplos prácticos, y aplicaciones reales para que puedas comprender y aplicar técnicas de programación en C de forma eficiente.
Definición: El lenguaje C es un lenguaje de programación de propósito general, imperativo y de bajo nivel relativo, diseñado para ofrecer control sobre recursos y eficiencia en tiempo de ejecución.
# y se procesan antes de la compilación.main es el punto de entrada.Definición: Una función es un bloque de código independiente que recibe parámetros (opcional) y puede devolver un valor.
#include <stdio.h>
int main(void) {
printf("Hola, mundo\n");
return 0;
}
int para enterosfloat, double para números en punto flotantechar para caracteresshort, long, signed, unsignedDefinición: Un tipo de dato determina el rango de valores que una variable puede almacenar y cómo se representan en memoria.
Tabla comparativa: tipos enteros
| Tipo | Tamaño típico | Rango típico |
|---|---|---|
short | 2 bytes | -32768 a 32767 |
int | 4 bytes | -2147483648 a 2147483647 |
long | 8 bytes (en muchos sistemas) | mayor rango |
const para valores inmutablesL, U, f+, -, *, /, %==, !=, <, >, <=, >=&&, ||, !&, |, ^, <<, >>Definición: Una expresión es una combinación de operadores y operandos que produce un valor.
Ejemplo: calcular promedio
double promedio(int a, int b) {
return (a + b) / 2.0;
}
if, else, switchfor, while, do-whilebreak, continue, returnEjemplo: iterar y sumar
int suma_array(int arr[], int n) {
int suma = 0;
for (int i = 0; i < n; ++i) {
suma += arr[i];
}
return suma;
}
Definición: Un puntero es una variable que almacena la dirección de memoria de otra variable.
Ejemplo: intercambio mediante punteros
void swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
& y desreferencia *malloc, calloc, realloc, liberación con freeTabla: comparativa de asignación dinámica
| Función | Uso | Inicialización |
|---|---|---|
malloc | reservar memoria | sin inicializar |
calloc | reservar y cero inicializar | inicializada a 0 |
realloc | cambiar tamaño de bloque | preserva contenido |
Ejemplo: reservar memoria para un arreglo
int *vec = malloc(n * sizeof(int));
if (vec == NULL) {
// manejar error
}
// usar vec
free(vec);
struct para agrupar datos heterogéneostypedef para crear alias de tiposEjemplo: punto en 2D
typedef struct {
double x;
double y;
} Punto;
Punto p = {1.0, 2.0};
¿Ya tienes cuenta? Iniciar sesión
Klíčové pojmy: Conocer la estructura básica de un programa en C y el rol de main, Usar tipos de datos adecuados: int, float, double, char y modificadores, Inicializar variables y comprobar valores de retorno siempre, Usar punteros para paso por referencia y manejo dinámico de memoria, Reservar y liberar memoria con malloc/calloc/realloc y free, Usar struct y typedef para agrupar y nombrar tipos compuestos, Depurar con compilador (gcc -Wall) y herramientas como gdb o Code::Blocks, Realizar comprobaciones de errores en I/O y al abrir archivos, Preferir modularidad: funciones pequeñas y bien documentadas, Aplicar buenas prácticas: liberar recursos y evitar desbordamientos