User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0117/actividad_conceptos_basicos_c.meta failed
Unable to save metadata file. Hint: disk full; file permissions; safe_mode setting.
teaching:ie0117:actividad_conceptos_basicos_c

This is an old revision of the document!


Actividad 8. Conceptos básicos de C

En esta actividad se realizarán prácticas en el lenguaje de programación C con el objetivo de entender los conceptos básicos de programación, compilación y memoria.

Preguntas de la actividad

  • Qué es compilar e interpretar? Cuáles son las diferencias?
  • Cómo se compila un programa escrito en C?
  • Por qué se debe compilar un programa escrito en C?
  • Con qué se compila un programa escrito en C?
  • Cómo hago para facilitar el trabajo en equipo para crear un programa grande en C?
  • Para qué sirve una biblioteca?
  • Qué es “shared library”?
  • Cuáles son los tipos de datos que C puede manejar?
  • Cuáles son las estructuras de control que puedo utilizar en C?
  • Cómo se agregan comentarios en C?

Temas tentativos a cubrir

  • Memoria: program, data, heap, stack
  • GCC
  • Programación en C: includes, while, for, if, tipos, printf, argumentos, pila, funciones, arreglos, arreglos y punteros
  • Bibliotecas: .c, .o, .h linking, pkg-config .so
  • Cómo compilar?

Instrucciones

  • Haga un programa que imprima “Hola Mundo” usando la biblioteca stdio. (archivo main.c)
#include <stdio.h>

main() {
  printf("hola mundo\n");
}
  • Compile el programa:
gcc -o main main.c
  • Para corregir el warning de compilación retorne el dato correcto de main: un int y vuelva a compilar.
  • Agregue los argumentos correctos de entrada a
    main : (int argc, char **argv)

    . De ahora en adelante sus main deberían verse así:

int main(int argc, char **argv)
  • Para capturar datos del teclado puede usar la función getchar(). Esta función retorna un tipo de dato entero. Construya un programa que le pida al usuario una letra. Si dicha letra es m, el programa debe imprimir en pantalla: “Buenas mañanas”, si la letra es “n”, el programa debe imprimir “Buenas Noches”. Dicho programa debe repetir la petición al usuario repetidas veces hasta que el usuario presione la tecla “q”.
  • Haga un programa que implemente una estructura de datos tipo FIFO con un espacio de 10 enteros. Haga un programa que ingrese 100 números y cada vez que itere un número, que imprima el contenido completo de la estructura FIFO. El programa debe indicar si la estructura está llena o está vacía. El programa debe retirar un número de la estructura de datos cuando dicha estructura esté llena. Una vez que hayan sido alimentados todos los datos, la estructura debe ser vaciada retirando uno a uno los datos que aun estén en el FIFO, aprentando la tecla “enter” con cada uno.
Fifo: [] Vacio

Ingrese un número: 10
Número 1: 10
Fifo: [10] no vacio, no lleno

...

Ingrese un número: 33
Número 10: 33
Fifo: [10 40 50 55 23 435 123 45 6 33] no vacio, lleno

... 

Ingrese un número: 66
Número 11: 66
Fifo: [40 50 55 23 435 123 45 6 33 66] no vacio, lleno
Número retirado 66

...

Ingrese un número: 88
Número 100: 88
Fifo: [420 540 575 263 44335 1123 425 63 53 88] no vacio, lleno
Número retirado 43

Vaciando fifo
Fifo: [540 575 263 44335 1123 425 63 53 88] no vacio, no lleno
Número retirado 430

Evaluación

Todos los programas debe ser compilados con la opción -Wall y deben compilar sin errores ni warnings.

~~DISCUSSION~~

teaching/ie0117/actividad_conceptos_basicos_c.1464028427.txt.gz · Last modified: 2022/09/20 00:08 (external edit)