Fundamentos


Datos: definiciones y tipos

Si se quiere construir un programa automatizado de cualquier tipo, se necesita almacenar de alguna manera sus datos como por ejemplo: nombres de los empleados, sus direcciones, si hicieron horas extras, etc. Todos estos datos han de ser guardados en la computadora.

Caracteres
Un carácter es el elemento más pequeño utilizado en el tratamiento de la información. Los caracteres pueden ser:

— Alfabéticos: (A, B, ... ,Z, a ,b , ... ,z).
— Numéricos: (0, 1, ... , 9).
— Especiales: (+, -, *, /, ., ;, <, >, ...).

En el ejemplo, el nombre de un empleado estará formado por una secuencia de caracteres alfabéticos, la dirección por caracteres alfanuméricos (mezcla de caracteres alfabéticos y numéricos), etc.

Dato
Un dato es un carácter o conjunto de caracteres que representa el valor que toma una variable con la que opera la computadora.

Existen cuatro tipos de datos simples:

— Alfabéticos: están compuestos por caracteres alfabéticos y el carácter blanco.

Cuando se quiera escribir el nombre de un empleado. la ciudad donde reside, etc., se emplearán caracteres alfabéticos, puesto que estos datos están formados únicamente por letras.

Ejemplo:
«Luis Gutiérrez Beltrán»
«Madrid»

— Numéricos: están compuestos sólo de caracteres numéricos, el punto decimal y el signo.

Se emplearán datos numéricos para almacenar el sueldo base de un empleado, el número de horas extras trabajadas, etc. Es decir, aquellos datos que sólo contengan números.

Ejemplo:
3.650.000
25
 — Alfanuméricos: están compuestos por una mezcla de los dos anteriores (alfabéticos y numéricos).

Se emplearán cuando el dato a representar no pueda ser definido sólo con números o con letras. Así, por ejemplo, si se quiere almacenar la dirección completa de un empleado se necesitará un dato alfabético que corresponde al nombre de la calle y también un dato numérico del número y piso donde vive la persona.

Ejemplo:
«Fuenterrabía, número 4-7 Izquierda»
«Raimundo Fernández Villaverde, 115»

— Lógicos y booleanos: en algunos lenguajes de programación se admite también la utilización de los llamados datos lógicos, cuya característica principal es que únicamente pueden tomar dos valores: Cierto (True) o Falso (False).

Este tipo de datos se emplea, por ejemplo, cuando se quiere almacenar si un empleado ha realizado horas extras, puesto que si es así se podrá almacenar como True, que sería como decir o almacenar Sí, y en caso contrario False que equivale a No.
Constantes y variables

La Constante es un dato cuyo valor permanece inalterado durante la ejecución de un programa. Se emplea para definir aquellos datos que siempre van a mantenerse invariables. Por ejemplo, se podría definir como valor constante el valor de PI o el número de meses que tiene un año.

Ejemplo:
La constante numérica Pi: 3.14
Número de meses de un año: 12

La Variable es un dato cuyo valor puede ser modificado durante la ejecución del programa. Una variable es una dirección de memoria y puede verse como una pequeña caja donde se pueden guardar valores. Estos pueden ser de cualquiera de los tipos vistos anteriormente (numéricos, alfabéticos, alfanuméricos, etc.). De esta manera, si se tiene una variable llamada Sueldo podrá almacenar cualquier valor para el sueldo. Por tanto, Sueldo es el nombre de la caja donde está guardado el valor del sueldo y cuando se utilice la palabra sueldo se estará refiriendo al valor que contiene la caja.

El nombre que se le da a una variable lo elige el programador y estará formado por letras de la A a la Z, números del 0 al 9, no se podrán intercalar espacios en él.

Dado que en cada programa se utiliza un gran número de variables, es muy importante que el nombre que se asigne a cada una de ellas recuerde la naturaleza de la información que va a contener, es decir, sea lo más clara posible. Por ejemplo, si una variable va a guardar el total de horas extras trabajadas, se le podría llamar HorasExtras, o TotalExtras.


EJEMPLO:
Supóngase que se tienen tres variables distintas, con los siguientes valores:

TotalSueldo = 0
SueldoBase = 2.000
HorasExtras = 300

Si se quiere calcular el sueldo de un empleado, se deben sumar los valores de las variables SueldoBase y HorasExtras y asignar el resultado a la variable TotalSueldo.
TotalSueldo = SueldoBase + HorasExtras.

El estado final de las variables es el siguiente:

TotalSueldo = 2.300
SueldoBase = 2.000
HorasExtras = 300

Como se ve, el valor de TotalSueldo ha variado, puesto que ahora tiene el valor de la suma de las otras dos variables. La única variable que modifica su valor es TotalSueldo, quedando el valor del resto de las variables inalterado.


El ciclo de vida de una aplicación.
Una de las cosas que se han definido tras el nacimiento de la ingeniería del software ha sido el ciclo de vida de una aplicación. El ciclo de vida define los pasos que sigue el proceso de creación de una aplicación desde que se propone hasta que finaliza su construcción. Los pasos son:
1.- Análisis. En esta fase se determinan los requisitos que tiene que cumplir la
aplicación. Se anota todo aquello que afecta al futuro funcionamiento de la
aplicación. Este paso le realiza un analista
2.-Diseño. Se especifican los esquemas de diseño de la aplicación. Estos esquemas
forman los planos del programador, los realiza el analista y representan todos
los aspectos que requiere la creación de la aplicación.
3.-Codificación. En esta fase se pasa el diseño a código escrito en algún lenguaje
de programación. Esta es la primera labor que realiza el programador
4.-Pruebas. Se trata de comprobar que el funcionamiento de la aplicación es la
adecuada. Se realiza en varias fases:
[4.1] Prueba del código. Las realizan programadores. Normalmente
programadores distintos a los que crearon el código, de ese modo la
prueba es más independiente y generará resultados más óptimos.
[4.2] Versión alfa. Es una primera versión terminada que se revisa a fin de
encontrar errores. Estas pruebas conviene que sean hechas por personal
no informático.
5.-Versión beta. Versión casi definitiva del software en la que no se estiman
fallos, pero que se distribuye a los clientes para que encuentren posibles
problemas. A veces está versión acaba siendo la definitiva (como ocurre
con muchos de los programas distribuidos libremente por Internet).
6.-Mantenimiento. Tiene lugar una vez que la aplicación ha sido ya distribuida,
en esta fase se asegura que el sistema siga funcionando aunque cambien los
requisitos o el sistema para el que fue diseñado el software. Antes esos cambios se hacen los arreglos pertinentes, por lo que habrá que retroceder a fases
anteriores del ciclo de vida.
Errores
Cuando un programa obtiene una salida que no es la esperada, se dice que posee errores. Los errores son uno de los caballos de batalla de los programadores ya que a veces son muy difíciles de encontrar (de ahí que hoy en día en muchas aplicaciones se distribuyan parches para subsanar errores no encontrados en la creación de la aplicación).
tipos de errores
Error del usuario. Errores que se producen cuando el usuario realiza algo inesperado y el programa no reacciona apropiadamente. Error del programador. Son errores que ha cometido el programador al generar el código. La mayoría de errores son de este tipo.
Errores de documentación. Ocurren cuando la documentación del programa no es correcta y provoca fallos en el manejo
Error de interfaz. Ocurre si la interfaz de usuario de la aplicación es enrevesada para el usuario impidiendo su manejo normal. También se llaman así los errores de protocolo entre dispositivos.
Error de entrada / salida o de comunicaciones. Ocurre cuando falla la comunicación entre el programa y un dispositivo (se desea imprimir y no hay papel, falla el teclado,...)
-Error fatal. Ocurre cuando el hardware produce una situación inesperado que el software no puede controlar (el ordenador se cuelga, errores en la grabación de datos,...)
-Error de ejecución. Ocurren cuando la ejecución del programa es más lenta de lo
previsto.
La labor del programador es predecir, encontrar y subsanar (si es posible) o al menos
controlar los errores.

Diseño de Algoritmos.- Tiene como propósito fundamental proporcionar al estudiante las estructuras y técnicas de manejo de datos más usuales y los criterios que le permitan decidir, ante un problema determinado, cuál es la estructura y los algoritmos óptimos para manipular los datos.
Objetivos Generales:
 1.   Introducir al alumno en el análisis de complejidad de los algoritmos, así como en el diseño e implementación de éstos con las técnicas y métodos más usados.
 2.  Desarrollar habilidades en el uso de las técnicas de análisis y diseño de algoritmos computacionales.
3.  Analizar la eficiencia de diversos algoritmos para resolver una variedad de problemas, principalmente no numéricos. 
4.  Enseñar al alumno a diseñar y analizar nuevos algoritmos.
Algoritmos y Problemas
2.1  Definición de Algoritmo.-Es un conjunto finito de instrucciones o pasos precisos para resolver un problema.
-->
Características que deben de cumplir los algoritmos obligatoriamente
·      Un algoritmo debe resolver el problema para el que fue formulado. Lógicamente no sirve un algoritmo que no resuelve ese problema. En el caso de los programadores, a veces  crean algoritmos que resuelven problemas diferentes al planteado.
·      Los algoritmos son independientes del ordenador. Los algoritmos se escriben para poder ser utilizados en cualquier máquina.
·      Los algoritmos deben de ser precisos. Los resultados de los cálculos deben de ser exactos, de manera rigurosa. No es válido un algoritmo que sólo aproxime la solución.
·      Los algoritmos deben de ser finitos. Deben de finalizar en algún momento. No es un algoritmo válido aquel que produce situaciones en las que el algoritmo no termina.
·      Los algoritmos deben de poder repetirse. Deben de permitir su ejecución las veces que haga falta. No son válidos los que tras ejecutarse una vez ya no pueden volver a hacerlo por la razón que sea.
características aconsejables para los algoritmos
Validez. Un algoritmo es válido si carece de errores. Un algoritmo puede resolver el problema para el que se planteó y sin embargo no ser válido debido a que posee errores
Eficiencia.  Un  algoritmo es eficiente si obtiene la solución al problema en poco tiempo. No lo es si es lento en obtener el resultado.
Óptimo.  Un algoritmo es óptimo si es el más eficiente posible y no contiene errores. La búsqueda de este algoritmo es el objetivo prioritario del programador.  No siempre podemos garantizar que el algoritmo hallado es el óptimo, a veces sí.
-->
Elementos que conforman un algoritmo
Entrada. Los datos iniciales que posee el algoritmo antes de ejecutarse.
Proceso. Acciones que lleva a cabo el algoritmo.
Salida. Datos que obtiene finalmente el algoritmo.
Fases en la creación de algoritmos
Hay tres fases en la elaboración de un algoritmo:
Análisis. En esta se determina cuál es exactamente el problema a resolver. Qué datos forman la entrada del algoritmo y cuáles deberán obtenerse como salida.
Diseño. Elaboración del algoritmo.
Prueba. Comprobación del resultado. Se observa si el algoritmo obtiene la  salida esperada para todas las entradas.

Comentarios