PROGRESO DE LA INFORMATICA EN EL DESARROLLO DE LA PROGRAMCIÓN.
La informática
El tratamiento automatizado
de la información
Algunas invenciones
Logaritmos
1614
Jhon Neper
Calculadora universal
Gottfried Leibniz
1671
Maquina de diferencias
1812
Charles Babbage
su precursor:
Torres Quevedo
Trasbordadores
Globo dirigido
Aparatos por ondas de radio
El ordenador
El alemán Konrad Zuse
1941
llamada "Z3"
Electromecánica
Primera generación
1945
Ordenador llamado ENIAC
Eckerty y Mauchly
Johannes Neumann
Propuso que los programas
se almacenaran en una memoria
Se uso para calculo de proyectiles
Segunda generación
1958
Sustitución de tubos vacíos por transistores
Lenguajes de programación
COBOL (1959)
ALGOL (1960)
LISP (1962)
FORTRAN (1954)
Tercera generación
1960
Uso de circuito integrado
Creación de lenguajes universales
Quinta generación
1981
Iniciativa de investigación y desarrollo,
resuelve problemas complicados
Sistemas inteligentes, mecanismos de inferencia, interfaz de usuario inteligente.
Cuarta generación
1971
Microprocesador Intel 4004
desarrollado por Intel
1973
Nace la microinformática en España
La creación del Abaco griego
sinónimo
de aritmética
1122 a.C y 249 a.C
Se uso piedras calizas y mármol
Realizar cálculos difíciles
Demostenes
su uso desaparece en 1812
La programación
la creación de un programa de computadora que se escribe en un lenguaje de programación
Algoritmos
Una secuencia no ambigua finita y ordenada de instrucciones que han de seguirse para resolver problemas
Fundamental en el diseño de programas
tipos
Cualitativo
Se describen los pasos
utilizando palabras
Cuantitativo
Se utilizan cálculos numéricos
para definir los pasos
Lenguaje algorítmico
tipos
Gráficos
Representación de las operaciones por medio de un diagrama de flujo
No gráficos
Representación en forma descriptiva de las operaciones por medio de un seudo código
datos
Un simple carácter con una letra "a" o valor entero "10", quien determina la naturaleza del conjunto de valores
Simples
Numéricos
1,2,25,...
Lógicos
Cierto o falso
Alfanuméricos
"print"
Estructurados
Arreglos
(vectores, matrices)
Registros
Archivos
Apuntadores
Constante
Datos numéricos o alfanuméricos que no cambian durante la ejecución del programa
Identificadores
La representación de los datos de un programa
Secuencia de caracteres que sirve para identificar una posición en la memoria del PC.
Variable
Un espacio en la memoria que permite almacenar temporalmente un dato
Tipos
Por su contenido
Numéricos
Lógicos
Alfanuméricos
Por su uso
De trabajo
Resultados de operaciones
matemáticas
Contadores
El número de ocasiones en que se
realiza o se cumple una condición
Acumuladores
El que sirve para llevar suma acumulativa de valores que se van calculando
Expresiones
Combinación de constantes, variables, símbolos, paréntesis y funciones especiales.
Cada expresión toma un valor determinado
Operando
Designa la dirección de los datos con los que se debe operar
Elemento al que se le aplica una operación
Operador
Elementos que se relacionan de forma diferente
Nos permite manipular valores
Tipos
Aritméticos
Realizar operaciones matemáticas con variables y constantes
Se evalúan
Primero: elevación
Segundo: *, / , mod
Tercero:+,-
Si son de igual prioridad se realiza de izquierda a derecha
Relacionales
Establecen relaciona entre dos valores, produce resultado de certeza o falsedad
Tienen menor prioridad que los aritméticos
Lógicos
Establece relación entre valores lógicos, puede ser resultado de una expresión relacional
And Y
Or O
Not negacion
Estructuras algorítmicas
Secuencial
Una acción que sigue a otra en secuencia
Asignación
Paso de valores a una zona de la memoria
Salida de datos
Enviar por dispositivo de salida un resultado
Entrada de datos
Recibir desde un dispositivo de entrada un valor
Condicional
Compara una variable con otros valores
Simples
Tomas de decisión
Dobles
Elegir entre 2 alternativas en función de una condición determinada
Múltiples
Toma de decisión especializada para evaluar una variable con distintas respuestas posibles
Cíclica
Aquella en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan realizar una cantidad especifica de veces
# determinado de interacciones
Para
Número de interacciones antes de ejecutarse el ciclo
# indeterminado de interacciones
Mientras que
Repite el proceso durante "n" veces
Repita hasta
Repite el proceso "n" veces hasta que la condición se cumpla y no mientras
¿Cómo programar?
Definir el problema
Análisis del problema
Diseño del algoritmo
Punto de inicio
No doble interpretación
Soportar variantes
Infinito tamaño y tiempo de ejecución
Tipos
No estructurados
Tipo "espaguetti"
Imperativa
Secuencia de instrucciones que cambian el estado de un programa
Declarativa
Describe las propiedades de la solución buscada dejando indeterminado el algoritmo
Funcional
Declarativo basado en utilización de funciones matemáticas
Secuencial
Secuencia de instrucciones a seguir por el computador
Por eventos
La estructura y ejecución van determinados por sucesos que ocurran en el sistema
Estructurada
Forma clara, se utiliza estructura secuencial, selectiva e interactiva
Modular
Los programas se desarrollan en módulos independientes llamados "principal"
Por capas
Separación de la lógica de negocios de la lógica de diseño
Extrema
Aproxima a ingeniería de software por Kent Beck
Orientada a objetivos
Encapsula estado y operaciones en objetos
reutiliza códigos y soluciona problemas con facilidad
Lenguaje de programación
tipos
Interpretes
Cada instrucción se va convirtiendo a código maquina antes de ejecutarlo
Compiladores
Se convierte todo el programa en bloque a código maquina y después se ejecuta
Generaciones
Primera
Ensamblador
Segunda
Fortran, Cobol
Tercera
C++, Pascal
Quinta
Sistemas expertos
Cuarta
4GL
Técnica estándar de comunicación
Permite expresar instrucciones que se han de ejecutar en una PC
Permite especificar como se debe operar, almacenar y transmitir.
Compilación
Convierte a código máquina
Contiene linkers para unir subprogramas
Contiene depuradores para descubrir errores
Lenguaje maquina
Formado por un sistema binario(ceros y unos)
Objetivos
Corrección al hacer lo que debe
claridad al buscar errores y facil lectura
eficiencia en el consumo mínimo de recursos
Los más conocidos
Cobol
utilizado para negocios
Fortran
para ingeniería y operaciones matemáticas
Basic
Para principiantes, sencillo
Visual Basic
Un lenguaje de programación desarrollado por el alemán Alan Cooper para Microsoft.
Versiones
(1991) 1.0, 2.0, 3.0
Ambiente completamente grafico que facilite creación de interfaces graficas
4.0 y 5.0
Se integraron en los sistemas operativos de ultima generación de Microsoft
6.0
Desarrolla aplicaciones profesionales y empresariales
2002
Se integro a Visual Studio. NET
Integra
Editor de código
Donde se escribe el código fuente
Depurador
Corrige errores en el código fuente para que pueda ser compilado
Compilador
Programa que traduce el código fuente a lenguaje maquina
Constructor de interfaz grafica
Forma de programar en la que no es necesario escribir el código para la parte grafica sino que se hace de forma visual
tipos de datos
Bolean
Valores de verdad o falso
Currency
Valores desde -922 trillones hasta 922 trillones
Long intenger
Cualquier # entero
(-2.147.483.648 hasta
2.147.483.648)
Variant
Cualquier tipo de dato
Double-precisión
Número máximo con 14 lugares decimales
Intenger
Cualquier # entero (-32.768 hasta 32.768)
Single-precisión
Número máximo con 6 lugares decimales
String
Contiene texto o cualquier carácter
Byte
Números enteros desde 0 hasta 255
Programación dirigida por eventos
Paradigma de la programación en el que tanto la estructura como la ejecución de programas van determinados por los sucesos que ocurran en el sistema.
Interno
Producidos por el usuario
Externo
Producidos por el sistema o aplicación
operadores
Aritméticos
Cálculos matemáticos con valores numéricos
Lógicos
Combinan un valor bolean o numérico y devuelve valor del mismo tipo
Comparación
Compara valores y da resultado de verdad o falso
IDE
Entorno de desarrollo integrado
Controla los dispositivos de almacenamiento masivo de datos
Ensamblador
Cercano al código maquina, sustituye los 0 y 1 por palabras como MOV, ADD, CALL..
Pascal
Estructurado por excelencia, rapido y facil de aprender
C
Permite mayor control
Lenguaje de alto nivel
Lenguaje de bajo nivel
Más cercanos al lenguaje maquina
Estructura binomial
Más cercano al leguaje humano
Tiene estructura sintáctica y semántica
¿Cómo hacerlo?
Primero se compila el código fuente
Se debe enlazar ( juntar código compilado y se añade el código de funciones que hay en la biblioteca del compilador)
Luego ya se puede traducir a código maquina