Está en la página 1de 16

Fundamentos de programacin

TEMA 1. Panorama general.

1.1. Evolucin de la programacin.


1.2. Beneficios de la programacin.
1.3. Algoritmos en la solucin de problemas y sus retos.
1.4. Explicar el propsito y el papel de los fundamentos.

Mejoran la capacidad de atencin y concentracin. La programacin de un software


medianamente complejo, implica una atencin extra a cada palabra que escribimos en
el editor de cdigo. Debes recordar los nombres de las variables, las normas del
lenguaje en el que ests programando, el patrn que deseas seguir para hacer el
programa funcionar... Los puntos a tener en cuenta son muy numerosos, por lo que la
atencin y la concentracin es vital para desarrollar esta tarea. Numerosos estudios
realizados en nios y en adultos as lo confirman.

Ms autonoma y mayor inters por la experimentacin y el aprendizaje. Cualquier


persona que comience a aprender un lenguaje de programacin puede,
partiendo de una base mnima, aprender por s mismo mediante la
experimentacin, siendo as ms autnomos. Deseo escribir un programa que
haga "x"? De acuerdo, comienza a probar con un tipo de sentencias, con
determinadas variables, con diferentes algoritmos, etc. La programacin
tambin deja va libre para la resolucin de un mismo problema de diferentes
formas, dando rienda suelta a la experimentacin y a la creatividad. Adems, al
ser una actividad "multipropsito" (puedes escribir desde un videojuego hasta
un software de gestin de datos), se aumenta de forma natural el inters del
alumno y, por lo tanto, mejora la capacidad de aprendizaje del mismo (por eso
de que, cuanto ms nos interesa algo, ms recursos centramos en ello).

Mayor orden y capacidad de comprensin. La programacin en cualquier lenguaje


requiere ser ordenados en todo momento; o, por el contrario, el ordenador no
ser capaz de comprender correctamente nuestras rdenes. Adems, al estar
escribiendo en un idioma completamente diferente, se ejercita constantemente
la capacidad de comprensin para poder plasmar nuestra idea en cdigo.
Tambin ejercitamos esta capacidad de comprensin cuando surge un error,
pues necesitamos interpretar y comprender los datos que nos proporciona el
ordenador sobre ese error para identificarlo y solventarlo en el menor tiempo
posible.

Mejor capacidad de clculo y de lgica. Numerosos estudios realizados en nios


muestran que la enseaza de programacin en edades tempranas se traduce en
mejoras en la capacidad de clculo y de lgica, dos aptitudes muy asociadas a la accin
de programar. En adultos, los resultados, obviamente, son menores, pero tambin
generan una mejora.

La principal razn para que las personas aprendan lenguajes de


programacin es utilizar un ordenador como una herramienta para la
resolucin de problemas. Tres fases pueden ser identificadas en el proceso
de resolucin :
- Fase de Identificacin (qu nos plantean)
- Fase de resolucin del problema
- Fase de implementacin (realizacin) en un lenguaje de
programacin
Fase de resolucin del problema
Esta fase incluye, a su vez, el anlisis del problema as como el diseo y
posterior verificacin del algoritmo.
Anlisis del problema
El primer paso para encontrar la solucin a un problema es el anlisis
del mismo. Se debe examinar cuidadosamente el problema a fin de obtener
una idea clara sobre lo que se solicita y determinar los datos necesarios para
conseguirlo.
Diseo del algoritmo
Un algoritmo puede ser definido como la secuencia ordenada de
pasos, sin ambigu edades, que conducen a la resolucin de un problema dado y
expresado en lenguaje natural, por ejemplo el castellano, Todo algoritmo debe
ser:
- Preciso: Indicando el orden de realizacin de cada uno de los
pasos.
- Definido: Si se sigue el algoritmo varias veces
proporcionndole
( consistente ) los mismos datos, se deben obtener siempre los
mismos resultados.
- Finito: Al seguir el algoritmo, este debe terminar en algn
momento, es decir tener un nmero finito de pasos.
Para disear un algoritmo se debe comenzar por identificar las tareas
ms importantes para resolver el problema y disponerlas en el orden en el que
han de ser ejecutadas. Los pasos en esta primera descripcin pueden requerir
una revisin adicional antes de que podamos obtener un algoritmo claro,
preciso y completo.
Este mtodo de diseo de algoritmos en etapas, yendo de los conceptos
generales a los de detalle, se conoce como mtodo descendente (top-down).
En un algoritmo se deben de considerar tres partes:

Entrada: Informacin dada al algoritmo.


- Proceso: Operaciones o clculos necesarios para encontrar la
solucin del problema.
- Salida: Respuestas dadas por el algoritmo o resultados
finales de los procesos realizados.

Sistema Operativo:
Interfaz entre la computadora y el usuario.
Administra los procesos de entrada y salida
Administra los recursos fsicos y lgicos de la PC.

Software aplicativo:
La aparicin de paquetes para procesar informacin se debe al xito del uso de las
PCs, ya que no es necesario programar. Hoja de clculo electrnica-, bases de datos,
procesador de palabras, paquetes de aplicacin especifica como pueden ser el de
anlisis estadstico y el de diseo estructural, entre muchos.
El concepto de paquete o software orientado a una aplicacin especifica contina
evolucionando y cada vez es mejor.

El software aplicativo se divide en:


a) Software a la medida
b) Software de propsito general
En los cuales debe de existir calidad total, utilizando mtodos y mecanismos.
El software libre y software patentado Pros y contras.
Piratera de software.
Software incompleto y con muchos errores.

TEMA 2. Resolucin de problemas

2.1 Definicin, planteamiento y modelado del


problema.
2.1.1 Formular el problema.
2.1.2 Analizar el problema.
2.1.3 Disear una estrategia de bsqueda de la
solucin.
2.2 Algoritmos para la resolucin del problema.
2.2.1 Definicin y representacin de algoritmos.
2.2.2 Conversin del planteamiento del problema al
algoritmo.
2.3 Definicin del modelo computacional.
2.3.1 Mquina de Von Neumann.
2.3.2 Mquina de Turing.
2.3.3 Manejo del Sistema Binario.
2.4 Refinamiento del algoritmo paso a paso.
2.4.1 Planteamiento de la solucin del problema.
2.4.2 Descomposicin de la solucin del problema en submdulos.
2.4.3 Aplicacin de las estructuras.

CICLO DE VIDA DE UN PROGRAMA


Al igual que en la resolucin de problemas, existen ciertos pasos que debemos seguir
para la creacin de programas, estos son:
1. Anlisis del problema
2. Elaborar el Algoritmo
3. Codificacin del algoritmo
4. Depuracin de cdigo
5. Mantenimiento de programa.

Anlisis del problema


Consiste en estudiar minuciosamente el problema que queremos solucionar,
considerando los requerimientos que se piden y los elementos con los que contamos
para realizarlo, etc.

Elaborar el Algoritmo
El algoritmo son las instrucciones para resolver el problema.
Puede ser de texto (Pseudocdigo) o grfico (Diagrama de Flujo).
De manera ms especfica:

Un algoritmo es el conjunto de instrucciones que emplean estructuras de control y nos


permiten realizar un programa que ejecute una o varias actividades especificas. Para
elaborarlo, debe pensarse detallada y ordenadamente todos los pasos que realizar el
programa.

Codificacin del algoritmo


Despus de tener el algoritmo, el siguiente paso es codificarlo en el lenguaje que
seleccionamos, para este caso en
especfico es el Lenguaje C.

Depuracin de cdigo
Despus de codificar el programa, generalmente quedan pequeos detalles a corregir,
por lo tanto, el siguiente paso es la depuracin del programa.
Depurar; es pulir el programa para que todo funcione como nosotros deseamos. Para
esto, es necesario probar el programa cuantas veces sea necesario, para asegurarnos
de que funcione correctamente.
Mantenimiento de programa.
Este es el ltimo paso del ciclo de vida de un programa. Se realiza despus de que el
programa ya ha tenido vida til y debido a las nuevas necesidades de los usuarios, es
necesario hacer modificaciones al programa. Cuando estos cambios son demasiados,
se debe elaborar un nuevo programa.

El software es una parte esencial de sistemas convencionales y de tecnologas de la


informacin, tales como sistemas de transporte, militares, mdicos y financieros.

Hay una proliferacin de normas, procedimientos, mtodos, herramienta y entornos


para desarrollar y gestionar el software. Esta proliferacin ha creado dificultades en
la gestin y en la ingeniera de software, especialmente en la integracin de productos
y servicios. La disciplina del software necesita evolucionar desde esta proliferacin,
hacia un marco de referencia comn que pueda ser usado por los profesionales del
software para "hablar el mismo lenguaje", a la hora de crear y gestionar el software.

La NTP-ISO/IEC 12207 tiene como objetivo principal proporcionar una estructura


comn para que compradores, proveedores, desarrolladores, personal de
mantenimiento, operadores, gestores y tcnicos involucrados en el desarrollo de
software usen un lenguaje comn.

Ingeniera de Software
En la construccin y desarrollo de proyectos se aplican mtodos y tcnicas para
resolver los problemas, la informtica aporta herramientas y procedimientos sobre
los que se apoya la ingeniera de software:

-Mejorar la calidad de los productos de software


-Aumentar la productividad y trabajo de los ingenieros del software.
-Facilitar el control del proceso de desarrollo de software.
-Suministrar a los desarrolladores las bases para construir software de alta calidad en
una forma eficiente.
-Definir una disciplina que garantice la produccin y el mantenimiento de los
productos software desarrollados en el plazo fijado y dentro del costo estimado.

Mtodo del ciclo de vida clsico


El mtodo del ciclo de vida para desarrollo de sistemas es el conjunto de actividades
que los analistas, diseadores y usuarios realizan para desarrollar e implantar un
sistema de informacin.

El mtodo del ciclo de vida para el desarrollo de sistemas consta de las


siguientes actividades:
1) Investigacin preliminar
2) Determinacin de los requisitos del sistema.
3) Diseo del sistema.(diseo lgico)
4) Desarrollo de software (diseo fsico).
5) Prueba de sistemas.
6) Implantacin y evaluacin.

DIAGRAMAS DE FLUJO DEFINICIN:


Es la representacin grfica de las secuencias lgicas, que se realizan para la
resolucin de un problema (algoritmo).

Elementos esenciales:
-Comienzo del diagrama (parte superior)
-Operaciones
-Secuencia en que se realizan
-Fin del diagrama (parte inferior)

OPERADORES ARITMTICOS:
SUMA +
RESTA -
DIVISIN /
MULTIPLICACIN *
POTENCIA **
RESIDUO mod
PARNTESIS ()
OPERADOR DE ASIGNACIN =

RECUERDEN QUE LOS OPERADORES TIENEN UNA JERARQUA PSEUDOCDIGO


DEFINICIN:
Es la representacin ESCRITA de las secuencias lgicas, que se realizan para la
resolucin de un problema (algoritmo).

Elementos esenciales:
-Comienzo al inicio -parte superior-
-Operaciones
-Secuencia en que se realizan
-Fin del algoritmo -parte inferior
-Variables
-Tipo de Datos numricos
+Enteros
+ Reales
+Alfanumricos
-Caracteres
-Datos lgicos
-Booleanos

OPERADORES RELACIONALES
MAYOR >
MENOR <
IGUAL =
MAYOR E IGUAL > =
MENOR E IGUAL < =
DIFERENTE < >
OPERADORES LGICOS
AND (Y)
OR ()
Comparacin de tres variables
A=B=C incorrecto
A=B y B=C correcto
O bien
A=B B=C A=C correcto
Decisiones
-Pseudocdigo
-Ejemplo 1
ASIGNAR PROCESO 1
SI DECISIN 1 (ES VERDADERA) ENTONCES
ASIGNAR PROCESO 2
FIN DE DECISION

-Pseudocdigo
-Ejemplo 2
ASIGNAR PROCESO 1
SI DECISIN 1 (ES VERDADERA) ENTONCES
ASIGNAR PROCESO 2
SI NO
ASIGNAR PROCESO 3
FIN DE DECISION

Tipos de Variables
Contador: Se utiliza para llevar la cuenta de determinadas acciones que se pueden
solicitar durante la resolucin de un problema.
-Acumulador: Su tarea es almacenar cantidades variables.
-La principal diferencia entre ambas es que el incremento o decremento de cada suma
es variable en lugar de un valor constante, como en el caso del contador.

Estructura de Seleccin Mltiple


-Proceso Ejercicio
Definir opcion como entero
Definir A, B, C como real
Escribir 'Seleccione una Opcin'
Escribir '1-Suma'
Escribir '2-Resta'
Escribir '3-Multiplicacin'
Escribir '4-Divisin'
Leer opcin

Segunda opcin:
1: Escribir 'ingrese A y B'
Leer A,B
C<-A+B
Escribir A,'+',B,'=',C
2: Escribir 'ingrese A y B'
Leer A,B
C<-A-B
Escribir A,'-',B,'=',C
3: Escribir 'ingrese A y B'
Leer A,B
C<-A*B
Escribir A,'*',B,'=',C

4: Escribir 'ingrese A y B'


Leer A,B
Si B!=0 Entonces
C<-A/B
Escribir A,'/',B,'=',C
Sino
Escribir 'Error'
Fin Si
De Otro Modo:
Escribir 'Opcin invlida'
Fin Proceso
Tema 3. Fundamentos para la construccin de cdigo a partir de un algoritmo.

Fundamentos de lenguaje C
3.1. Sintaxis bsica y semntica
3.2. Variables, tipos, expresiones y asignacin

Estas rdenes se le deben dar en un cierto lenguaje, que el ordenador sea capaz de
comprender.
Ya estamos a punto de entrar a lo ms interesante, a la programacin en s; pero es
necesario, primero; mencionar algunos de los errores tpicos al programar, para que
el lector sepa como identificarlos y as los pueda corregir.
1. ERROR DE SINTAXIS: Estos errores son producidos, cuando se hace mal uso
de las reglas del lenguaje de programacin, y se violan las normas de sintaxis,
de ese lenguaje (en nuestro caso C); estos errores son fciles de detectar
porque generalmente es el compilador, que los identifica (Y hasta muestra la
lnea donde se encuentra dicho error, pero eso depende de la versin del
compilador que estemos usando). En este curso he usado Turbo C, en su
versin 2 y 3.
2. ERRORES DE EJECUCIN: Estos errores se producen, cuando le indicamos a la
computadora, realizar una determinada accin, y esta la comprende, pero no
puede ejecutarla. Por ejemplo, indicarle a la computadora una divisin entre
cero, sumar dos variabes a las cuales no se les ha signado valor alguno, etc.
3. ERRORES DE LGICA: Muchas veces, cuando estamos programando, el
compilador no nos indica errores de sintaxis, ni de lgica; pero el resultado de
nuestro programa, esta fuera del rango esperado, esto es producto de un error
de lgica en el cdigo de nuestro programa. Este tipo de errores son muy
difciles de identificar y por supuesto de corregir, ya que generalmente hay que
revisar lnea por lnea de nuestro programa. Ejemplo: El sueldo negativo de un
empleado, etc.
La estructura de un programa en C, consta de algunas partes esenciales: las cuales son
uno o ms mdulos llamadas funciones, siendo main() la primera funcin que es
llamada cuando empieza la ejecucin del programa .
Cada funcin debe contener:
>Directivas de pre-procesador (instrucciones que se le dan al compilador #include
antes de compilar)
#define
Ejemplo:
#include <stdio.h>
Lo que se le est indicando, es que de las libreras, "Incluya" en nuestro programa la
directiva stdio.h, la cual contiene las funciones de entrada y salida de datos (standar
input output, en ingls). Si necesitamos las funciones matemticas, debemos
especificarlo con la declaratoria:
#include <math.h>
Si necesitamos las funciones de cadenas:
#inlcude <stlib.h>
Es necesario aclarar que esto se hace al inicio del programa, y las declaratorias deben
llevar el smbolo de numeral (#) seguido de la sentencia "include", y entre signosde
mayor y menor que (<>) el nombre de la directiva.
>Declaraciones Globales
Pueden ser:
*Prototipos de Funciones: Tambin llamadas declaraciones de funciones, lo cual se
tratar ms adelante
*Declaraciones de Variables
Cabe destacar, que esto se hace seguido de los #include y los #define.
>Funcin Principal main()
Esta es la funcin principal de nuestro programa, su cuerpo, por ello NUNCA debe
faltar, ya que en ella van contenidas todas las instrucciones de nuestro programa.
main()
{
declaraciones locales /*Comentarios */
sentencias
}
La funcin main() va al inicio, luego abrimos llaves y dentro de ellas van las
declaraciones de variables, las sentencias de lectura , clculos, asignaciones e
impresiones, y con la ltima llave ( } ), le indicamos el final del programa

Estructura de seleccin
3.3. Estructuras de control condicional e interativo

if Vamos a ver cmo podemos comprobar si se cumplen condiciones. La


primera construccin que usaremos ser "si ... entonces ...". El formato en C es if
(condicin) sentencia;
if y sentencias compuestas La "sentencia" que se ejecuta si se cumple la
condicin puede ser una sentencia simple o una compuesta. Las sentencias
compuestas se forman agrupando varias sentencias simples entre llaves ( { y }
):
Operadores relacionales: <=, >, >=, ==, !=
Hemos visto que el smbolo > es el que se usa para comprobar si un nmero es
mayor que otro. El smbolo de menor que tambin es sencillo, pero los dems son un
poco menos evidentes, as que vamos a verlos:

< Menor que


> Mayor que
<= Menor o igual que
>= Mayor o igual que
== Igual a
!= No igual a (distinto de)
switch Si queremos ver varios posibles valores, sera muy pesado tener que
hacerlo con muchos if seguidos o encadenados.

Estructuras de repeticin
3.4. Funciones y pasos de parmetros
3.5. Descomposicin estructurada
3.6. Manejo de E/S

Cmo hacer que una cierta parte de un programa se repita un cierto nmero de veces
o mientras se cumpla una condicin (lo que llamaremos un bucle).
while Si queremos hacer que una seccin de nuestro programa se repita
mientras se cumpla una cierta condicin, usaremos la orden while. Esta
orden tiene dos formatos distintos, segn comprobemos la condicin al
principio o al final.

Es decir, la sentencia se repetir mientras la condicin sea cierta. Si la condicin es


falsa ya desde un principio, la sentencia no se ejecuta nunca. Si queremos que se repita
ms de una sentencia, basta agruparlas entre { y }.

do ... while Este es el otro formato que puede tener la orden while: la
condicin se comprueba al final. El punto en que comienza a repetirse se indica
con la orden do.
for sta es la orden que usaremos habitualmente para crear partes del
programa que se repitan un cierto nmero de veces
En un for, realmente, la parte que hemos llamado Incremento no tiene por qu
incrementar la variable, aunque se es su uso ms habitual. Es simplemente una
orden que se ejecuta cuando se termine la Sentencia y antes de volver a
comprobar si todava se cumple la condicin de repeticin. Por eso, si escribimos
la siguiente lnea: for (contador=1; contador<=10; ) la variable contador no se
incrementa nunca, por lo que nunca se cumplir la condicin de salida: nos
quedamos encerrados dando vueltas dentro de la orden que siga al for.

Arreglos unidimensionales y multidimensionales


3.7. Estrategias de depuracin
3.8. Tipo de errores

Conceptos bsicos sobre depuracin


La depuracin es el anlisis de un programa para descubrir fallos. El nombre en
ingls es debug, porque esos fallos de programacin reciben el nombre de bugs
(bichos). Para eliminar esos fallos que hacen que un programa no se comporte
como debera, se usan unas herramientas llamadas depuradores. Estos nos
permiten avanzar paso a paso para ver cmo avanza realmente nuestro programa,
y tambin nos dejan ver los valores de las variables. Como nuestros conocimientos
ya nos permiten hacer programas de una cierta complejidad, es el momento de ver
formas de descubrir dnde estn los posibles errores. Lo haremos desde varios
entornos distintos.

Los arreglos son una coleccin de variables del mismo tipo que se
referencian utilizando un nombre comn. Un arreglo consta de posiciones
de memoria contigua. La direccin ms baja corresponde al primer
elemento y la ms alta al ltimo. Un arreglo puede tener una o varias
dimensiones. Para acceder a un elemento en particular de un arreglo se usa
un ndice.

1. El formato para declarar un arreglo unidimensional es: tipo nombre_arr


[ tamao ]
2. Arreglos de varias dimensiones con la siguiente sintaxis: tipoDato
nombre [ tamao ][ tamao ][tamao];
Donde nombre se refiere al identificador del arreglo, tamao es un nmero
entero y define el nmero mximo de elementos que puede contener el arreglo
por dimensin (el nmero de dimensiones est determinado por el nmero de
corchetes). Los tipos de dato que puede tolerar un arreglo multidimensional
son: entero, real, carcter o estructura.
TEMA 4. PARADIGMAS DE PROGRAMACION
4.1. Programacin estructurada
4.2. Programacin orientada a objetos

La programacin estructurada se basa en una metodologa de desarrollo de


programas llamada refinamiento sucesivo: Se plantea una operacin como
un todo y se divide en segmentos ms sencillos o de menor complejidad.
Una vez terminado todos los segmentos del programa, se procede a unificar
las aplicaciones realizadas por el pool de programadores. Si se ha utilizado
adecuadamente la programacin estructurada, esta integracin debe ser
sencilla y no presentar problemas al integrar la misma, y de presentar
algn problema, sera rpidamente detectable para su correccin.

La representacin grafica de la programacin estructurada se realiza a travs de


diagramas de flujo o flow chart, el cual representa el programa con sus entradas,
procesos y salidas.

La programacin estructurada propone segregar los procesos en estructuras lo ms


simple posibles, las cuales se conocen como secuencia, seleccin e interaccin. Ellas
estn disponibles en todos los lenguajes modernos de programacin imperativa en
forma de sentencias. Combinando esquemas sencillos se pueden llegar a construir
sistemas amplios y complejos pero de fcil entendimiento.

La Programacin Orientada a Objetos (POO u OOP por sus siglas en ingls),


es un paradigma de programacin.
Los elementos de la POO, pueden entenderse como los materiales que necesitamos
para disear y programar un sistema, mientras que las caractersticas, podran
asumirse como las herramientas de las cules disponemos para construir el sistema
con esos materiales.

Entre los elementos principales de la POO, podremos encontrar a:

Clases
Las clases son los modelos sobre los cules se construirn nuestros objetos.

Propiedades
Las propiedades, como hemos visto antes, son las caractersticas intrnsecas del
objeto. stas, se representan a modo de variables, solo que tcnicamente, pasan a
denominarse propiedades.
Mtodos
Los mtodos son funciones (como las que vimos en el captulo anterior), solo que
tcnicamente se denominan mtodos, y representan acciones propias que puede
realizar el objeto (y no otro)

Objeto
Las clases por s mismas, no son ms que modelos que nos servirn para crear objetos
en concreto. Podemos decir que una clase, es el razonamiento abstracto de un objeto,
mientras que el objeto, es su materializacin. A la accin de crear objetos, se la
denomina instanciar una clase y dicha instancia, consiste en asignar la clase, como
valor a una variable.

Lectura y escritura de datos

4.3. Programacin orientada a objetos

4.4 Programacin lgica

4.5. Programacin paralela

4.6. Principales usos de los paradigmas para la solucin de problemas

La programacin lgica

Consiste en la aplicacin del corpus de conocimiento sobre lgica para el diseo de


lenguajes de programacin; no debe confundirse con la disciplina de la lgica
computacional. La programacin declarativa gira en torno al concepto de predicado, o
relacin entre elementos. Motivacin Histricamente, los ordenadores se han
programado utilizando lenguajes muy cercanos a las peculiaridades de la propia
mquina: operaciones aritmticas simples, instrucciones de acceso a memoria, etc. Un
programa escrito de esta manera puede ocultar totalmente su propsito a la
comprensin de un ser humano, incluso uno entrenado. Hoy da, estos lenguajes
pertenecientes al paradigma de la Programacin imperativa han evolucionado de
manera que ya no son tan crpticos. Sin embargo, an existen casos donde el uso de
lenguajes imperativos es inviable debido a la complejidad del problema a resolver. En
cambio, la lgica matemtica es la manera ms sencilla, para el intelecto humano, de
expresar formalmente problemas complejos y de resolverlos mediante la aplicacin
de reglas, hiptesis y teoremas. De ah que el concepto de "programacin lgica"
resulte atractivo en diversos campos donde la programacin tradicional es un fracaso.
Campos de aplicacin La programacin lgica encuentra su hbitat natural en
aplicaciones de inteligencia artificial o relacionada:
Sistemas expertos, donde un sistema de informacin imita las recomendaciones de
un experto sobre algn dominio de conocimiento.

Demostracin automtica de teoremas, donde un programa genera nuevos


teoremas sobre una teora existente.

Reconocimiento de lenguaje natural, donde un programa es capaz de comprender


(con limitaciones) la informacin contenida en una expresin lingstica humana.

La programacin lgica tambin se utiliza en aplicaciones ms "mundanas" pero de


manera muy limitada, ya que la programacin tradicional es ms adecuada a tareas de
propsito general. Fundamentos La mayora de los lenguajes de programacin lgica
se basan en la teora lgica de primer orden, aunque tambin incorporan algunos
comportamientos de orden superior. En este sentido, destacan los lenguajes
funcionales, ya que se basan en el clculo lambda, que es la nica teora lgica de
orden superior que es demostradamente computable (hasta el momento).

Programacin paralela
La necesidad que surge para resolver problemas que requieren tiempo elevado de
cmputo origina lo que hoy se conoce como computacin paralela. Mediante el uso
concurrente de varios procesadores se resuelven problemas de manera ms rpida
que lo que se puede realizar con un solo procesador. Una computadora paralela es un
conjunto de procesadores que son capaces de trabajar cooperativamente para
solucionar un problema computacional. Esta definicin es muy extensa e incluye
supercomputadoras que tienen cientos o miles de procesadores, redes de estaciones
de trabajo o estaciones de trabajo con mltiples procesadores.
Paradigma Orientado a Objeto
Disciplina de ingeniera de desarrollo y modelado de software que permite construir
ms fcilmente sistemas complejos a partir de componentes individuales. Objetos +
Mensajes = Programa. Describen los lenguajes que soportan objetos en interaccin. Un
objeto es un grupo de procedimientos que comparten un estado. El trmino de
orientado a objetos fue utilizado originalmente para distinguir aquellos lenguajes
basados en objetos que soportaban clases de objetos y la herencia de atributos de un
objeto.

Tema 5. Computo aplicado a diferentes reas de la ingeniera y otras disciplinas

5.1. Tendencia a desarrollo de software


5.2. Software propietario

Evolucin de los lenguajes de programacin. Los lenguajes han evolucionado


mucho desde los primeros lenguajes procedimentales como Basic, C, Fortran, RPG,
Cobol y Pascal, pasando por los lenguajes orientados a las bases de datos (Xba-se, SQL,
4GL), los lenguajes orientados a objeto (Ada, Smalltalk, C++, Modula) y terminando en
un lenguaje estndar orientado a objeto como Java.

Evolucin en la ingeniera de software. Los entornos de ingeniera de software


comenzaron con la generacin de aplicaciones; luego, evolucionaron para dar soporte
al anlisis y diseo y posteriormente integraron ambas. En los entornos de ingeniera
de software actuales se han integrado el manejo de requerimientos, anlisis, diseo,
generacin, pruebas y manejo de cambios para dar soporte a todas las etapas del
proceso de desarrollo de software.

Evolucin en los mtodos de anlisis y diseo. Ha habido una evolucin larga en


los mtodos de desarrollo. Primero los mtodos se centraron slo en el anlisis y
luego slo en el diseo, para posteriormente integrarse. Actualmente se contemplan
tambin la construccin, pruebas e implementacin. Se han utilizado cuatro enfoques
principales a travs de los aos: las funciones, los datos, transformaciones
matemticas y los objetos.

También podría gustarte