FACULTAD DE INGENIERIA
Escuela Académica Profesional: Ingeniería de Sistemas
CURSO FUNDAMENTOS DE PROGRAMACIÓN
Conceptos Fundamentales de Programación
y
Representación de Algoritmos
Ing. Percy Bravo Baldeón
Fundamentos de Programación
¿Qué es un algoritmo?
¿Qué es un programa?
¿Qué es un lenguaje de
programación?
Fundamentos de Programación
¿Qué es un Algoritmo?
Fundamentos de Programación
¿Características de un Algoritmo?
Fundamentos de Programación
Fundamentos de Programación
Algoritmo vs Lenguaje de Programación
Fundamentos de Programación
Pasos para resolver
problemas (Polya).
Ciclo de programación.
Etapas para Solucionar Problemas
Fundamentos de Programación
Fundamentos de Programación
Etapas de la fase de análisis de problemas
• Precisar los resultados
esperados
– El estudiante debe
preguntarse:
• ¿Qué información me
solicitan?
• ¿Qué formato debe tener esta
información?
• Determinar las restricciones
– El estudiante debe preguntarse:
• ¿Qué condiciones me plantea el problema?
• ¿Qué está prohibido hacer y/o utilizar?
• ¿Qué está permitido hacer y/o utilizar?
• ¿Cuáles datos puedo considerar fijos (constantes) para
simplificar el problema?
• ¿Cuáles datos son variables?
• ¿Cuáles datos debo calcular?
• ¿Tengo los conocimientos para solucionar el problema
planteado?
• Establecer procesos
(operaciones)
– El estudiante debe preguntarse:
• ¿Qué procesos necesito?
• ¿Qué fórmulas debo emplear?
• ¿Cómo afectan las
condiciones a los procesos?
• ¿Qué debo hacer?
• ¿Cuál es el orden de lo que
debo hacer?
• Identificar datos disponibles
– El estudiante debe preguntarse:
• ¿Qué información es importante?
• ¿Qué información no es relevante?
• ¿Cuáles son los datos de entrada?
(conocidos)
• ¿Cuál es la incógnita?
• ¿Qué información me falta para
resolver el problema? (datos
desconocidos)
• ¿Puedo agrupar los datos en
categorías?
Fundamentos de Programación
Conceptos básicos para
diseñar algoritmos:
• ¿Qué es un algoritmo?
• Formas comunes de representarlos
(seudocódigo y diagrama de flujo)
• Conceptos básicos de programación
(variable, constante, identificador, pa
labra
reservada, contador, acumulador, tip
os de datos, operadores y
expresiones).
Fundamentos de Programación
Diseñar y traducir algoritmos:
• Fundamentos de programación en el área
de procedimientos.
• Establecer interactividad con el “usuario”
del procedimiento
• Abordar las tres estructuras de control
básicas:
• secuencial,
• iterativa (repetición) y
• condicional (decisión, selección).
Fundamentos de Programación
Depurar procedimientos:
• Dificultad para elaborar
procedimientos perfectos en los
primeros intentos.
• La dificultad aumenta a medida
que los problemas se vuelven más
complejos.
• Los resultados se deben probar y
validar (revisión).
• El proceso promueve valores como
responsabilidad, fortaleza, laborios
idad, paciencia y perseverancia.
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Supongamos que un profesor quiere crear un programa
para gestionar las notas de sus alumnos. Quiere que
dicho programa le permita realizar tareas tales como
asignar notas, cambiar notas, ver las notas según distintas
calificaciones, etc. A continuación tienes un esquema que
representa una de las posibles divisiones del problema en
módulos.
Ejemplo:
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
HERRAMIENTAS PARA EL DISEÑO DE ALGORITMOS
Tanto en la fase de análisis del problema como durante
el diseño del algoritmo, se plantea la necesidad de
representar claramente el flujo de operaciones que se
han de realizar para su resolución y el orden en que
estas operaciones deber ser ejecutadas.
Una vez que el algoritmo esté diseñado se debe
proceder a representarlo mediante algún método de
programación, siendo los más usuales: diagramas de
flujo, pseudocódigo o diagramas N-S.
Fundamentos de Programación
Diagramas de Flujo:
Cada operación se
representa mediante
un símbolo
normalizado el
Instituto
Norteamericano de
Normalización (ANSI -
American National
Standars Institute). Las
líneas de flujo indican
el orden de ejecución.
Los diagramas de flujo suelen ser usados solo para representar
algoritmos pequeños, ya que abarcan mucho espacio.
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Describen un algoritmo de forma similar a un lenguaje de
programación pero sin su rigidez, de forma más parecida al
lenguaje natural. Presentan la ventaja de ser más compactos
que los diagramas de flujo, más fáciles de escribir para las
instrucciones complejas y más fáciles de transferir a un
lenguaje de programación. El pseudocódigo no está regido
por ningún estándar.
•Algunas palabras usadas son LEER/IMPRIMIR para
representar las acciones de lectura de datos y salida de datos.
•Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies (1 pie=12 pulgadas), a partir de la altura en
centímetros, que se introduce por el teclado.
•Inicio
•1- IMPRIMIR 'Introduce la altura en centímetros: '
•2- LEER: altura
•3- CALCULAR pulgadas=altura* 2:54
•4- CALCULAR pies=pulgadas * 12
•5- IMPRIMIR 'La altura en pulgadas es: ', pulgadas
•6- IMPRIMIR 'La altura en pies es : ', pies
•Fin
Pseudocódigos:
Fundamentos de Programación
DIAGRAMAS Nassi-Shneiderman
Fundamentos de Programación
Tipos de Datos, Variables, Constantes,
Expresiones, operándos y operadores
aritméticos y lógicos.
Fundamentos de Programación
La definición de la clase
• En Java, todo son clases
• Así que cada fichero define una clase
– public class MiClase
• La clase tiene atributos y métodos
• El método main es especial
– public static void main(String[] args) {...}
– Es el punto de arranque de una clase
Fundamentos de Programación
Variables
• Almacenan el estado de los objetos
• Pueden definirse en cualquier parte del
código, antes de su uso
• Deben empezar con letra, guión bajo (_) o
dólar ($)
• Sensible a mayúsculas/minúsculas
Fundamentos de Programación
Variables
• Dí que variables son válidas
int
anInt
i
i1
1
thing1
1thing
ONE-HUNDRED
ONE_HUNDRED
something2do
Fundamentos de Programación
Variables
• Las variables tienen un tipo que define el
rango de valores y las operaciones que
pueden hacerse
– Java es fuertemente tipado
• Tipos primitivos
• Tipos referencia
Fundamentos de Programación
Tipos de datos primitivos
• Enteros (se inicializan a 0)
– Byte: un byte con signo ((byte)12)
– Short: dos bytes con signo ((short)1231)
– Int: cuatros bytes con signo (1238921)
– Long: ocho bytes con signo (728478283L)
• Reales (se inicializan a 0.0)
– Float: punto flotante 32 bits (1.2342F)
– Double: punto flotante 64 bits (123.131)
Fundamentos de Programación
Tipos de datos primitivos
• Booleanos (se inicializa a false)
– true / false
• Carácter (se inicializa al carácter nulo)
– 'S', 'a'
• El tamaño de datos está definido y es
independiente de la plataforma
Fundamentos de Programación
Tipos de datos referencia
• Objetos
– Instancias de clases
• Arrays
– Colección de elementos del mismo tipo,
sean básicos o complejos
• Se inicializan a null
Fundamentos de Programación
Inicialización
• Las variables pueden inicializarse en la
definición
int a = 2;
char b = 'a';
double c = 123.13123;
Bicicleta d = new Bicicleta();
Fundamentos de Programación
Constantes
• Variables que no pueden cambiar de
valor una vez establecido
• Modificador final
final int a;
a = 12;
final double b = 456.4546456;
Fundamentos de Programación
Ámbito
• Ámbito: parte de programa en el que
una variable está definida
• Variable miembro (de una clase)
• Parámetro (de un método)
• Variable local (de un método)
• Excepciones
Fundamentos de Programación
Ámbitos
Variables
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
¿Cúal es? ¿Qué tipo tienen? Alcance
Variables
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
¿Cúal es? ¿Qué tipo tienen? Alcance
Variables
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
¿Cúal es? ¿Qué tipo tienen? Alcance
Fundamentos de Programación
Operadores
• Unarios
op1 operator
operator op1
• Binarios
op1 operator op2
• Ternarios
op1 operator1 op2 operator2 op3
Fundamentos de Programación
Operadores aritméticos
• Binarios
– Suma: op1 + op2
– Resta: op1 – op2
– Multiplicacion: op1 * op2
– División: op1 / op2
– Módulo: op1 % op2
Fundamentos de Programación
Operadores aritméticos
• Operaciones con enteros y reales
• El resultado depende de los operadores
– Algún double -> double
– Algún float -> float
– Algún long -> long
– Si no, int
Fundamentos de Programación
Operadores aritméticos
• Unarios
– Número negativo (-2, -123)
– Convierte byte y short en int (+2, +65)
• Suma / resta unaria
– ++op1
– op1++
– --op1
– op1--
Fundamentos de Programación
Operadores de comparación
• Devuelven booleanos
– Igualdad: op1 == op2
– Desigualdad: op1 != op2
– Mayor que: op1 > op2
– Mayor o igual que: op1 >= op2
– Menor que: op1 < op2
– Menor o igual que: op1 <= op2
Fundamentos de Programación
Operadores de comparación
• Mucho cuidado con la igualdad
• Cuando se comparan variables
referencia, se compara si ambos
objetos son el mismo, no si son iguales
(tienen el mismo estado)
• Error típico
Fundamentos de Programación
Operadores booleanos
• Operan sobre booleanos y devuelven
booleanos
– AND: op1 && op2
– OR: op1 || op2
– NOT: !op1
– XOR: op1 ^ op2
Fundamentos de Programación
Operadores booleanos
• Java sólo evalúa si es necesario
• Si el primer operando de un AND es
false, no evalúa el segundo y devuelve
false
– Lo mismo con OR
• Para obligar a evaluar el segundo
operando, usar & (AND) y | (OR)
Fundamentos de Programación
Operadores de
desplazamiento
• Opera sobre enteros y devuelve enteros
– Desplazar a izquierda: op1 << num
– Desplazar a derecha
op1 >> num (extiende signo)
op1 >>> num (no extiende signo)
Fundamentos de Programación
Operadores lógicos
• Operan sobre bits de los enteros
– AND: op1 & op2
– OR: op1 | op2
– XOR: op1 ^ op2
– Complemento: ~op1
Fundamentos de Programación
Operadores de asignación
• Asigna el valor de una variable a otra
– op1 = op2
• Deben ser compatibles en tipo
– Enteros, reales, carácter
– Misma clase o subclases
• Al asignar variables referencia, no se
hace una copia del objeto
Fundamentos de Programación
Operadores de asignación
• Asignación con operación
op1 = op1 operador op2 (a = a + b)
op1 operador= op2 (a += b)
• +, -, *, /, %, &, |, ^, <<, >>, >>>
Fundamentos de Programación
Otros operadores
• ?: (if-then-else)
if (a == b) then c else d;
a == b ? c : d
• [] - indexación de arrays
• . (punto): acceso a métodos y variables
• (): para especificar los argumentos a
métodos
Fundamentos de Programación
Expresiones
• Una expresión es un conjunto de variables,
operadores e invocaciones a métodos que se
evalúan como un único resultado
– a
– 1 + 2
– 12 + a.getNumHoras() * 2
Fundamentos de Programación
Expresiones
• Las expresiones, además de un valor,
tienen un tipo asociado, que depende
de las subexpresiones dentro de la
expresión
• Una expresión se puede conjuntar con
otras para formar una expresión mayor
mediante el uso de operadores
Fundamentos de Programación
Expresiones
• Las expresiones se pueden emplear en
– Asignaciones
– Invocaciones a métodos
– Operandos
Fundamentos de Programación
Orden de evaluación
• Las expresiones complejas pueden
evaluarse de diferentes formas
a + b – c * 4
¿((a + b) – c) * 4?
¿((a + b) – (c * 4))?
Fundamentos de Programación
Orden de evaluación
• Se pueden emplear paréntesis para
especificar el orden de evaluación
 ((a + b) – c) * 4
• Existen las reglas de precedencia
 * y / más precedencia que + y -
• Pero es mejor despejar la ambigüedad
mediante el uso de paréntesis
 a + b – (c * 4)
Fundamentos de Programación
Asociatividad
• En operadores binarios, ¿cómo se leen
los operadores?
• Asociatividad a la izquierda: suma
 1 + 2 + 3 + 4 => (((1 + 2) + 3) + 4)
• Asociatividad a la derecha
 a = b = c => (a = (b = (c)))
Fundamentos de Programación
Programación en JAVA
Fundamentos de Programación
Objetivos de la tecnología Java
• Proveer un lenguaje estructurado
– Que facilite la programación y evite errores
– Orientado a Objetos
• Provee un ambiente para
– Incrementar la velocidad de desarrollo de
aplicaciones
– Portabilidad del código
Fundamentos de Programación
¿ Que puedo programar con Java ?
• Aplicaciones independientes
(Como cualquier otro lenguaje de propósito general)
• Applets
(Pequeñas aplicaciones que se ejecutan en un documento HTML)
• Aplicaciones para intraredes,
– Cliente/Servidor
– Aplicaciones distribuidas en redes locales
– Internet.
Fundamentos de Programación
Arquitectura
• Java no se compila
– Se convierte a un pseudocódigo
– Un intérprete lo ejecuta en el CPU
66
mi_prog.java
Compilador
mi_prog.class
Intérprete
67
Gramática de Java
Comentarios En Java hay tres tipos de comentarios:
// comentarios para una sola línea
/* comentarios de una o más líneas
*/
/** comentario de documentación, de una o más
líneas
*/
Ejemplo de un programa en java
68
/** Clase para calcular el promedio de dos números enteros
*/
public class Promedio{
/**
*El metodo main es el metodo principal para ejecutar una clase
*/
public static void main(String arg[]){
int i =11, j =20; //definición y asignación variables
double a=(i+j)/2.0;
System.out.println("i es =" + i +"y j es =" + j);
System.out.println("El promedio es " + a);
}//fin método main
}//fin clase
Fundamentos de Programación
Método main
• Es un método especial
• Punto de entrada del programa
• public static void main(String args[])
• args: vector de cadenas de texto que
representa los parámetros pasados al
programa
Fundamentos de Programación
Palabras clave
Las siguientes son las palabras clave que están definidas en Java
y que no se pueden utilizar como indentificadores:
Palabras Reservadas
Además, el lenguaje se reserva unas cuantas palabras más, pero
que hasta ahora no tienen un cometido específico. Son:
Fundamentos de Programación
Por convención:
• Las clases deben comenzar con una letra Mayúscula
• Las variables y métodos deben ir con letra miníscula
• Las constantes en MAYÚSCULA
int contador_principal;
char _lista_de_ficheros;
float $cantidad_en_Ptas;
Ejemplos:
Fundamentos de Programación
Fundamentos de Programación
Gracias.

Fp sesion 1 ppt

  • 1.
    FACULTAD DE INGENIERIA EscuelaAcadémica Profesional: Ingeniería de Sistemas CURSO FUNDAMENTOS DE PROGRAMACIÓN Conceptos Fundamentales de Programación y Representación de Algoritmos Ing. Percy Bravo Baldeón
  • 2.
    Fundamentos de Programación ¿Quées un algoritmo? ¿Qué es un programa? ¿Qué es un lenguaje de programación?
  • 3.
  • 4.
  • 5.
  • 6.
    Fundamentos de Programación Algoritmovs Lenguaje de Programación
  • 7.
    Fundamentos de Programación Pasospara resolver problemas (Polya). Ciclo de programación. Etapas para Solucionar Problemas
  • 8.
  • 9.
    Fundamentos de Programación Etapasde la fase de análisis de problemas • Precisar los resultados esperados – El estudiante debe preguntarse: • ¿Qué información me solicitan? • ¿Qué formato debe tener esta información? • Determinar las restricciones – El estudiante debe preguntarse: • ¿Qué condiciones me plantea el problema? • ¿Qué está prohibido hacer y/o utilizar? • ¿Qué está permitido hacer y/o utilizar? • ¿Cuáles datos puedo considerar fijos (constantes) para simplificar el problema? • ¿Cuáles datos son variables? • ¿Cuáles datos debo calcular? • ¿Tengo los conocimientos para solucionar el problema planteado? • Establecer procesos (operaciones) – El estudiante debe preguntarse: • ¿Qué procesos necesito? • ¿Qué fórmulas debo emplear? • ¿Cómo afectan las condiciones a los procesos? • ¿Qué debo hacer? • ¿Cuál es el orden de lo que debo hacer? • Identificar datos disponibles – El estudiante debe preguntarse: • ¿Qué información es importante? • ¿Qué información no es relevante? • ¿Cuáles son los datos de entrada? (conocidos) • ¿Cuál es la incógnita? • ¿Qué información me falta para resolver el problema? (datos desconocidos) • ¿Puedo agrupar los datos en categorías?
  • 10.
    Fundamentos de Programación Conceptosbásicos para diseñar algoritmos: • ¿Qué es un algoritmo? • Formas comunes de representarlos (seudocódigo y diagrama de flujo) • Conceptos básicos de programación (variable, constante, identificador, pa labra reservada, contador, acumulador, tip os de datos, operadores y expresiones).
  • 11.
    Fundamentos de Programación Diseñary traducir algoritmos: • Fundamentos de programación en el área de procedimientos. • Establecer interactividad con el “usuario” del procedimiento • Abordar las tres estructuras de control básicas: • secuencial, • iterativa (repetición) y • condicional (decisión, selección).
  • 12.
    Fundamentos de Programación Depurarprocedimientos: • Dificultad para elaborar procedimientos perfectos en los primeros intentos. • La dificultad aumenta a medida que los problemas se vuelven más complejos. • Los resultados se deben probar y validar (revisión). • El proceso promueve valores como responsabilidad, fortaleza, laborios idad, paciencia y perseverancia.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
    Fundamentos de Programación Supongamosque un profesor quiere crear un programa para gestionar las notas de sus alumnos. Quiere que dicho programa le permita realizar tareas tales como asignar notas, cambiar notas, ver las notas según distintas calificaciones, etc. A continuación tienes un esquema que representa una de las posibles divisiones del problema en módulos. Ejemplo:
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
    Fundamentos de Programación HERRAMIENTASPARA EL DISEÑO DE ALGORITMOS Tanto en la fase de análisis del problema como durante el diseño del algoritmo, se plantea la necesidad de representar claramente el flujo de operaciones que se han de realizar para su resolución y el orden en que estas operaciones deber ser ejecutadas. Una vez que el algoritmo esté diseñado se debe proceder a representarlo mediante algún método de programación, siendo los más usuales: diagramas de flujo, pseudocódigo o diagramas N-S.
  • 24.
    Fundamentos de Programación Diagramasde Flujo: Cada operación se representa mediante un símbolo normalizado el Instituto Norteamericano de Normalización (ANSI - American National Standars Institute). Las líneas de flujo indican el orden de ejecución. Los diagramas de flujo suelen ser usados solo para representar algoritmos pequeños, ya que abarcan mucho espacio.
  • 25.
  • 26.
  • 27.
    Fundamentos de Programación Describenun algoritmo de forma similar a un lenguaje de programación pero sin su rigidez, de forma más parecida al lenguaje natural. Presentan la ventaja de ser más compactos que los diagramas de flujo, más fáciles de escribir para las instrucciones complejas y más fáciles de transferir a un lenguaje de programación. El pseudocódigo no está regido por ningún estándar. •Algunas palabras usadas son LEER/IMPRIMIR para representar las acciones de lectura de datos y salida de datos. •Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies (1 pie=12 pulgadas), a partir de la altura en centímetros, que se introduce por el teclado. •Inicio •1- IMPRIMIR 'Introduce la altura en centímetros: ' •2- LEER: altura •3- CALCULAR pulgadas=altura* 2:54 •4- CALCULAR pies=pulgadas * 12 •5- IMPRIMIR 'La altura en pulgadas es: ', pulgadas •6- IMPRIMIR 'La altura en pies es : ', pies •Fin Pseudocódigos:
  • 28.
  • 29.
    Fundamentos de Programación Tiposde Datos, Variables, Constantes, Expresiones, operándos y operadores aritméticos y lógicos.
  • 30.
    Fundamentos de Programación Ladefinición de la clase • En Java, todo son clases • Así que cada fichero define una clase – public class MiClase • La clase tiene atributos y métodos • El método main es especial – public static void main(String[] args) {...} – Es el punto de arranque de una clase
  • 31.
    Fundamentos de Programación Variables •Almacenan el estado de los objetos • Pueden definirse en cualquier parte del código, antes de su uso • Deben empezar con letra, guión bajo (_) o dólar ($) • Sensible a mayúsculas/minúsculas
  • 32.
    Fundamentos de Programación Variables •Dí que variables son válidas int anInt i i1 1 thing1 1thing ONE-HUNDRED ONE_HUNDRED something2do
  • 33.
    Fundamentos de Programación Variables •Las variables tienen un tipo que define el rango de valores y las operaciones que pueden hacerse – Java es fuertemente tipado • Tipos primitivos • Tipos referencia
  • 34.
    Fundamentos de Programación Tiposde datos primitivos • Enteros (se inicializan a 0) – Byte: un byte con signo ((byte)12) – Short: dos bytes con signo ((short)1231) – Int: cuatros bytes con signo (1238921) – Long: ocho bytes con signo (728478283L) • Reales (se inicializan a 0.0) – Float: punto flotante 32 bits (1.2342F) – Double: punto flotante 64 bits (123.131)
  • 35.
    Fundamentos de Programación Tiposde datos primitivos • Booleanos (se inicializa a false) – true / false • Carácter (se inicializa al carácter nulo) – 'S', 'a' • El tamaño de datos está definido y es independiente de la plataforma
  • 36.
    Fundamentos de Programación Tiposde datos referencia • Objetos – Instancias de clases • Arrays – Colección de elementos del mismo tipo, sean básicos o complejos • Se inicializan a null
  • 37.
    Fundamentos de Programación Inicialización •Las variables pueden inicializarse en la definición int a = 2; char b = 'a'; double c = 123.13123; Bicicleta d = new Bicicleta();
  • 38.
    Fundamentos de Programación Constantes •Variables que no pueden cambiar de valor una vez establecido • Modificador final final int a; a = 12; final double b = 456.4546456;
  • 39.
    Fundamentos de Programación Ámbito •Ámbito: parte de programa en el que una variable está definida • Variable miembro (de una clase) • Parámetro (de un método) • Variable local (de un método) • Excepciones
  • 40.
  • 41.
    Variables public class Basic{ public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); } } ¿Cúal es? ¿Qué tipo tienen? Alcance
  • 42.
    Variables public class Basic{ public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); } } ¿Cúal es? ¿Qué tipo tienen? Alcance
  • 43.
    Variables public class Basic{ public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); } } ¿Cúal es? ¿Qué tipo tienen? Alcance
  • 44.
    Fundamentos de Programación Operadores •Unarios op1 operator operator op1 • Binarios op1 operator op2 • Ternarios op1 operator1 op2 operator2 op3
  • 45.
    Fundamentos de Programación Operadoresaritméticos • Binarios – Suma: op1 + op2 – Resta: op1 – op2 – Multiplicacion: op1 * op2 – División: op1 / op2 – Módulo: op1 % op2
  • 46.
    Fundamentos de Programación Operadoresaritméticos • Operaciones con enteros y reales • El resultado depende de los operadores – Algún double -> double – Algún float -> float – Algún long -> long – Si no, int
  • 47.
    Fundamentos de Programación Operadoresaritméticos • Unarios – Número negativo (-2, -123) – Convierte byte y short en int (+2, +65) • Suma / resta unaria – ++op1 – op1++ – --op1 – op1--
  • 48.
    Fundamentos de Programación Operadoresde comparación • Devuelven booleanos – Igualdad: op1 == op2 – Desigualdad: op1 != op2 – Mayor que: op1 > op2 – Mayor o igual que: op1 >= op2 – Menor que: op1 < op2 – Menor o igual que: op1 <= op2
  • 49.
    Fundamentos de Programación Operadoresde comparación • Mucho cuidado con la igualdad • Cuando se comparan variables referencia, se compara si ambos objetos son el mismo, no si son iguales (tienen el mismo estado) • Error típico
  • 50.
    Fundamentos de Programación Operadoresbooleanos • Operan sobre booleanos y devuelven booleanos – AND: op1 && op2 – OR: op1 || op2 – NOT: !op1 – XOR: op1 ^ op2
  • 51.
    Fundamentos de Programación Operadoresbooleanos • Java sólo evalúa si es necesario • Si el primer operando de un AND es false, no evalúa el segundo y devuelve false – Lo mismo con OR • Para obligar a evaluar el segundo operando, usar & (AND) y | (OR)
  • 52.
    Fundamentos de Programación Operadoresde desplazamiento • Opera sobre enteros y devuelve enteros – Desplazar a izquierda: op1 << num – Desplazar a derecha op1 >> num (extiende signo) op1 >>> num (no extiende signo)
  • 53.
    Fundamentos de Programación Operadoreslógicos • Operan sobre bits de los enteros – AND: op1 & op2 – OR: op1 | op2 – XOR: op1 ^ op2 – Complemento: ~op1
  • 54.
    Fundamentos de Programación Operadoresde asignación • Asigna el valor de una variable a otra – op1 = op2 • Deben ser compatibles en tipo – Enteros, reales, carácter – Misma clase o subclases • Al asignar variables referencia, no se hace una copia del objeto
  • 55.
    Fundamentos de Programación Operadoresde asignación • Asignación con operación op1 = op1 operador op2 (a = a + b) op1 operador= op2 (a += b) • +, -, *, /, %, &, |, ^, <<, >>, >>>
  • 56.
    Fundamentos de Programación Otrosoperadores • ?: (if-then-else) if (a == b) then c else d; a == b ? c : d • [] - indexación de arrays • . (punto): acceso a métodos y variables • (): para especificar los argumentos a métodos
  • 57.
    Fundamentos de Programación Expresiones •Una expresión es un conjunto de variables, operadores e invocaciones a métodos que se evalúan como un único resultado – a – 1 + 2 – 12 + a.getNumHoras() * 2
  • 58.
    Fundamentos de Programación Expresiones •Las expresiones, además de un valor, tienen un tipo asociado, que depende de las subexpresiones dentro de la expresión • Una expresión se puede conjuntar con otras para formar una expresión mayor mediante el uso de operadores
  • 59.
    Fundamentos de Programación Expresiones •Las expresiones se pueden emplear en – Asignaciones – Invocaciones a métodos – Operandos
  • 60.
    Fundamentos de Programación Ordende evaluación • Las expresiones complejas pueden evaluarse de diferentes formas a + b – c * 4 ¿((a + b) – c) * 4? ¿((a + b) – (c * 4))?
  • 61.
    Fundamentos de Programación Ordende evaluación • Se pueden emplear paréntesis para especificar el orden de evaluación  ((a + b) – c) * 4 • Existen las reglas de precedencia  * y / más precedencia que + y - • Pero es mejor despejar la ambigüedad mediante el uso de paréntesis  a + b – (c * 4)
  • 62.
    Fundamentos de Programación Asociatividad •En operadores binarios, ¿cómo se leen los operadores? • Asociatividad a la izquierda: suma  1 + 2 + 3 + 4 => (((1 + 2) + 3) + 4) • Asociatividad a la derecha  a = b = c => (a = (b = (c)))
  • 63.
  • 64.
    Fundamentos de Programación Objetivosde la tecnología Java • Proveer un lenguaje estructurado – Que facilite la programación y evite errores – Orientado a Objetos • Provee un ambiente para – Incrementar la velocidad de desarrollo de aplicaciones – Portabilidad del código
  • 65.
    Fundamentos de Programación ¿Que puedo programar con Java ? • Aplicaciones independientes (Como cualquier otro lenguaje de propósito general) • Applets (Pequeñas aplicaciones que se ejecutan en un documento HTML) • Aplicaciones para intraredes, – Cliente/Servidor – Aplicaciones distribuidas en redes locales – Internet.
  • 66.
    Fundamentos de Programación Arquitectura •Java no se compila – Se convierte a un pseudocódigo – Un intérprete lo ejecuta en el CPU 66 mi_prog.java Compilador mi_prog.class Intérprete
  • 67.
    67 Gramática de Java ComentariosEn Java hay tres tipos de comentarios: // comentarios para una sola línea /* comentarios de una o más líneas */ /** comentario de documentación, de una o más líneas */
  • 68.
    Ejemplo de unprograma en java 68 /** Clase para calcular el promedio de dos números enteros */ public class Promedio{ /** *El metodo main es el metodo principal para ejecutar una clase */ public static void main(String arg[]){ int i =11, j =20; //definición y asignación variables double a=(i+j)/2.0; System.out.println("i es =" + i +"y j es =" + j); System.out.println("El promedio es " + a); }//fin método main }//fin clase
  • 69.
    Fundamentos de Programación Métodomain • Es un método especial • Punto de entrada del programa • public static void main(String args[]) • args: vector de cadenas de texto que representa los parámetros pasados al programa
  • 70.
    Fundamentos de Programación Palabrasclave Las siguientes son las palabras clave que están definidas en Java y que no se pueden utilizar como indentificadores: Palabras Reservadas Además, el lenguaje se reserva unas cuantas palabras más, pero que hasta ahora no tienen un cometido específico. Son:
  • 71.
    Fundamentos de Programación Porconvención: • Las clases deben comenzar con una letra Mayúscula • Las variables y métodos deben ir con letra miníscula • Las constantes en MAYÚSCULA int contador_principal; char _lista_de_ficheros; float $cantidad_en_Ptas; Ejemplos:
  • 72.
  • 73.