View
228
Download
0
Category
Preview:
Citation preview
7/21/2019 Tema1.Introduccion a La Programacin
1/19
11
Tema 1
Introduccin a la programacin
2
Introduccin.Conceptosprevios
Informtica (RAE): Conjunto de conocimientos cientficos y tcnicas que
hacen posible el tratamiento automtico de lainformacin por medio de computadoras electrnicas.
Computadora: mquina capaz de aceptar unos datos de entrada,
efectuar con ellos operaciones lgicas y aritmticas, yproporcionar la informacin resultante a travs de unmedio de salida.
7/21/2019 Tema1.Introduccion a La Programacin
2/19
3
1.1. Arquitectura Bsica
Basada en la arquitectura inventada por VonNeumann en 1945.
Idea: Crearuna mquina capaz de ejecutar instrucciones
ledas de memoria y ejecutadas en la CPU comunicndose
con el exterior a travs de la Unidad de E/S
4
ARQUITECTURA DE VON NEUMANN
7/21/2019 Tema1.Introduccion a La Programacin
3/19
5
ARQUITECTURA DE VON NEUMANN Memoria Principal: espacio de almacenamiento temporal dividido
en celdas de igual tamao destinado a almacenar instrucciones ydatos.
Unidad Central de Proceso: Se encarga de la ejecucin de lasinstrucciones almacenadas en la memoria.
Unidad Aritmtica: encargada de realizar las operacionesaritmticas (sumas, restas, ...) y lgicas (and, or, not, ...).
Unidad de Control: Su funcin es decodificar las instrucciones delprograma en ejecucin y generar todas las seales necesariaspara que puedan ser ejecutadas.
Unidad de E/S: permite la comunicacin de la CPU y la memoria
con el exterior: impresora, monitor, teclado, ... Registros: almacn temporal que se usa durante la ejecucin de
las instrucciones.
6
1.2. TIPOS DE DISPOSITIVOS DE E/S
Dispositivos de Entrada: permiten al usuariointroducir la informacin en el sistema. Los datosledos se almacenan en memoria. Ejempos:teclado, ratn, escanner, webcam ...
Dispositivos de Salida: son los encargados demostrar los resultados obtenidos por la
computadora al usuario. Ejemplos: monitor,impresora, ...
Dispositivos de Entrada/Salida : permiten tantola entrada de informacin en la computadoracomo la salida de la misma. Ejemplos: tarjeta dered, mdem, etc.
7/21/2019 Tema1.Introduccion a La Programacin
4/19
7
2. Sistemas Operativos.Tipos
Definicin: Un Sistema Operativo es un programa oconjunto de programas que acta como intermediarioentre el usuario y el hardware del ordenador, ocultando sucomplejidad mediante una interfaz sencilla de utilizar.
Objetivos:
Hacer cmoda la utilizacin de la computadora.
Utilizar recursos de la computadora de formaeficiente.
8
Funciones del SO
Gestin de procesos
Gestin de memoria
Gestin de dispositivos de E/S
Gestin del sistema de ficheros
Gestin de la red
Proteccin
Gran parte de estas funciones las realiza un componente
importante del SO llamado kernel que es la parte del SO
residente en memoria.
7/21/2019 Tema1.Introduccion a La Programacin
5/19
9
El ordenador y los algoritmos(1)
Un ordenador es una mquina que ejecutaalgoritmos
Algoritmo (RAE):Conjunto ordenado yfinito de operaciones que permite hallar lasolucin de un problema.
La ejecucin o procesamiento de unalgoritmo supone la transformacin deuna informacin de salida o resultados.
+Datos Algoritmo
Programa
10
El ordenador y los algoritmos(2)
Una tarea ejecutable por un ordenador dalugar a un problema algortmico
El algoritmo es la solucin a ese problema(software)
Cuando un algoritmo es ejecutado por los
circuitos de un ordenador (hardware) seorigina un proceso que genera resultadosa partir de los datos.
Unproceso se caracteriza por unasucesin de estados de determinadasmagnitudes que estn almacenadas en lamemoria delordenador, yque llamaremosvariables.
7/21/2019 Tema1.Introduccion a La Programacin
6/19
11
caractersticas de losalgoritmos
Un algoritmo debe resolver el problema para el que fue formulado.Lgicamente no sirve un algoritmo que no resuelve ese problema. En elcaso de los programadores, a veces crean algoritmos que resuelvenproblemas diferentes al planteado.
Los algoritmos son independientes del ordenador. Los algoritmos seescriben para poder ser utilizados en cualquier mquina.
Los algoritmos deben de ser precisos. Los resultados de los clculosdeben de ser exactos, de manera rigurosa. No es vlido un algoritmo queslo aproxime la solucin.
Los algoritmos deben de ser finitos. Deben de finalizar en algnmomento. No es un algoritmo vlido aquel que produce situaciones en lasque el algoritmo no termina.
Los algoritmos deben de poder repetirse. Deben de permitir suejecucin las veces que haga falta. No son vlidos los que tras ejecutarseuna vez, ya no pueden volver a hacerlo por la razn que sea.
12
Algoritmos. Datos formales Los algoritmos se construyen utilizando
elementos simples para que el lenguaje separezca ms al de las computadoras
Los datos de los algoritmos son: Nmeros(10, 25, 5.32) Textos(Hola mundo) Lgicos(VERDADERO, FALSO, true, false) Datos compuestos (registros, listas)
7/21/2019 Tema1.Introduccion a La Programacin
7/19
13
Algoritmos. Datos formales Los algoritmos pueden tener
expresiones, las cuales se componen de: Variables(x, resta, saldo) Operadores (+, -, *, >,
7/21/2019 Tema1.Introduccion a La Programacin
8/19
15
Diagramas de flujo
Inicio Representa el principio del algoritmo
Fin Representa el final del algoritmo
Operacin
Entrada o salida de datos
Condicin
Direccin del flujo del programa
16
Pseudocdigo
Es otra forma derepresentar algoritmos
Se asemeja ms a los
lenguajes de programacinde alto nivel
7/21/2019 Tema1.Introduccion a La Programacin
9/19
17
Pseudocdigo.Instrucciones (1)
ESCRIBIR. Muestra algo en eldispositivo de salida (la pantallanormalmente)
LEER variable.Lee un dato (delteclado) y lo almacena en esavariable
. Asignar valor
Comparaciones: < >
18
Pseudocdigo.Instrucciones (2) SI condicinENTONCES instrucciones
[SINOinstrucciones]FIN SI
EN CASO DE variablevalor1:instrucciones
valor2:instrucciones...EN OTRO CASO: instruccionesFIN EN CASO DE
7/21/2019 Tema1.Introduccion a La Programacin
10/19 1
19
Pseudocdigo.Instrucciones (3)
MIENTRAS condicin HACERinstruccionesFIN MIENTRAS
REPETIRinstruccionesHASTA condicin
PARA variable DEvalorInicial AvalorFinal [INCREMENTO valor]
instruccionesFIN PARA
20
Lenguajes de programacin.Tipos (I)Clasificacin cronolgica
Lenguajes de primera generacin: A principio de los 50 se
usaba el lenguaje mquina y el ensamblador.
Lenguajes de segunda generacin: a finales de los 50
principios de los 60 se ampla el uso de los lenguajes para las
aplicaciones cientfico-militares y aparecen las aplicaciones de
gestin. Fortran, Cobol y Algol.
Lenguajes de tercera generacin: nacen con la
programacin estructurada y presentan potentes posibilidades
de estructuracin de datos y procedimientos. Pascal, C, etc.
Lenguajes de cuarta generacin: combinan caractersticas
procedurales y no procedurales. SQL, OASIS, lenguajes de
generacin de informes, etc.
7/21/2019 Tema1.Introduccion a La Programacin
11/19
21
Lenguajes de programacin.Tipos (II)
Segn su proximidad al lenguaje mquinaLenguajes de bajo nivel: la nica ventaja de estoslenguajes es que ocupan poco espacio en memoriay se ejecutan con mayor rapidez.
Lenguaje mquina: cada instruccin se codificacomo una secuencia de 1's y 0's, lo que dificultael desarrollo de programas complejos.
Lenguaje ensamblador: cada instruccin en
ensamblador equivale a una instruccin enlenguaje mquina. Utiliza palabrasmnemotcnicas en lugar de cadenas de bits.
22
Lenguajes de alto nivel: surgen con posterioridad a los
anteriores, se caracterizan por:
Independencia de la mquina: se puede usar el mismo
programa en diferentes equipos con la nica condicin de
disponer de un programa traductor o compilador.
Aproximarse al lenguaje natural: se sustituyen los
mnemotcnicos por sentencias if...then...else, entre otras. Incluir rutinas de uso frecuente:disponen de una serie de
libreras que se pueden utilizar siempre que se quiera sin
necesidad de programarlas cada vez. Funciones matemticas,
manejo de cadenas, etc.
Lenguajes de programacin.Tipos (III)
7/21/2019 Tema1.Introduccion a La Programacin
12/19 1
23
Lenguajes de alto nivel
24
Segn funcionalidad
Lenguajes para la educacin: Logo, Pilot, Eiffel, ...
De propsito general: concebidos no para una aplicacin concreta,
sino para ser eficaces en diversos campos. Pascal, C
Lenguajes de inteligencia artificial: creados para la emulacin de
programas que emulan comportamientos inteligentes. Lisp, Prolog.
Orientados a la gestin:las aplicaciones de gestin se caracterizan
por tener la necesidad de manejar grandes volmenes de informacin
de forma fiable. Cobol, Clipper, PL/SQL, ...
Cientficos:se caracterizan por realizar pocas operaciones de E/S y
por el contrario una gran cantidad de clculos complejos. Fortran, Apl,
...
Orientados a Internet: son lenguajes transversales a la mquina y al
sistema operativo. PHP, Java.
Orientados a tiempo real: pensados para dar respuesta a exigentes
requisitos temporales.
Lenguajes de programacin. Tipos
7/21/2019 Tema1.Introduccion a La Programacin
13/19 1
25
Segn traduccin a cdigo mquina
Interpretados: la mxima es sentencia traducida, sentencia
ejecutada. Toma un programa fuente y lo va traduciendo yejecutando simultneamente.
Ventajas: posee una sintaxis ms elaborada que la de los
ensambladores. Adems la velocidad de traduccin depende
fundamentalmente de la sintaxis del lenguaje. Cuanto ms
simple, ms rpido ser el anlisis de cada sentencia.
Inconvenientes: una sentencia que tenga que ejecutarse varias
veces tendr que traducirse tambin varias veces.
La forma de evitar estos retardos consiste en adoptar una
estrategia diferente a la traduccin-ejecucin. Consiste en
traducir el programa completo y despus ejecutarlo. As surgenlos compiladores.
Compilados: un compilador es un traductor que genera un
programa objeto (programa escrito en un lenguaje de bajo nivel) a
partir de un programa fuente (programa en lenguaje de alto nivel).
Lenguajes de programacin. Tipos
26
7/21/2019 Tema1.Introduccion a La Programacin
14/19 1
27
28
7/21/2019 Tema1.Introduccion a La Programacin
15/19 1
29
CICLO DE VIDA
Las distintas fases del ciclo de vida de unprograma se realizan secuencialmente, encada una de las etapas se genera unadocumentacinque servir para iniciar lasiguiente. A este proceso se le conocecomo ciclo de vida clsicoo en cascada.
En la elaboracin de aplicaciones existenunas fases a las que se denominan Ciclo
de vida, ya que una vez que llegamos a laltima fase puede ser que sea necesariocomenzar el ciclo de nuevo en otra faseanterior.
30
Modelo Clsico o en cascada
7/21/2019 Tema1.Introduccion a La Programacin
16/19 1
31
ANLISIS
Estudio de la situacin y requisitosexistentes. Se establece la viabilidaddel proyecto. Existen diversastcnicas para realizar el anlisisestructurado:
Diagramas de flujos de datos
Modelos de datos
Diccionarios de datos
Definicin de las interfaces de usuario
32
DISEO
Se establece una solucin ptima con lossuficientes detalles para la realizacinfsica de la aplicacin.
Se pueden establecer las siguientes etapas: Diseo externo
Diseo de datos
Diseo modular
Diseo procedimental
Al final de esta fase se obtiene el cuadernode carga.
7/21/2019 Tema1.Introduccion a La Programacin
17/19 1
33
CODIFICACIN YPRUEBAS
El objetivo de estas pruebas esgarantizar que el sistema ha sidodesarrollado correctamente, sinerrores de diseo y/o programacin.Es conveniente que sean planteadasal menos tanto a nivel de cadamdulo (aislado del resto), como deintegracin del sistema.
34
EXPLOTACIN
Esta etapa tiene como objetivo laverificacin de que el sistema desarrolladocumple con los requisitos expresadosinicialmente por el cliente y que han dadolugar al presente proyecto.
Incluye: Formacin de los usuarios (para lacorrecta utilizacin del sistema),ydocumentacin necesaria para laexplotacin del sistema y el manual deuso o gua de la aplicacin.
7/21/2019 Tema1.Introduccion a La Programacin
18/19 1
35
MANTENIMIENTO
DEPURAR, CORREGIR, MEJORAR YADAPTAR la aplicacin si no respondeexactamente a la solucin buscada.
Clases de mantenimiento:
Correctivo
Adaptativo
Perfectivo
36
Ensamblador/Linker: un ensamblador traduce unprograma en lenguaje ensamblador a cdigo mquina.Cada instruccin en ensamblador genera una instruccinen cdigo mquina. En el proceso de linkado se obtieneel programa ejecutable a partir del cdigo mquinaobtenido al ensamblar.
Por lo tanto, un linker es un programa que tomalos ficheros de cdigo objeto, la informacin detodos los recursos necesarios (bibliotecas,libreras del lenguaje, etc), y enlaza el cdigoobjeto con su(s)biblioteca con lo que finalmenteproduce un fichero ejecutable (un fichero .exe).
Utilidades para la programacin
ProgramaFuente
.c
Programaobjeto.obj
Programaejecutable
.exeEnsamblar Linkar
7/21/2019 Tema1.Introduccion a La Programacin
19/19
37
Utilidades para la programacin(II)
Intrprete:toma un programa fuente escrito en un lenguaje de altonivel y lo va traduciendo y ejecutando simultneamente.
Compilador:es un traductor que genera un programa objeto a partir
de un programa fuente escrito en un lenguaje de alto nivel.
Depuradores:es una herramienta que permite depurar o limpiar los
errores de un programa fuente. Normalmente esta herramienta est
integrada en el entorno de programacin del lenguaje.
RAD: abreviatura de Rapid Application Development. Se suele usar
para referirnos a IDEs (Herramientas de Desarrollo Integrado) como
Delphi, Foxpro, Eclipse, Visual Basic, etc.
CASE:Computer Aided SW Engineering, persigue proporcionar un
conjunto de herramientas, bien integradas, que enlacen yautomaticen todas las fases del ciclo de vida del SW.
Recommended