EJERCICIOS: Conceptos básicos de programación[IaP]

diciembre 7, 2016 /

Antes de llevar a cabo la sesión de ejercicios, se recomienda fuertemente leer la teoría del capitulo correspondiente.

Este capítulo es una breve introducción al mundo de los computadores y a los conceptos básicos de la programación. Es por ello que en esta sesión nos centraremos en dos componentes prácticos. En primer lugar, vamos a mostrar como preparar tu ordenador para empezar a desarrollar código (entorno de desarrollo), tanto en Windows como en Linux (iOS funciona de la misma manera que Linux). A continuación  os dejaremos los ejercicios relacionados con el capítulo. Como ya dijimos en la entrada de índice es muy importante llevar a cabo los ejercicios, ya que será lo que os ayude a asentar los conocimientos.

Introducción a la programación - Capítulo 1

Debido a que es un curso de introducción a la programación, no nos será necesario instalar un entorno de desarrollo integrado (IDE). Esto es debido a dos razones: los IDE de hoy en día no traen un compilador para C integrado (al menos yo no estoy al corriente de ello), además los proyectos que crearemos no contarán de muchos ficheros fuente. Aún así, si quieres instalarte un IDE para aprovechar las facilidades que estos te traen, te recomendamos instalarte Netbeans IDE con soporte para C/C++, nuestro IDE favorito en minutazos.

¿Qué necesitaremos?

Para desarrollar nuestros programas a lo largo de nuestro curso, necesitaremos tres herramientas. La primera es un editor de texto para codificar nuestros ficheros fuente, la segunda es un compilador para compilar los ficheros fuente y conseguir el ejecutable, y por último necesitaremos un debugger para poder analizar mejor nuestros programas y de esta manera encontrar la raíz de los posibles fallos que nos aparezcan durante la ejecución del programa.

Estableciendo un entorno de desarrollo en Linux

Damos por sentado que la distribución linux está basada en Debian.

Los sistemas operativos GNU/Linux están basados en Unix. Por si aún no os habíais enterado, C es un lenguaje orientado a la implementación de sistemas operativos y más específicamente Unix. Entonces si poseemos una máquina con GNU/Linux, el ordenador viene con todas las herramientas necesarias para desarrollar en C.

En linux trabajaremos desde el terminal (salvo el editor de textos, no somos tan puritanos…). Si poseéis una máquina linux, seguramente conocéis los comandos básicos para utilizar el terminal, aún así daremos un repasillo rápido. Es aconsejable crear una carpeta que contendrá todas las sesiones de trabajo del curso, dentro de ella crearemos una carpeta a cada sesión y dentro tendremos tanto los ficheros fuente como los ficheros ejecutables. Cuando estemos trabajando, desde el terminal tendremos que acceder a dicha carpeta, y una vez dentro crear un fichero .c (utilizando un editor de textos) en el cual escribiremos nuestro código fuente.

Una vez tengamos el código fuente, lo que debemos hacer es enlazar los ficheros fuentes (a veces tenemos varios archivos para crear un solo programa) y compilarlos para crear un ejecutable. Después de ello ya puedes ejecutar el programa para ver el resultado. A continuación veremos los comandos necesarios para hacer todo esto.

Comandos para moverte por el sistema de ficheros

En el terminal, trabajaremos solo con comandos que nos permitan hacer lo que queramos, no tendremos una interfaz gráfica. Entonces necesitaremos unos comandos para: movernos de carpeta, listar los archivos de la carpeta, crear o borrar una carpeta y mover/copiar/renombrar un archivo.

  • cd carpeta    –    Cambia de carpeta actual
  • ls carpeta     –    Lista el contenido de una carpeta (si escribimos solo ls, nos mostrará el contenido de la carpeta actual)
  • mv fichero_origen fichero_destino     –    Renombra o mueve un archivo. También se aplica a carpetas
  • mkdir carpeta     –    Crea una carpeta en el camino especificado
  • rmdir carpeta     –    Borra una carpeta. La carpeta debe estar vacía
  • rm fichero     –    Borra un fichero
  • cp fichero_original fichero_copia     –    Copia un fichero

Estos son los comandos principales que necesitarás para moverte por el sistema de ficheros. Dichos comandos aceptan parámetros que afectarán en el modo en el que se ejecuta el comando. Si quieres saber mejor como utilizar un comando, o los parámetros que acepta, linux tiene un comando que te será de gran ayuda: man comando (ej: man ls -> esto nos mostrará una página de ayuda sobre el comando ls).

Esto de momento solo nos sirve para movernos y modificar los ficheros de nuestra máquina linux. A nosotros nos interesa poder escribir nuestro código fuente, compilarlo y ejecutarlo.

Para escribir el código fuente, puedes usar un editor de textos vía terminal (hay comandos como vi o nano) pero es demasiado engorroso escribir ya que no nos aportará ninguna ayuda a la hora de codificar. En cambio linux posee un editor de textos que tiene algunas implementaciones que nos serán muy útiles a la hora de escribir nuestro programa. Dicho editor se llama gedit, y para utilizarlo, simplemente tienes que escribir en el terminal lo siguiente: gedit nuevo_programa.c & (el & sirve para que puedas seguir utilizando el terminal sin cerrar gedit, si no lo añadimos hasta que no cerremos gedit no podremos seguir utilizando el terminal). Una vez escrito, podremos empezar a codificar nuestro fichero fuente.

Una vez que hemos terminado el fichero fuente, tendremos que enlazar y compilar los ficheros fuentes, para ello usaremos el compilador GCC (compilador de GNU). Para utilizar el compilador tendremos que usar el comando gcc.

Estas son las opciones más utilizadas en el comando gcc:

  • -h  : muestra el conjunto de opciones aceptadas por el compilador
  • -c  : compila los ficheros .c y genera ficheros objeto .o (no genera un ejecutable)
  • -g  : compila y genera la información necesaria para la depuración
  • -o  : genera el fichero ejecutable con el nombre especificado

De esta forma, para compilar el programa fuente mi_programa.c y generar el fichero ejecutable con nombre mi_programa, ejecutaremos el siguiente comando:
gcc mi_programa.c –o mi_programa

Si la compilación ha sido correcta (el compilador no ha detectado errores de sintaxis), la línea de comandos aparecerá otra vez sin indicar nada. De lo contrario, si el compilador ha detectado algún error, aparecerá en pantalla la lista de errores. Para cada error se indica la línea donde se encuentra el error y una breve descripción (que intenta indicar el origen del fallo).

Si el programa está compuesto por más de un fichero fuente (por ejemplo colours.c y mi_programa.c) para compilar y enlazar en un solo paso tendríamos que hacer lo
siguiente:
gcc colours.c mi_programa.c –o mi_programa

Una vez que tenemos nuestro ejecutable, nos interesa ejecutarlo para ver si se comporta como esperamos, para ello nos tenemos que dirigir a la ubicación de nuestro programa y escribir el nombre de nuestro fichero precedido por «./» (ej: ./mi_programa).

A continuación ponemos todos los comandos necesarios para crear nuestros entorno de desarrollo y compilar nuestro primer programa:

  • minutazos@debian:~$ mkdir curso_C
  • minutazos@debian:~$ cd curso_C
  • minutazos@debian:~$ mkdir sesion1
  • minutazos@debian:~$ cd sesion1
  • minutazos@debian:~$ gedit ejercicio1.c & (escribimos el código de nuestro programa y lo guardamos)
  • minutazos@debian:~$ gcc ejercicio1.c -o ejercicio1 (compilamos nuestro código)
  • minutazos@debian:~$ ./ejeercicio1 (ejecutamos y comprobamos que el programa funciona correctamente)

Estableciendo un entorno de desarrollo en Windows

En Windows no disponemos de todas las herramientas necesarias para programar en C a diferencia de linux, pero eso no nos será ningún problema.

Necesitaremos de un editor de textos para escribir el código de nuestros programas. Windows traer por defecto Notepad, un sencillo editor de textos que ya nos serviría para nuestro propósito, pero no viene con algunas ventajas que si trae gedit. Pero no nos alarmemos, existen muchos editores de texto orientados a la programación que nos servirá perfectamente. Yo os recomiendo que os instaléis Notepad++ que es software libre y nos servirá perfectamente. Ahora lo que necesitamos es un compilador y un depurador. Para ello utilizaremos MinGW (Minimalist GNU for Windows), que es un conjunto de herramientas de GNU compiladas para ser usadas en Windows.

Ahora ya disponemos de todas las herramientas necesarias para programar en C en nuestra máquina Windows. Si quieres saber como usar MinGW, léete el apartado Estableciendo un entorno de desarrollo en Linux, donde explicamos como usar dichas herramientas.


Sé que aún no sabéis programar, y de poco os servirá tener el entorno de desarrollo preparado de momento, pero así ya estará todo listo para cuando empecemos a programar.

Como aún no sabemos hacer un programa, lo que vamos a tener que entrenar es nuestra capacidad para hacer algoritmos. A continuación os dejo unos ejercicios que tratan sobre el desarrollo de algoritmos para ir practicando hasta el próximo capítulo. En tres días subiremos la respuesta a los ejercicios propuestos.

Ejercicios:

  1. Escribe un algoritmo para dibujar un cuadrado cuya longitud de lado es de 100 puntos. Deja el lápiz en la posición inicial.
  2. Sea N el número de lados de un polígono regular y X la longitud en puntos de cada uno de sus lados. Escribe un algoritmo que dibuje un polígono regular de N lados de longitud X. Deja el lápiz en la posición inicial
  3. Escribe un algoritmo para programar la alarma de tu teléfono móvil a las 7:00 de la mañana.
  4. Aplicando la técnica del diseño descendente, escribe un algoritmo que, dada la ecuación de dos rectas (f(x) = ax + b; g(x) = cx + d), determina si las rectas son iguales, paralelas o se intersecan en un punto. En este último caso, determina el punto de corte.
  5. Aplicando la técnica del diseño descendente, escribe un algoritmo que, dada una secuencia de 5 números enteros, indique la suma de los dígitos de cada uno de los números. Por ejemplo, si la secuencia de números es: 102, 46, 21, 3000, 8888, entonces la suma de los dígitos es respectivamente: 3, 10, 3, 3, 32.

 

Si te ha surgido cualquier duda durante la lectura o haciendo los ejercicios, por favor contáctanos vía web o a través de las redes sociales.

 

1 comentario

Deja un comentario