Sei sulla pagina 1di 17

Programas (software):

son una lista de instrucciones que van a indicar al hardware las


operaciones a realizar. Otra definición sería que son un conjunto de
instrucciones que controlan o dirigen a una computadora; y algo aún más
formalmente, un “programa es un conjunto de instrucciones internas
utilizadas para ejecutarse en una computadora y que produzcan un
resultado concreto”.

Podemos dividir los programas en dos tipos:

Programas del Sistema:


son el conjunto de programas esenciales para que la máquina funcione. Entre ellos
podemos mencionar: l sistema operativo, los editores de texto, los compiladores/interpretes
(lenguaje de programación) y los programas de utilidad.

Programas de Aplicación:
Son programas que están diseñados o creados para realizar tareas concretas, como
por ejemplo: nóminas, contabilidad, análisis estadísticos, diseño gráfico, diseño de presentaciones,
hojas de cálculo, antivirus, Diseños de páginas Web, etc

Programación:
Es el proceso de escribir un programa o software. Para ello
debemos conocer el conjunto de instrucciones que tiene el lenguaje de
programación que seleccionemos para trabajar.
Introducción a la Informática
Lenguaje de Programación: es el conjunto de instrucciones que podemos utilizar
para construir un programa. Los lenguajes de programación sirven para escribir
programas que permitan la comunicación usuario/máquina.

Los principales tipos de lenguajes de programación son:

Lenguaje de máquina:
son aquellos que están escritos en código binario, son instrucciones en
cadenas binarias, es decir, 0 y 1, y que especifican una operación, y las posiciones o
dirección de memoria implicadas en la operación. No necesita ser traducido para poder
ser cargado en memoria y ejecutado. Entre las desventajas tenemos que se hace difícil y
lento su codificación, es poco fiable, se hace difícil verificar y poner a punto los
programas, los programas solo son ejecutables en un mismo tipo de procesador.

Lenguajes de Bajo nivel:


Son más fáciles de utilizar que los lenguajes de máquina. El lenguaje de bajo
nivel más utilizado es el lenguaje ensamblador (assembler). Se caracteriza porque sus
instrucciones son conocidas como nemotécnicos. Por ejemplo, los nemotécnicos típicos
de operaciones aritméticas son: add, sub, div, etc, en español serían sum, res, div, etc.
Una instrucción ejemplo sería:
ADD M, N P,
esto sería: suma el número que está en la posición de memoria M al que está en la
posición N y guarda el resultado en la posición de memoria M.

En el caso de los lenguajes de bajo nivel, un programa que se haya escrito


con este, no puede ser ejecutado directamente por la computadora, sino que requiere de
una fase de traducción a lenguaje de máquina. Para ello utilizamos un ensamblador.
Introducción a la Informática
Entre las ventajas que tiene frente a los lenguajes de máquina, es
que son más fáciles de codificar y tiene mayor velocidad de cálculo. Las
desventajas más resaltantes es que dependen totalmente de la máquina lo que
impide la posibilidad de ejecutar el programa en diferentes máquinas y que la
formación de programadores es más compleja ya que se requiere que el
programador conozca no sólo del lenguaje de programación sino también del
funcionamiento interno de la máquina.

Lenguajes de Alto nivel:


Están diseñados para que la personas escriban y entiendan los
programas de un modo mucho más fácil que los lenguajes de máquina y
ensambladores. Utilizan en su sintaxis para las instrucciones palabras del
lenguaje humano. Un programa escrito en lenguaje de alto nivel es
independiente de la máquina, lo que significa que no dependen del diseño de
hardware de la máquina y por ello pueden ser ejecutados en diferentes tipos
de computadoras con pequeñas o ninguna modificación en el código fuente
(instrucciones).

Entre las ventajas que presentan podemos mencionar:

• El tiempo de formación de los programadores es relativamente corto en


comparación con los otros lenguajes.
• La escritura de programas se basa en reglas sintácticas similiares a los
lenguajes humanos.
• Transportabilidad.
• Las modificaciones y puesta a punto de los programas son más fáciles.
• Reducción del costo de los programas.
Introducción a la Informática
Entre las desventajas tenemos:
 No se aprovechan los recursos internos de la máquina, que se explotan mucho

mejor en lenguaje de máquina o ensamblador.


 Hay un aumento del uso de memoria.

 El tiempo de ejecución de los programas es mucho mayor.

 Al igual que los lenguajes ensamblador los programas fuentes deben ser traducidos

(compilados) para ser llevados a lenguaje de máquina para su ejecución.


Programa Fuente:
es el programa original escrito en el lenguaje de programación seleccionado por el
programador.
Programa Objeto:
es el programa fuente ya traducido a lenguaje de bajo nivel o de máquina.

Traductores de lenguaje:
Son programas que traducen los programas fuentes escritos en lenguajes de alto nivel
a código máquina. Se divide en dos tipos:

Interpretes:
Es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.
Esto lo hace línea por línea.

Compilador:
Toma un programa fuente hecho en lenguaje de alto nivel y genera un programa en
lenguaje más sencillo que la computadora pueda entender. Este programa que genera se llama
programa objeto. Luego un enlazador (linker) toma este programa objeto y hace un ejecutable que
será el programa que se ejecutará en memoria (este proceso es interno transparente al usuario).
Introducción a la Informática

Interprete Compilador

Programa Fuente Programa Fuente

Interprete Compilador

Traducción y Programa Objeto


ejecución línea a
línea
Introducción a la Informática
Fases de la compilación

Programa Fuente

Enlazador

Compilador

Programa
Ejecutable en
lenguaje de
máquina

Programa Objeto
Introducción a la Informática
Algoritmo:
es un método para resolver un problema mediante una serie de pasos
precisos, definidos y finitos.

Características de un Algoritmo:

un algoritmo debe ser preciso, definido y finito.

Preciso: implica el orden de realización de cada uno de los pasos.

Definido: si se sigue dos veces, se obtiene el mismo resultado.

Finito: Tiene un número determinado de pasos, implica que tiene un fin.


Introducción a la Informática
El proceso de diseño de un programa consta de los siguientes pasos o etapas:

Pasos Etapa Descripción

1 Análisis del problema Se analiza el problema teniendo en cuenta las


especificaciones de los requisitos exigidos.

2 Diseño de algoritmo Se diseña una solución que conducirá a un


algoritmo que resuelva el problema.

3 Codificación Se implementa el algoritmo en un código escrito en


un lenguaje de programación. Refleja las ideas
desarrolladas en las etapas de análisis y diseño

4 Compilación, ejecución y El programa se ejecuta, se comprueba


verificación. rigurosamente y se eliminan todos los errores que
puedan aparecer.

5 Depuración y El programa se actualiza y modifica cada vez que


mantenimiento sea necesario, de modo que se cumplan todas las
necesidades de cambio de sus usuarios.

6 Documentación Escritura de las diferentes fases del ciclo de vida del


software, esencialmente el análisis, diseño y
codificación, unidos a manuales de usuario y de
referencia, así como normas para el mantenimiento.
Introducción a la Informática
Análisis del problema:

Para poder definir bien un problema debemos responder a las siguientes


interrogantes:

¿Qué entradas se requieren? (tipo y cantidad)

¿Cuál es la salida deseada? (tipo y cantidad)

¿Qué método produce la salida deseada?


Diseño del algoritmo:
En esta etapa debemos determinar como va hacer el programa la tarea solicitada.
Para ello podemos usar el método de divide y vencerás. Es decir, para resolver un
problema complejo, se divide este en varios subproblemas y a continuación dividir
estos subproblemas en otros de nivel más bajo, hasta que pueda ser implementada
una solución en la computadora. Este método se conoce técnicamente como diseño
descendente o modular.

Cualquier programa bien diseñado consta de un programa principal (es el módulo de


nivel más alto) que llama a subprogramas (módulos de nivel más bajo) que a su vez
pueden llamar a otros subprogramas. Cuando un programa está estructurado de esta
manera se dice que tiene un diseño modular y el método de romper el programa en
módulos pequeños se llama programación modular. Cada módulo puede ser
planeado, codificado, comprobado y depurado independientemente, incluso por
diferentes programadores; y a continuación combinarlos entre sí. Este proceso
implica ejecutar los
siguientes pasos hasta que el programa termina:

• Programar un módulo.

• Comprobar un módulo

• Depurar el módulo si es necesario.

• Combinar el módulo con los módulos anteriores.


Herramientas de programación

Las dos herramientas para diseñar algoritmos utilizadas comúnmente son:

Diagramas de Flujo:
Es una representación gráfica de un algoritmo. Los símbolos utilizados han sido
normalizados por el instituto Norteamericano de Normalización (ANSI).

Pseudocódigo:
es una herramienta de programación en la que las instrucciones se escriben en
palabras similares al inglés o español, que facilitan la escritura y lectura de programas.

Codificación de un programa:
Es la escritura en un lenguaje de programación de la representación del
algoritmo diseñado en las etapas anteriores. Debido a que el diseño del algoritmo es
independiente del lenguaje de programación utilizado para su implementación, el código
puede ser escrito con facilidad un lenguaje u otro.

Para realizar la conversión del algoritmo en lenguaje de programación se deben


sustituir las palabras reservadas en español por sus homónimos en inglés, y las
operaciones/instrucciones indicadas en lenguaje natural, expresarlas en el lenguaje de
programación.
Compilación, Ejecución y Verificación:

Una vez que un algoritmo se ha convertido en un programa fuente, este es


archivado en una unidad de disco. El programa fuente debe ser traducido a lenguaje de
máquina, este proceso lo realiza el compilador y el sistema operativo que se encarga
prácticamente de la compilación.

Si después de compilar el programa fuente se producen errores, entonces


debemos volver a editar el fuente para corregir los errores y compilar de nuevo hasta que
no existan errores de compilación. De esta manera obtendremos el programa objeto que
todavía no es ejecutable directamente. Posterior a esto el sistema operativo realiza la fase
de montaje o enlace (link), carga el programa objeto con las librerías del programa fuente
del compilador. Este proceso de montaje produce el programa ejecutable.

Cuando el programa ejecutable se ha creado, se puede ya ejecutar (correr)


desde el sistema operativo.

La verificación de un programa es el proceso de ejecución de un programa


usando una amplia cantidad de datos de entrada, con los cuales buscamos determinar si
el programa tiene errores. Para ello debemos usar valores normales, valores extremos de
entrada que comprueben los límites del programa y valores de entrada que comprueben
aspectos especiales o específicos del programa.
Depuración:
es el proceso de encontrar los errores del programa y corregir o eliminar dichos
errores.

Tipos de errores que se pueden producir cuando se ejecuta un programa:

errores de compilación:
Son los que se producen por el uso incorrecto de las reglas del lenguaje de
programación y normalmente son errores de sintaxis. Cuando esto ocurre la
computadora no puede comprender la instrucción, por lo tanto no se obtiene el
programa objeto y el compilador imprimirá una lista de todos los errores
encontrados durante la compilación.

errores de ejecución:
estos suceden por instrucciones que la computadora puede comprender pero
no ejecutar. Ejemplos clásicos son la división entre cero y raíces de cuadradas
de números negativos. Cuando esto sucede el programa se detiene y se
imprime en pantalla un mensaje de error.

errores lógicos:
se producen en la lógica del programa y su fuente suele ser el diseño del
algoritmo. Este tipo de errores son los más difíciles de detectar, ya que el
programa no arroja errores ni de compilación, ni de ejecución, pero sucede que
no arroja resultados correctos. Para resolver este tipo de error se debe
regresar a la fase de diseño del algoritmo, modificarlo, cambiar el programa
fuente y compilar y ejecutar de nuevo.
Documentación y Mantenimiento:

La documentación de un problema consta de las descripciones de los pasos a dar


en el proceso de resolución del problema. La importancia de la documentación influye
directamente el producto final. Los programas poco documentados, son difíciles de depurar,
mantener y modificar.

La documentación de un programa puede ser interna y externa. La documentación


interna es la que se hace por líneas de comentarios en el programa fuente. Mientras que la
documentación externa debe incluir: análisis, diagramas de flujo y/o pseudocódigos, manuales
de usuario con instrucciones para ejecutar el programa y para interpretar los resultados.

Es por ello que la documentación es vital cuando se desea corregir posibles


errores futuros o también cambiar el programa.

Esto se denomina mantenimiento del programa. Después de cada cambio la


documentación debe ser actualizada para facilitar cambios posteriores. Normalmente se estila
numerar las versiones sucesivas de los programas por ejemplo: 1.0, 2.0, 2.1, etc. Si los
cambios introducidos en el programa son importantes se varía el primer número y si son
cambios mínimos se varía el segundo número. (2.0, 2.1, 2.2, etc.)
Conjunto de valores junto con las operaciones sobre esos valores

Tipos de datos primitivo:


• Entero.
• Real.
• Booleano (lógico).
• Carácter.
• Cadena de Carácter (string).
Entero: Subconjunto finito del conjunto matemático de los números enteros. No tiene
parte decimal. El Rango de los valores depende del tamaño que se les asigne en la
memoria para su representación, usualmente 2 bytes.
Real: Subconjunto finito del conjunto matemático de los números reales. Llevan signo
y parte decimal. Se almacenan usualmente en 4 Bytes o más (dependiendo del
lenguaje de programación que se utilice). Si se utilizan números reales muy grandes,
se puede usar notación científica.
Lógicos o Booleanos: Es aquel que sólo puede tomar uno de los dos valores,
verdadero o falso (1 ó 0). Este es el tipo de dato que retornan todas las operaciones
lógicas.
Carácter: Abarca al conjunto finito y ordenado de caracteres que reconoce la
computadora: letras, dígitos, caracteres especiales, ASCII, Unicode. Generalmente
sus valores se representan dentro de un par de comillas simples, aunque también se
puede suministrar su código numérico o posición dentro del conjunto de caracteres
válidos que se esté usando.
Cadena de Carácter o String: Conjunto de caracteres, que usualmente se
presentan entre los simbolos de comilla doble ( “ ” ).

Tipos de datos definidos por el usuario:


Son aquellos agregados por el programador.
Constantes:
Las constantes son instancias de un tipo dato determinado que tienen
un valor fijo que el programador asigna en el momento que la define, y no puede
ser modificado durante la ejecución del programa.
Ejemplo:
PI=3,1416
Variables:
Las variables son instancias de un tipo de dato determinado, cuyo valor
puede cambiar durante la ejecución del programa o corrida del algoritmo.
Antes de usar una variable el programador debe definirla o declararla,
indicando su nombre y el tipo de datos al que pertenece.
El nombre que se elije para la variable se denomina identificador y
normalmente debe ser un nombre que esté relacionado con el propósito para el que
se va a usar la variable en el programa.
Una variable puede tomar un valor inicial e ir cambiándolo a lo largo de
la ejecución del programa o corrida del algoritmo. Al acto de asignar un valor inicial
a una variable se le denomina inicialización de la variable.
Tipos de datos definidos por el usuario:
Ejemplo:
Nombre : carácter
Edad : entero
Número : real
Nombre = “Ernesto”
Edad = 25
Número = 0

Variables Acumuladoras:
Son aquellas que el programador usa para ir sumando valores a lo largo
de la ejecución del programa, es recomendable inicializarlas con un valor
conveniente al uso que posteriormente de les dé.
Variables Contadoras:
Se llaman así a las variables que el programador usa para ir contando a
lo largo de la ejecución del programa.
Relación entre variables y Memoria:
Al declarar una variable o constante con nombre, automáticamente se
reserva un espacio en memoria para guardarla. El espacio depende del tipo de dato
de la variable o constante. En esa zona de memoria es la que se guardará el valor
asociado a la variable o constante. Cuando el programa use esa variable o

Potrebbero piacerti anche