Download - Introduccion a la Programación I parte
INTRODUCCIÓN A LA PROGRAMACIÓN
Sobre este material:
Este material fue desarrollado por la estudiante Yelixa Araque del Programa Nacional de Formación de Sistemas e Informáticas de la Misión Sucre, el contenido del mismo es una introducción a la programación que oriente al estudiante en el inicio de la programación.
Atentamente,
TSU. Informática . Yelixa del C. Araque Angulo
Ingeniería de Sistemas
¿Bienvenidos?
1 era Parte
Historia de la Programación
Sobre los últimos 50 años, los idiomas que programan han
evolucionado del código binario de máquina a herramientas
poderosas que crean las abstracciones complejas. "Tan largo como
no había máquinas, programar era ningún problema; cuando
tuvimos unos pocas computadoras débiles, programar llegó a ser un
problema templado y ahora que tenemos las computadoras
gigantescas, programar ha llegado a ser un problema igualmente
gigantesco. En este sentido que la industria electrónica no ha
resuelto un solo problema, tiene sólo los creó - ha creado el
problema de usar su producto".
La abstracción es la llave de la construcción de sistemas complejos de software. Como el tamaño de nuestros problemas crece, la necesidad para la abstracción dramáticamente aumenta.
La llave de la programaciónLa llave de la programación
La abstracciónLa abstracción
En sistemas sencillos, la característica de idiomas usados en el 1950s y '60s, un solo programista podría entender el problema entero, y por lo tanto manipulaba todas las estructuras del programa y datos.
Los programistas son hoy incapaces de entender todos los programas y los datos, entonces a través de la abstracción permite al programista seleccionar los conceptos necesarios.
¿Qué es un Lenguaje de Programación?
Lenguaje de programación, en informática,
cualquier lenguaje artificial que puede
utilizarse para definir una secuencia de
instrucciones para su procesamiento por un
ordenador o computadora.
Tipos de Lenguajes de programación
Lenguaje de Bajo Nivel
Lenguaje Ensamblador
Lenguaje de Alto Nivel
Programación estructurada
Programación Orientada a objeto
Lenguaje de Bajo Nivel
• Los programas e instrucciones se construyen en lenguaje
de máquina (sistema binario, hexadecimal ,octal).
• Están orientado a la máquina.
• Era necesario conocer las arquitecturas particulares de
los sistemas computacionales para programar en ellos.
• Solo podían se utilizados por hombres de ciencias.
Lenguaje Ensamblador
•Se basa en el uso de nemotécnicos (palabras abreviadas
procedentes del inglés formadas por letras y números).
• Precisa un amplio conocimiento sobre la constitución.,
estructura y funcionamiento interno de un ordenador .
• Un hábil manejo de los códigos y sistemas de numeración en
especial el binario y el hexadecimal.
Lenguaje de Alto Nivel
• Son aquellos lenguajes que por su características se encuentran
más próximo al usuario o programador.
• Son independientes de la arquitectura del ordenador utilizado
como soporte .
•Los programas desarrollados en este lenguaje pueden ser
ejecutados sobre ordenadores con distintos microprocesadores.
• facilidad en el desarrollo , depuración y mantenimiento de los
programas .
Programación Orientada a objetos
Programación orientada a objetos, en informática, un método de programación en el que un programa se contempla como un conjunto de objetos limitados que, a su vez, son colecciones independientes de estructuras de datos y rutinas que interactúan con otros objetos, o que dan acceso para modificar el contenido de un dato o propiedad del propio objeto. También se identifica con las siglas POO y OOP (del inglés Object Oriented Programming).
El concepto clave en la programación orientada a objetos es la denominada clase (de objetos). Una clase define las estructuras de datos y rutinas de un objeto. A su vez, un objeto es una instancia de una clase, que se puede usar como una variable en un programa; es decir, la creación de una instancia de una clase se corresponde con la declaración de una variable en la programación tradicional, pero refiriéndose a objetos. En algunos lenguajes orientados a objetos, el objeto responde a mensajes, que son el principal medio de comunicación. En otros lenguajes orientados a objetos se conserva el mecanismo tradicional de llamadas a procedimientos o funciones (según los casos).
Programación Estructurada
Programación estructurada, en informática, término general que se refiere a un tipo de programación que produce código con un flujo limpio, un diseño claro y un cierto grado de modularidad o de estructura jerárquica. Entre los beneficios de la programación estructurada se encuentran la facilidad de mantenimiento y la legibilidad por parte de otros programadores.
La programación estructurada se refiere tanto a la estrategia del programador, como al lenguaje utilizado. Así, para ella se usan lenguajes de programación que faciliten el diseño de aplicaciones con llamadas a procedimientos o funciones, como lo son típicamente Pascal y Ada, entre otros. En ellos el flujo de información es más fácilmente legible y no requieren de bifurcaciones basadas en llamadas a líneas concretas (uso de etiquetas al estilo BASIC), sino, más bien, en saltos a áreas de código perfectamente diferenciadas. La programación bien estructurada permite, de forma adicional, la reusabilidad del código, extrayendo módulos que pueden ser utilizados en otros programas, sin cambios en el código o con un mínimo de readaptaciones.
Ventajas de la Programación Estructurada
1. Fácil de entender
2. La estructura del programa es clara
3. Reducción del esfuerzo en
las pruebas
4. Reducción de costos
mantenimiento
5. Programas sencillos y
rápidos
6. Los bloques del código son auto
explicativo
7. Mejor estructura y presentación
Ensambladores, Compiladores e Intérpretes
Ensambladores : son los encargados de transformar o traducir directamente los programas escritos en el ensamblador a su equivalente en código máquina o código binario para que puedan ser ejecutados por el CPU.
Traductor Utilizado
Ensamblador
Programa desarrollado en lenguaje ensamblador
Equivalente en código binario
Proceso de conversión del código ensamblador a código máquina
Intérpretes: es un programa de software encargado de procesar y traducir cada instrucción o sentencia de un programa escrito en un lenguaje de alto nivel a código máquina y después ejecutarla. La traducción o interpretación y la ejecución no se realizan como procesos independientes, sino en una misma operación e instrucción por instrucción, respetando el orden establecido entre ellas.
Traductor Utilizado
Intérprete
Instrucción 1
Conversión de un programa interpretado a su equivalente en código máquina
Intérprete
Intérprete
Instrucción 2
Instrucción N
Ejecución Inst. 1
Ejecución Inst. 2
Ejecución Inst. 3
Edición
Compiladores: es un programa de software escrito en algún lenguaje de programación cuyo objetivo es traducir el correspondiente programa fuente(fichero constituido por un conjunto de instrucciones desarrolladas en un lenguaje de alto nivel) a su equivalente en código máquina, también denominado programa objeto.
Diferencia entre un compilador e intérprete
Un intérprete acepta un programa fuente que traduce y ejecuta simultáneamente analizando cada sentencia o instrucción por separado .
Un compilador efectúa dicha operación en dos fases independientes, primero traduce completamente el programa fuente a código máquina y seguidamente ejecuta el programa
Edición
Compilación
Linkado
Ejecución
Etapas del proceso de compilación
Edición: Consiste en la escritura del programa (empleando un lenguaje de programación previamente seleccionado) y su posterior grabación sobre un soporte de almacenamiento permanente. La edición del programa debe realizarse mediante la utilización de un editor, que puede formar parte o no del compilador utilizado. En esta fase se obtiene el denominado programa fuente. Compilación: Se traduce el programa fuente a su equivalente en código máquina, obteniendo en caso de no producirse un error el denominado programa objeto. En caso de producirse errores, el compilador lo mostrará utilizando los mensajes correspondientes, que nos permitirá corregir el programa fuente y proceder de nuevo a su compilación.
Linkado: Recibe el nombre también de montaje y consiste en unir o enlazar el programa objeto obteniendo en la fase de compilación con determinadas rutinas internas del lenguaje .Ejecución: Consiste en la llamada del programa ejecutable a través del sistema operativo. Inicialmente se debe comprobar el buen funcionamiento del programa mediante el uso de unos juegos de pruebas que especifican los resultados que se desean obtener en función de unos determinados datos de entrada.
¿Bienvenidos?
2 da Parte Estructuras básicas de datos
¿Qué es un Dato?
Un dato es toda aquella característica de una
entidad siendo susceptible de tratamiento en un
programa informático.
Ejemplo: Nombre y dirección Datos de una
empresa
Características de los datos
Identificador
Tipo
Valor
Nombre para referenciar el dato
Rango de valores que puede tomar el dato en función de una determinada clasificación.
Elemento determinado que debe pertenecer al rango de valores según el tipo definido.
Clasificación de Datos
Dato Básicos Dato Derivados Dato estructurados
Numéricos Carácter Lógico
Entero Real
Puntero Internos
Estáticos
Lineales
Tabla
Dinámicos
No Lineales
Lista Pila Cola Árbol Grafo
Externos
Lineales
Fichero Base Dato
Constantes y Variables
Constante Son datos cuya información es fija durante la ejecución del programa.
VariablesSon datos cuya información puede ser variable durante la ejecución del programa. Estos datos deben ser definidos con un identificador y un tipo de dato.
Operadores
Paréntesis () Paréntesis
Aritméticos
Producto , potencia, DivisiónDivisión enteraMóduloSigno positivo o sumaSigno negativo o resta
AlfanuméricosConcatenaciónConcatenación eliminando espacios
Relacionales
Igual aDistinto aMenor queMenor o igual queMayor que Mayor o igual que
Lógicos NegaciónConjunciónDisyunción
3 Parte Programación Estructurada
¿Bienvenidos?
¿Qué es un Programa?
Un programa es un conjunto de pasos
estructurados de formas lógicas traducidos en
códigos que obedecen a los distintos
lenguajes de programación, que nos permiten
indicarle a un sistema computacional la
forma de realizar una tarea.
Partes de un Programa
Las ordenes o instrucciones de un programa se pueden dividir en tres grandes bloques diferentes, correspondiente cada uno de ellos a una parte del diseño de un programa:
Entrada de datos
Salida de resultados
Proceso
Entrada datos
Proceso
Salida de datos o resultados
En este bloque se engloban todas aquellas instrucciones que toman datos de un dispositivo o periférico externo, depositándolo posteriormente en memoria central o principal para poder ser procesados
Engloba todas aquellas instrucciones encargadas de procesar la información o aquellos datos pendientes de elaborar y que previamente habían sido depositados en memoria principal para su posterior tratamiento.
Este bloque esta formado por todas aquellas instrucciones que toman los resultados depositados en memoria principal una vez procesados los datos de entrada enviándolos seguidamente a un dispositivo o periférico externo.
Ejemplo :
Realizar un análisis de E-P-S para calcular el promedio de 3 notas parciales de un alumno
Entrada:
Nombre Mnemonico Tipo
Nombre alumno Nomb cadena caracteres
Cedula Ced Alfanumerico
Nota 1 N1 Real
Nota 2 N2 Real
Nota 3 N3 Real
Proceso:Prom= (N1+N2+N3)/3
Salida: Nombre Mnemonico Tipo
Nombre alumno Nomb cadena caracteres
Cedula Ced Alfanumerico
Promedio alumno Prom Real
Algoritmos ¿Qué es un Algoritmo?
Es la descripción abstracta de todas las acciones u
operaciones que debe realizar un ordenador de forma
clara y detallada , así como el orden en el que éstas
deberán ejecutarse junto con la descripción de todos
aquellos datos que deberán ser manipulados por dichas
acciones y que nos conducen a la solución de problema
facilitando así su posterior traducción al lenguaje de
programación correspondiente.
Es importante tener en cuenta que todo algoritmo debe ser totalmente independiente del lenguaje de programación que será utilizado , es decir, el algoritmo diseñado deberá permitir su traducción a cualquier lenguaje de programación con independencia del ordenador en le que se vaya a ejecutar dicho programa .
Un solo diseño
C++ Pascal PHP
Pentium III AMD Dual core
Posibilidad de traducirlo a distintos lenguajes de programación
Posibilidad de utilizar distintas máquinas
Algoritmo
Características de un algoritmo:
Debe ser conciso y detallado reflejar con el máximo detalle el orden de ejecución de cada acción u operación que vaya a realizar el ordenador.
Nunca debe ser rígido en su diseño, debiendo mantener esta cualidad o característica de flexibilidad en sus representaciones gráficas . Se caracteriza por tener un comienzo y un final. Por ello se puede decir que es finito o limitado
Al aplicar el mismo algoritmo “n” veces con los mismos datos de entrada, se debe obtener siempre los mismos resultados o datos de salida . Por eso se dice que es exacto y preciso.
Debe ser lo más claro y sencillo posible para facilitar su entendimiento y comprensión por parte del personal informático
Ejemplo 1 :Diseñar un algoritmo para realizar una llamada telefónica desde un teléfono tarjetero
0. Inicio1. Descolgar el auricular2. Comprobar tono3. Si (tono = verdadero) entonces
3.1 Insertar tarjeta 3.2 Marcar número
3.3 Si (ocupado = verdadero) entonces3.3.1(Insistir= verdadero) entoncesmientras(ocupado=verdadero)
3.3.1.1 Esperar un momento3.3.1.2 Marcar número
fin rm3.3.1.2 si (contestar = verdadero) entonces
3.3.1.2.1 Hablar3.3.1.2.2 Colgar
fin si fin si
4. De lo contrario4.1 Colgar4.2 Extraer tarjeta
fin si
fin
Ejemplo 2 :
Medios de expresión de un algoritmo
Algoritmo
Tienden a ser ambiguas y extensas
Evita muchas ambigüedades del lenguaje natural
Evita muchas ambigüedades del lenguaje natural
Lenguaje NaturalLenguaje Natural
PseudocódigoPseudocódigo
Diagramas de FlujoDiagramas de Flujo
Lenguaje programaciónLenguaje programación
ExpresarExpresar
Niveles de descripción de un algoritmo
Descripción de alto nivel
Descripción formal
Implementación
Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones
Los diagramas de flujo se pueden clasificar en dos grandes grupos:
OrganigramasFases análisis
Corresponde
Ordinogramas Fases diseñoCorresponde
¿ Qué es un Diagrama de flujo?
Es la representación gráfica que mediante el uso de
símbolos estándar conectados o unidos mediante líneas
de flujo, muestran las secuencia lógica de las operaciones
o acciones que debe realizar un ordenador, así como la
corriente o flujo de datos en la resolución de un
programa. Los diseños deben ser normalizados para
facilitar el intercambio de documentación entre el
personal informático(analistas y programadores).
Organigramas
Se denominan también diagramas de flujo de sistemas o diagramas de flujo de configuración.
Debe reflejar
Las distintas áreas o programas en los que se divide la solución del problema, así como el nombre de cada uno de ellos.
Las entradas y salidas de cada área indicando los soportes que serán utilizados para el almacenamiento tantos de los datos pendientes de elaborar o procesar como de los resultados obtenidos.
El flujo de los datos
Son representaciones gráficas del flujo de datos e información entre los periféricos o soportes físicos(de entrada/salida) que maneja un programa
Reglas de representación de los organigramas
En la parte central del diseño debe figurar el símbolo de proceso.
En la parte superior del diseño y siempre por encima del
símbolo de proceso deben figurar los soportes de entradas.
En la parte inferior del diseño y siempre por debajo del símbolo
de proceso deben figurar los soportes de salida.
A izquierda y derecha del diseño, y por tanto ambos lados del
símbolo de proceso, figuran los soportes que son tanto de entrada
como de salida
Periféricos de entrada
Periféricos de E/S
Periféricos de E/S
Periféricos de salida
PROCESO
Estructura general de un organigrama
Simbología utilizada en la construcción de organigramasa) Símbolos de soporte de información o dispositivos físicos:
Símbolo Denominación Tipo de Dispositivo
Teclado Entrada
Sorte Genérico Entrada
Pantalla Salida
Impresora Salida
Tarjeta Perforada Entrada/ Salida
Cinta de Papel Entrada/ Salida
Disco Magnético Entrada/ Salida
Disco Magnético Entrada/ Salida
Cinta Magnética Entrada/ Salida
Cinta Encapsulado Entrada/ Salida
Tambor Magnético Entrada/ Salida
b) Símbolos de soporte de información o dispositivos físicos:Símbolo Función
Proceso u operación
Clasificación u ordenación de datos en un fichero
Fusión o mezcla de dos o más ficheros en un solo
Partición o extracción de datos de un fichero
Manipulación de uno o varios ficheros(intercalación)
c) Líneas de flujo de datos:
Símbolo Función
Dirección del proceso o flujo de datos
Líneas de teleproceso (transmisión de datos)
Línea conectora. Permite la unión entre unidades o elementos
Ordinogramas Debe reflejar
Se denominan también diagramas de flujo de programas.
Son representaciones gráficas que muestran la secuencia lógica y detallada de las operaciones que se van a realizar en la ejecución de un programa.
Un principio o inicio que marca el comienzo de ejecución del programa y que viene determinado por la palabra inicio.
La secuencia de operaciones, lo más detallada posible y siguiendo siempre el orden en el que se deberán ejecutar(de arriba-abajo e izquierda-derecha)
Un fin que marca la finalización de ejecución del programa y que viene determinado por la palabra FIN.
Reglas de representación de los ordinogramas
Todos los símbolos utilizados en el diseño deben estar conectados por medio
de líneas de conexión o líneas de flujo de datos.
Queda terminantemente prohibido el cruce de líneas de conexión, pues ello
nos indican que el ordinograma no está correctamente diseñado.
A un símbolo de decisión pueden llegarle varias líneas de conexión o flujo ,
pero de él sólo puede salir una.
A un símbolo de decisión pueden llegarle varias líneas de conexión o flujo de
datos, pero de él sólo puede salir una línea de entre las dos posibilidades
existentes(verdadero o falso).
A un símbolo de inicio de proceso no llega ninguna línea de conexión o flujo y
de él sólo puede partir una línea de conexión.
A un símbolo de final de proceso o ejecución de programas pueden llegar
muchas líneas de conexión, pero de él no puede partir ninguna.
Simbología utilizada en la construcción de organigramasa) Símbolos de operación o proceso:
Símbolo Función
Terminal (marca el inicio, final o una parada necesaria realizada en la ejecución del programa)
Operación de E/S en general (utilizada para mostrar) la introducción de datos desde un periférico a la memoria del ordenador y la salida de resultados desde la memoria del ordenador a un periférico.
Proceso u operación en general (utilizado para mostrar cualquier tipo de operación durante el proceso de elaboración de los datos depositados en la memoria)
Subprograma o subrutina(utilizado para realizar una llamada a un subprograma o proceso, es decir, un módulo independiente cuyo objetivo es realizar una tarea y regresar el control de ejecución del programa al módulo principal)
b) Símbolos de decisión:Símbolo Función
Decisión de dos salidas (indica operaciones lógicas o comparativas seleccionando en función del resultado entre dos caminos alternativos que se pueden seguir)
Decisión múltiple con "n" salidas (indica el camino que se puede seguir entre varias posibilidades según el resultado de la operación lógica o comparación establecida)
Bucle definido empleado para modificar una instrucción o bloque de instrucciones que a su vez producen una alteración o modificación en el comportamiento del programa.
Flechas indicadoras de la dirección del flujo de datos.
Línea conectora también llamada línea de flujo de datos (permite la conexión entre los diferentes símbolos utilizados en el diseño)
b) Símbolos de conexión:
Símbolo Función
Conector (este símbolo es utilizado para el reagrupamiento de líneas de flujo)
Conector de líneas de flujo en la misma página (utilizado para enlazar dos partes cualesquiera del diseño a través de un conector de salida y un conector de entrada )
Conector de líneas de flujo en distintas páginas (utilizado para enlazar dos partes cualesquiera del diseño a través de un conector de entrada)
Nº
Nº
b) Símbolos de comentarios:Símbolo Función
Permite escribir comentarios a lo largo del diseño realizado
Ejemplo 1. Diagrama de flujo :
Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un numero x