Sei sulla pagina 1di 10

PROGRAMACIN EN C

2.-TOMA DE CONTACTO CON C

Dentro de los lenguajes de programacin, C es un lenguaje que tiene un cierto


prestigio y esto es fundamentalmente por dos razones:

Es bastante portable: un programa bien hecho en C se podr llevar a un


ordenador distinto o incluso a un sistema operativo distinto con muy pocos
cambios o quizs incluso sin ningn cambio. El motivo es que existe un
estndar: el ANSI C, que soportan casi todos los compiladores. Por eso, si
nos ceimos al estndar, es seguro que nuestros programas funcionarn en
distintos sistemas; cuanto ms nos separemos del estndar (en ocasiones
podremos hacerlo), ms difcil ser que funcionen en otro sistema distinto.

Permite hacer casi de todo: podemos usar rdenes de alto nivel (muy
cercanas al lenguaje humano), pero tambin de bajo nivel (ms cercanas
a lo que entiende el ordenador).

En su contra, el lenguaje C tiene que es ms difcil de aprender que otros y


que puede resultar difcil de leer (por lo que ciertos errores pueden tardar ms en
encontrarse).

Los pasos que seguiremos para crear un programa en C sern:

1. Escribir el programa en lenguaje C (fichero fuente).


2. Compilarlo con nuestro compilador. Esto crear un fichero objeto, ya
convertido a un lenguaje que el ordenador es capaz de entender.
3. Enlazarlo con otros ficheros del compilador, unas bibliotecas auxiliares que
incluirn en nuestro programa aquellas posibilidades que hayamos empleado
nosotros pero que realmente no sean parte del lenguaje C bsico, sino
ampliaciones de algn tipo.

La mayora de los compiladores actuales permiten dar todos estos pasos desde
un nico entorno, en el que escribimos nuestros programas, los compilamos, y los
depuramos en caso de que exista algn fallo.

1. Escribir un texto en C

Vamos con un primer ejemplo de programa en C, posiblemente el ms sencillo y


tpico. Se trata de escribir un texto en pantalla. La apariencia de este programa es
la que sigue:

1
PROGRAMACIN EN C

#include
<stdio.h>

Main()
{
printf("Hola");
}

Esto escribe Hola en la pantalla. Pero hay mucho que comentar:

Eso de #include nos permite incluir ciertas caractersticas para ampliar el


lenguaje base. En este caso, el motivo es que en el lenguaje C base no hay
predefinida ninguna orden para escribir en pantalla, sino que este tipo de
rdenes son una extensin, que se define en un fichero llamado stdio.h.
"printf" es la orden que se encarga de mostrar un texto en pantalla, la
responsable de que hayamos escrito ese include al principio del programa.
Qu hacen esas llaves { y } ? C es un lenguaje estructurado, en el que un
programa est formado por diversos bloques. Todos los elementos que
componen este bloque deben estar relacionados entre s, lo que se indica
encerrndolos entre llaves: { y }.
Finalmente, qu es eso de main? Es algo que debe existir siempre, e
indica el punto en el que realmente comenzar a funcionar el programa. Despus
de "main" van dos llaves { y }, que delimitan el bloque ms importante: el
cuerpo del programa. Porqu tiene un parntesis vaco a continuacin, se ver
ms adelante.
Cada orden de C debe terminar con un punto y coma (;)
El C es un lenguaje de formato libre, de modo que puede haber varias rdenes
en una misma lnea, u rdenes separadas por varias lneas o espacios entre
medias. Lo que realmente indica dnde termina una orden y donde empieza la
siguiente son los puntos y coma. Por ese motivo, el programa anterior se podra
haber escrito tambin de la forma que sigue (aunque no es aconsejable, porque
puede resultar ms difcil de seguir):

#include <stdio.h>
main() { printf("Hola"); }

Iremos practicando, lo poco visto hasta ahora , por ejemplo:

Por ltimo:

Respecto a lo anterior, hay dos formas especialmente frecuentes de colocar la


llave de comienzo. Una es como se ha hecho en el primer ejemplo: situar la
llave de apertura en una lnea, sola, y justo encima de la llave de cierre
correspondiente. La segunda forma habitual es situndola a continuacin del
nombre del bloque que comienza (en nuestro caso, a continuacin de la palabra
main), as:

2
PROGRAMACIN EN C

#include <stdio.h>

main() {
printf("Hola");
}

La gran mayora de las rdenes que encontraremos en el lenguaje C son


palabras en ingls o abreviaturas de stas. Pero hay que tener en cuenta que
C distingue entre maysculas y minsculas, por lo que "printf" es una palabra
reconocida, pero "Printf", "PRINTF" o "PrintF" no lo son.

2. Cmo probar este programa en Windows

La familia de sistemas Windows no incluye ningn compilador de C, de modo que


tendremos que localizar uno e instalarlo. Existen muchos gratuitos que se pueden
descargar de Internet, y que incluyen un editor y otras herramientas auxiliares. Es
el caso de Dev-C++, por ejemplo, que tiene su pgina oficial en www.bloodshed.net.
La instalacin es poco ms que hacer doble clic en el fichero descargado, y hacer clic
varias veces en el botn Siguiente:

En el caso de Dev-C++, podemos incluso trabajar con el entorno en espaol:

Para crear nuestro programa, en el men "Archivo" escogemos "Nuevo / Cdigo


fuente", y nos aparece un editor vaco en el que ya podemos empezar a teclear.
Si queremos nuestro programa en funcionamiento, entraramos al men Ejecutar y
usaramos la opcin Compilar y ejecutar:

3
PROGRAMACIN EN C

(si todava no hemos guardado los cambios en nuestro fuente, nos pedira antes
que lo hiciramos).

Puede ocurrir que se muestre el texto en pantalla, pero la ventana desaparezca tan
rpido que no tengamos tiempo de leerlo. En este caso, tenemos la siguiente opcin,
deberamos hacer un pequeo cambio a nuestro fuente, para que espere a que
pulsemos la tecla Intro antes de terminar. Una orden que nos permitira hacer eso
(y que ya veremos ms adelante) es getchar(), as que nuestro fuente quedara

#include <stdio.h>

main()
{
printf("Hola"); getchar();
}

3. Mostrar nmeros enteros en pantalla

Cuando queremos escribir un texto tal cual, como en el ejemplo anterior, lo


encerramos entre comillas. Pero no siempre querremos escribir textos prefijados. En
muchos casos, se tratar de algo que habr que calcular. El caso ms sencillo es
el de una operacin matemtica. En principio, podramos pensar en intentar algo
as (que est mal):

printf(3+4);

En muchos lenguajes de programacin esto es perfectamente vlido, pero no en C.


La funcin printf nos obliga a que lo que escribamos en primer lugar sea un
texto, indicado entre comillas. Eso que le indicamos entre comillas es realmente un
cdigo de formato. Dentro de ese cdigo de formato podemos tener caracteres
especiales, con los que le indicamos dnde y cmo queremos que aparezca un
nmero (u otras cosas). Esto lo veremos con detalle un poco ms adelante, pero de
momento podemos adelantar que %d sirve para decir quiero que aqu aparezca un
nmero entero. Qu nmero? El que le indicamos a continuacin, separado por una
coma:

printf("%d", 3+4);

4
PROGRAMACIN EN C

Este ejemplo mostrara en pantalla un nmero entero (%d) que sea el resultado de
suma 3 y 4.
Podemos escribir entre las comillas ms detalles sobre lo que estamos haciendo:
printf("El resultado de sumar 3 y 4 es %d", 3+4);

4. Operaciones aritmticas bsicas

Est claro que el smbolo de la suma ser un +, y podemos esperar cual ser el
de la resta, pero alguna de las operaciones matemticas habituales tiene smbolos
menos intuitivos:

Operador Operacin
+ Suma
- Resta, negacin
* Multiplicacin
/ Divisin
% Resto de la divisin (mdulo)

Orden de prioridad de los operadores :


- En primer lugar se realizarn las operaciones indicadas entre parntesis.
- Luego la negacin.
- Despus las divisiones, multiplicaciones y el resto de la divisin.
- Finalmente, las sumas y las restas.
- En caso de tener igual prioridad, se analizan de izquierda a derecha.

El espacio del que disponemos para almacenar los nmeros es limitado. Si el


resultado de una operacin es un nmero demasiado grande, obtendremos un
resultado errneo. Por eso en los primeros ejemplos usaremos nmeros pequeos.
Ms adelante veremos a qu se debe realmente este problema y cmo evitarlo.

5. Introduccin a las variables:

int

Las variables son algo que no contiene un valor predeterminado, un espacio de


memoria al que nosotros asignamos un nombre y en el que podremos almacenar
datos.

El primer ejemplo nos permita escribir Hola. El segundo nos permita sumar dos
nmeros que habamos prefijado en nuestro programa. Pero esto tampoco es lo
habitual, sino que esos nmeros dependern de valores que haya tecleado el usuario
o de clculos anteriores.

Por eso necesitaremos usar variables, en las que guardemos los datos con los que
vamos a trabajar y tambin los resultados temporales. Vamos a ver como ejemplo lo
que haramos para sumar dos nmeros enteros que fijsemos en el programa.

5
PROGRAMACIN EN C

5.1 Definicin de variables: nmeros enteros

Para usar una cierta variable primero hay que declararla: indicar su nombre y el tipo
de datos que querremos guardar.

El primer tipo de datos que usaremos sern nmeros enteros (sin decimales), que
se indican con int (abreviatura del ingls integer). Despus de esta palabra se
indica el nombre que tendr la variable:

int primerNumero;

Esa orden reserva espacio para almacenar un nmero entero, que podr tomar
distintos valores, y al que nos referiremos con el nombre primerNumero.

5.2 Asignacin de valores


Podemos darle un valor a esa variable durante el programa haciendo

primerNumero=234;

O tambin podemos darles un valor inicial (inicializarlas) antes de que empiece el


programa, en el mismo momento en que las definimos:

int primerNumero=234;

O incluso podemos definir e inicializar ms de una variable a la vez

int primerNumero=234, segundoNumero=567;

Esta lnea reserva espacio para dos variables, que usaremos para almacenar nmeros
enteros; una de ellas se llama primerNumero y tiene como valor inicial 234 y la otra
se llama segundoNumero y tiene como valor inicial 567.

Despus ya podemos hacer operaciones con las variables, igual que las hacamos
con los nmeros:

suma = primerNumero + segundoNumero;

5.3 Mostrar el valor de una variable en pantalla

Una vez que sabemos cmo mostrar un nmero en pantalla, es sencillo mostrar el
valor de una variable.
Para un nmero hacamos cosas como:

printf("El resultado es %d", 3+4);

y si se trata de una variable es idntico:

printf("El resultado es %d", suma);

6
PROGRAMACIN EN C

Ya sabemos todo lo suficiente para crear nuestro programa que sume dos nmeros
usando variables:

#include <stdio.h>

main()
{
int primerNumero;
int segundoNumero;
int suma;
primerNumero = 234;
segundoNumero = 567;
suma = primerNumero + segundoNumero;
printf("Su suma es %d", suma);
}

Repasemos lo que hace:


- #include <stdio.h> dice que queremos usar funciones de entrada/salida estndar.
- main() indica donde comienza en s el cuerpo del programa.
- { seala el principio del cuerpo (de main)
- int primerNumero; reserva espacio para guardar un nmero entero, al que
llamaremos primerNumero.
- int segundoNumero; reserva espacio para guardar otro nmero entero, al que
llamaremos segundoNumero.
- int suma; reserva espacio para guardar un tercer nmero entero, al que
llamaremos suma.
- primerNumero = 234; da el valor del primer nmero que queremos sumar
- segundoNumero = 567; da el valor del segundo nmero que queremos sumar
- suma = primerNumero + segundoNumero; halla la suma de esos dos nmeros y la
guarda en otra variable, en vez de mostrarla directamente en pantalla.
- printf("Su suma es %d", suma); muestra en pantalla el resultado de esa suma.
- } seala el final del cuerpo (de main)

Nota: las variables las podemos declarar dentro del cuerpo del programa (main) o
fuera de l. En programas tan sencillos no habr diferencia. Ms adelante veremos
que en ciertos casos s se comportarn de forma distinta segn donde las hayamos
declarado.

Podemos resumir un poco este programa fuente, si damos los valores a las variables
al inicializarlas:

#include <stdio.h>

main()
{
int primerNumero = 234;
int segundoNumero = 567;
int suma;

suma = primerNumero + segundoNumero;


printf("Su suma es %d", suma);
}

7
PROGRAMACIN EN C

6. Identificadores

Estos nombres de variable (lo que se conoce como identificadores) pueden estar
formados por letras, nmeros o el smbolo de subrayado (_) y deben comenzar por
letra o subrayado. No deben tener espacios entre medias, y hay que recordar que las
vocales acentuadas y la ee son problemticas, porque no son letras "estndar" en
todos los idiomas. Algunos compiladores permiten otros smbolos, como el $, pero
es aconsejable no usarlos, de modo que el programa sea ms portable (funcione con
facilidad en distintos sistemas).

Por eso, no son nombres de variable vlidos:


1numero (empieza por nmero)
un numero (contiene un espacio)
Ao1 (tiene una ee)
MsDatos (tiene una vocal acentuada)

Tampoco podremos usar como identificadores las palabras reservadas de C. Por


ejemplo, la palabra "int" se refiere a que cierta variable guardar un nmero entero,
as que esa palabra "int" no la podremos usar tampoco como nombre de variable
(no vamos a incluir ahora una lista de palabras reservadas de C, ya nos encontraremos
con ellas).

De momento, intentaremos usar nombres de variables que a nosotros nos resulten


claros, y que no parezca que puedan ser alguna orden de C.
Hay que recordar que en C las maysculas y minsculas se consideran diferentes,
de modo que si intentamos hacer

PrimerNumero = 0;
primernumero = 0;

o cualquier variacin similar, el compilador protestar y nos dir que no conoce esa
variable, porque la habamos declarado como

int primerNumero;

El nmero de letras que puede tener un "identificador" (el nombre de una


variable, por ejemplo) depende del compilador que usemos. Es frecuente que
permitan cualquier longitud, pero que realmente slo se fijen en unas cuantas letras
(por ejemplo, en las primeras 8 o en las primeras 32). Eso quiere decir que puede
que algn compilador considerase como iguales las variables NumeroParaAnalizar1
y NumeroParaAnalizar2, porque tienen las primeras 18 letras iguales. El C estndar
(ANSI C) permite cualquier longitud, pero slo considera las primeras 31.

7. Comentarios

Podemos escribir comentarios, que el compilador ignora, pero que pueden servir
para aclararnos cosas a nosotros. Se escriben entre /* y */:

8
PROGRAMACIN EN C

int suma; /* Porque guardar el valor para usarlo ms tarde */

Es conveniente escribir comentarios que aclaren la misin de las partes de nuestros


programas que puedan resultar menos claras a simple vista. Incluso suele ser
aconsejable que el programa comience con un comentario, que nos recuerde
qu hace el programa sin que necesitemos mirarlo de arriba a abajo. Un ejemplo
casi exagerado:

/* ---- Ejemplo en C: sumar dos nmeros prefijados ---- */

#include <stdio.h>

main()
{
int primerNumero = 234;
int segundoNumero = 567;
int suma; /* Porque guardar el valor para usarlo ms tarde */

/* Primero calculo la suma */


suma = primerNumero + segundoNumero;
/* Y despus muestro su valor */
printf("Su suma es %d", suma);
}

Un comentario puede empezar en una lnea y terminar en otra distinta, as:

/* Esto
es un comentario que ocupa ms de una lnea
*/

8. Datos por el usuario: scanf

Si queremos que sea el usuario de nuestro programa quien teclee los valores,
necesitamos una nueva orden, llamada scanf. Su manejo recuerda al de printf, con
una pequea diferencia:

scanf("%d", &primerNumero);

Con ese %d indicamos que esperamos leer un nmero entero (igual que para
printf) y con &primerNumero decimos que queremos que ese valor ledo se guarde
en la variable llamada primerNumero. La diferencia est en ese smbolo & que
nos obliga scanf a poner antes del nombre de la variable. Ms adelante veremos qu
quiere decir ese smbolo y en qu otros casos se usa.

9
PROGRAMACIN EN C

Un ejemplo de programa que sume dos nmeros tecleados por el usuario sera:

/*-------------------------*/
/* Ejemplo en C */
/* Leer valores para */
/* variables */
/*-------------------------*/

#include <stdio.h>

main() /* Cuerpo del programa */


{
int primerNumero, segundoNumero, suma; /* Nuestras variables */

printf("Introduce el primer nmero ");


scanf("%d", &primerNumero);
printf("Introduce el segundo nmero ");
scanf("%d", &segundoNumero);
suma = primerNumero + segundoNumero;
printf("Su suma es %d", suma);
}

10

Potrebbero piacerti anche