solución de problemas elementos
DESCRIPTION
Fundamentos de ProgramacionTRANSCRIPT
![Page 1: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/1.jpg)
Ing. Sonia Alexandra Pinzón Nuñez - Ing. Rocío Rodríguez Guerrero
FUNDAMENTOS DE
PROGRAMACIÓN
![Page 2: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/2.jpg)
Objetivos
1. ¿Qué es un Computador?2.Programas y algoritmos3.Lenguajes de programación4.Java
1. ¿Qué es un Computador?2.Programas y algoritmos3.Lenguajes de programación4.Java
![Page 3: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/3.jpg)
3
¿Qué es un Computador?• “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.
![Page 4: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/4.jpg)
4
Elementos de un Computador
Memoria Principal (RAM)
Unidad de Control (CU)
Unidad aritmetica y logica (ALU)
Programa
Dispositivos de entrada Dispositivos de salida Dispositivos de almacenamiento de datosteclado
ratónpantallaimpresora disco duro
lector/grabador de CD-ROMlector/grabador de disquete
Procesador(CPU)
(hardware)
![Page 5: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/5.jpg)
5
Representación de los datos en el Computador
• 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
![Page 6: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/6.jpg)
6
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
![Page 7: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/7.jpg)
7
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-4618 bytes
![Page 8: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/8.jpg)
8
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 00 0 1 1 0 1 1 00 0 1 0 0 0 1 00 0 1 0 0 0 1 00 0 1 1 0 1 1 00 0 0 0 0 0 0 00 0 1 1 0 1 1 00 0 0 0 0 0 0 0
![Page 9: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/9.jpg)
9
Representación de sonido
• Discretización de la amplitud• Un byte para cada valor
4 8 12 13 12 10 8…
![Page 10: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/10.jpg)
10
¿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.
![Page 11: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/11.jpg)
11
Acceso a la memoria
9
8
7
6
5
4
3
2
1
15
64
32
10
0
2
45
125
12
RAM
CPU
![Page 12: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/12.jpg)
12
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 Computador :
1. Diseño de un algoritmo
2. Codificación de un programa
3. Ejecución y validación
![Page 13: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/13.jpg)
13
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
![Page 14: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/14.jpg)
14
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: 1) Añadir los dos números
2) Guardar el resultado en la memoria
3) Imprimir el resultado por pantalla
![Page 15: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/15.jpg)
15
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:
1. Poner la bolsa de té en la taza2. Poner el agua a hervir en la tetera3. Verter el agua hervida en la taza 4. Añadir leche5. Remover
![Page 16: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/16.jpg)
16
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: 1. Leer el pedido
2. Examinar la ficha del cliente
3. Si el cliente es solvente, aceptar pedido
4. En caso contrario, rechazar pedido
![Page 17: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/17.jpg)
17
Lenguajes de programación
• Lenguajes máquina
• Lenguajes ensamblador
• Lenguajes de alto nivel: C, C++, Visual Basic, Java, Pascal, Prolog, LISP,…
![Page 18: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/18.jpg)
18
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
![Page 19: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/19.jpg)
19
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
![Page 20: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/20.jpg)
20
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.
![Page 21: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/21.jpg)
21
Lenguajes de programación:¿Por qué hay tantos?
¿Cómo nacen, sobreviven y caducan?
1. 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)
![Page 22: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/22.jpg)
22
Lenguajes de programación:¿Por qué hay tantos?
¿Cómo nacen, sobreviven y caducan?
1. Diferentes necesidades:• Fiabilidad: Ada• Escabilidad, paradigma orientado a objeto: C C++ • Portabilidad: Java
2. Evolución: • Mejora del hardware• Mejor comprensión de como reforzar criterios de
legibilidad, facilidad de aprender y escribir, fiabilidad…
3. Importancia de la estandardización4. ¡Número de usuarios!
![Page 23: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/23.jpg)
23
Traductores de lenguaje: intérpretes
PROGRAMA FUENTE
INTERPRETE
EJECUCION DE LA(S)INSTRUCCION(ES) INTERPRETADA(S)
![Page 24: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/24.jpg)
24
Traductores de lenguaje: compiladores
PROGRAMA FUENTE
COMPILADOR
ENLAZADOR(binder, linker)
EJECUCION
Fase de compilación
Fase de ejecución
OPCION 1
programaejecutable
Fase de compilación
Fase de ejecución
OPCION 2
programaobjeto
![Page 25: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/25.jpg)
25
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
![Page 26: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/26.jpg)
26
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
![Page 27: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/27.jpg)
27
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
![Page 28: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/28.jpg)
28
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 programaen un editor
![Page 29: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/29.jpg)
29
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
![Page 30: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/30.jpg)
30
Errores de programación
Modificar o crear un archivo .java
Editar para corregir errores
Compilar
Ejecutar programaDepurar
(debugging)
errores de compilación (sintaxis)
no hay errores
errores de ejecución (semántica)
![Page 31: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/31.jpg)
![Page 32: Solución de Problemas Elementos](https://reader036.vdocuments.site/reader036/viewer/2022081501/55cf9233550346f57b9490e8/html5/thumbnails/32.jpg)
BIBLIOGRAFIA
• Fundamentos de Programación. Algoritmos y Estructuras. Luis Joyanes Aguilar. Editorial Mc Graw Hill.