Académique Documents
Professionnel Documents
Culture Documents
una o ms rutinas o funciones, no teniendo por qu estar todas en un mismo fichero (esto
es, pueden escribirse programas en C cuyo cdigo est repartido por varios ficheros). Una
de estas funciones, main() es de obligatoria declaracin en todos los programas C, ya que
ser en esa funcin donde comience la ejecucin de nuestro programa. Es decir, todos
nuestros programas comenzarn como si ``alguien hubiera llamado a la funcin main por
nosotros. Nuestro cdigo deber elaborarse y estructurarse teniendo en cuenta este punto de
entrada. Como decamos uno de los elementos principales de todo programa C son las
funciones. Cada funcin est compuesta por los siguientes elementos: Una cabecera de
funcin: la misin de la cabecera es identificar la funcin, as como declarar el tipo de datos
que devuelve. Declaracin de argumentos: la declaracin de argumentos informa de los
parmetros que recibe la funcin (en caso de recibir alguno). Una sentencia compuesta:
que contiene el cdigo de la funcin. El concepto de sentencia merece una explicacin ms
detallada. Podemos considerar una sentencia simple como una instruccin u orden del
programa. C extiende esta nocin a grupos de sentencias, llamadas sentencias compuestas.
Este tipo de sentencias sirven para almacenar otras sentencias que se ejecutarn de forma
secuencial. En cuanto a la sintaxis, las sentencias simples se delimitan por el carcter ;,
mientrs que las sentencias compuestas delimitan las sentencias que contienen entre un par
de llaves ({ y }). Adems de funciones en un programa C podemos encontrar los siguientes
elementos: Comentarios: los comentarios no son ms que pequeas anotaciones de texto
que clarifican alguna parte del cdigo. En C cada comentario debe comenzar por la
cadena /* y terminar por */ Definiciones de tipos de datos y variables globales: pasaremos
a ver estos elementos ms adelante. Directivas del preprocesador: una directiva del
preprocesador es una instruccin que se le da al compilador para que se realice cierta
accin antes de realizar la compilacin del cdigo. Veremos esto en ms profundidad en el
captulo
Algunos ejemplos de programas simples en C:
N Lnea Lnea Significado 1 /* Esto es un comentario */ Comentario 3 int main (void)
Inicio de la funcin main 6 printf( Hola mundo!\n ); printf escribe texto por pantalla 8
return 1; Salimos de la funcin main, devolviendo 1
El siguiente ejemplo es un programa ms elaborado que calcula el rea de un crculo dado
un radio. Recuerda que estamos echando un vistazo muy general a la sintaxis de los
programas C. No te preocupes si no entiendes alguna sentencia o construccin del
programa. N Lnea Lnea Significado 1 #include <stdio.h> Directiva del preprocesador 3
#define PI 3.1415 Directiva del preprocesador 69 Declaracin y definicin de la funcin
areaCirculo 12 int main (void) Inicio de la funcin main 15 float radio; Declaracin de una
variable real (tipo float) 20 scanf( %f, &radio ); Llamada a la funcin scanf, que maneja
la lectura desde el teclado 22 if (radio < 0) Inicio de una sentencia condicional if-else Como
puedes observar este ejemplo es un poco ms complicado que el anterior. La estructura
sintctica del programa no cambia, solo se aaden nuevos elementos: Funciones: Se ha
aadido la funcin areaCirculo, llamada desde main, que calcula el rea de un crculo dado
su radio. Adems esta funcin recibe un parmetro (radio) y devuelve un nmero real.
Observa como la estructura de declaracin de funciones es consistente. Directivas del
procesador: Toda lnea que empiece por el carcter # es una directiva del preprocesador.
Como ya hemos dicho explicaremos estas directivas en el captulo 4. Nuevos tipos de
sentencias: Hasta ahora habamos visto solo sentencias de llamada a funcin (a la funcin
printf ms concretamente) y de devolucin de valores desde la funcin (return). Aqu se
presentan sentencias de declaracin de variables (lneas 15,16) y de ejecucin condicional
(sentencia if-else). Hay un grupo de smbolos, que son tratados como caracteres
individuales, que especifican algunos caracteres especiales del cdigo ASCII. Los ms
importantes son: \a Alerta \b Espacio atrs \f Salto de pgina \n Salto de lnea \r Retorno de
carro \t Tabulacin horizontal \v Tabulacin vertical \\ Barra invertida \ Comilla simple \
Comillas dobles \OOO Visualiza un carcter cuyo cdigo ASCII es OOO en octal
\xHHH Visualiza un carcter cuyo cdigo ASCII es HHH en hexadecimal Tipos bsicos y
variables Los tipos de datos bsicos definidos por C son caracteres, nmeros enteros y
nmeros en coma flotante. Los caracteres son representados por char, los enteros por short,
int, long y los nmeros en coma flotante por float y double. Los tipos bsicos disponibles y
su tamao son: Char Carcter (normalmente 8 bits) Short Entero corto con signo
(normalmente 16 bits) Int Entero con signo (depende de la implementacin) Unsigned
Entero sin signo (depende de la implementacin) Long Entero largo con signo
(normalmente 32 bits) Float Flotante simple (normalmente 32 bits) Double Flotante doble
(normalmente 64 bits) Expresiones y operadores Los distintos operadores permiten formar
expresiones tanto aritmticas como lgicas. Los operadores aritmticos y lgicos son: +, suma, resta ++, incremento, decremento
, /, % multiplicacin, divisin, mdulo
rotacin de bits a la derecha, izquierda.
& AND booleano | OR booleano ^ EXOR booleano ~ complemento a 1
<, <= menor, menor o igual >, >= mayor, mayor o igual
Programar es fcil (o no)
Un blog de Alfredo Moreno sobre programacin de ordenadores para humanos y similares
Home
Acerca de
Curso de programacin en C
Subscribe to feed
int variable_global;
const char constante_global;
#define PI 3.14
/* Algoritmo principal */
int main(void)
{
/* Variables locales del algoritmo principal */
int a, b;
float x, y;
...
...
/* Instrucciones del algoritmo principal */
...
funcin1(argumentos);
...
funcin2(argumentos);
...
return 0;
}
/* Cdigo completo de las funciones escritas por nosotros */
float funcin1 (argumentos)
{
/* Variables locales e instrucciones de este subalgoritmo */
}
float funcin2 (argumentos)
{
/* Variables locales e instrucciones de este subalgoritmo */
http://profeblog.es/blog/alfredo/2008/03/27/estructura-general-de-unprograma-en-c/
Al iniciar un proyecto o archivo y abrir el editor de cdigo, ver que ya hay cdigo en el
lugar que le corresponde y en el orden correcto. Cualquier cdigo que escriba debe seguir la
siguiente secuencia:
1. Instrucciones Option
2. Instrucciones Imports
3. Instrucciones Namespace y elementos del nivel de espacio de nombres
Si escribe instrucciones en un orden distinto, pueden producirse errores de compilacin.
Un programa tambin puede contener instrucciones de compilacin condicional. Pueden
incluirse en el archivo de cdigo fuente entre las instrucciones de la secuencia anterior.
Instrucciones Option
Las instrucciones Option establecen reglas de base para el cdigo subsiguiente, y de esta
forma ayudan a prevenir errores de sintaxis y de lgica. Instruccin Option Explicit (Visual
Basic) garantiza que se declaran todas las variables y que se escriben correctamente, lo
que reduce el tiempo de depuracin. La instruccin Option Strict (Instruccin) ayuda a
reducir errores de lgica y prdidas de datos que puedan producirse al trabajar entre
variables de diferentes tipos de datos. Option Compare (Instruccin) especifica la manera
en que se comparan las cadenas entre s, segn sus valores Binary o Text.
Instrucciones Imports
Puede incluir Imports (Instruccin) para importar nombres definidos fuera del proyecto. Las
instrucciones Imports permiten que el cdigo haga referencia a clases y otros tipos
definidos en el espacio de nombres importado sin tener que calificarlos. Puede utilizar
tantas instrucciones Imports como sea necesario. Para obtener ms informacin, vea
Referencias y la instruccin Imports.
Instrucciones Namespace
Los espacios de nombres ayudan a organizar y clasificar los elementos de programacin
para facilitar la agrupacin y el acceso. Utiliza Namespace (Instruccin) para clasificar las
instrucciones siguientes dentro de un espacio de nombres determinado. Para obtener ms
informacin, vea Espacios de nombres en Visual Basic.
Las clases, estructuras y mdulos contienen todo el cdigo del archivo de cdigo fuente.
Son elementos del nivel de espacio de nombres, que pueden aparecer dentro de un espacio
de nombres o en el nivel del archivo de cdigo fuente. Contienen las declaraciones de todos
los dems elementos de programacin. Las interfaces, que definen firmas de elemento pero
no proporcionan ninguna implementacin, tambin aparecen en el nivel de mdulo. Para
obtener ms informacin sobre los elementos del nivel de mdulo, vea los siguientes
temas:
Module (Instruccin)
Los elementos de datos en el nivel de espacio de nombres son las enumeraciones y los
delegados.
Declare (Instruccin)
Operator (Instruccin)
Property (Instruccin)
Event (Instruccin)
Los elementos de datos en el nivel de mdulo son las variables, las constantes, las
enumeraciones y los delegados.
La mayora del contenido de los elementos del nivel de procedimiento son instrucciones
ejecutables, que constituyen el cdigo en tiempo de ejecucin del programa. Todo el cdigo
ejecutable debe estar incluido en algn procedimiento (Function, Sub, Operator, Get,
Set, AddHandler, RemoveHandler, RaiseEvent). Para obtener ms informacin, vea
Instrucciones ejecutables.
Los elementos de datos en el nivel de procedimiento se limitan a las constantes y las
variables locales.
Procedimiento Main
Sub Main()
Sub Main(ByVal cmdArgs() As String)
http://msdn.microsoft.com/es-es/library/022td33t(v=vs.80).aspx
Palabrasreservadas
Cabecera(ttulo)
program
Declaracindeunidades
uses
Declaracindeconstantes
const
Declaracindetipos
type
Declaracindevariables
var
Declaracindesubprogramas
functionoprocedure
Cuerpodelprograma
begin,endypunto(.)
Cabecera de un programa
La cabecera es una seccin obligatoria, debe figurar en todos
los programas. Debe comenzar con la palabra reservada
program seguida del nombre del programa y un ";". Con esto
ya se cumpliran los requisitos mnimos que debe tener una
cabecera, pero se puede y es muy recomendable inclur tambin
un comentario. Este comentario lo utilizamos para documentar
el programa, que es algo que la gente suele dejar en segundo
plano, pero es de lo ms importante en programacin. En el
comentario se debe inclur el mayor nmero de componentes de
los que se citan a continuacin:
...
Volveralejemplo
Volveraliniciodelapgina
PasaralsiguienteapartadosobreUnidades
Declaracin de unidades
Nos encontramos en la parte correspondiente a la declaracin
del uso de unidades. En este tutorial no se le dar importancia a
esta seccin, fundamentalmente por dos motivos:
Volveralejemplo
Volveraliniciodelapgina
PasaralsiguienteapartadosobreConstantes
Declaracin de constantes
Esta seccin no es obligatoria, y slo tendrs que declararla si
quieres definir alguna constante en tu programa.
A continuacin se muestra la manera en que se escribe la
seccin de constantes. Es tan fcil como empezar con la palabra
reservada const, seguida de una lista de parejas
nombre_de_la_constante=valor_de_la_constante:
const
identificador1=valor1;...;identificadorn=valorn;
Una constante es un objeto al que se le asigna un valor al
declararlo y lo mantiene durante toda la ejecucin del programa.
Si quieres profundizar en este tema puedes ir al captulo sobre
constantes y variables. Mira el siguiente ejemplo y vers que
declarar constantes es una de las cosas ms fciles que hay en
Pascal.
...
const
Min
= 0;
Max
= 1000;
Incremento = 5;
N
= Max div Incremento;
vale 20 *)
Saludo
= 'Hola';
Esta es una cadena de caracteres *)
Suma
= (3 * 2) + (5 * 4);
Suma tiene el valor 26 *)
...
(* N
(*
(*
Volveralejemplo
Volveraliniciodelapgina
PasaralsiguienteapartadosobreTiposdedatos
Declaracin de tipos
Esta seccin no es obligatoria, y slo tendrs que declararla si
quieres definir tus propios tipos de datos en el programa. Para
programas sencillos no te har falta declarar tipos, te bastar
con los que te proporciona Pascal (Integer, Real, Boolean, String,
...). Aunque a veces es interesante declarar tipos para hacer el
cdigo ms legible. Por ejemplo:
...
(*tipoquedefineunacadenade
15caract.*)
typetNombre=String[15];
(*variableconespaciopara15
caract.*)
varNombre:tNombre;
...
Declarar tipos de datos no es nada complicado. A continuacin,
tienes la forma genrica que describe cmo hacerlo. La seccin
comienza con la palabra reservada type, seguida de una lista de
pares nombre_del_tipo=valor_del_tipo:
type
identificador1=valor1;...;identificadorn=valorn;
Todo objeto de informacin que se use en Pascal tiene un tipo
asociado. Pero en esta seccin no entraremos en detalle sobre
esto. Dispones de un tema completo dedicado a los tipos de
datos. Para que vayas familiarizndote, en el siguiente ejemplo
se declararan unos cuantos:
...
type
tContador
tPalabra
tFinSemana
enumerado *)
tHorasDia
subrango *)
= Integer;
= String[20];
= (Sabado,Domingo); (* tipo
= 0..23;
(* tipo
...
En este ejemplo se declaran cinco tipos de datos. En los dos
primeros lo que se hace es dar otro nombre a tipos que ya
existen en Pascal (integer,String). Como ya se ha mencionado,
esto sirve para que el cdigo del programa sea ms legible; ya
que no es lo mismo ver String[20], que ver tPalabra. Por otro
lado, los dos ltimos son dos ejemplos de tipos definidos por
el usuario. Para este propsito Pascal dispone de dos tipos
especiales, los enumerados y los subrangos.
Declaracin de variables
Esta seccin, aunque no es obligatoria casi siempre se declara.
Pues un programa por muy pequeo que sea, casi siempre va a
hacer uso de variables. Por ejemplo, si utilizas algn bucle en tu
programa, tienes que tener por lo menos una variable para la
progresin de ste.
Nota: Cuando hablamos de un bucle nos estamos refiriendo a
las estructuras de control repetitivas. En ellas puedes
profundizar en Control del flujo.
La forma de declarar variables es muy sencilla. Esta seccin
debe comenzar con la palabra reservada var, seguida de una
lista de parejas lista_de_variables=tipo_al_que_pertenecen.
Cada par debe ir seguido por un punto y coma. La
lista_de_variables es uno o ms nombres de variables separados
por comas:
varlistaVar1:tipo1;...;listaVarn:tipon;
Una variable no representa ms que una porcin de memoria
en donde guardamos un dato que depender del tipo al que
pertenezca la variable. A diferencia de una constante, el valor
de una variable puede cambiar durante la ejecucin de un
programa. Otra diferencia, es que a una variable no basta con
...
var
I, J, K
enteros *)
Contador
Radio
*)
Letra
*)
: Integer;
(* valores
: Integer;
: Real;
(* valor real
: Char;
(* un caracter
...
En este ejemplo se declaran seis variables. Las cuatro primeras
son de tipo entero. La quinta es de tipo real, o sea, un nmero
con parte decimal. Y la sexta es un carcter, que no es lo mismo
que una cadena de un carcter (String[1]). La diferencia puedes
verla en el tema sobre tipos de datos.
Volveralejemplo
Volveraliniciodelapgina
Pasaralsiguienteapartadosobreprocedimientosyfunciones
...
function
Suma(a:integer;b:integer):integer;
begin
Suma:=a+b
end;
procedureEscribe(frase:string);
begin
writeln(frase)
end;
...
Son dos subprogramas muy sencillos. La funcin recibe como
parmetros dos variables de tipo entero, las suma y devuelve
su valor. El procedimiento recibe una cadena de caracteres e
invoca a writeln para escribirla en pantalla.
Volveralejemplo
Volveraliniciodelapgina
Pasaralsiguienteapartadosobreelcuerpodelprograma
...
begin
i := 0;
while i<10 do
begin
writeln('El valor de i es ',i);
i := i + 1
end
end
.
...
Volveralejemplo
Volveraliniciodelapgina
Pasaralanteriorapartadosobrelosprocedimientosylasfunciones