PDF de programación - Programar en C - Prácticas de Programación

Imágen de pdf Programar en C - Prácticas de Programación

Programar en C - Prácticas de Programacióngráfica de visualizaciones

Actualizado el 12 de Enero del 2019 (Publicado el 17 de Diciembre del 2018)
913 visualizaciones desde el 17 de Diciembre del 2018
412,7 KB
36 paginas
Creado hace 7a (21/05/2012)
Prácticas de Programación

Programar en C

© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu

Programar en C



Este manual va dirigido a personas con un nivel básico de programación en C, que necesiten un
recordatorio de temas elementales.



Se muestran los conceptos básicos de la estructura de los programas y los pasos necesarios
para pasar desde el código fuente al ejecutable. También se introducen conceptos más
avanzados, que no es necesario adquirir, y están marcados con una etiqueta de “sólo
curiosidad”.

Trabajar con múltiples ficheros.

1.
2. Compilación/vinculación/ejecución desde línea de comandos y programas más comunes.



Se proponen algunos ejercicios de autoevaluación, con la idea que:

1. Se intenten resolver con los conocimientos actuales del estudiante, utilizando las buenas

prácticas de programación.

2. Una vez resueltos, se diga la resolución propuesta paso a paso, comprobando si se ha

llegado a los mismos resultados, y si se ha analizado los distintos puntos del problema.

1. No hay una única solución buena, por lo tanto sólo se quiere que os planteéis ciertos

aspectos de la resolución de un problema.
La solución no se da tal cual sino que se resuelve paso a paso y haciendo que os
fijes en ciertos detalles importantes de la resolución de problemas. Es muy
recomendable hacer el seguimiento.

2.

3. Se pregunte en las aulas de laboratorio, aquellos puntos que no queden claros.

© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu

Programar en C



Estructura de un programa en C


Un programa en C consiste en uno o más ficheros, los cuales contienen las declaraciones
y la implementación de un conjunto de funciones y acciones.


Las declaraciones se suelen poner en los ficheros con extensión *.h, mientras que la
implementación de les funciones y acciones suele estar en un fichero con extensión
*.c





Tanto los ficheros *.h como los *.c son ficheros de texto, se pueden crear y editar con
cualquier editor de texto que permita trabajar con texto plano (*.txt).


Los entornos de programación como el Dev-C++, Eclipse o el Microsoft Visual Studio
entre otros, no son imprescindibles, pero facilitan la tarea del programador,
automatizando los procesos de compilación y ejecución de los programas, así como
la detección de errores en el código y otras herramientas más sofisticadas.

Tenemos a nuestra disposición gran cantidad de librerías estándar que nos permiten
interactuar con el usuario y el sistema. Para utilizar acciones y funciones de las librerías
estándar, deberemos importar las declaraciones. Esto se hace mediante la directiva
#include.


Ejemplos de estas funciones predefinidas, son el printf que nos permite escribir en la
pantalla, o el scanf que nos permite leer de teclado. También hay las equivalentes
para leer y escribir de ficheros o inclusos para enviar o recibir datos por la red.

© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu

Programar en C



Estructura de un programa en C


Todo programa en C que haya de ser ejecutado, necesita tener definida la función main.
En el cas más simple, ésta función puede declarar-se sin parámetros. Cuando el sistema
ejecuta nuestro programa, espera saber si se ha ejecutado correctamente. Para informar
de cómo ha ido la ejecución, se utilizan las constantes EXIT_FAILURE en caso de error o
EXIT_SUCCESS si todo ha ido de forma correcta. Generalmente al final de la función
main se retorna el valor de que todo ha ido como se esperaba, y en caso de error, se
utiliza la función exit(EXIT_FAILURE), que acaba la ejecución e indica al sistema que ha
habido un error.

int main(void) {

......
return EXIT_SUCCESS;

}



Una opción más interesante es capturar la secuencia de parámetros pasados al programa
en ser ejecutado. El parámetro argc contiene el número de parámetros de entrada, y el
parámetro argv es una taula con argc posiciones, que contiene los parámetros.

int main(int argc, char *argv[]) {

......
return EXIT_SUCCESS;

}

© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu

Programar en C



Estructura de un programa en C


Comenzamos con el programa más simple y típico, el “Hello World”. En la versión más
simple, éste programa estará dentro de un solo fichero. Fijaos que hemos añadido dos
líneas al principio, importando los ficheros stdio.h y stdlib,h. Estos ficheros contienen las
declaraciones y constantes más habituales. Muchos compiladores los añaden por defecto,
pero si no queremos tener problemas, es bueno que siempre los añadamos al principio.

#include <stdio.h>
#include <stdlib.h>

int main(void) {

printf(“Hello World”);
return EXIT_SUCCESS;

}

hello.c



Para poder ejecutar este fichero, necesitaremos compilarlo y enlazarlo. Entender estos
procesos queda fuera de los objetivos de esta asignatura, pero a grandes rasgo consisten
en:


Compilar: Elimina las partes no funcionales del código (espacios, comentarios,
tabuladores, ...) y lo convierte en un código que la máquina pueda entender.
Enlazar: Se añaden las partes de código que necesitará nuestro programa para ser
un ejecutable (librerías del sistema u otros ficheros compilados).



© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu

Programar en C



Compilar y ejecutar un programa en C













Empezaremos con la forma más tradicional de compilar, la línea de comandos. Utilizaremos el
compilador GCC. Éste programa lo podéis encontrar en:





Directorio/Carpeta Bin de la instalación del DevC++ (i.e “C:\DevCPP\Bin”)
En internet http://gcc.gnu.org
En los sistemas Linux se instala por defecto en instalar los paquetes de programación.

Abrimos una ventana de comandos, terminal, consola. En Windows la podéis abrir ejecutando el
comando “cmd.exe”. En Linux y Mac generalmente hay un icono de acceso directo.
Si queremos compilar y enlazar directamente, ejecutamos el siguiente comando:

gcc –o <nombreEjecutable> <fichero1.c> <fichero2.c> ... <ficheroN.c>

Por ejemplo, en el caso del “Hello World”, tendremos:

gcc –o hello hello.c

Como resultado obtendremos el fichero hello.exe (en Windows) o un fichero hello en Linux y/o
Mac.
Utilizando entornos como el DevC++, todo éste proceso se hace de forma automática, aunque si
tenemos más de un fichero *.c tendremos que crear un proyecto que los contenga todos.

© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu

Programar en C



Compilar y ejecutar un programa en C


Para practicar un poco más, vamos a suponer que queremos definir e implementar las
acciones escribirEntero y escribirHelloWorld. Dado que son métodos que utilizaremos a
menudo, una buena práctica seria guardarlos para futuras ocasiones. Por consiguiente, los
definiremos en ficheros a parte,
los ficheros (utils.h y utils.c). Rescribimos nuestro
programa “Hello World” para utilizar estas acciones:




El fichero utils.h contiene sólo la declaración
El fichero utils.c implementa las acciones
Para compilarlo todo haremos:

gcc –o hello hello.c utils.c

#include “utils.h”

int main(void) {

escribirHelloWorld();
return EXIT_SUCCESS;

#include <utils.h>

}

hello.c

void escribirEntero(int value) {

printf(“%d”,value);

}
void escribirHelloWorld(void) {

printf(“Hello World”);

}

#include <stdio.h>
#include <stdlib.h>

utils.c

void escribirEntero(int value);
void escribirHelloWorld(void);

utils.h

© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu

Programar en C



Compilar y ejecutar un programa en C. (Sólo curiosidad)


Para compilar y enlazar en dos etapas, podéis hacerlo con el siguiente comando:

gcc –c <fichero1.c> <fichero2.c> ... <ficheroN.c>





El resultado es un fichero con extensión *.o para cada fichero *.c. Éstos ficheros tienen el
código en lenguaje máquina de nuestro programa. Ahora. Para enlazarlos y obtener el
fichero ejecutable, utilizaremos el mismo comando que antes, pero con los ficheros *.o

gcc –o <nombreEjecutable> <fichero1.o> <fichero2.o> ... <ficheroN.o>

Antes de crear el código máquina final, se genera unos ficheros *.s en código
ensamblador. Si queréis podéis evitar que se eliminen añadiendo el parámetro –S en la
compilación:

gcc –c –S <fichero1.c> <fichero2.c> ... <ficheroN.c>

© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu

Programant en C



Compilar y ejecutar un programa en C. (Sólo curiosidad)


Aspecto de nuestro código una vez compilado.

.def

___main;

.scl

2;

.type

32;

.endef

_main; .scl

2;

.type

32;

.endef

.file "hello.c"

gcc2_compiled.:
___gnu_compiled_c:

.text

.align 4

.globl _main
.def

_main:

pushl %ebp
movl %esp,%ebp
subl $8,%esp
call ___main
call _escriuHelloWorld
xorl %eax,%eax
jmp L2
.p2align 4,,7

L2:

L☺♥ └ ♫ ♦☺.text î ¼ ☻ `.data

@ └.bss

¶ .file ■ g☺hello.c

Ç └UëÕâÞ Þ 1└Ù ╔├

♦ ☺ ♠

‼ ☺ ♠ _ma

in ☺ ☻ .text ☺ ♥☺ ☻

.data ☻ ♥☺

.bss

♥ ♥☺

___main

☻☺

% ☻ 7 gcc2_compiled. ___gnu_compiled_c _escribirHelloWorld

hello.o

leave
ret
.def

_escrbirHelloWorld;

.scl

2;

.type

32;

.endef

hello.s

© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu

Programar en C



Compilar y ejecutar un programa en C.


Aunque es interesante saber como se puede hacer en línea de comandos, generalmente
utilizaremos un entorno de programación. En estos entornos, con un solo botón se
ejecutará todo el proceso.


En Fundamentos de Programación se utiliza el entorno DevC++, el cual sigue siendo
válido para esta asignatura. Podéis seguir trabajando con este, y los colaboradores
lo tanto es el entorno
docentes os darán soporte para este entorno, por
recomendado.
Podéis utilizar entornos de programación abiertos, como Eclipse o Netbeans, que
están muy implantado en entornos Linux.
Para entornos Windows, también podéis utilizar el Microsoft Visual Studio, del cual
hay versión limitada gratuita, y como estudiantes de la UOC podéis acceder a la
versión profesiona
  • Links de descarga
http://lwp-l.com/pdf14562

Comentarios de: Programar en C - Prácticas de Programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad