Introducción a la programación: Contenido

Anuncio
Introducción a la programación:
Contenido
Introducción a la programación: .................................................................................................... 1
Introducción .............................................................................................................................. 1
1. Procesamiento automatizado de información .................................................................... 1
2. Concepto de algoritmo. ...................................................................................................... 2
3. Lenguajes de programación. ............................................................................................... 4
Introducción
La principal razón para aprender a programar es utilizar la computadora como una herramienta
para resolver problemas. Sin embargo no es suficiente con aprender las reglas de un lenguaje de
programación para escribir programas, también es necesario hallar la solución del problema
independientemente del uso de las computadoras y de los lenguajes de programación. La solución
a los problemas está dada por un algoritmo. De ese modo, los algoritmos, junto a las estructuras
de datos, constituyen la solución de los problemas. El termino algoritmo se estableció en honor a
Abu Abdallah Muḥammad ibn Mūsā al-Jwārizmī, matemático persa del siglo IX quien propuso que
la solución de muchos problemas se puede obtener con un conjunto de soluciones menores.
1. Procesamiento automatizado de información
Los actuales sistemas de información están basados en el uso de computadoras. Estas, son
maquinas digitales (sincrónicas de múltiples propósitos) que ejecutan conjuntos o secuencias de
operaciones matemáticas y lógicas, utilizando el sistema binario de numeración. Son herramientas
poderosas para la automatización de la resolución de problemas, pero ello depende de la
capacidad de su programa. Generalmente a los sistemas de procesamiento automatizado de
información, los llamamos sistemas de información. Así, los sistemas de información son un
conjunto de elementos relacionados que actúan como un todo, cuyo objetivo es la obtención de
información y está compuesto por elementos de hardware y software. El hardware es el conjunto
de componentes físicos que componen al sistema. El software es un conjunto de componentes
lógicos que controlan el funcionamiento del hardware y otorgan a las computadoras la capacidad
de ser maquinas con múltiples propósitos.
Esto significa que para dotar a la maquina la capacidad de resolver múltiples problemas, es
necesario escribir un programa (software) que los solucione de forma específica. Para ello existen
pasos previos como ser:
a. Definición del problema.
Definir el problema significa comprenderlo, circunscribirlo, acotarlo (es imposible que hallemos
una solución sino sabemos cuál es el problema).
El proceso de analizar el mundo real para interpretar los aspectos esenciales de un problema y
expresarlo en términos precisos se llama abstracción.
b. Análisis del problema.
Una vez que se definió el problema hay que analizarlo. Se busca determinar claramente el
contexto (entorno) del problema y describir el estado futuro deseado una vez que se soluciono el
problema. Se debe determinar qué datos son necesarios para solucionar el problema y que
información debe proporcionar la solución.
c. Solución del problema.
La solución de todo problema lo constituye un algoritmo. Un algoritmo es un conjunto ordenado
de pasos que conducen a la solución de un problema.
d. Solución informática.
El algoritmo es la solución general sin tener en cuenta un lenguaje de programación ni una
maquina en especial. Cuando un algoritmo se define en términos de un lenguaje de programación
específico para una maquina específica, estamos en presencia de un programa. Este constituye la
solución informática de un problema.
La diferencia entre algoritmo y programa radica en el hecho de que los algoritmos se especifican
en términos “ideales”; mientras que los programas se especifican bajo las limitaciones impuestas
por lenguajes de programación y maquinas particulares.
2. Concepto de algoritmo.
La solución de un problema exige el diseño del algoritmo. Un algoritmo es la especificación de la
secuencia ordenada de pasos a realizar para solucionar un problema en un tiempo finito.
Está vinculado a una maquina abstracta. Por lo tanto, los algoritmos son independientes de los
lenguajes de programación y de las maquinas en las que se lo ejecutara.
Está constituido por un conjunto de acciones. Una acción es un hecho o acontecimiento que
sucede en un periodo de tiempo finito, es llevado a cabo por un ejecutante y tiene un objetivo. La
unión de varias acciones organizadas que se ejecutan en un tiempo finito se denomina proceso.
Tanto los procesos como las acciones son componentes de los algoritmos.
a. Características de los algoritmos.
Todo algoritmo debe cumplir con tres características:
Debe ser preciso. No debe existir acción alguna que presente ambigüedades en cuanto a su estado
previo y su estado posterior.
Debe estar definido. Si todas sus acciones son precisas y se sigue dos veces el mismo algoritmo
con los mismos datos, se debe obtener el mismo resultado cada vez.
Debe ser finito. Los resultados de la ejecución de un algoritmo se deben obtener en un tiempo
finito. Todo algoritmo debe tener un inicio y un fin.
b. Diseño de algoritmos.
En primer término, es necesario definir y analizar el problema a resolver. Una buena comprensión
del problema, mas la descripción detallada de entradas (datos necesarios) y salidas requerida
(datos requeridos del proceso) son los requisitos más importantes para hallar una solución del
problema. Los datos proporcionados al algoritmo constituyen su entrada y los datos producidos
por el su salida.
Una buena estrategia para resolver problemas complejos es descomponer al problema en varios
problemas menores más fáciles de solucionar. La descomposición del problema en otros más
simples y así sucesivamente hasta hallar una solución a ellos, esto se denomina diseño
descendente (top-down design).
Las principales ventajas del diseño descendente son:
•
•
•
El problema se comprende más fácilmente al dividirse en partes mas simples denominadas
módulos,
Las modificaciones en módulos son mas fáciles;
La comprobación del problema se puede verificar fácilmente.
c. Representación e algoritmos.
La elección depende del uso futuro, del objetivo y la experiencia de quien lo escriba. Entre las
alternativas se pueden encontrar:
•
•
•
•
•
•
Diagrama de flujo;
Diagrama N-S (Nassi-Scheiderman);
Lenguaje natural humano;
Pseudocódigo;
Formulas;
Lenguajes de programación.
3. Lenguajes de programación.
Un lenguaje es un sistema de comunicación compuesto por un vocabulario y una gramática. Todo
lenguaje está compuesto por un conjunto de símbolos y un conjunto de reglas que indican cómo
ha de utilizarse el conjunto de símbolos (sintaxis) para dar un significado (semántico). Los
lenguajes de programación respetan este concepto.
Un lenguaje de programación, es un conjunto de instrucciones y símbolos definido por reglas
sintácticas y semánticas, para la escritura de programas de computadoras.
Existen tres tipos de lenguajes de programación:
Lenguaje de maquina: Lenguaje cuyas instrucciones son "entendibles" directamente por la
maquina. Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje
específico conocido como código máquina, el cual la máquina comprende fácilmente, pero que lo
hace excesivamente complicado para las personas. De hecho sólo consiste en cadenas extensas de
números 0 y 1. Sus instrucciones y símbolos son secuencias de 0 y 1 (lenguaje binario). Por cada
instrucción que puede ejecutar la maquina, existe una cadena binaria que la representa . Cada
instrucción almacenada en memoria hace referencia a una dirección de memoria, una operación
ejecutable por el procesador y la dirección de memoria donde se encuentran los datos con los
cuales ha de hacerse la operación. Son lenguajes que dependen del hardware de la maquina, es
decir, dos maquinas distintas tienen lenguajes de maquina distintos.
Lenguaje de bajo nivel: el lenguaje de bajo nivel por excelencia es el Assembler. Un programa
escrito en este lenguaje requiere un proceso de traducción a su equivalente el lenguaje de bajo
nivel. Al igual que los lenguajes de bajo nivel, dependen de la maquina particular. Esto significa
que, un programa escrito en Assembler solo podrá ejecutarse en la máquina para la cual se
escribió el programa. Cada tipo de maquina tiene su propio lenguaje Assembler.
Lenguaje de alto nivel: Son los lenguajes que se utilizan en la actualidad. Están diseñados para que
sean interpretados por las personas. En algunos aspectos, se asemejan al habla natural. Un
programa escrito en un lenguaje de alto nivel requiere de un proceso de traducción al lenguaje de
bajo nivel, ya que estos programas n son interpretados por las maquinas. A los programas de alto
nivel se los llama programa fuente. Tiene la ventaja de ser más simples de aprender y utilizar por
los programadores y no dependen de una maquina particular. esta ultima característica permite
que un programa escrito en lenguaje de alto nivel en una maquina particular se pueda transportar
a maquinas de características distintas de aquellas para la cual se escribió originalmente. Son
ejemplos de estos lenguajes el BASIC, Cobol, Fortran, Pascal, C.
a. Programas traductores.
Son programas cuyo objetivo es traducir programas escritos en lenguaje de alto nivel a su
equivalente en lenguaje maquina. Existen dos tipos de traductores: intérpretes y compiladores.
Un intérprete es un traductor que toma un programa fuente, lo traduce a lenguaje maquina línea
a línea y a continuación lo ejecuta. No deja almacenado el resultado de la traducción. En la
actualidad prácticamente no se utiliza. Un compilador es un traductor que toma un programa
fuente, lo traduce y genera un equivalente en lenguaje de maquina (programa objeto).
b. Concepto de programa.
Un programa de computadora es un conjunto de instrucciones para realizar una tarea en una
maquina particular. En esencia, un programa es la transcripción de un algoritmo en un lenguaje de
programación para ser ejecutado en una maquina particular. A diferencia de los algoritmos, los
programas se escriben en términos de un lenguaje particular para una maquina particular.
Constituyen la solución informática de un problema.
Descargar