La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algoritmos y Desarrollo de Programas I

Presentaciones similares


Presentación del tema: "Algoritmos y Desarrollo de Programas I"— Transcripción de la presentación:

1 Algoritmos y Desarrollo de Programas I
Conceptos de Manejo de la Memoria Principal, Tipos de Datos y Expresiones Algoritmos y Desarrollo de Programas I

2 Objetivos Cuando finalice esta lección, el estudiante:
Sabrá cómo declarar variables y constantes simbólicas usando el tipo de datos adecuado. Sabrá como convertir valores de un tipo de datos a otro. Podrá construir correctamente expresiones y enunciados de asignación.

3 La declaración y uso de variables
Los programas trabajan con valores de dos clases: Las variables, que representan valores que pueden cambiar a medida que el programa ejecuta. Las constantes, que representan valores que NO pueden cambiar a medida que el programa ejecuta.

4 La declaración y uso de variables (cont.)
Para poder usar una variable es necesario escribir un enunciado de declaración, como se ve en el siguiente ejemplo: int value; En este enunciado se indica el nombre de la variable (value) y su tipo de datos (int).

5 La declaración y uso de variables (cont.)
El nombre de la variable es un identificador que corresponde a una dirección de memoria principal (RAM) que contiene un valor. Siempre que declaremos variables debemos usar nombres significativos, que permitan deducir para qué la estamos usando.

6 La declaración y uso de variables (cont.)
Los identificadores deben cumplir con estas reglas: Se pueden usar letras, dígitos, subrayado (_) o el signo de dólar ($). NO pueden comenzar con un dígito ni contener espacios. Por costumbre, los nombres de variables y métodos comienzan con una letra minúscula pero los nombres de las clases comienzan con una letra mayúscula.

7 La declaración y uso de variables (cont.)
Los siguientes son nombres válidos para variables: payRate pay_rate payrate test1 test_1 Los siguientes nombres son inválidos: pay rate … por el espacio test#1 … por el caracter ‘#’ 1stTest … porque comienza con dígito

8 La declaración y uso de variables (cont.)
Recuerde que Java es sensitivo a las mayúsculas y minúsculas. Por lo tanto, las siguientes serían variables distintas: payRate payrate pay_rate

9 La declaración y uso de variables (cont.)
El tipo de datos indica qué tipo de valores puede contener la variable. Los principales tipos de datos en los lenguajes de programación son: Numérico: un número que se puede usar en cómputos matemáticos. Ejemplos: -5.1, 0, 2.67, 9 Alfanumérico: uno o más símbolos, incluyendo letras y números que NO se usan en cómputos matemáticos. Ejemplos: ‘A’, ‘a’, “house” Lógico o Booleano: los valores true y false.

10 La declaración y uso de variables (cont.)
Los datos numéricos se pueden clasificar como: Enteros – números que no tienen punto decimal, tales como -41, 0 y 52 Por ejemplo, una variable llamada age debe representar un número entero. Reales – números que tienen punto decimal o están en notación científica, tales como -9.16, 0.7, y 52.0 Por ejemplo, una variable llamada salary debe representar un número real.

11 La declaración y uso de variables (cont.)
En Java se utilizan los siguientes tipos de datos para representar números enteros: byte, short, int y long. En nuestro curso utilizaremos int para representar números enteros. En Java se utilizan los siguientes tipos de datos para representar números reales: float y double. En nuestro curso utilizaremos double para representar números reales. Todos estos nombres para los tipos de datos son palabras reservadas.

12 La declaración y uso de variables (cont.)
¿Por qué existen tantos tipos de datos distintos? El tipo de datos que usamos en la declaración de la variable determina la cantidad de espacio que se reserva en memoria y cómo el dato que contiene la variable se representará como número binario.

13 La declaración y uso de variables (cont.)
Tipo byte short int long float double Tamaño 1 byte 2 bytes 4 bytes 8 bytes

14 La declaración y uso de variables (cont.)
Los siguientes son ejemplos de declaraciones de variables numéricas: int age, yearsInSchool; int numberOfBooks = 0; double salary = ; double sumOfPrices = 0.0, itemPrice; Note que se pueden declarar varias variables usando un mismo enunciado y que se pueden indicar valores iniciales para las variables.

15 La declaración y uso de variables (cont.)
El siguiente programa muestra cómo declarar y usar una variable: public class VariableExample { public static void main(String[] args) { int value = 5; System.out.println(“Value is " + value); value = 10; System.out.println("Now, value is " + value); } El programa mostrará en pantalla lo siguiente: Value is 5 Now, value is 10

16 Las constantes Además de variables, un programa puede contener constantes, que representan valores que no cambian. Por ejemplo, en Matemáticas el valor de π es una constante (aproximadamente ). Otra constante es la cantidad de horas en un día (siempre es 24) o la cantidad de días en un año (aproximadamente ).

17 Las constantes (cont.) Consideremos el siguiente programa para determinar la cantidad de días vividos por una persona de 18 años: public class DaysLivedApp { public static void main(String[] args) { final double DAYS_PER_YEAR = ; int age; double daysLived; age = 18; daysLived = age * DAYS_PER_YEAR; System.out.println("You have lived " + daysLived + " days."); } Multiplicación

18 Las constantes (cont.) En el programa anterior, se declaron las siguientes variables: age – la edad de la persona daysLived – la cantidad de días vividos Además se declaró una constante simbólica: DAYS_PER_YEAR – la cantidad de días en un año (= )

19 Las constantes (cont.) El siguiente enunciado declara una constante simbólica en el programa: final double DAYS_PER_YEAR = ; Una constante simbólica es un identificador que representa un valor que NO puede cambiar a medida que se ejecuta el programa.

20 Las constantes (cont.) En enunciado que declara la constante simbólica se pueden observar dos cosas importantes: La palabra reservada final indica que se declara una constante simbólica. Por costumbre el nombre de una constante simbólica se escribe usando solamente letras mayúsculas y el subrayado.

21 Las constantes (cont.) Además de constantes simbólicas, los programas también contienen literales. Un literal es un valor que aparece directamente en el código del programa. Por ejemplo: los valores 18, , “You have lived ” y “ days.” son literales en el programa discutido.

22 Las constantes (cont.) Los literales también se identifican por su tipo de datos: -452 es un literal que representa un número entero. 64.97 es un literal que representa un número real. ‘s’ es un literal que representa un caracter. “The final value is ” es un literal que representa una cadena de caracteres. true y false son literales que representan valores lógicos o booleanos.

23 Las constantes (cont.) Cuando se escriben literales que representan números se deben seguir las siguientes reglas: Se pueden usar dígitos y los símbolos + (positivo) o – (negativo). No se pueden usar comas No se pueden incluir unidades monetarias, de medida o de cualquier otro tipo

24 Las constantes (cont.) Los siguientes son literales válidos usados para inicializar variables: int number = 1235; int age = 6; double commissionPercent = 0.10; double payRate = 50.00; double weight = 100.5; Estos enunciados son inválidos: int number = 1,235; int age = 6 years; double commissionPercent = 10%; double payRate = $50.00; double weight = lbs;

25 Las constantes (cont.) En el caso de lo números reales, los literales pueden representarse en notación científica, utilizando la “notación E”. La siguiente tabla muestra algunos ejemplos: Notación Decimal Notación Científica Notación E × E3 × E-4 × E6

26 Las expresiones numéricas
En el programa de nuestro ejemplo (DaysLivedApp) se calcula la cantidad de días vividos por la persona evaluando la siguiente expresión: age * DAYS_PER_YEAR Una expresión consiste de conjunto de valores (operandos) a los que se le aplica un proceso (operador) para obtener un resultado.

27 Las expresiones numéricas (cont.)
Las expresiones numéricas son las que, al ser evaluadas, resultan en un valor numérico. Los siguientes son expresiones numéricas: * 4 8 * 5 – 2 8 * (5 – 2) / 3 (4 + 17) % 2 - 1

28 Las expresiones numéricas (cont.)
Los operadores aritméticos de Java son: + Suma - Resta * Multiplicación / División % Módulo o Residuo

29 Las expresiones numéricas (cont.)
Los operadores de suma (+), resta (-), multiplicación (*) y división (/) producen un resultado entero si ambos operandos son enteros: Expresión Resultado 112 – 12 * 17 / (¡Cuidado!)

30 Las expresiones numéricas (cont.)
Los operadores de suma (+), resta (-), multiplicación (*) y división (/) producen un resultado real si por lo menos uno de sus operandos es un número real: Expresión Resultado 112.9 – 12 * 17.0 /

31 Las expresiones numéricas (cont.)
El operador % devuelve el residuo al dividir el primer operando por el segundo. Por ejemplo, 17 % 3 devuelve 2 Cuando se usa el operador % ambos operandos tienen que ser enteros. El operador % se utiliza mucho en problemas en los cuales se necesita obtener el sobrante de una división: Detección de números impares o pares Determinar cantidad de horas y minutos sobrantes dado la cantidad total de minutos

32 Las expresiones numéricas (cont.)
En Java los operadores se ejecutan en el siguiente orden (reglas de precedencia) *, / y % de izquierda a derecha + y – de izquierda a derecha Se pueden utilizar paréntesis, pero no corchetes, para lograr que ciertas operaciones se ejecuten antes de lo establecido.

33 Las expresiones numéricas (cont.)
Los siguientes son ejemplos de expresiones que utilizan operadores aritméticos: Expresión Resultado Expresión Resultado 5 + 2 * (5 + 2) * 20 / 5 – / (5 – 3) * 2 – (8 + 12) * 2 – % 2 – (4 + 17) % 2 – 6 – 3 * – (6 – 3) * (2 + 7) –

34 Los enunciados de asignación y las expresiones numéricas
Lo siguiente es un enunciado de asignación: daysLived = age * DAYS_PER_YEAR; En un enunciado de asignación se evalúa la expresión a la derecha del signo de = y se asigna el resultado a la variable de la izquierda.

35 Los enunciados de asignación y las expresiones numéricas (cont.)
Los siguientes son ejemplos de enunciados de asignación que evalúan expresiones numéricas: cost = ; tax = cost * .07; total = cost + tax - discount; average = (nota1 + nota2 + nota3)/ 3.0; Note en el último enunciado que, si no se colocan los paréntesis, el promedio se calcularía incorrectamente.

36 Los enunciados de asignación y las expresiones numéricas (cont.)
Al símbolo = se le conoce como el operador de asignación. Al lado izquierdo del operador de asignación solamente puede aparecer una variable (la que almacenará el resultado). Al lado derecho del operador de asignación puede aparecer: Un literal Una constante simbólica Una variable Una expresión que combine los anteriores

37 Los enunciados de asignación y las expresiones numéricas (cont.)
Los siguientes son algunos ejemplos de enunciados de asignación: value1 = 15; value2 = HOURS_PER_DAY; value3 = value1; value4 = value2 * 5; value3 = value3 + 1; Note en el último ejemplo que matemáticamente esto no tiene sentido pero en programación esto equivale a aumentar por uno el valor de la variable. Este enunciado lo podemos usar para simular el proceso humano de contar.

38 Los enunciados de asignación y las expresiones numéricas (cont.)
Un enunciado de asignación como value3 = value3 + 1; es tan común en programación que Java incluye una serie de operadores diseñados específicamente para abreviar estos enunciados. Los operadores compuestos combinan la operación de asignación con una operación aritmética.

39 La conversión entre tipos de datos numéricos
Para que se almacene un valor en una variable es necesario que el tipo del valor sea compatible con el declarado para la variable. Java hace algunas conversiones automáticamente de forma que el valor y la variable donde se almacena sean compatibles excepto si esto puede ocasionar perdida de datos.

40 La conversión entre tipos de datos numéricos (cont.)
Por ejemplo, los siguientes enunciados no causarán ningún problema: int number = 60; double value = number; El segundo enunciado declara la variable value como de tipo double y le asigna 60.0 Note que el 60 de la variable number se convirtió de forma automática a 60.0 ya que no se pierde información en la conversión.

41 La conversión entre tipos de datos numéricos (cont.)
Los siguientes enunciados sí causarán problemas: double number = 6.579; int value = number; En este caso, no se puede asignar el valor de number a value a menos que se haga una de dos cosas con el 6.579: Se redondea el valor, convirtiéndolo en 7 Se trunca el valor (se descarta la parte fraccionaria), convirtiéndolo en 6 En ambos casos, la conversión causa pérdida de información y no se realiza automáticamente, causando un error de sintaxis.

42 La conversión entre tipos de datos numéricos (cont.)
¿Cómo Java sabe si puede hacer la conversión automática? En Java los tipos de datos guardan una jerarquía u orden de precedencia. La conversión de un valor de menor jerarquía a uno de mayor jerarquía (widening) se realiza automáticamente. double Mayor Jerarquía float long int short byte Menor Jerarquía

43 La conversión entre tipos de datos numéricos (cont.)
La conversión de un valor de mayor jerarquía a uno de menor jerarquía (narrowing) causa un error de sintaxis a menos que el programador fuerce esta conversión haciendo type casting. En los siguientes enunciados se utilizó el type casting para convertir el a entero truncando y almacenar el nuevo valor (ahora 6) en value. double number = 6.579; int value = (int)number;

44 La conversión entre tipos de datos numéricos (cont.)
Otro ejemplo: int exam1 = 97, exam2 = 88, exam3 = 93; double average = (exam1 + exam2 + exam3) / 3; ¿Qué se almacena en average? Aunque el promedio es , se almacena 92.0 debido a que la división de enteros descartó la parte fraccionaria del resultado. Para resolver este problema se puede usar type casting: double average = (double)(exam1 + exam2 + exam3) / 3;

45 La conversión entre tipos de datos numéricos (cont.)
public class StudentAverageApp { public static void main(String[] args) { int exam1 = 97, exam2 = 88, exam3 = 93; double average; average = (double)(exam1 + exam2 + exam3) / 3; System.out.println("The average is " + average); }

46 Los caracteres y el tipo de datos char
Como se indicó al inicio de esta lección, Java provee el tipo de datos char para variables en las que se almacena un solo caracter. Esto quiere decir que dentro de la variable se puede guardar una letra, dígito, espacio o cualquier otro símbolo que aparezca en el teclado.

47 Los caracteres y el tipo de datos char (cont.)
El siguiente programa muestra el uso de char: public class CharExample { public static void main(String[ ] args) { char currentChar = 'A'; System.out.println("The current character is " + currentChar); currentChar = 'B'; System.out.println("The new character is " + }

48 Las cadenas de caracteres y la clase String
Una variable que almacenará una cadena de caracteres debe ser declarada de tipo String. Una cadena de caracteres (String) puede ser un nombre, varias letras, una frase, una oración o cualquier combinación de caracteres entre comillas dobles.

49 Las cadenas de caracteres y la clase String (cont.)
La letra S mayúscula de la palabra String indica que éste es el nombre de una clase. En Java, las clases pueden ser usadas para: Representar programas como los que hemos escrito en el curso. Representar bibliotecas de rutinas (por ejemplo: System, JOptionPane, Math). Representar tipos de datos adicionales a los tipos de datos primitivos (por ejemplo: String).

50 Las cadenas de caracteres y la clase String (cont.)
Los tipos de datos primitivos representan valores atómicos, ésto es, que no se subdividen. En Java los tipos de datos primitivos son: Enteros: short, byte, int, long Reales: float, double Caracteres: char Lógicos o Booleanos: boolean

51 Las cadenas de caracteres y la clase String (cont.)
El tipo String se considera un tipos de datos compuesto ya que se construyen a base de datos primitivos (los caracteres). Otro nombre para los tipos de datos compuestos en Java es tipos de referencia.

52 Las cadenas de caracteres y la clase String (cont.)
Las variables cuyo tipo de datos es de referencia (como String) son particulares ya que no almacenan directamente el valor que se les asigna. Por razones técnicas que veremos en el próximo curso, el valor se almacena en un lugar distinto a donde se almacena la variable.

53 Las cadenas de caracteres y la clase String (cont.)
A este tipo de valor se le conoce como un objeto. La variable de tipo String almacena la dirección donde se encuentra el objeto. Se dice, por lo tanto, que una variable de tipo String contiene una referencia al valor asignado (el objeto).

54 Las cadenas de caracteres y la clase String (cont.)
Por ejemplo: int number = 5; char grade = ‘B’; String cityName = “Bayamón”; Esto es lo que se almacena en RAM: number 5 grade ‘B’ cityName address “Bayamón”

55 Las cadenas de caracteres y la clase String (cont.)
El operador más importante para manejar strings es la concatenación (+). Este operador simplemente une dos valores alfanuméricos. Ejemplos: “Ja” + “va”  “Java” “Puerto ” + “Rico”  “Puerto Rico”

56 Las cadenas de caracteres y la clase String (cont.)
En Java si se utiliza + y uno de los operandos es del tipo String, se convierten los demás operandos al string correspondiente y se concatenan. Por ejemplo: ‘P’ + “uerto Rico”  “Puerto Rico” “Your age is ” + 18  “Your age is 18” “The result is ” + (5 + 3)  “The result is 8” Este comportamiento es usado para mostrar valores de distintos tipos en la pantalla.


Descargar ppt "Algoritmos y Desarrollo de Programas I"

Presentaciones similares


Anuncios Google