PDF de programación - Fundamentos de programación

Imágen de pdf Fundamentos de programación

Fundamentos de programacióngráfica de visualizaciones

Publicado el 20 de Junio del 2019
805 visualizaciones desde el 20 de Junio del 2019
3,2 MB
30 paginas
Creado hace 3a (29/08/2016)
Fundamentos de programación

1

Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Material de la Prof.ª Mercedes Gómez Albarrán
Facultad de Informática
Versión revisada y ampliada del material del Prof. Luis Hernández Yáñez
Universidad Complutense

Informática, computadora, y programación
¿Qué es la Informática?

¿Qué es una computadora?


Hardware vs. software



¿En qué consiste la programación de computadoras?

Fundamentos de programación: Computadoras y programación

Página 1

El hombre y sus primeros intentos de
procesar la información

Ábaco – 2.000 a.c.
El sumador de Pascal – mediados s.XVII
La calculadora de G.W. von Leibniz – finales s.XVII
La máquina de diferencias de Babbage – s.XIX
El concepto de programa externo


Lady Ada Lovelace es
considerada la primera
programadora

La Pascalina
(Wikipedia)



Fundamentos de programación: Computadoras y programación

Página 2

Comienza la era de la Informática
1945

 El modelo de J. von Neumann: estructura de la computadora
 El concepto de programa interno



Dispositivos de E/S

C.P.U. (Procesador)

ALU

Unidad Aritmético-Lógica

Unidad de Control

Memoria

Fundamentos de programación: Computadoras y programación

Página 3

Algunos hitos en la vida de la Informática

¿Cuándo se crean los primeros lenguajes de programación? ¿cuáles
fueron? ¿Es C++ mayor de edad? ¿Quién es más joven: C++ o Java?

¿Cuál puede considerarse el primer virus informático?
¿Quién surge primero: MS-DOS, Windows, UNIX, Linux, Android?

¿Cuándo se crea la WWW?
¿Qué soportes externos conoces: disquete, CD, DVD? ¿Alguno nació
antes que tú?

¿Quién es Alan Turing?


Fundamentos de programación: Computadoras y programación

Página 4

Las computadoras están por todas partes

¡Con múltiples formas distintas de un PC!

Fundamentos de programación: Computadoras y programación

Página 5

¿Qué entiende la computadora?

Computadora: Máquina electrónica digital, dotada de ...

La computadora manipula información digital: esquema binario
¿Por qué no se usa una representación analógica de la información?
¿A qué nos conduce la solución adoptada para evitar el problema
tecnológico?


Fundamentos de programación: Computadoras y programación

Página 6

Lenguaje máquina

a = (b + d)/(c + e)

Pasos
 sumar c y e, y guardar el resultado en una dirección de memoria
temporal X
 sumar b y d, y guardar el resultado en una dirección de memoria
temporal Y
 dividir el contenido de Y por el de X y guardar en la dirección de a
Ejemplo de código máquina
 codigoOp direccOp1 direccOp2 direccRes

0000 00001000 00001100 00001110

0000 00011000 00011100 00011110

0101 00011110 00001110 00000100


Fundamentos de programación: Computadoras y programación

Código de la división

Código de la suma

Direcc. Temporal X

Direcc. Temporal Y

Página 7

Lenguaje máquina

 Lenguaje de programación de bajo nivel
Nulo nivel de abstracción: los códigos contienen los ceros y unos
que gobiernan directamente los circuitos de la CPU
 Totalmente dependiente de la máquina
Cada familia de procesadores usa sus propios códigos,
distintos de los de otras familias
 Programación: muy tediosa
 Grandes posibilidades de error

Fundamentos de programación: Computadoras y programación

Página 8



(lenguaje ensamblador)

Programa ensamblador

Lenguaje ensamblador

Lenguaje simbólico con una mínima capacidad de abstracción
Nemotécnicos para los códigos que representan
instrucciones
Nombres simbólicos para las direcciones de memoria
a = (b + d)/(c + e)
ADD C, E, X



ADD B, D, Y



DIV Y, X, A



Mayor legibilidad
¿Cómo entiende la máquina este código?
Dependiente de la máquina


Fundamentos de programación: Computadoras y programación

Código fuente

Código objeto

(lenguaje máquina)

Página 9

Lenguajes de programación de alto nivel

Lenguaje que permite expresar el mecanismo de resolución de
problemas usando instrucciones independientemente de la
computadora
Más cercanos a los lenguajes natural y matemático
a = (b + d)/(c + e);
Capacidad de abstracción
Abstracción procedimental
Abstracción de datos
Mayor legibilidad, mayor facilidad de codificación
¿Cómo conseguir que la computadora “entienda” los programas
escritos en lenguajes de alto nivel?
Compiladores e intérpretes


Fundamentos de programación: Computadoras y programación

Página 10

Lenguajes de programación de alto nivel

COBOL

1959

FORTRAN

1954

ALGOL

1958

Lisp

1958

PL/I

CPL

1964
1963
1964
1964

BASIC

Simula

Prolog

1970
C 1971
1970

Pascal

Modula

1975

Smalltalk

1971

Scheme

1975

Logo

1968

C++

1983

Java

1995
2000

C#

Python

1991

Ada

1979

Eiffel

1986

Haskell

1987

Ruby

1993

Fuente: http://www.levenez.com/lang/

Fundamentos de programación: Computadoras y programación

Página 11

Programas y más programas
El sistema operativo



Programas de aplicación



Fundamentos de programación: Computadoras y programación

Página 12

La programación: resolución de problemas

PROGRAMAR ES RESOLVER PROBLEMAS
—Actividades implicadas en la descripción, el desarrollo y la
implementación de soluciones algorítmicas eficaces y eficientes
a problemas bien especificados
—Estado inicial - Entrada del problema - Precondiciones
Datos iniciales y relaciones entre ellos
—Estado final - Salida del problema - Postcondiciones
Datos finales y relaciones entre ellos
—Algoritmo: sistemática que transforma la entrada en la salida
PROGRAMAR NO ES CONOCER LA SINTAXIS DE MUCHOS
LENGUAJES DE PROGRAMACIÓN
—Los lenguajes de programación son un medio para expresar
algoritmos
—Programa: algoritmo expresado en un cierto lenguaje de
programación



Fundamentos de programación: Computadoras y programación

Página 13

Estado
inicial

Algoritmo

Estado
final

La programación: resolución de problemas

El primer problema del montón de fichas

Supongamos que tenemos una secuencia de fichas, cada una de las
cuales tiene escrito el nombre de una persona junto con otros datos
personales (fecha de nacimiento, dirección, número de teléfono). Las
fichas están ordenadas alfabéticamente por el nombre.
Queremos felicitar por teléfono a los que cumplen años hoy.
¿Cómo detectamos a los cumpleañeros?

 ¿Cuál es la entrada?
 ¿Cuál es la salida?
 ¿Cuál es el algoritmo?
 ¿Qué lenguaje utilizamos para describir las respuestas a todo lo
anterior?

Fundamentos de programación: Computadoras y programación

Página 14

La programación: resolución de problemas

El segundo problema del montón de fichas

Supongamos que volvemos a tener la misma secuencia de fichas.
Nos pasan el nombre de una persona a la que hay que felicitar por
teléfono.
¿Cómo lo hacemos?
 ¿Cuál es la entrada?
 ¿Cuál es la salida?
 ¿Cuál es el algoritmo?
 ¿Qué lenguaje utilizamos para describir las respuestas a todo lo
anterior?

Fundamentos de programación: Computadoras y programación

Página 15

La programación: resolución de problemas

El tercer problema del montón de fichas

Supongamos que volvemos a tener la misma secuencia de fichas.
Nos pasan el nombre de una persona y su nuevo número de teléfono.
¿Cómo hacemos el cambio? ¿Y si la persona no está?

 ¿Cuál es la entrada?

 ¿Cuál es la salida?
 ¿Cuál es el algoritmo?
 ¿Qué lenguaje utilizamos para describir las respuestas a todo lo
anterior?

Fundamentos de programación: Computadoras y programación

Página 16

La programación: resolución de problemas

El cuarto problema del montón de fichas

De nuevo tenemos la misma secuencia de fichas.
Nos dan una nueva ficha y hay que incorporarla al montón existente sin
romper el orden.
¿Cómo averiguamos dónde incorporarla?
 ¿Cuál es la entrada?
 ¿Cuál es la salida?
 ¿Cuál es el algoritmo?
 ¿Qué lenguaje utilizamos para describir las respuestas a todo lo
anterior?

Fundamentos de programación: Computadoras y programación

Página 17

La programación: resolución de problemas

El quinto problema del montón de fichas


¡Nos han desordenado la secuencia de fichas!
De nuevo nos pasan el nombre de una persona a la que hay que
felicitar.
¿Cómo lo hacemos ahora?
 ¿Cuál es la entrada?
 ¿Cuál es la salida?
 ¿Cuál es el algoritmo?
 ¿Qué lenguaje utilizamos para describir las respuestas a todo lo
anterior?

Fundamentos de programación: Computadoras y programación

Página 18

La ingeniería del software

El modelo de desarrollo “en cascada”
¿Qué?

Planificación

Análisis

Diseño

Recursos necesarios, presupuesto, plan, …

¿Cómo?

Fundamentos de programación: Computadoras y programación

Página 19

Implementación

Prueba y depuración

Mantenimiento

Aplicación
Aplicación
validada

Aplicación
modificada

La ingeniería del software

Casa

Quiero 3 habitaciones,

2 baños, garaje, ...

Planos, diseño circuito
eléctrico y de agua, ...

Análisis

Diseño

Software

¿Qué tiene que hacer
exactamente el software?

¿Cómo vamos a

organizar el software?
¿Qué hará cada parte?

Se construye la casa.

Implementación

Se construye el software.

Se comprueba la solidez de la
estructura, el funcionamiento de
las instalaciones, el acabado, ...

Prueba

Algunas reformas: se cierra

la terraza, se instala aire

acondicionado, ...

Mantenimiento

Ponemos a prueba nuestro

software, incluso en
situaciones límite.

Pequeñas modificaciones o
correcciones, actualizaciones,

etc...

Fundamentos de programación: Computadoras y programación

Página 20

Los aspectos de los lenguajes de programación
Los lenguajes de programación pueden describirse:

A nivel sintáctico
—Descripción de cómo se pueden
  • Links de descarga
http://lwp-l.com/pdf16156

Comentarios de: Fundamentos de programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad