introduccion a la programación i parte

50
INTRODUCCIÓN A LA PROGRAMACIÓN

Upload: yelixa-araque-angulo

Post on 05-Aug-2015

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introduccion a la Programación I parte

INTRODUCCIÓN A LA PROGRAMACIÓN

Page 2: Introduccion a la Programación I parte

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

Page 3: Introduccion a la Programación I parte

¿Bienvenidos?

1 era Parte

Page 4: Introduccion a la Programación I 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".

Page 5: Introduccion a la Programación I parte

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.

Page 6: Introduccion a la Programación I parte

¿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.

Page 7: Introduccion a la Programación I parte

Tipos de Lenguajes de programación

Lenguaje de Bajo Nivel

Lenguaje Ensamblador

Lenguaje de Alto Nivel

Programación estructurada

Programación Orientada a objeto

Page 8: Introduccion a la Programación I parte

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.

Page 9: Introduccion a la Programación I parte

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.

Page 10: Introduccion a la Programación I parte

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 .

Page 11: Introduccion a la Programación I parte

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).

Page 12: Introduccion a la Programación I parte

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.

Page 13: Introduccion a la Programación I parte

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

Page 14: Introduccion a la Programación I parte

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

Page 15: Introduccion a la Programación I parte

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

Page 16: Introduccion a la Programación I parte

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

Page 17: Introduccion a la Programación I parte

Edición

Compilación

Linkado

Ejecución

Etapas del proceso de compilación

Page 18: Introduccion a la Programación I parte

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.

Page 19: Introduccion a la Programación I parte

¿Bienvenidos?

2 da Parte Estructuras básicas de datos

Page 20: Introduccion a la Programación I parte

¿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

Page 21: Introduccion a la Programación I parte

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.

Page 22: Introduccion a la Programación I parte

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

Page 23: Introduccion a la Programación I parte

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.

Page 24: Introduccion a la Programación I parte

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

Page 25: Introduccion a la Programación I parte

Relacionales

Igual aDistinto aMenor queMenor o igual queMayor que Mayor o igual que

Lógicos NegaciónConjunciónDisyunción

Page 26: Introduccion a la Programación I parte

3 Parte Programación Estructurada

¿Bienvenidos?

Page 27: Introduccion a la Programación I parte

¿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.

Page 28: Introduccion a la Programación I parte

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

Page 29: Introduccion a la Programación I parte

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.

Page 30: Introduccion a la Programación I parte

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

Page 31: Introduccion a la Programación I parte

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.

Page 32: Introduccion a la Programación I parte

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

Page 33: Introduccion a la Programación I parte

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

Page 34: Introduccion a la Programación I parte

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

Page 35: Introduccion a la Programación I parte

Ejemplo 2 :

Page 36: Introduccion a la Programación I parte

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

Page 37: Introduccion a la Programación I parte

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

Page 38: Introduccion a la Programación I parte

Los diagramas de flujo se pueden clasificar en dos grandes grupos:

OrganigramasFases análisis

Corresponde

Ordinogramas Fases diseñoCorresponde

Page 39: Introduccion a la Programación I parte

¿ 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).

Page 40: Introduccion a la Programación I parte

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

Page 41: Introduccion a la Programación I parte

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

Page 42: Introduccion a la Programación I parte

Periféricos de entrada

Periféricos de E/S

Periféricos de E/S

Periféricos de salida

PROCESO

Estructura general de un organigrama

Page 43: Introduccion a la Programación I parte

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

Page 44: Introduccion a la Programación I parte

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

Page 45: Introduccion a la Programación I parte

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.

Page 46: Introduccion a la Programación I parte

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.

Page 47: Introduccion a la Programación I parte

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)

Page 48: Introduccion a la Programación I parte

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)

Page 49: Introduccion a la Programación I parte

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)

b) Símbolos de comentarios:Símbolo Función

Permite escribir comentarios a lo largo del diseño realizado

Page 50: Introduccion a la Programación I parte

Ejemplo 1. Diagrama de flujo :

Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un numero x