Está en la página 1de 21

UNIVERSIDAD DE ORIENTE

NCLEO DE ANZOTEGUI
ESCUELA DE ESTUDIOS BSICOS
CARRERA PROFESIONAL DE INGENIERA EN MECNICA
INTRODUCCIN A LA PROGRAMACIN

LENGUAJES INFORMTICOS Y PROGRAMACIN

ALUMNOS:
Maria Cedeo 26.146.848

PROFESOR: Arturo Mujica

FEBRERO; 2016
NDICE

INTRODUCCIN 1
1. Diagrama de flujo 2
1.1.
Caractersticas 2
1.2.
Ventajas de los diagramas de flujo 2
1.3.
Tipos de diagramas de flujo 2
1.4.
Simbologa y significado 2
2. Algoritmo 3
2.1.
Medios de expresin de un algoritmo 3
2.2.
Algoritmos como funciones 4
2.3.
Anlisis de algoritmos 5
2.4.
Ejemplo de algoritmo 5
3. Pseudocdigo 6
3.1.
Caractersticas 6
3.2.
Partes 6
3.3.
Definicin de datos del pseudocdigo 7
3.4.
Funciones y operaciones 7
3.5.
Estructura de control 7
3.6.
Desarrollo de algoritmos 8
3.7.
Funciones y procedimientos 9
3.8.
Ventajas del pseudocdigo sobre los diagrama de flujo 9
4. Programacin estructurada 9
4.1.
Orgenes 9
4.2.
Ventajas de la programacin estructurada 10
4.3.
Inconvenientes de la programacin estructurada 10
5. Resolucin de problemas de programacin 11
5.1.
Anlisis del problema 11
5.2.
Diseo del algoritmo 11
6. Programacin 13
6.1.
Historia 13
6.2.
Lxico y programacin 13
6.3.
Programas y algoritmos 14
6.4.
Compilacin 14
6.5.
Programacin e ingeniera del software 15
6.6.
Referencias histricas 15
6.7.
Objetivos de la programacin 16
CONCLUSIN 17

INTRODUCCIN
La programacin es una tcnica que utiliza el hombre para comunicarse con una
mquina y hacerla pensar. Pues bien, esa potencialidad est a la espera de que una persona
(nosotros) le saque partido y para ello lo nico que hace es proporcionarle instrucciones a la
mquina, diremos por tanto que programar es definir instrucciones para ser ejecutadas por un
ordenador.
La computadora fue inventada para facilitar el trabajo intelectual, si el hombre tiene
algn problema, el diseador define el algoritmo que resuelve el problema. Una vez diseado el
algoritmo este se pasa a un lenguaje de programacin que el computador pueda leer este caso
ser el pseudocdigo. Debido a lo importante que ha sido hoy en da editar algoritmos, con el
desarrollo de las nuevas tecnologas, el ser humano se ve en la necesidad de desarrollar
sistemas computarizados para realizar sus tareas de manera ms eficiente y para ello se utiliza
lo se conoce como programacin.

1. DIAGRAMA DE FLUJO (flowchart, del ingls)


Es una tcnica de representacin grfica de la lgica o pasos de un algoritmo que
consiste de un conjunto de smbolos y flechas que se conectan entre s donde los smbolos
representan las diferentes acciones que se pueden ejecutar en un algoritmo, mientras que las
flechas muestran la progresin paso a paso a travs del algoritmo y suelen ser usados solo
para representar algoritmos pequeos, ya que abarcan mucho espacio.
1.1.

Caractersticas

Es una notacin grfica para implementar algoritmos.


Se basa en la utilizacin de unos smbolos grficos denominados bloques, en los que

escribimos las acciones que tiene que realizar el algoritmo.


Estos bloques estn conectados entre s por lneas y eso nos indica el orden en el que

tenemos que ejecutar las acciones.


En todo algoritmo siempre habr un bloque de inicio y otro de fin, para el principio y
final del algoritmo.

1.2.

Rpida comprensin de las relaciones


Se pueden usar como modelos de trabajo para el diseo de nuevos programas
Documentacin adecuada de los programas
Produce una codificacin eficaz en los programas
Depuracin y pruebas ordenadas de programas
Fcil de traducir a cualquier lenguaje de programacin.

1.3.

Ventajas del diagrama de flujo

Tipos de diagrama de flujo

Formato vertical: En l, el flujo y la secuencia de las operaciones, va de arriba hacia


abajo. Es una lista ordenada de las operaciones de un proceso con toda la informacin que
se considere necesaria, segn su propsito.

Formato horizontal: En l, el flujo o la secuencia de las operaciones, va de izquierda a


derecha.

Formato panormico: Registra no solo en lnea vertical, sino tambin horizontal,


distintas acciones simultneas y la participacin de ms de un puesto o departamento que
el formato vertical no registra.

Formato Arquitectnico: Describe el itinerario de ruta de una forma o persona sobre el

plano arquitectnico del rea de trabajo. El primero de los flujo-gramas es eminentemente


descriptivo, mientras que los utilizados son fundamentalmente representativos.

1.4.
Simbologa y significado
Lneas de flujo: Es una lnea con una flecha (y solo una flecha) que permite conectar los
bloques del diagrama. La flecha indica la secuencia en la que se van a ejecutar las

acciones.
Principio y Fin: Todo algoritmo y por lo tanto, todo diagrama de flujo tiene un principio
y un fin (y son nicos). Dentro de este bloque se coloca la palabra INICIO o FIN
segn corresponda.

Proceso: Aqu dentro se escribe la accin que debe realizar el programa. Si son varias,
se escriben una debajo de la otra, sin olvidarse que se ejecutan una a una en forma

secuencial segn en qu orden fueron escritas.


Condicin: Dentro de este bloque se escribe una condicin. Si sta es verdadera,
entonces el algoritmo tomar una de sus salidas, de lo contrario, tomar la siguiente.

Permite representar estructuras del tipo selectivas y repetitivas.


Entrada y Salida: Representa acciones de entrada salida desde un teclado o hacia una
pantalla respectivamente. Es decir, si debemos ejecutar una accin que consiste en leer
un dato que se ingresa mediante el teclado de una PC y almacenarlo en la variable de

nombre a, entonces dicha accin se describe dentro de este bloque como leer a.
Conectores: Permiten unir diagramas de flujo cuando stos no caben en una misma
columna de la hoja por completo. Es decir, cuando debemos, por cuestiones de espacio
en la hoja, fragmentar el programa entonces utilizamos estos bloques para indicar los
puntos de unin. Cada par de puntos que se deben unir llevarn dentro de este bloque

el mismo nmero.
Comentarios: Es una aclaracin para comprender mejor el cdigo del programa, pero no

forma parte del cdigo, es decir, no se ejecuta.


valo o Elipse: Inicio y Final (Abre y cierra el diagrama).
Rectngulo: Actividad (Representa la ejecucin de una o ms actividades o

procedimientos).
Rombo: Decisin (Formula una pregunta o cuestin).
Crculo: Conector (Representa el enlace de actividades con otra dentro de un

procedimiento).
Tringulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).
Tringulo boca arriba: Archivo temporal (Proporciona un tiempo para el
almacenamiento del documento).

2. ALGORITMOS
Es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin
ambigedad y sin hacer referencia a una computadora en particular, y adems tiene un lmite
fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia
definicin abarca tanto a algoritmos prcticos como aquellos que solo funcionan en teora.
Un algoritmo es un procedimiento para resolver un problema. ste describe un
conjunto finito y ordenado de pasos, reglas o instrucciones para producir la solucin a un

problema dado. Un algoritmo puede ser definido como una secuencia de instrucciones bien
definidas y efectivas, y finaliza con la produccin del resultado esperado a partir de las
entradas dadas.
2.1.

Medios de expresin de un algoritmo

++Por diagramas de flujo


Los diagramas de flujo son descripciones grficas de algoritmos; usan smbolos conectados
con flechas para indicar la secuencia de instrucciones y estn regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeos, ya que abarcan
mucho espacio y su construccin es laboriosa. Por su facilidad de lectura son usados como
introduccin a los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas
ajenas a la computacin.

++Por pseudocdigo
Es utilizado para describir algoritmos en libros y publicaciones cientficas, y como producto
intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque
presentan una ventaja importante sobre estos, y es que los algoritmos descritos en
pseudocdigo requieren menos espacio para representar instrucciones complejas.
++Por sistemas formales
La teora de autmatas y la teora de funciones recursivas proveen modelos matemticos
que formalizan el concepto de algoritmo. Los modelos ms comunes son la mquina de
Turing, mquina de registro y funciones -recursivas. Estos modelos son tan precisos como
un lenguaje mquina, careciendo de expresiones coloquiales o ambigedad, sin embargo se
mantienen independientes de cualquier computadora y de cualquier implementacin.
++Implementacin
Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los
algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito
elctrico o un aparato mecnico y elctrico. Algunos algoritmos inclusive se disean
especialmente para implementarse usando lpiz y papel. El algoritmo de multiplicacin
tradicional, el algoritmo de Euclides, la criba de Eratstenes y muchas formas de resolver la
raz cuadrada son slo algunos ejemplos.
++Variables
Son elementos que toman valores especficos de un tipo de datos concreto. La declaracin
de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de
otorgar valores iniciales a variables:
Mediante una sentencia de asignacin.

Mediante un procedimiento de entrada de datos (por ejemplo: 'read').


++Estructuras secuenciales
Es aquella en la que una accin sigue a otra en secuencia. Las operaciones se suceden de tal
modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del
proceso. La asignacin de esto consiste, en el paso de valores o resultados a una zona de la
memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La
asignacin se puede clasificar de la siguiente forma:
1. Simples: Consiste en pasar un valor constante a una variable (a 15)
2. Contador: Consiste en usarla como un verificador del nmero de veces que se realiza
un proceso (a a + 1)
3. Acumulador: Consiste en usarla como un sumador en un proceso (a a + b)
4. De trabajo: Donde puede recibir el resultado de una operacin matemtica que
involucre muchas variables (a c + b*1/2).

2.2.

Algoritmos como funciones

Un algoritmo se puede concebir como una funcin que transforma los datos de
un problema (entrada) en los datos de una solucin (salida). Ms aun, los datos se pueden
representar a su vez como secuencias de bits, y en general, de smbolos cualesquiera. Como
cada secuencia de bits representa a un nmero natural, entonces los algoritmos son en
esencia funciones de los nmeros naturales en los nmeros naturales que s se pueden
calcular. Es decir que todo algoritmo calcula una funcin

donde cada nmero

natural es la codificacin de un problema o de una solucin.


2.3.

Anlisis de algoritmos

Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y


tiempo) que consume el algoritmo. El anlisis de algoritmos se ha desarrollado para obtener
valores que de alguna forma indiquen (o especifiquen) la evolucin del gasto de tiempo y
memoria en funcin del tamao de los valores de entrada.
El anlisis y estudio de los algoritmos es una disciplina de las ciencias de la computacin y,
en la mayora de los casos, su estudio es completamente abstracto sin usar ningn tipo
de lenguaje de programacin ni cualquier otra implementacin; por eso, en ese sentido,
comparte las caractersticas de las disciplinas matemticas.

2.4.

Ejemplo de algoritmo

El problema consiste en encontrar el mximo de un conjunto de nmeros. Para un ejemplo


ms complejo vase Algoritmo de Euclides
++Descripcin de alto nivel
Dado un conjunto finito

de nmeros, se tiene el problema de encontrar el nmero ms

grande. Sin prdida de generalidad se puede asumir que dicho conjunto no es vaco y que sus
elementos estn numerados como

Es decir, dado un conjunto


para todo elemento

se pide encontrar

que pertenece al conjunto

tal que

Para encontrar el elemento mximo, se asume que el primer elemento (

) es el mximo;

luego, se recorre el conjunto y se compara cada valor con el valor del mximo nmero
encontrado hasta ese momento. En el caso que un elemento sea mayor que el mximo, se
asigna su valor al mximo. Cuando se termina de recorrer la lista, el mximo nmero que se
ha encontrado es el mximo de todo el conjunto.

++Descripcin formal
El algoritmo puede ser escrito de una manera ms formal en el siguiente pseudocdigo:

Algoritmo Encontrar el mximo de un conjunto

funcin max(
//

es un conjunto no vaco de nmeros//

//

es el nmero de elementos de

//

para

hasta

si

hacer

entonces

devolver
Sobre la notacin:

"" representa una asignacin:

"devolver" termina el algoritmo y devuelve el valor a su derecha (en este caso, el


mximo de

significa que la variable

toma el valor de

).

++Implementacin
En lenguaje C++:
int max(int c[], int n)
{
int i, m = c[0];
for (i = 1; i < n; i++)
if (c[i] > m) m = c[i];
return m;
}

3. PSEUDOCDIGO
Es una descripcin de alto nivel compacta e informal del principio operativo de
un programa informtico u otro algoritmo.
3.1.
Caractersticas
Se puede ejecutar en un ordenador
Es una forma de representacin sencilla de utilizar y de manipular.
Facilita el paso del programa al lenguaje de programacin.
Es independiente del lenguaje de programacin que se vaya a utilizar.
Es un mtodo que facilita la programacin y solucin al algoritmo del programa.
3.2.

Partes
Instrucciones primitivas.
2. Instrucciones de proceso.
3. Instrucciones de control.
4. Instrucciones compuestas.
5. Instrucciones de descripcin.
Estructura a seguir en su realizacin:
1. Cabecera.
1. Programa.
2. Modulo.
3. Tipos de datos.
4. Constantes.
5. Variables.
2. Cuerpo.
6. Inicio.
7. Instrucciones.
8. Fin.

3.3.

Definicin de datos del pseudocdigo

La definicin de datos se da por supuesta, sobre todo en las variables sencillas, si se


emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del

algoritmo, y naturalmente cuando empleemos el pseudocdigo para definir estructuras de


datos, esta parte la desarrollaremos adecuadamente.
3.4.

Funciones y operaciones

Cada autor usa su propio pseudocdigo con sus respectivas convenciones. Por ejemplo,
la instruccin "reemplace el valor de la variable x por el valor de la variable y" puede ser
representado como:
* asigne a el valor de
Las operaciones aritmticas se representan de la forma usual en matemticas.

3.5. Estructuras de control


En la redaccin del pseudocdigo se utiliza tres tipos de estructuras de control: las
secuenciales, las selectivas y las iterativas.
++Estructuras secuenciales
Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el
nmero de rengln. Es decir que las instrucciones se ejecutan de arriba hacia abajo.

++Estructuras selectivas
Las instrucciones selectivas representan instrucciones que pueden o no ejecutarse, segn
el cumplimiento de una condicin. La condicin es una expresin booleana. Instrucciones es
ejecutada slo si la condicin es verdadera.
A. Selectiva doble (alternativa)
La instruccin alternativa realiza una instruccin de dos posibles, segn el cumplimiento
de una condicin. La condicin es una variable booleana o una funcin reducible a booleana
(lgica, Verdadero/Falso). Si esta condicin es cierta se ejecuta Instrucciones1, si no es as,
entonces se ejecuta Instrucciones.
B. Selectiva mltiple
Tambin es comn el uso de una seleccin mltiple que equivaldra a anidar varias
funciones de seleccin. En este caso hay una serie de condiciones que tienen que ser
mutuamente excluyentes, si una de ellas se cumple las dems tienen que ser falsas
necesariamente, hay un caso si no que ser cierto cuando las dems condiciones sean falsas.

C. Selectiva mltiple-Casos
Una construccin similar a la anterior (equivalente en algunos casos) es la que se muestra
a continuacin.

++Estructuras iterativas
Las instrucciones iterativas representan la ejecucin de instrucciones en ms de una
vez.
A. Bucle mientras
El bucle se repite mientras la condicin sea cierta, si al llegar por primera vez al bucle mientras
la condicin es falsa, el cuerpo del bucle no se ejecuta ninguna vez.
B. Bucle repetir
Existen otras variantes que se derivan a partir de la anterior. La estructura de control repetir se
utiliza cuando es necesario que el cuerpo del bucle se ejecuten al menos una vez y hasta que
se cumpla la condicin.
C. Bucle hacer
El Bucle hacer se utiliza para repetir un bloque de cdigo mientras se cumpla cierta condicin.
D. Bucle para
Una estructura de control muy comn es el ciclo para, la cual se usa cuando se desea iterar un
nmero conocido de veces, empleando como ndice una variable que se incrementa (o
decrementa).
E. Bucle para cada
Por ltimo, tambin es comn usar la estructura de control para cada. Esta sentencia se usa
cuando se tiene una lista o un conjunto

y se quiere iterar por cada uno de sus elementos.

F. El anidamiento
Cualquier instruccin puede ser sustituida por una estructura de control, es decir, est
relacionado a la inclusin de estructuras de control dentro de otras, usualmente indicado
mediante la inclusin de distintos niveles de sangra dentro del cdigo fuente. En general, las
estructuras anidadas se muestran indentadas, para hacer ms sencilla su identificacin a
simple vista.

3.5.

Desarrollo de algoritmos
Con este pseudocdigo se puede desarrollar cualquier algoritmo que:
* Tenga un nico punto de inicio.
* Tenga un nmero finito de posibles puntos de trmino.
* Haya un nmero finito de caminos, entre el punto de inicio y los posibles puntos de
trmino.

3.6.

Funciones y procedimientos
Es necesario dejar en claro cules son las entradas para el algoritmo, esto se hace

comnmente colocando estos valores entre parntesis al principio o bien declarndolo


explcitamente con un enunciado. En el caso de las funciones, es necesario colocar una
palabra como regresar o devolver para indicar cul es la salida generada por el algoritmo. Por
ejemplo, el pseudocdigo de una funcin que permite calcular an (un nmero a elevado a
potencia n).
Un ejemplo de procedimiento seria el algoritmo de Ordenamiento de burbuja, por el que
partiendo de una lista de valores estos se ordenan, ntese que en un procedimiento, no se
calcula el valor de una funcin, sino que se realiza una accin, en este caso ordenar la lista.
3.7.

Ventajas del pseudocdigo sobre los diagramas de flujo

1. Ocupan mucho menos espacio en el desarrollo del problema.


2. Permite representar de forma fcil operaciones repetitivas complejas.
3. Es ms sencilla la tarea de pasar de pseudocdigo a un lenguaje de programacin formal.
4. Si se siguen las reglas de identacin se puede observar claramente los niveles en la
estructura del programa.
5. En los procesos de aprendizaje de los alumnos de programacin, stos estn ms cerca del
paso siguiente (codificacin en un lenguaje determinado, que los que se inician en esto con la
modalidad Diagramas de Flujo).
6. Mejora la claridad de la solucin de un problema.
4.

PROGRAMACIN ESTRUCTURADA

4.1. Orgenes
A finales de los aos 1970 surgi una nueva forma de programar que no solamente
daba lugar a programas fiables y eficientes, sino que adems estaban escritos de manera que
facilitaba su mejor comprensin, no slo proveyendo ventajas durante la fase de desarrollo,
sino tambin posibilitando una ms sencilla modificacin posterior.
El teorema del programa estructurado, propuesto por Bhm-Jacopini, demuestra que
todo programa puede escribirse utilizando nicamente las tres instrucciones de control
siguientes:
Secuencia
Instruccin condicional.

10

Iteracin (bucle de instrucciones) con condicin al principio.


Solamente con estas tres estructuras se pueden escribir todos los programas y
aplicaciones posibles. Si bien los lenguajes de programacin tienen un mayor repertorio
de estructuras de control, estas pueden ser construidas mediante las tres bsicas citadas.
++Estructura secuencial
Es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se
suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente
hasta el fin del proceso.
En Pseudocdigo una Estructura Secuencial se representa de la siguiente forma:
PSEUDOCODIGO Nombre
VARIABLES
Nombre: Tipo De Dato
CONSTANTES
Nombre = Valor
INICIO
accion
accion1
accion2

accionN

FIN
++Estructuras selectivas
Las estructuras selectivas se utilizan para tomar decisiones lgicas; de ah que se
suelan denominar tambin estructuras de decisin o alternativas.
En las estructuras selectivas se evalan una condicin y en funcin del resultado de la
misma se realiza una opcin u otra. Las condiciones se especifican usando expresiones lgicas.
La representacin de una estructura selectiva se hace con palabras en pseudocdigo (if, then,
elseo bien en espaol si, entonces, si_no), con una figura geomtrica en forma de rombo o bien
con un triangulo en el interior de una caja rectangular.
++Estructuras iterativas
Las estructuras iterativas de control de flujo se ocupan de repetir una serie de lneas de
cdigo tantas veces como el programador indique o bien hasta que se de una cierta condicin.
A estas estructuras tambin se les llama bucles.
4.2. Ventajas de la programacin estructurada

11

Los programas son ms fciles de entender, pueden ser ledos de forma secuencial y no
hay necesidad de hacer engorrosos seguimientos en saltos de lneas (GOTO) dentro de los
bloques de cdigo para intentar entender la lgica.

La estructura de los programas es clara, puesto que las instrucciones estn ms ligadas
o relacionadas entre s.

Reduccin del esfuerzo en las pruebas y depuracin. El seguimiento de los fallos o


errores del programa (debugging) se facilita debido a su estructura ms sencilla y
comprensible, por lo que los errores se pueden detectar y corregir ms fcilmente.

Reduccin de los costos de mantenimiento. Anlogamente a la depuracin, durante la


fase de mantenimiento, modificar o extender los programas resulta ms fcil.

Los programas son ms sencillos y ms rpidos de confeccionar.

Se incrementa el rendimiento de los programadores.

4.3. Inconvenientes de la programacin estructurada


El principal inconveniente de este paradigma de programacin es que se obtiene un
nico bloque de programa, que cuando se hace demasiado grande puede resultar problemtico
su manejo; esto se resuelve empleando la programacin modular, definiendo mdulos
interdependientes programados y compilados por separado.
Un mtodo un poco ms sofisticado es la programacin por capas, en la que los
mdulos tienen una estructura jerrquica en la que se pueden definir funciones dentro de
funciones o de procedimientos.
5. RESOLUCIN DE PROBLEMAS DE PROGRAMACIN
5.1. Anlisis del problema
Cuando un usuario plantea a un programador un problema que resolver mediante
su ordenador, por lo general ese usuario tendr conocimientos ms o menos amplios sobre el
dominio del problema, pero no es habitual que tenga conocimientos de informtica. Por
ejemplo, un contable que necesita un programa para llevar la contabilidad de una empresa
ser un experto en contabilidad (dominio del problema), pero no tiene por qu ser experto
en programacin.
Al abordar un problema que se quiere resolver mediante un ordenador, el programador
necesita de la experiencia del experto del dominio para entender el problema. Al final, si se
quiere llegar a una solucin satisfactoria es necesario que:

El problema est bien definido con el mximo detalle

12

Las especificaciones de las entradas y salidas del problema, deben ser descritas

tambin en detalle:
Qu datos son necesarios para resolver el problema?
Qu informacin debe proporcionar la resolucin del problema?
5.2. Diseo del algoritmo
Para poder describir cualquier tipo de accin de las que intervienen en un algoritmo, diversos
autores proponen el uso de un conjunto de construcciones lgicas (secuencia, decisin e
iteracin) con las que es posible escribir cualquier programa. Lo que sigue a continuacin es la
descripcin de las diferentes construcciones disponibles para el diseo de algoritmos.

++Acciones elementales
Se entiende por acciones elementales aquellas que el ordenador es capaz de realizar y que
sern de dos tipos:

Aritmtico lgicas: Operaciones que, a partir de unos determinados datos, realizan un


clculo aritmtico (suma, resta, multiplicacin,...) o un clculo lgico (mayor que, menor
que, igual que,...).Las primeras devuelven un valor numrico (4, -5.67,...) y las segundas
un valor lgico (verdadero o falso).

De entrada salida: Acciones que permiten capturar datos para su posterior


tratamiento (las de entrada) y guardar los resultados de dicho tratamiento (las de salida).

++Secuencia de acciones elementales


Cuando en un algoritmo se deben ejecutar varias acciones sucesivamente, stas se
describen una detrs de otra segn el orden en que deban ejecutarse. Si se desea se puede
emplear algn tipo de smbolo para separar dos acciones consecutivas. En el siguiente ejemplo
se muestra la descripcin de n acciones separadas por punto y coma (smbolo que
habitualmente se emplea como separador).
Accin 1;
Accin 2;
...
Accin n;

++Composicin condicional

13

Cuando en un algoritmo se quiere indicar que cierta accin solo se debe ejecutar bajo
cierta condicin se indica del siguiente modo:

Si Condicin Entonces
Accin;
FinSi

Solo si la Condicin (operacin lgica) es verdadera se ejecutar la Accin. En este caso,


la Accin puede referirse tanto a una accin elemental como a un conjunto de ellas.

++Composicin condicional doble (alternativa)


En ocasiones, se deben ejecutar unas acciones u otras dependiendo de la ocurrencia de
una determinada condicin. Esta especificacin se realiza del siguiente modo:

Si Condicin Entonces
Accin A;
SiNo
Accin B;
FinSi

Dependiendo de si la Condicin es verdadera o falsa se ejecutar la Accin A o la Accin


B respectivamente. De forma anloga a como ocurra en el caso anterior, tanto la Accin
A como la Accin B pueden referirse a una accin elemental o a un conjunto de ellas.

++Composicin condicional mltiple


Tambin es posible que a la hora de especificar la ejecucin de una accin haya que
escoger sta entre varias dependiendo del valor de una determinada variable (o indicador). Este
caso se expresa del siguiente modo:

Segn Indicador Hacer


Caso Valor 1:
Accin 1;
Caso Valor 2:
Accin 2;
...

14

Caso Valor n:
Accin n;
[De Otro Modo:
Accin X;]
FinSegun

++Composicin iterativa o bucle


Cuando una accin o conjunto de acciones debe ejecutarse varias veces se recurre a
una estructura iterativa o bucle. En este tipo de estructuras se necesita una condicin que
determine cuando terminan las iteraciones. Dependiendo de si esa condicin se evala al
principio o al final de la estructura y de si la condicin para que las iteraciones continen debe
ser verdadera o falsa,

6.

PROGRAMACIN

6.1. Historia
En sus inicios las computadoras interpretaban solo instrucciones en un lenguaje
especfico, del ms bajo nivel, conocido como cdigo mquina, siendo ste excesivamente
complicado para programar. De hecho solo consiste en cadenas de nmeros 1 y 0 (sistema
binario). Para facilitar el trabajo de programacin, los primeros cientficos, que trabajaban en el
rea, decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o
abreviaturas provenientes del ingls; las codificaron y crearon as un lenguaje de mayor nivel,
que se conoce como Asembly o lenguaje ensamblador.
A medida que la complejidad de las tareas que realizaban las computadoras
aumentaba, se hizo necesario disponer de un mtodo sencillo para programar. Entonces, se
crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos
nmeros puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un
lenguaje de alto nivel bastar con solo una.

6.2. Lxico y programacin


La programacin se rige por reglas y un conjunto ms o menos reducido de rdenes,
expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada
(en ingls); y que adems tienen la particularidad de una reducida ambigedad. Cuanto menos
ambiguo es un lenguaje de programacin, se dice, es ms potente. Bajo esta premisa, y en el

15

extremo, el lenguaje ms potente existente es el binario, con ambigedad nula (lo cual lleva a
pensar as del lenguaje ensamblador).
En los lenguajes de programacin de alto nivel se distinguen diversos elementos entre
los que se incluyen el lxico propio del lenguaje y las reglas semnticas y sintcticas.

6.3. Programas y algoritmos


Un programa normalmente implementa uno o ms algoritmos. Un algoritmo puede
expresarse de distintas maneras: en forma grfica, como un diagrama de flujo, en forma de
cdigo como en pseudocdigo o un lenguaje de programacin, en forma explicativa, etc.
Los programas suelen subdividirse en partes menores, llamadas mdulos, de modo que la
complejidad algortmica de cada una de las partes sea menor que la del programa completo, lo
cual ayuda al desarrollo del programa. Esta es una prctica muy utilizada y se conoce como
"refino progresivo".
Segn Niklaus Wirth, un programa est formado por los algoritmos y la estructura de
datos.
Se han propuesto diversas tcnicas de programacin cuyo objetivo es mejorar tanto el
proceso de creacin de software como su mantenimiento. Entre ellas, se pueden mencionar las
siguientes:

Programacin declarativa

Programacin estructurada

Programacin modular

Programacin orientada a objetos

6.4. Compilacin
El cdigo fuente del programa se debe someter a un proceso de traduccin para
convertirlo a lenguaje mquina o bien a un cdigo intermedio, generando as un mdulo
denominado "objeto". A este proceso se le llama compilacin.
Habitualmente la creacin de un programa conlleva dos pasos. El primer paso se llama
compilacin y traduce el cdigo fuente escrito en un lenguaje de programacin almacenado en
un archivo de texto a cdigo en bajo nivel. El segundo paso se llama enlazado en el cual se
enlaza el cdigo de bajo nivel generado de todos los ficheros y subprogramas que se han

16

mandado compilar y se aade el cdigo de las funciones que hay en las bibliotecas del
compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo,
traduciendo as finalmente el cdigo objeto a cdigo mquina, y generando un mdulo
ejecutable.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de
compilacin en archivos objetos; para enlazarlos en fases posteriores, o crear directamente el
ejecutable; con lo que la fase de compilacin puede almacenarse solo de forma temporal. Un
programa podra tener partes escritas en varios lenguajes, por ejemplo, Java, C, C+
+ y ensamblador, que se podran compilar de forma independiente y luego enlazar juntas para
formar un nico mdulo ejecutable.

6.5. Programacin e ingeniera del software


Existe una tendencia a identificar el proceso de creacin de un programa informtico
con la programacin, que es cierta cuando se trata de programas pequeos para uso personal,
y que dista de la realidad cuando se trata de grandes proyectos.
El proceso de creacin de software, desde el punto de vista de la ingeniera, incluye
mnimamente los siguientes pasos:
1. Reconocer la necesidad de un programa para solucionar un problema o identificar la
posibilidad de automatizacin de una tarea.
2. Recoger los requisitos del programa. Debe quedar claro qu es lo que debe hacer el
programa y para qu se necesita.
3. Realizar el anlisis de los requisitos del programa. Debe quedar claro qu tareas debe
realizar el programa. Las pruebas que comprueben la validez del programa se pueden
especificar en esta fase.
4. Disear la arquitectura del programa. Se debe descomponer el programa en partes de
complejidad abordable.
5. Implementar el programa. Consiste en realizar un diseo detallado, especificando
completamente todo el funcionamiento del programa, tras lo cual la codificacin
(programacin propiamente dicha) debera resultar inmediata.
6. Probar el programa. Comprobar que pasan pruebas que se han definido en el anlisis
de requisitos

17

7. Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento


junto con los componentes que pueda necesitar (bases de datos, redes de
comunicaciones, etc.).
La ingeniera del software se centra en los pasos de planificacin y diseo del programa,
mientras que antiguamente (programacin artesanal) la realizacin de un programa consista
casi nicamente en escribir el cdigo, bajo solo el conocimiento de los requisitos y con una
modesta fase de anlisis y diseo.

6.6. Referencias histricas


El trabajo de Ada Lovelace, el ttulo de primera programadora de computadoras del
mundo, aunque Babbage nunca complet la construccin de la mquina. El nombre
del lenguaje de programacin Ada fue escogido como homenaje a esta programadora.

6.7. Objetivos de la programacin


La programacin debe perseguir la obtencin de programas de calidad. Para ello se
establece una serie de factores que determinan la calidad de un programa. Algunos de los
factores de calidad ms importantes son los siguientes:
Correctitud. Un programa es correcto si hace lo que debe hacer tal y como se estableci en las
fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy
importante especificar claramente qu debe hacer el programa antes de su desarrollo y, una
vez acabado, compararlo con lo que realmente hace.
Claridad. Es muy importante que el programa sea lo ms claro y legible posible, para facilitar
tanto su desarrollo como su posterior mantenimiento. Al elaborar un programa se debe
intentar que su estructura sea sencilla y coherente, as como cuidar el estilo de programacin..
Eficiencia. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al
tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que
necesita, pero hay otros recursos que tambin pueden ser de consideracin para mejorar la
eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, trfico
en la red que genera, etc.).
Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una
plataforma, ya sea hardware o software, diferente a aqulla en la que se desarroll. La
portabilidad es una caracterstica muy deseable para un programa, ya que permite, por
ejemplo, a un programa que se ha elaborado para el sistema GNU/Linux ejecutarse tambin en
la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a ms
usuarios ms fcilmente.

18

CONCLUSIN
Luego de realizar este trabajo hemos visto como los algoritmos son una de las
herramientas ms complejas y aplicables en el rea de la informtica y el mundo de los
computadores: Pudimos comprobar que mientras ms potente, completo y eficiente es el
computador o la aplicacin que corre sobre el mismo, ms grande, complejo y exacto es el
algoritmo que utiliza.
Con la finalidad de resolver operaciones matemticas o cualquier problema, afirmamos
que los algoritmos son de carcter general y puede aplicarse a cualquier operacin, la
formulacin de algoritmos fue unos de los ms grandes adelantos dentro de la ciencia
matemtica ya que a partir de ellos se pudieron resolver infinidad de problemas. Disear los
algoritmos sera el paso ms fcil, luego vendra lo que es traducir ese algoritmo diseado a un
lenguaje de computacin que se legible para l mismo, y una vez traducido crear un archivo
ejecutable el cual ser utilizado por ordenadores o similares para resolver o realizar lo
requerido para el cual fue hecho el algoritmo.

19