Vous êtes sur la page 1sur 18

ESTRUCTURA DE UN PROGRAMA Todos los programas escritos en C se componen de

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

complemento a 2, NOT lgico


==, != igualdad, desigualdad
&&, || AND, OR lgico

<, <= 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

Prototipos de funciones y archivos de cabecera Entrada/salida con formato: las


funciones printf() y scanf()

Estructura general de un programa en C


27 marzo 2008 in ...en lenguaje C, ...para principiantes, Programacin
(Este artculo forma parte del Curso de Programacin en C)
Suele resultar til, sobre todo cuando se empieza a trabajar con un nuevo lenguaje, disponer
de una plantilla con la estructura habitual de un programa en dicho lenguaje. De eso trata
este artculo.
Todo programa en C, desde el ms pequeo hasta el ms complejo, tiene una funcin
principal denominada main(). Adems, por encima de main() deben aparecer los prototipos
de funciones (y esto implica a los archivos de cabecera, si se utilizan funciones de librera)
y las variables y constantes globales, si las hay. Por debajo de main() encontraremos el
cdigo del resto de funciones.
Por lo tanto, la estructura habitual de nuestros programas en C debera ser esta:
/* Comentario inicial: nombre del programa,
del programador, fecha, etc */
/* Archivos de cabecera (prototipos de funciones de librera) */
#include <archivo_cabecera.h>
#include <archivo_cabecera.h>
/* Prototipos de funciones escritas por nosotros */
float funcin1 (argumentos);
float funcin2 (argumentos);
/* Variables y constantes globales */

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/

Estructura de un programa de Visual Basic


Visual Studio 2005
Otras versiones

Un programa de Visual Basic se crean a partir de unidades de creacin estndar. Una


solucin consta de uno o varios proyectos. Un proyecto a su vez puede contener uno o ms
ensamblados. Cada ensamblado se compila a partir de uno o varios archivos de cdigo
fuente. El archivo de cdigo fuente proporciona la definicin e implementacin de clases,
estructuras, mdulos e interfaces, que en ltima instancia contienen todo el cdigo.

Elementos de programacin en el nivel de archivo

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.

Instrucciones de compilacin condicional


Las instrucciones de compilacin condicional pueden aparecer prcticamente en cualquier
parte del archivo de cdigo fuente. Determinan que partes del cdigo se incluyan o
excluyan en tiempo de compilacin en funcin de ciertas condiciones. Tambin puede
utilizarlas para depurar la aplicacin, ya que el cdigo condicional se ejecuta nicamente en
modo de depuracin. Para obtener ms informacin, vea Informacin general sobre la
compilacin condicional.

Elementos de programacin en el nivel de espacio de


nombres

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:

Instruccin Class (Visual Basic)


Structure (Instruccin)

Module (Instruccin)

Instruccin Interface (Visual Basic)

Los elementos de datos en el nivel de espacio de nombres son las enumeraciones y los
delegados.

Elementos de programacin en el nivel de mdulo

Los procedimientos, operadores, propiedades y eventos son los nicos elementos de


programacin que pueden contener cdigo ejecutable (instrucciones que realizan acciones
en tiempo de ejecucin). Son elementos del nivel de mdulo del programa. Para obtener
ms informacin sobre los elementos del nivel de procedimiento, vea los siguientes temas:

Instruccin Function (Visual Basic)


Instruccin Sub (Visual Basic)

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.

Elementos de programacin en el nivel de


procedimiento

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

El procedimiento Main es el primer cdigo que se ejecuta cuando se carga la aplicacin.


Main acta como punto de inicio y control global de la aplicacin. Hay cuatro variedades de
Main:

Sub Main()
Sub Main(ByVal cmdArgs() As String)

Function Main() As Integer

Function Main(ByVal cmdArgs() As String) As Integer

La variedad ms comn de este procedimiento es Sub Main(). Para obtener ms


informacin, vea Procedimiento Main en Visual Basic.

http://msdn.microsoft.com/es-es/library/022td33t(v=vs.80).aspx

Antes de entrar en materia y explicar cada parte por separado,


puedes ver el siguiente ejemplo que te permite observar
algunas cosas del cdigo en Pascal. Aunque en estos momentos
no estas en disposicin de entenderlo, puedes volver aqu ms
tarde para comprobar tus avances.

En este sencillo ejemplo (lo es, aunque ahora no te lo creas) se


presentan seis secciones claramente diferenciadas. Como
puedes ver, cada seccin est caracterizada por alguna palabra
especial. Como por ejemplo, var para la seccin de variables.

Estas palabras forman parte de un conjunto llamado palabras


reservadas.
Muchas secciones no son obligatorias. Por tanto, en un programa
no tienen por que aparecer todas estas palabras. Por otro lado,
como ciertos compiladores exigen que el orden de las secciones
sea el que aparece aqu, y otros no ponen ninguna restriccin, lo
mejor que puedes hacer es seguir siempre este orden.
A continuacin tienes una tabla que empareja secciones con
palabras reservadas. Adems aparecen en el orden correcto:
Partesdeunprograma

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:

Autor del programa


Versin actual

Fecha de inicio del programa

Fecha de la ltima modificacin

Qu se pretende que haga el programa

Nombre del fichero fuente en el que se guarda

Otras cosas que te ayuden a documentar tu programa

Como en la mayora de los casos, lo mejor para aprender algo es


ver un ejemplo:
programMiPrimerPrograma;
(*************************************************)
(*
Autor: Benito Santos Feijoo
*)
(*
Version: 1.0
*)
(* Fecha inicio: 25/11/2000
*)
(* Fecha modif.: 29/11/2000
*)
(*
Objetivo: El que sea...
*)
(*
Fichero: nombre-fichero.pas
*)
(*************************************************)

...
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:

Este tutorial pretende ser una iniciacin a Pascal y a la


programacin; y tanto el uso de unidades estndar del
lenguaje, como la creacin de unidades por el usuario, no
las considero aspectos bsicos de Pascal.
Adems las unidades no forman parte de Pascal estndar,
y por lo tanto, no dispondrs de ellas en todos los
compiladores.

Sin profundizar demasiado en el tema, comentar que la palabra


reservada que comienza la declaracin de unidades es uses y
que va seguida de los nombres de las unidades que se quieran
utilizar en el programa separados por ",". Se finaliza la seccin
con un punto y coma ";". Evidentemente, esta seccin no es
obligatoria.
uses
nombre_unidad1,nombre_unidad2,...,nombre_unidad_n;

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
(*
(*

En este ejemplo se declaran seis constantes. Las tres primeras


son de tipo entero y se les asignan valores numricos
directamente. En la cuarta y la sexta se observa otra manera de
darle valores enteros a constantes, y es mediante el uso de
expresiones aritmticas. Y en la quinta, se declara una
constante de tipo cadena de caracteres. Pero en este ejemplo no
estn reflejadas todas las posibilidades. Falta, por ejemplo, el
declarar una constante de tipo real.

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

declararla, sino que tambin es necesario iniciarla. Esto se


refiere a darle un valor inicial, y es importante ya que si no lo
hacemos, igual nos encontramos con errores cuando ejecutemos
el programa. Todo esto se analiza en el captulo dedicado a las
variables.
Observa el siquiente ejemplo de declaracin de variables:

...
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

Declaracin de procedimientos y funciones


Esta seccin es muy importante, aunque para tus primeros
programas no la necesitars. En ella puedes declarar
procedimientos y funciones (subprogramas) para que los uses
en otros subprogramas o en el cuerpo principal. Todo lo relativo
a esto lo encontrars en el tema dedicado a la programacin
modular.
Puedes inclur cuantos procedimientos y funciones desees,
incluso alternar entre ellos. Aunque debes de tener cuidado con
el orden en el que los escribes. Ya que si un subprograma llama
a otro, debera estar declarado primero el que es llamado.
La diferencia principal entre una funcin y un procedimiento es
que la primera devuelve un valor y el segundo no devuelve
nada. A continuacin, tienes un ejemplo en el que se declaran
una funcin y un procedimiento:

...
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

Cuerpo principal del programa


Tambin se le llama bloque del programa, y es junto con la
cabecera, la nica seccin obligatoria en un programa Pascal.
Debe comenzar y finalizar con las palabras reservadas begin y
end respectivamente.
Muy imortante: Despus de la palabra end, siempre tiene que
ir un punto que indica el final del programa.
Entre begin y end se escriben una o ms sentencias, ya sean
simples o compuestas. Las sentencias pueden ser varias:
asignaciones, llamadas a procedimientos y funciones,
sentencias selectivas (sentencias if), sentencias iterativas
(sentencias for, while). Veamos un pequeo ejemplo:

...

begin
i := 0;
while i<10 do
begin
writeln('El valor de i es ',i);
i := i + 1
end

end

.
...

El ejemplo es muy sencillo. Se trata de un bucle que escribe en


pantalla lineas que consisten en la frase "El valor de i es"
seguidas del valor que tiene en ese momento la variable i (0..9).

Volveralejemplo
Volveraliniciodelapgina
Pasaralanteriorapartadosobrelosprocedimientosylasfunciones

Vous aimerez peut-être aussi