Documente Academic
Documente Profesional
Documente Cultură
1.
Introduccin.
2.
Los Ordenadores.
3.
Algoritmo: definicin, caractersticas fundamentales.
4.
Programa: concepto, Tipos: programa fuente, programa objeto.
5.
Instruccin.
6.
Lenguaje de Programacin: definicin, tipos: Bajo nivel
(lenguaje mquina, intermedios (Lenguaje ensamblador) y alto nivel.
7.
Intrpretes y compiladores.
1. Introduccin
La Informacin
Es ms que un conjunto de datos suficientemente organizados y entendibles
(algunas veces organizados utilizando tecnologa pero no necesariamente).
Informtica.
Es la Ciencia que estudia, aplica y optimiza el tratamiento eficiente de
la informacin.
2. Los Ordenadores
Un computador es bsicamente una mquina que realiza dos funciones
bsicas: ejecuta en forma muy rpida una secuencia de instrucciones
(programa) y almacena y recupera grandes cantidades de informacin
(datos). De acuerdo a esto, un computador puede caracterizarse por su
velocidad de operacin (medida en Hertz o ciclos por segundo), el tipo de
instrucciones que puede ejecutar (esto determina el tipo de computador) y
la capacidad de su memoria (medida en bytes).
Organizacin de una computadora
Unidad de entrada. Es la seccin receptora de la computadora. Obtiene
informacin (datos y programas de cmputo) desde varios dispositivos de
entrada y pone esta informacin a disposicin de las otras unidades para
que pueda procesarse.
Unidad de salida. Toma informacin que ya ha sido procesada por sta y la
coloca en los diferentes dispositivos de salida, para que est disponible
fuera de la computadora.
Unidad de memoria primaria Almacena los programas de la computadora
mientras se ejecutan. Retiene la informacin que se introduce a travs de
la unidad de entrada, para que la informacin pueda estar disponible de
manera inmediata para procesarla cuando sea necesario.
Unidad aritmtica y lgica (ALU). Es la responsable de realizar clculos
como suma, resta, multiplicacin y divisin. Contiene los mecanismos de
decisin que permiten a la computadora hacer operaciones como, por
1
3. Algoritmos
Conceptos bsicos.
En el campo de las ciencias de la computacin la solucin de problemas se
describe mediante el diseo de procedimientos llamados algoritmos, los
cuales posteriormente se implementan como programas.
Ahora definamos mejor Qu es un Algoritmo?
Un algoritmo es un conjunto de pasos secuenciales y ordenados que
permiten resolver un problema.
Que sean pasos secuenciales significa que deben ser ejecutados uno
despus de otro y que sean pasos ordenados quiere decir que deben llevar
un orden casi obligatorio (u obligatorio en la mayora de los casos).
Veamos un ejemplo:
Desarrollar un algoritmo que nos permita adquirir el libro "Cien aos de
soledad" de Gabriel Garca Mrquez.
Algoritmo: Salimos del lugar en donde estemos y nos dirigimos hacia una
librera. En caso de que ya estemos en una pues sencillamente solicitamos
si tienen el libro, si lo tienen lo adquirimos y si no lo tienen vamos a
otra libreria en donde repetimos el proceso.
Algoritmo_Libro
Inicio
1.
Saber cul es el libro que se quiere adquirir
2.
Desplazarnos hacia la librera.
3.
Preguntar si tienen el libro que necesitamos
4.
Si lo tienen:
adquirirlo y Parar all(dentro de este algoritmo)
Si no lo tienen:
ir al paso 2
FIN
Caractersticas de un algoritmo
>>>No ambiguo: explicito, siempre sabe que comando ejecutar.
>>>Finito: El algoritmo termina en un numero finito de pasos.
>>>Tener cero o ms entradas: Datos son proporcionados a un algoritmo
2
como insumo (o estos son generados de alguna forma) para llevar a cabo
las operaciones que comprende.
>>>Tener una o ms salidas: Debe siempre devolver un resultado; de nada
sirve un algoritmo que hace algo y nunca sabemos que fue.
>>> La definicin de un algoritmo debe describir tres partes: Entrada,
Proceso y Salida.
Entrada: definir lo que necesita el algoritmo.
Proceso: realizar una secuencia de acciones.
Salida: definir lo que produce.
>>>Los algoritmos son independientes tanto del lenguaje de programacin
en que se expresan como de la computadora que los ejecuta. En cada
problema el algoritmo se puede expresar en un lenguaje diferente de
programacin y ejecutarse en una computadora distinta; sin embargo, el
algoritmo ser siempre el mismo. As, por ejemplo, en una analoga con la
vida diaria, una receta de un plato de cocina se puede expresar en
espaol, ingls o francs, pero cualquiera que sea el lenguaje, los pasos
para la elaboracin del plato se realizaran sin importar el idioma del
cocinero.
>>>Los algoritmos son ms importantes que los lenguajes de programacin o
las computadoras. Un lenguaje de programacin es tan solo un medio para
expresar un algoritmo y una computadora es solo un procesador para
ejecutarlo. Tanto el lenguaje de programacin como la computadora son los
medios para obtener un fin: conseguir que el algoritmo se ejecute y se
efectu el proceso correspondiente.
Los algoritmos se clasifican en:
>>>Algoritmos Informales
Definidos como todos aquellos algoritmos que no son realizables a travs
de un computador o al menos no fcilmente. Son aquellos algoritmos en
donde el ejecutor real es el ser humano como el algoritmo para dar un
beso, el algoritmo para fritar unos huevos o el algoritmo para conseguir
un libro.
>>>Algoritmos Computacionales
Se consideran como tales todos aquellos algoritmos que deben ser
preferiblemente implementados en un computador para aprovechar su
velocidad de procesamiento. Un ejemplo de estos puede ser el algoritmo
que genere los primeros 100 nmeros primos.
4. Programas
Los programas son procedimientos que solucionan problemas y que se
expresan en un lenguaje conocido por el computador.
Programa Fuente: Es un conjunto de instrucciones que estan expresados
bajo las regla sintcticas y semnticas de un lenguaje de programacin.
Programa Objeto: El cdigo objeto es el resultado de la compilacin del
cdigo fuente. Para obtener un programa ejecutable se han de enlazar
todos los archivos de cdigo objeto con un programa llamado
enlazador(linker).
5. Instrucciones
En programacin, una instruccin indica a la computadora la o las
operaciones que sta debe realizar con unos datos determinados.
6. Lenguaje de Programacin
Los lenguajes de programacin son idiomas artificiales diseados para
expresar clculos y procesos que sern llevados a cabo por ordenadores.
Un lenguaje de programacin est formado por un conjunto de palabras
reservadas, smbolos y reglas sintcticas y semnticas que definen su
estructura y el significado de sus elementos y expresiones.
Ventajas:
7. Interprete y Compilador
Interprete
Para cada sentencia que compone el texto de entrada, se realiza una
traduccin, ejecuta dicha sentencia y vuelve a iniciar el proceso con la
sentencia siguiente.
Ventajas del intrprete frente al compilador:
El programa se puede ejecutar de inmediato, sin esperar a ser
compilado.
Puede ser interrumpido con facilidad.
puede ser rpidamente modificado y ejecutado nuevamente.
Resultan muy apropiados durante la fase de desarrollo de un
programa, ya que la compilacin no permite la ejecucin paso a paso
del programa y con ello impide la edicin seguimiento y depuracin
del programa.
Desventajas del intrprete frente al compilador:
La ejecucin es ms lenta, pues cada intruccin debe ser traducida
a cdigo mquina tantas veces como sea ejecutada.
No son adecuados en la fase de explotacin del programa ya que el
proceso de interpretacin se ha de repetir cada vez que se ejecuta
el programa, mientras que con la compilacin, una vez obtenido el
programa en leguaje mquina ste puede ser ejecutado sin necesidad
de compilarlo de nuevo.
Un intrprete facilita la bsqueda de errores, pues la ejecucin de un
programa puede interrumpirse en cualquier momento para estudiar el
entorno (valores de las variables, etc.). Adems, el programa puede
modificarse sobre la marcha, sin necesidad de volver a comenzar la
ejecucin.
Compilador
Un compilador es un programa especial que procesa las instrucciones
escritas en un lenguaje de programacin de alto nivel y las convierte a
lenguaje de mquina.
Un compilador suele generar programas ms rpidos y eficientes, ya que el
anlisis del lenguaje fuente se hace una sola vez, durante la generacin
del programa equivalente. En cambio, un intrprete se ve obligado
generalmente a analizar cada instruccin tantas veces como se ejecute.
Partes de un compilador
El anlisis del programa fuente y la sntesis del programa objeto.
Anlisis: Se trata de la comprobacin de la correccin del programa
fuente, e incluye las fases correspondientes al Anlisis lxico
(que consiste en la descomposicin del programa fuente en
componentes lxicos), Anlisis sintctico (agrupacin de los
componentes lxicos en frases gramaticales ) y Anlisis semntico
8
Tipos
Compiladores cruzados: generan cdigo para un sistema distinto del que
estn funcionando.
Compiladores optimizadores: realizan cambios en el cdigo para
mejorar su eficiencia, pero manteniendo la funcionalidad del
programa original.
Compiladores de una sola pasada: generan el cdigo mquina a partir
de una nica lectura del cdigo fuente.
Compiladores de varias pasadas: necesitan leer el cdigo fuente
varias veces antes de poder producir el cdigo mquina.
Proceso de Compilacin
Un programa fuente se puede dividir en mdulos almacenados en archivos
distintos. La tarea de reunir el programa fuente a menudo se confa a un
programa distinto, llamado preprocesador.
Normalmente la creacin de un programa ejecutable (un tpico.exe para
Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama
compilacin (propiamente dicho) y traduce el cdigo fuente escrito en un
lenguaje de programacin almacenado en un archivo a cdigo en bajo nivel
(normalmente en cdigo objeto, no directamente a lenguaje mquina). 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 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 (un tpico.obj para Microsoft
Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear
directamente el ejecutable; con lo que la fase de compilacin se almacena
slo temporalmente. Un programa podra tener partes escritas en varios
lenguajes (por ejemplo C, C++ y Asm), que se podran compilar de forma
independiente y luego enlazar juntas para formar un nico mdulo
ejecutable.
Un preprocesador es un programa separado que es invocado por el compilador
antes de que comience la traduccin real. Un preprocesador de este tipo puede
eliminar los comentarios, incluir otros archivos y ejecutar sustituciones de
macros.
Funciones
Procesamiento de macros. Un preprocesador puede permitir a un usuario
definir macros, que son abreviaturas de construcciones ms grandes.
Inclusin de archivos. Un preprocesador puede insertar archivos de
encabezamiento en el texto del programa. Por ejemplo, el preprocesador de C
10
Un enlazador (en ingls, linker) es un programa que toma los objetos generados
en los primeros pasos del proceso de compilacin, la informacin de todos los
recursos necesarios (biblioteca), quita aquellos recursos que no necesita, y
enlaza el cdigo objeto con su(s) biblioteca(s) con lo que finalmente produce
un fichero ejecutable o una biblioteca.
Anlisis sintctico
En esta fase los caracteres o componentes lxicos se agrupan
jerrquicamente en frases gramaticales que el compilador utiliza para
sintetizar la salida. Se comprueba si lo obtenido de la fase anterior es
sintcticamente correcto (obedece a la gramtica del lenguaje). Por lo
general, las frases gramaticales del programa fuente se representan
mediante un rbol de anlisis sintctico.
Anlisis semntico
La fase de anlisis semntico revisa el programa fuente para tratar de
encontrar errores semnticos y rene la informacin sobre los tipos para
11
12
INDICE SEMANA 02
1. Conceptos Fundamentales y Programacin.
2. Datos, tipos de datos, identificadores y variables.
3. Expresiones: aritmticas, relacionales y lgicas.
4. Instrucciones bsicas de programacin: Asignacin, lectura
y escritura.
5. Laboratorio: Resolver problemas de la vida diaria mediante
el uso de algoritmos en lenguaje natural (secuencia de pasos).
1. Conceptos Fundamentales de Programacin
La programacin es el proceso de disear, codificar, depurar y mantener
el cdigo fuente de programas computacionales. El cdigo fuente es
escrito en un lenguaje de programacin. El propsito de la programacin
es crear programas que exhiban un comportamiento deseado. El proceso de
escribir cdigo requiere frecuentemente conocimientos en varias reas
distintas, adems del dominio del lenguaje a utilizar, algoritmos
especializados y lgica formal. Programar no involucra necesariamente
otras tareas tales como el anlisis y diseo de la aplicacin (pero s el
diseo del cdigo), aunque s suelen estar fusionadas en el desarrollo de
pequeas aplicaciones.
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 extremo, el lenguaje ms potente existente es el binario, con
ambigedad nula (lo cual lleva a pensar as del lenguaje ensamblador).
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 estructurada
programacin modular
programacin orientada a objetos
Un paradigma de programacin es una propuesta tecnolgica que es adoptada
por una comunidad de programadores cuyo ncleo central es incuestionable
en cuanto a que unvocamente trata de resolver uno o varios problemas
claramente delimitados.
La programacin estructurada es un paradigma de programacin orientado a
mejorar la claridad, calidad y tiempo de desarrollo de un programa de
computadora, utilizando nicamente subrutinas y tres estructuras:
secuencia, seleccin (if y switch) e iteracin (bucles for y while),
13
Objetivos de la programacin
Correccin. 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 desarrollarlo y, una vez acabado, compararlo con lo
que realmente hace.
Claridad. Es muy importante que el programa sea lo ms claro y
Tipo Entero
Un dato de tipo entero es un nmero que no tiene punto decimal, por lo
tanto en sus operaciones jams va a generar decimales. Por ejemplo 25, 96
y 0.
15
Tipo Real
Un dato de tipo real es un nmero que tiene punto decimal, por lo tanto
en sus operaciones puede generar decimales. Por ejemplo 12.3, 78.56 o
45.0.
Tipo Char
Un dato tipo carcter es un equivalente del Cdigo ASCII. Que es el
cdigo ASCII..? Es el Cdigo Internacional de equivalencias Internas en
el Sistema Binario.
Como se llevan los datos a las variables..? O sea Como se cargan las
variables..? Pues a travs de un signo muy conocido por usted y es el
signo =
A = 'g'; {Se asigna el caracter g a la variable A}
B = A; {Se asigna el valor de A, a la variable B}
C = #65; {Se asigna el caracter numero 65 de la tabla ASCII a la variable
C}
INDICE SEMANA 03
1.
La solucin de problemas con computadora.
2.
Fases de resolucin de un problema con computadora: Anlisis
del problema, diseo del algoritmo, codificacin, compilacin y
ejecucin.
3.
Herramientas para disear algoritmos: Diagramas N-S (NassiSchneiderman), pseudocdigos, diagramas de flujo convencional.
4.
5.
Laboratorio:
Disear algoritmos para resolver problemas sencillos (que
involucren sentencias secuenciales).
6.
se
precisan
Para resolver un problema con un ordenador hay que disponer de los datos
de entrada, estudiar el tratamiento que se ha de realizar a dichos datos,
la informacin que se desea obtener como resultado y de qu manera debe
presentarse.
Es decir, despus de analizar el problema, se han de conocer claramente
tres cosas.
17
*
*
*
Documentacin Interna
Documentacin Externa
Manual del Usuario
19
Diagrama de flujo
Un diagrama de flujo es un dibujo que utiliza smbolos estndar de diagramacin de
algoritmos para computador, en el que cada paso del algoritmo se visualiza dentro del
smbolo adecuado y el orden en que estos pasos se ejecutan. Se indica su secuencia
conectndolos con flechas llamadas lneas de flujo porque indican el flujo lgico del
algoritmo.
Una de las ventajas de los diagramas de flujo es que favorece la comprensin del proceso
al mostrarlo como un dibujo. El cerebro humano reconoce muy fcilmente los dibujos.
Smbolos utilizados en la construccin de diagramas de flujo:
20
Condicional Si-entonces-sino
21
Seleccin Mltiple
Condicional anidado
Ciclo Mientras
22
Ciclo Para
Pseudocdigo
El pseudocdigo es una herramienta de programacin en la que las instrucciones se
escriben en palabras similares al ingls o espaol, que facilitan tanto la escritura como la
lectura de programas.
Es decir, est diseado para la lectura humana en lugar de la lectura mediante mquina.
Caractersticas
1. No existe una sintaxis estndar para el pseudocdigo, algunos IDE's que manejan
pseudocdigo tienen su sintaxis propia.
2. Con independencia de cualquier otro lenguaje de programacin.
3. Utiliza las convenciones estructurales de un lenguaje de programacin verdadero.
4. Normalmente, el pseudocdigo omite detalles que no son esenciales para la
comprensin humana del algoritmo, tales como declaraciones de variables, codigo
especifico del sistema y algunas subrutinas.
Ventajas
Se puede ejecutar en un ordenador (con un IDE como por ejemplo SLE, LPP, PilatoX,
Maruga Script, Seudocodigo o PSeInt).
Es una forma de representacin sencilla de utilizar y de manipular.
Ventajas del pseudocdigo sobre los diagramas de flujo
23
Proceso_edad
Escribir "Cual es tu nombre: ";
Definir edad Como Entero;
Leer edad;
Si edad>17 Entonces
Escribir "Es mayor de edad.";
Sino
Escribir "Es menor de edad";
FinSi
FinProceso
4.
5.
Laboratorio: Disear algoritmos para resolver problemas sencillos
(que involucren sentencias secuenciales).
24