Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Repositorio de enunciados

Universidad Nacional de Río Negro

¿Y las prácticas?

La idea de esta sección, como algo separado a las prácticas obligatorias de la cátedra, es que dispongas de una colección amplia de problemas complementarios para consolidar el aprendizaje. Las prácticas de la cátedra siguen un régimen de entrega formal con plazos estrictos y verificación automatizada de estilo y corrección.


Consideraciones generales

A seguir siempre y cuando no esté indicada otra cosa:

  1. Resuelvan todos los ejercicios de manera iterativa, a no ser que esté indicado puntualmente.

  2. Los números son números enteros, estos incluyen al cero y los negativos.

  3. El nombre del archivo debe ser, el número del ejercicio reemplazando el punto por un guion y su apellido, por ejemplo: 1-1_apellido.c.

  4. Apliquen y completen la plantilla de resolución de ejercicios que está a continuación, copiando el título y consigna del ejercicio y luego completando con sus datos.

  5. Lo que “resuelve” el enunciado debe estar encapsulado en una función, incluso si no está indicado explícitamente.

  6. El código debe seguir estrictamente la guía de estilo.

  7. Los ejercicios marcados como [plus ultra] son variaciones del ejercicio para ir «más allá» de la consigna original.

Plantilla de archivo

En un archivo llamado 1-1_apellido.c:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
Ejercicio 1.1 – Hola Mundo
Escribir un programa que imprima "Hola, mundo!" en la pantalla.
Este ejercicio nos permitirá verificar que el entorno de programación funciona.
-----------------
Nombre y Apellido
Usuario Github
*/

// prototipos

// main

// implementaciones

Niveles de Dificultad

Todos los ejercicios se encuentran clasificados con la etiqueta **Dificultad:** según su nivel de complejidad:

Consignas Plus Ultra

Cada ejercicio incluye consignas opcionales marcadas como [*plus ultra*] (frase en latín que significa «más allá»). Estas consignas están diseñadas para ir más allá de la consigna base y profundizar el aprendizaje mediante:


Estructura de Ejercicios por Bloques

Los ejercicios se organizan replicando los bloques didácticos de los apuntes para guiar tu proceso de aprendizaje de manera progresiva.

Bloque 1: Fundamentos del Control de Flujo y Modularización

Ejercicios iniciales para asimilar la lógica de programación, el uso de variables, condicionales, lazos iterativos, modularización mediante funciones, recursividad introductoria y compilación con Makefiles.

Bloque 2: Memoria

Ejercicios enfocados en la disposición física de datos en RAM, punteros e indirección, cadenas de caracteres, persistencia en archivos de texto, memoria dinámica en el Heap, estructuras compuestas, alias de tipos y enumeraciones.

Bloque 3: Algoritmos y Estructuras de Datos

Ejercicios sobre matrices multidimensionales, Tipos de Datos Abstractos (TAD), estructuras lineales (listas, pilas, colas) y análisis asintótico de complejidad.

Bloque 4: Temas Avanzados

Ejercicios de nivel avanzado sobre callbacks, operaciones bitwise, archivos binarios, recursividad avanzada, búsqueda/ordenamiento, análisis de código y diseño de APIs.