Descargar

Fundamentos de programación II

Enviado por Pablo Turmero


    edu.red

    1 Clase de introducción ¿Qué es un ordenador? Programas y algoritmos Lenguajes de programación Java

    edu.red

    2 ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de un grupo de instrucciones denominado programa” Componentes principales: Procesador (CPU: Central Processing Unit) Memoria (RAM: Random Access Memory) Componentes auxiliares: Disco duro Lector CD-ROM Teclado Pantalla etc.

    edu.red

    3 Elementos de un ordenador Memoria Principal (RAM) Unidad de Control (CU)? Unidad aritmetica y logica (ALU)? Programa Dispositivos de entrada Dispositivos de salida Dispositivos de almacenamiento de datos teclado ratón pantalla impresora disco duro lector/grabador de CD-ROM lector/grabador de disquete Procesador (CPU) (hardware)

    edu.red

    4 Representación de los datos en el ordenador El único código que entiende la CPU son los bits. Los bits son representados en circuitos electrónicos que pueden estar en estado “on” (1) u “off” (0) Las instrucciones se mandan a la CPU en forma de bytes, que son palabras de 8 bits 1 byte = 8 bits 1 kilobyte = 1 024 bytes 1 megabyte = 1 024 kilobytes = 1 048 576 bytes

    edu.red

    5 Representación de los datos en el ordenador Base 10: Dígitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 1111 = 1*103 + 1*102 + 1*101 + 1*100 Base 2: Dígitos = {0, 1} 1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15 ¿Cuántos valores puede representar un byte? 1 byte = 8 bits (Ej: 01100101) Cada bit puede representar 2 valores (0 y 1) Un byte puede representar 28 = 256 valores

    edu.red

    6 Representación de textos TEXTO: My name is Anders. ASCII: 77-121-32-110-97-109-101-32-105-115-32-65-110-100-101-114-115-46 18 bytes

    edu.red

    7 Representación de imagen División de la imagen en una matriz de pixels (unidad de la imagen) Cada pixel asociado con un color 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0

    edu.red

    8 Representación de sonido Discretización de la amplitud Un byte para cada valor (Gp:) 4 8 12 13 12 10 8…

    edu.red

    9 ¿Qué es un programa? Un programa es una secuencia de instrucciones a la CPU Cada instrucción es un conjunto de bytes Ejemplos de instrucciones: Leer un dato del teclado Guardar un dato en la memoria Ejecutar una operación sobre dos datos Mostrar un dato en la pantalla etc.

    edu.red

    10 Acceso a la memoria (Gp:) 9 (Gp:) 8 (Gp:) 7 (Gp:) 6 (Gp:) 5 (Gp:) 4 (Gp:) 3 (Gp:) 2 (Gp:) 1 (Gp:) 15 (Gp:) 64 (Gp:) 32 (Gp:) 10 (Gp:) 0 (Gp:) 2 (Gp:) 45 (Gp:) 125 (Gp:) 12

    RAM CPU

    edu.red

    11 Algoritmo Un esquema para resolver cierto tipo de problema Se puede traducir en un programa para ejecutarlo en un ordenador Pasos para la resolución de un problema con ordenador: Diseño de un algoritmo Codificación de un programa Ejecución y validación

    edu.red

    12 Algoritmo Componentes: Entrada: datos del problema a resolver Salida: el resultado de la resolución Proceso: pasos a seguir para la resolución Propiedades: Preciso: orden estricto + expresiones precisas Definido: con la misma entrada, siempre resulta la misma salida Finito: número finito de pasos

    edu.red

    13 Algoritmo 1 Problema: Sumar dos números Solución: Entrada: dos números Salida: guardar la suma en la memoria y imprimirla por pantalla Proceso: Añadir los dos números Guardar el resultado en la memoria Imprimir el resultado por pantalla

    edu.red

    14 Algoritmo 2 Problema: hacer una taza de té a la inglesa Solución: Entrada: agua, bolsa de té, leche, tetera, taza, cuchara Salida: una taza de té a la inglesa Proceso: Poner la bolsa de té en la taza Poner el agua a hervir en la tetera Verter el agua hervida en la taza Añadir leche Remover

    edu.red

    15 Algoritmo 3 Problema: averiguar la solvencia de un cliente que ejecuta un pedido a una fábrica. Solución: Entrada: el pedido Salida: mensaje de aceptación o rechazo Proceso: Leer el pedido Examinar la ficha del cliente Si el cliente es solvente, aceptar pedido En caso contrario, rechazar pedido

    edu.red

    16 Lenguajes de programación Lenguajes máquina Lenguajes ensamblador Lenguajes de alto nivel: C, C++, Visual Basic, Java, Pascal, Prolog, LISP,…

    edu.red

    17 Lenguajes máquina Programas son secuencias de instrucciones compuestas de bytes: 16 29 156 9 82 75 Ventajas: La CPU entiende estos programas Desventajas: Pensar en modo de 0’s y 1’s es muy difícil para nosotros

    edu.red

    18 Lenguajes ensamblador Instrucciones compuestas de palabras cortas y números: LOD 15 6 LOD 16 8 ADD 15 16 17 JMP 10 Ventajas: Más fácil a entender Desventajas: Todavía bastante abstracto Necesita traducir el código a lenguajes máquina

    edu.red

    19 Lenguajes de alto nivel Diseñados para ser más parecidos a lenguaje natural Ventajas: Mucho más fácil de dar instrucciones Desventajas: Más complicado convertir en lenguajes máquina

    edu.red

    20 Lenguajes de programación:¿Por qué hay tantos? ¿Cómo nacen, sobreviven y caducan? Diferentes dominios de aplicación: Programación de sistemas – rapidez y acceso de bajo nivel: C Inteligencia artificial – computación simbólica: LISP, Prolog Programación científica – fórmulas matemáticas: Fortran Negocios – transacciones: COBOL Uso específico: SQL (bases de datos), Perl (manipulación de textos), JavaScript (páginas web), Pascal (formación)

    edu.red

    21 Lenguajes de programación:¿Por qué hay tantos? ¿Cómo nacen, sobreviven y caducan? Diferentes necesidades: Fiabilidad: Ada Escabilidad, paradigma orientado a objeto: C ? C++ Portabilidad: Java Evolución: Mejora del hardware Mejor comprensión de como reforzar criterios de legibilidad, facilidad de aprender y escribir, fiabilidad… Importancia de la estandardización ¡Número de usuarios!

    edu.red

    22 Traductores de lenguaje: intérpretes (Gp:) PROGRAMA FUENTE (Gp:) INTERPRETE (Gp:) EJECUCION DE LA(S)? INSTRUCCION(ES) INTERPRETADA(S)?

    edu.red

    23 Traductores de lenguaje: compiladores PROGRAMA FUENTE COMPILADOR ENLAZADOR (binder, linker) EJECUCION Fase de compilación Fase de ejecución OPCION 1 programa ejecutable Fase de compilación Fase de ejecución OPCION 2 programa objeto

    edu.red

    24 Java Se desarrolló en los comienzos de los años 1990 La intención era crear una herramienta para escribir programas cortos y efectivos Ventajas: Básico, fácil de entender Portátil: el mismo código sirve para todos los sistemas operativos Soporta interfaz gráfica de usuario (GUI) Apropiado para programas en Internet Desventajas: La ejecución es más lenta que algunos otros lenguajes

    edu.red

    25 Java El código fuente se guarda en un archivo con extensión .java Un compilador traduce el código fuente en código de byte, y lo guarda en un archivo con extensión .class Las instrucciones son diferentes para diferentes sistemas operativos Un intérprete específico al sistema operativo interpreta el código byte para ejecutar el programa Un programa puede ser compuesto de varios archivos

    edu.red

    26 La Máquina Virtual Java (JVM)? PROGRAMA FUENTE COMPILADOR JAVA PROGRAMA OBJETO .java .class Programa bytecode para JVM INTERPRETE (JVM) para Windows INTERPRETE (JVM) para Linux INTERPRETE (JVM) para Macintosh WINDOWS LINUX MACINTOSH

    edu.red

    27 Ejecución de un programa Java HolaMundo.java HolaMundo.class javac HolaMundo.java System.class java HolaMundo SISTEMA OPERATIVO compilador Java llamar a la JVM crear el programa en un editor

    edu.red

    28 Componentes de un lenguaje Sintaxis (gramática): reglas que determinan de manera estricta el vocabulario, orden y formato de las instrucciones permitidas Errores sintácticos: el programa no compila y/o no se puede interpretar Semántica (sentido): el programa, al ejecutarlo, produce el resultado correcto que uno quiere

    edu.red

    29 Errores de programación Modificar o crear un archivo .java Editar para corregir errores (Gp:) Compilar

    Ejecutar programa Depurar (debugging)? errores de compilación (sintaxis)? no hay errores errores de ejecución (semántica)?