SlideShare una empresa de Scribd logo
1 de 32
Fundamentos de
Programación/Programación I
Anders Jonsson
2007-2008
2
Administración
• Página web: http://www.tecn.upf.es/~jonsson/fp07
(en construcción)
• Teoría: Miércoles 17-18:30, Aula 119
• Práctica: P1 Jueves 18:40-19:25, Aula 202
P2 Jueves 19:35-20:20, Aula 202
• Tutoría: Para confirmar
• anders.jonsson@upf.edu, Edificio França 399
3
Administración
• Evaluación:
Prácticas: 40%
Controles: 20%
Examen final: 40%
• Las prácticas se hacen en grupos de dos
• Después de cada dos prácticas hay un control en
clase sobre el conocimiento de estas prácticas
(últimos 15 minutos de teoría)
4
Clase de introducción
1. ¿Qué es un ordenador?
2. Programas y algoritmos
3. Lenguajes de programación
4. Java
5
¿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.
6
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)
7
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
8
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
9
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
10
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
11
Representación de sonido
• Discretización de la amplitud
• Un byte para cada valor
4 8 12 13 12 10 8…
12
¿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.
13
Acceso a la memoria
9
8
7
6
5
4
3
2
1
15
64
32
10
0
2
45
125
12
RAM
CPU
14
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:
1. Diseño de un algoritmo
2. Codificación de un programa
3. Ejecución y validación
15
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
16
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
17
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 taza
2. Poner el agua a hervir en la tetera
3. Verter el agua hervida en la taza
4. Añadir leche
5. Remover
18
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
19
Lenguajes de programación
• Lenguajes máquina
• Lenguajes ensamblador
• Lenguajes de alto nivel: C, C++, Visual Basic, Java,
Pascal, Prolog, LISP,…
20
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
21
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
22
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
23
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)
24
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ón
4. ¡Número de usuarios!
25
Traductores de lenguaje:
intérpretes
PROGRAMA FUENTE
INTERPRETE
EJECUCION DE LA(S)
INSTRUCCION(ES)
INTERPRETADA(S)
26
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
27
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
28
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
29
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
30
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
31
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
32
Errores de programación
Modificar o crear un
archivo .java
Editar para
corregir errores
Compilar
Ejecutar programa
Depurar
(debugging)
errores de compilación (sintaxis)
no hay errores
errores de ejecución (semántica)

Más contenido relacionado

Similar a Fundamentos de Programación en Java

Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónjusto morales
 
Conceptos Básicos de Programación
Conceptos Básicos de ProgramaciónConceptos Básicos de Programación
Conceptos Básicos de ProgramaciónMaraIsabel87
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdfNancyHerrera88
 
Introducción a la arquitectura de las computadoras
Introducción a la arquitectura de las computadorasIntroducción a la arquitectura de las computadoras
Introducción a la arquitectura de las computadorasCamilo Pacheco
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónMarco Chunab
 
3 Conceptos progamacion-tema3
3 Conceptos progamacion-tema33 Conceptos progamacion-tema3
3 Conceptos progamacion-tema3Elba Sepúlveda
 
Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01Fernando Jim
 
Representación de datos Hardware y Software
Representación de datosHardware y SoftwareRepresentación de datosHardware y Software
Representación de datos Hardware y SoftwareCarlos Medina Raymundo
 
pdfslide.tips_tema-1-fundamentos-de-computacion-prof-maria-alejandra-quintero...
pdfslide.tips_tema-1-fundamentos-de-computacion-prof-maria-alejandra-quintero...pdfslide.tips_tema-1-fundamentos-de-computacion-prof-maria-alejandra-quintero...
pdfslide.tips_tema-1-fundamentos-de-computacion-prof-maria-alejandra-quintero...LUISMARIOGONZALEZ
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónLeticia Nunez
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacionAnaisMar22
 
Semana 2 Lenguajes de programación.pptx
Semana 2  Lenguajes de programación.pptxSemana 2  Lenguajes de programación.pptx
Semana 2 Lenguajes de programación.pptxPriceSanchezJose
 

Similar a Fundamentos de Programación en Java (20)

Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
 
Conceptos Básicos de Programación
Conceptos Básicos de ProgramaciónConceptos Básicos de Programación
Conceptos Básicos de Programación
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
 
Introducción a la arquitectura de las computadoras
Introducción a la arquitectura de las computadorasIntroducción a la arquitectura de las computadoras
Introducción a la arquitectura de las computadoras
 
Intro (1)
Intro (1)Intro (1)
Intro (1)
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
 
intro.pptx
intro.pptxintro.pptx
intro.pptx
 
3 Conceptos progamacion-tema3
3 Conceptos progamacion-tema33 Conceptos progamacion-tema3
3 Conceptos progamacion-tema3
 
Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01
 
Introduccion_a_la_programacion.pdf
Introduccion_a_la_programacion.pdfIntroduccion_a_la_programacion.pdf
Introduccion_a_la_programacion.pdf
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
Representación de datos Hardware y Software
Representación de datosHardware y SoftwareRepresentación de datosHardware y Software
Representación de datos Hardware y Software
 
pdfslide.tips_tema-1-fundamentos-de-computacion-prof-maria-alejandra-quintero...
pdfslide.tips_tema-1-fundamentos-de-computacion-prof-maria-alejandra-quintero...pdfslide.tips_tema-1-fundamentos-de-computacion-prof-maria-alejandra-quintero...
pdfslide.tips_tema-1-fundamentos-de-computacion-prof-maria-alejandra-quintero...
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacion
 
Computadores personales
Computadores personalesComputadores personales
Computadores personales
 
Blog
BlogBlog
Blog
 
Semana 2 Lenguajes de programación.pptx
Semana 2  Lenguajes de programación.pptxSemana 2  Lenguajes de programación.pptx
Semana 2 Lenguajes de programación.pptx
 

Último

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 

Último (20)

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 

Fundamentos de Programación en Java

  • 2. 2 Administración • Página web: http://www.tecn.upf.es/~jonsson/fp07 (en construcción) • Teoría: Miércoles 17-18:30, Aula 119 • Práctica: P1 Jueves 18:40-19:25, Aula 202 P2 Jueves 19:35-20:20, Aula 202 • Tutoría: Para confirmar • anders.jonsson@upf.edu, Edificio França 399
  • 3. 3 Administración • Evaluación: Prácticas: 40% Controles: 20% Examen final: 40% • Las prácticas se hacen en grupos de dos • Después de cada dos prácticas hay un control en clase sobre el conocimiento de estas prácticas (últimos 15 minutos de teoría)
  • 4. 4 Clase de introducción 1. ¿Qué es un ordenador? 2. Programas y algoritmos 3. Lenguajes de programación 4. Java
  • 5. 5 ¿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.
  • 6. 6 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)
  • 7. 7 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
  • 8. 8 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
  • 9. 9 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
  • 10. 10 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
  • 11. 11 Representación de sonido • Discretización de la amplitud • Un byte para cada valor 4 8 12 13 12 10 8…
  • 12. 12 ¿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.
  • 13. 13 Acceso a la memoria 9 8 7 6 5 4 3 2 1 15 64 32 10 0 2 45 125 12 RAM CPU
  • 14. 14 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: 1. Diseño de un algoritmo 2. Codificación de un programa 3. Ejecución y validación
  • 15. 15 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
  • 16. 16 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
  • 17. 17 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 taza 2. Poner el agua a hervir en la tetera 3. Verter el agua hervida en la taza 4. Añadir leche 5. Remover
  • 18. 18 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
  • 19. 19 Lenguajes de programación • Lenguajes máquina • Lenguajes ensamblador • Lenguajes de alto nivel: C, C++, Visual Basic, Java, Pascal, Prolog, LISP,…
  • 20. 20 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
  • 21. 21 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
  • 22. 22 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
  • 23. 23 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)
  • 24. 24 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ón 4. ¡Número de usuarios!
  • 25. 25 Traductores de lenguaje: intérpretes PROGRAMA FUENTE INTERPRETE EJECUCION DE LA(S) INSTRUCCION(ES) INTERPRETADA(S)
  • 26. 26 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
  • 27. 27 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
  • 28. 28 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
  • 29. 29 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
  • 30. 30 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
  • 31. 31 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
  • 32. 32 Errores de programación Modificar o crear un archivo .java Editar para corregir errores Compilar Ejecutar programa Depurar (debugging) errores de compilación (sintaxis) no hay errores errores de ejecución (semántica)