Вы находитесь на странице: 1из 17

Estructura general de un programa

Un programa puede considerarse como una secuencia de acciones (instrucciones)


que manipulan un conjunto de objetos (datos).
Contenido
Bloques de un programa

Bloque de declaraciones: en l se especifican todos los objetos que utiliza el


programa (constantes, variables, tablas, registros, archivos, etc.).

Bloque de instrucciones: constituido por el conjunto de operaciones que se


han de realizar para la obtencin de los resultados deseados.

Partes principales de un programa


Dentro del bloque de instrucciones de un programa se pueden diferenciar tres partes
fundamentales. En algunos casos, estas tres partes estn perfectamente delimitadas,
pero en la mayora sus instrucciones quedan entremezcladas a lo largo del programa,
si bien mantienen una cierta localizacin geomtrica impuesta por la propia naturaleza
de las mismas.

Entrada de datos: la constituyen todas aquellas instrucciones que toman


datos de un dispositivo externo, almacenndolos en la memoria central para que
puedan ser procesados.

Proceso o algoritmo: est formado por las instrucciones que modifican los
objetos a partir de su estado inicial hasta el estado final, dejando stos disponibles
en la memoria central.

Salida de resultados: conjunto de instrucciones que toman los datos finales


de la memoria central y los envan a los dispositivos externos.

Clasificacin

de

las

Instrucciones.

Una instruccin se caracteriza por un estado inicial y final del entorno. El estado final
de una instruccin coincide con el inicial de la siguiente. No siempre una instruccin

modifica el entorno, pues su cometido puede limitarse a una mera observacin del
mismo o a un cambio en el orden de ejecucin de otras. Las instrucciones pueden ser:

Instrucciones de declaracin: Se utilizan en aquellos lenguajes de


programacin que no tienen declaracin explcita de los objetos. Su misin
consiste en indicar al procesador que reserve espacio en la memoria para un
objeto del programa, indicando asimismo su nombre, tipo y caractersticas.

Instrucciones primitivas: Son aquellas que ejecuta el procesador de modo


inmediato. Las principales son asignacin, entrada y salida.

Instruccin de asignacin: Consiste en calcular el valor de una expresin y


almacenarlo en una variable. En algn lenguaje es preciso calcular previamente el
resultado de la expresin, pues la instruccin de asignacin slo permite el
movimiento de un valor simple.

Instruccin de entrada: Toma un dato de un dispositivo de entrada y lo


almacena en un objeto. En algn lenguaje, los datos de entrada no provienen de
un dispositivo externo, sino que han sido colocados previamente en el mismo
programa.

Instruccin de salida: Toma el valor de una expresin u objeto y lo lleva a un


dispositivo externo.

Instrucciones compuestas: Son aquellas que el procesador no puede


ejecutar directamente, sino que realiza una llamada a un subprograma, subrutina o
prrafo.

Instrucciones de control: Son aquellas de controlar la ejecucin de otras


instrucciones.

Instruccin alternativa: Controla la ejecucin de unas u otras instrucciones


segn una condicin. Puede ser simple o doble (SI y SINO).

Instruccin de salto incondicional: Altera la secuencia normal de ejecucin


de un programa, continuando la misma en la lnea indicada en la propia instruccin
(IR A).

Instruccin de salto condicional: Altera la secuencia normal de ejecucin de


un programa nicamente en el caso de cumplimiento de una condicin asociada a
la propia instruccin (SI ... IR A).

Instruccin repetitiva: Hace que se repitan una o varias instrucciones un


nmero determinado o indeterminado de veces (PARA, MIENTRAS, HASTA e
ITERAR).

Elementos auxiliares de un programa


Son variables que realizan funciones especficas dentro de un programa, y por su gran
utilidad, frecuencia de uso y peculiaridades, conviene hacer un estudio separado de
las mismas. Las ms importantes son:

Contadores: Un contador es un campo de memoria cuyo valor se incrementa


en una cantidad fija, positiva o negativa, generalmente asociado a un bucle. Toma
un valor inicial antes de comenzar su funcin, y cada vez que se realiza el suceso,
incrementa su valor. Se utiliza en los siguientes casos:
o

Para contabilizar el nmero de veces que es necesario repetir una


accin (variable de control de un bucle).

Para contar un suceso particular solicitado por el enunciado del


problema (asociado a un bucle o independientemente).

Acumuladores: Un acumulador es un campo de memoria cuyo valor se


incrementa sucesivas veces en cantidades variables. Se utiliza en aquellos casos
en que se desea obtener el total acumulado de un conjunto de cantidades, siendo
preciso inicializarlo con el valor 0. Tambin en las situaciones en que hay que
obtener un total como producto de distintas cantidades se utiliza un acumulador,
debindose inicializar con el valor 1.

Interruptores (switches): Un interruptor es un campo de memoria que puede


tomar dos valores exclusivos (0 y 1, -1 y 1, FALSO y CIERTO, etc.). Se utiliza
para:
o

Recordar en un determinado punto de un programa la ocurrencia o no


de un suceso anterior, para salir de un bucle o para decidir en una instruccin
alternativa qu accin realizar.

Para hacer que dos acciones diferentes se ejecuten alternativamente


dentro de un bucle.

Tipos de programas
Un programa, por lo general, estar compuesto por una secuencia de acciones,
algunas de las cuales sern alternativas o repetitivas. En determinados programas
sencillos, no se da esta mezcla de acciones, en cuyo caso se pueden clasificar como
sigue:

Programas lineales: consisten en una secuencia de acciones primitivas (su


ejecucin es lineal en el orden en que han sido escritas).

Programas alternativos: consisten en el anidamiento de acciones alternativas


(las tablas de decisin se realizan mediante programas alternativos).

Programas cclicos: son aquellos en los que un conjunto de acciones se


repiten un nmero determinado o indeterminado de veces (un programa de este
tipo se denomina bucle).

Otra clasificacin relativa a la aplicacin desarrollada por el programa es:

Programas de gestin: se caracterizan por el manejo de gran cantidad de


datos con pocos clculos (resuelven problemas de gestin).

Programas tcnicos-cientficos: al contrario que los anteriores, realizan


gran cantidad de clculos con pocos datos (revuelven problemas
matemticos, fsicos, etc.).

Programas de diseo (CAD): se caracterizan por la utilizacin de tcnicas


grficas para resolver problemas de diseo.

Programas de simulacin: intentan reflejar una situacin real, para facilitar su


estudio.

Programas educativos (EAO): utilizan las ventajas del ordenador para la


docencia.

Programas de inteligencia artificial: se utilizan para simular el razonamiento


humano.

Lenguajes de programacin.
Un lenguaje de programacin es una notacin para escribir programas, es decir, para
describir algoritmos dirigidos al computador. Un lenguaje viene dado por una
gramtica o conjunto de reglas que se aplican a un alfabeto. El primer lenguaje de
programacin que se utiliz fue el lenguaje mquina, el nico que entiende
directamente el computador, cuyo alfabeto es el binario, formado por los smbolos 0 y
1. El lenguaje ensamblador, result de la evolucin del lenguaje mquina, al sustituir
las cadenas de smbolos binarios por nemotcnicos. Posteriormente surgieron los
lenguajes de alto nivel, cuya evolucin es:

1955: FORTRAN.

1960: LISP, ALGOL, COBOL.

1965: APL, SNOBOL, PL/1, BASIC.

1970: PROLOG, ALGOL68, SIMULA67.

1975: C, PASCAL.

1980: MODULA-2, LIS, EUCLID.

1985: ADA.

Los lenguajes de programacin pueden clasificarse de la siguiente manera:


Segn su parecido con el lenguaje natural:

o
o

Bajo nivel: lenguajes mquina y ensambladores.

Alto nivel: todos los dems.


Segn la estructura de los programas:

Convencionales o lnea a lnea: ensambladores, FORTRAN, BASIC,


COBOL, etc.

Estructurados: Algol, PL/I, Pascal, Ada, COBOL estructurado, etc.


Segn la realizacin de los programas:

Funcionales: Lisp, Prolog, APL, etc.

Imperativos: la mayora
Segn el tipo de proceso:

o
o
o

Interactivos o conversacionales: BASIC, Pascal, APL, etc.


Orientados al proceso por lotes (batch): COBOL, FORTRAN, PL/I, etc.
factorial.

Palabras Reservadas
C#
Las palabras reservadas son identificadores reservados predefinidos que tienen un
significado especial y no se pueden utilizar como identificadores en sus programas,
excepto si llevan delante el carcter @ como prefijo. As, por ejemplo @for es un
identificador vlido, pero no for ya que es una palabra reservada.
abstract
as
base
bool
break
byte
case
catch
char
checked
class
const
continue
decimal
default
delegate
do
double
else
enum

event
explicit
extern
false
finally
fixed
float
for
foreach
goto
if
implicit
in
int
interface
internal
is
lock
long

namespace
new
null
object
operator
out
override
params
private
protected
public
readonly
ref
return
sbyte
sealed
short
sizeof
stackalloc

static
string
struct
switch
this
throw
true
try
typeof
uint
ulong
unchecked
unsafe
ushort
using
virtual
volatile
void
while

C++
Las palabras reservadas son identificadores predefinidos reservados que tienen
significados especiales y no se pueden utilizar como identificadores de sus
programas. Los nombres con subrayados a la izquierda son extensiones de Microsoft .
__abstract

__alignof

__asm

__assume

__based

__box

__cdecl

__declspec

__delegate

__event

__except

__fastcall

__finally

__forceinline

__gc

__hook 3

__identifier

__if_exists

__if_not_exists

__inline

__int8

__int16

__int32

__int64

__interface

__leave

__m64

__m128

__m128d

__m128i

__multiple_inheritance

__nogc 2

__noop __pin

__property

__raise

__sealed

__single_inheritance

__stdcall

__super

__try_cast

__try/__except
__try/__finally

__unhook

__uuidof 2 C

__value 2

__virtual_inheritance __w64

bool

break

case

catch

char

class

const const_cast

continue

default

delete

deprecated

dllexport

dllimport

do

double

dynamic_cast

else

enum

explicit

extern

false

float

for

friend

goto

if

inline

int

long

mutable

naked

namespace

new

noinline

noreturn

nothrow

novtable

operator

private

property

protected

public

register

reinterpret_cast

return

selectany

short

signed

size of

static

static_cast

struct

switch

template

this

thread

throw

true

try

typedef

typeid

typename
usingdeclaracion

union

unsigned

using directiva

uuid

virtual

volatile __wchar_t

wchar_t while

void

Tipos de datos en C
Los tres tipos de datos bsicos de C son: enteros, nmeros de coma flotante (reales) y
caracteres. La siguiente tabla recoge los principales tipos de datos bsicos, sus
tamaos en bytes y el rango de valores que pueden almacenar:
Tipos de Datos simples de C
Tipo

Ejemplo

Tamao en bytes

Rango Mn.- Mx

char

'c' '1'

0 ... 255

short

-15

-128 ... 127

int

1024

-32768 ... 32767

unsigned int

42325

0 ... 65535

long

262144

-2147483648 ...
2147483647

float

10.5

3.4x 10^-38 ...


3.4x10^38

double

0.00045

1.7x10^-308 ...
1.7x10^308

long double

1e - 8

igual que double

Estos tipos de datos se les llaman primitivos porque estn definidos por el compilador.
Los podemos clasificar en dos tipos:
Tipos enteros: char, short, int, long.
Tipos reales: float, double.
Cada tipo entero puede ser calificado por las palabras clave signed o unsigned. Un
entero calificado signed es un entero con signo; esto es, un valor positivo o negativo.

Un entero calificado unsigned es un valor entero sin signo, el cual es manipulado


como un valor entero positivo.
1.-char
El tipo char se utiliza para declarar enteros comprendidos entre -128 y +127.
Un char se define como un conjunto de 8 bits, de los cuales uno es para especificar el
signo y el resto para el valor; dicho conjunto de bits recibe el nombre de byte. El
siguiente ejemplo declara la variable de tipo char y le asigna el valor inicial cero (0).
Es recomendable iniciar toda variable que se declare.
char c=0;
Segn lo expuesto anteriormente, el tipo unsigned char puede almacenar valores de
0 a 255, ya que ahora no es necesario emplear un bit para el signo. Los valores 0 a
127 se corresponden con los 128 primeros caracteres de los cdigos internacionales
ASCII, ANSI o UNICODE, empleados para la representacin de caracteres.
2.-short
El tipo short, abreviatura de signed short int, se utiliza para declarar datos enteros
comprendidos entre -32768 y +32767. Un valor short se define como un dato de 16
bits de longitud, independientemente de la plataforma utilizada. El siguiente ejemplo
declara i y j como variables enteras de tipo short:
short i=0, j=0;
3.- int
El tipo int, abreviatura de signed int, se utiliza para declarar datos enteros
comprendidos entre -2147483648 y +2147483647. Un valor int se define como un
dato de 32 bits de longitud. El siguiente ejemplo declara e inicia dos variables a y b, de
tipo int:
int a =2000;
int b = -30;
4.- long

El tipo long se utiliza para declarar datos enteros comprendidos entre -2147483648 y
+2147483647. Un valor long se define como un dato de 32 bits de longitud. El
siguiente ejemplo declara e inicia dos variables a y b, de tipo long:
long a =-11;
long b = 125;
5.- float
El tipo float se utiliza para declarar un dato en coma flotante de 32 bits en l formato
IEEE 754 (este formato utiliza 1 bit para el signo,8 bits para el exponente y 24 para la
mantisa). Lo datos de tipo float almacenan valores con una precisin aproximada de 7
dgitos. Para especificar que una constante (un literal) es de tipo float , hay que aadir
al final de su valor la letra 'f' o 'F'. El siguiente ejemplo declara las variables a,b y c, de
tipo real de precisin simple:
float a = 3.141592F;
float b = 2.2e-5F; // 2.2 por 10 elevado a -5 (e se utiliza para notacin exponencial)
float c = 2/3.0F; // 0.666667
6.- double
El tipo double se utiliza para declarar un dato en coma flotante de 64 bits en l formato
IEEE 754 (este formato utiliza 1 bit para el signo,11 bits para el exponente y 52 para la
mantisa). Lo datos de tipo double almacenan valores con una precisin aproximada
de 16 dgitos. Por omisin una constante es considerada de tipo double. El siguiente
ejemplo declara las variables a,b y c, de tipo real de precisin doble:
double a = 3.141592;
double b = 2.2e+5F; // 2.2 por 10 elevado a 5
double c = 2/3.0F;

DECLARACIN DE VARIABLES. VARIABLES


GLOBALES Y VARIABLES LOCALES
Un desarrollo sobre la teora de la programacin incluira, sin duda, un apartado
especfico relacionado con estructuras de datos que incluyera el estudio de vectores,
matrices, listas, pilas, colas, etc. de forma detallada. Nosotros no vamos a ir ms all
de, simplificadamente, analizar y poner en prctica conceptos bsicos. Entendemos
que el lector no tendr problema en encontrar manuales donde profundizar.
Otra licencia que nos hemos permitido, en contra de lo ortodoxo, ha sido darle un
tratamiento bastante libre a la aparicin y gestin de variables en los algoritmos. El
objetivo de ello ha sido meramente didctico: hemos entendido como favorable para el
aprendizaje partir de supuestos ms libres y sencillos de lo que ser habitual 1. En un
momento dado, como puede ser este, se hace necesario restringir esas libertades
iniciales para acercarnos ms a la prctica profesional de la programacin.
Al definir variable lo habamos hecho como un espacio de la memoria del ordenador a
la que asignamos un contenido que puede ser un valor numrico (slo nmeros, con
su valor de clculo) o alfanumrico (slo texto o texto con nmeros). El tratamiento de
datos por parte del ordenador tiene bases bastante ms complejas de lo que puede
ser distinguir entre nmeros y texto. Pensemos que las variables se guardan en la
memoria y hagamos una analoga entre la memoria como un gran almacn y las
variables como cajas en cuyo interior se guarda informacin. Supongamos que el
almacn tiene una cabida de 1000 metros cbicos Cuntas cajas nos caben?
Depender del volumen de cada caja. Y este volumen depender de la cantidad de
informacin que queramos guardar en cada una de ellas.
Sabemos que ciertos nmeros pueden tener infinitos decimales. Sabemos que los
nmeros pueden hacerse tan grandes como queramos. Pero, dispondremos de cajas
de infinita capacidad como para guardar en ellas entre nada e infinito? Obviamente
no, y la lgica de las variables por ah se mueve. Guardar o manipular un nmero
entero normalito como 1, -32, 115 2005 no nos va a requerir la misma capacidad
que guardar o manipular nmeros pesados como 1385223612.

Los ordenadores tienen mucha potencia y mucha capacidad, pero no infinita... Una
forma de agilizar el trabajo es guardar los nmeros en cajas apropiadas segn su
tamao. Es por ello que los diferentes lenguajes trabajan con distintos tipos de datos.
Cada tipo de dato tiene un rango de valores admisibles, un nmero de decimales si se
trata de nmeros y una cantidad de memoria ocupada por variable.
En iguales circunstancias nos encontramos con el manejo de archivos, campo en el
que no nos adentraremos hasta que comencemos con un lenguaje de programacin
especfico. La simplificada extraccin de archivos que hemos ido utilizando tiene por
objetivo facilitar el aprendizaje.
Ilustracin: La capacidad de los ordenadores es muy elevada, pero no infinita. No
podemos pensar que se puede procesar cualquier nmero de datos de cualquier
magnitud.
En Turbo Pascal, por ejemplo, usar una variable como tipo entera supone requerir 2
bytes de memoria, mientras que una variable decimal de precisin 16 decimales
requerir 8 bytes. No vamos a entrar a analizar los distintos tipos de datos posibles, ya
que stos dependen del lenguaje que utilicemos. Ser uno de los primeros aspectos a
tener en cuenta cuando comencemos a programar con un lenguaje: los tipos de datos
que utiliza. De su conocimiento y buen manejo depender en buena medida que
seamos capaces de crear programas eficientes. Volveremos sobre ello ms adelante.
S vamos a introducir aqu el concepto de declaracin de variables. La declaracin de
variables no es otra cosa que trasladar lo que hemos llamado como organizacin
previa de variables al cdigo del programa en s, de una forma normalizada. La
declaracin de variables se realizar bien en un espacio inicial previo a todo mdulo o
algoritmo principal, o bien a continuacin de la declaracin de mdulo, dentro del
mismo pero antes de la primera instruccin de ejecucin. Una variable declarada en la
cabecera del programa se podr utilizar en cualquier parte del mismo (algoritmo
principal o mdulo), mientras que una variable declarada dentro de un mdulo slo
podr utilizarse en el mdulo en que se ha declarado y en los mdulos subordinados a
ste si existen. En base a ello hablamos de variables globales y locales: sern
globales las accesibles en cualquier parte del programa y locales las accesibles slo
por un mdulo y sus subordinados.

PROGRAMA EJEMPLO 02
Variables
Enteras: [nombre de
variables]
Reales: [nombre de
variables]
Booleanas: [nombre de
variables]
Alfanumricas: [nombre de
variables]
[Algoritmo principal]
[Mdulos]

Las variables de un array se declaran agrupadas indicando el nombre del array y entre
parntesis el mayor ndice existente. As Dato(5) comprende a Dato(1), Dato(2),
Dato(3), Dato(4) y Dato(5). Todas las variables del array han de ser del mismo tipo.
Ampliaremos conceptos relacionados con arrays ms adelante.
Por variables enteras entenderemos aquellas que pueden contener cualquier valor
entero, positivo, negativo o cero. No admiten por tanto nmeros con decimales.
Las variables reales podrn contener tanto nmeros enteros como decimales.
Las variables booleanas nicamente admiten como contenido verdadero o falso.
Las variables alfanumricas contienen texto o texto mezclado con nmeros, pero en
todo caso el tratamiento es como texto (no existe valor de clculo).

Si no existe ninguna variable de un tipo la lnea correspondiente puede ser eliminada.


Una variable declarada de un tipo no puede cambiar de tipo ni contener valores de
otro tipo.
Un ejemplo con nombre de variables concretas puede ser:
PROGRAMA EJEMPLO 03
Variables
Enteras: A, B, Dato(3,2), i, j
Reales: Max, Min, Media, Longitud
(10)
Booleanas: Encontrado
lfanumricas: Mensaje1, Mensaje2
[Algoritmo principal]
[Mdulos]

La respuesta esperable en determinadas situaciones como uso de una variable no


declarada o asignacin de un dato no admisible a una variable depender del lenguaje
que utilicemos, pero nosotros, a efectos de diseo del algoritmo lo catalogaremos
simplemente como error.
Una variable declarada la consideraremos inicializada con los valores:
Cero para variables enteras y reales.
Falso para variables booleanas.
Vaco para variables alfanumricas.

Para el ejemplo anterior, analicemos el resultado que se obtendra con una serie de
expresiones en el algoritmo principal.
Expresin

Valoracin

A=B

Posible

C =18

Error

Variable C no declarada

A = Max

Error

Trata de asignar un contenido real a


una variable entera *

Dato(2,2) = 5

Posible

Dato(4,2) = 5

Error

Min = 6,75

Posible

Longitud(4) = 8

Posible

Encontrado =
Verdadero

Posible

Mensaje1 = Hola

Posible

Max = A

Posible

Media = B / A

Posible

A = 3 * Max

Error

A = 6,75

Error

Observaciones

La variable Dato(4,2) no se encuentra


declarada. El mximo valor del primer
localizador es 3

Вам также может понравиться