Cap I
-
Upload
francis5020 -
Category
Technology
-
view
692 -
download
1
Transcript of Cap I
![Page 1: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/1.jpg)
Programación de Algoritmos
Autor: Luis Eduardo Villavicencio
Prof.: Ing. Danilo Jaramillo
![Page 2: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/2.jpg)
![Page 3: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/3.jpg)
Java utiliza los siguientes tipos de datos que van en rangos en el caso de los enteros que son: byte, short, int y long:
EnterosNombre Tamaño Rango
Long 64 bits -9.233.372.036.854.775.
808L a 9.233.372.036.854.775.
807L
Int 32 bits -2.147.483.648 a 2.147.483.647
Short 16 bits -32.768 a 32.767
Byte 8 bits -128 a 127
![Page 4: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/4.jpg)
Los datos de coma flotante de Java son float y double y sus rangos se explican en el siguiente cuadro:
Nombre Tamaño Rango
float 32 bits ± 3.40282347E+38F
double 64bits ± 1.79769313486231570
E+308
![Page 5: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/5.jpg)
En Java se utiliza Unicode para almacenar los caracteres y por ello se emplean 16 bits para almacenar cada caracter.
Secuencia Descripción
\b Retroceso
\t Tabulador
\r Retorno de carro
\n Nueva línea
\’ Comilla simple
\” Comilla doble
\\ Barra invertida
![Page 6: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/6.jpg)
Java también utiliza datos lógicos como es el caso del Boolean el mismo que solo puede tomar 2 valores de Verdadero y Falso.
En Java usamos envoltorios que recubren el tipo de dato básico con una clase, de ahí en adelante el tipo básico se convierte en un objeto.En la siguiente tabla se muestra los 9 tipos de envoltorios para los tipos básicos:
![Page 7: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/7.jpg)
Tipo Envoltorio
int Integer
long Long
float Float
double Double
short Short
byte Byte
char Character
boolean Boolean
void Void
![Page 8: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/8.jpg)
Declaración de Variablestipo identificador [=valor][,identificador[=valor]…];
Ejemplo:int i=5;
float j;
double d = Math.sqrt(i*2);
![Page 9: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/9.jpg)
Conversión AutomáticaExisten dos reglas para determinar si se
puede realizar la conversión automática.Los dos tipos son compatibles.El tipo destino es más grande que el tipo origen.Reglas de Compatibilidad:Todos los tipos numéricos son compatibles entre sí, sin importar que sean enteros o reales.El tipo char es compatible con int.El tipo boolean no es compatible con ningún otro tipo.
![Page 10: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/10.jpg)
Ejemplos de conversión automática
int a;
a=‘c’;
short g;
g=678;
![Page 11: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/11.jpg)
Conversión explicita (Casting)Para realizar ésta conversión debemos anteponer al
dato quequeremos cambiar el tipo destino encerrando en
paréntesis.La conversión se realiza siguiendo las siguientes
reglas:Entre números enteros, si el destino es mayor que
el origen, el valor resultante será el resto (módulo) de la división entera del valor con el rango del tipo de destino.
Si el origen es un número real y el destino un entero, la parte decimal se trunca, además si la parte entera restante no cabe en el destino, se aplica en criterio del módulo.
Entre número reales, se guarda el máximo valor posible.
A continuación se muestran algunos ejemplos de conversión explicita:
![Page 12: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/12.jpg)
dou=3.40282347E+50;
float fl=(float) dou;
double d=123.67;
int dest=(int) d;
int j= 257;
byte b;
b=(byte) j;
![Page 13: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/13.jpg)
Declaración de arrays de una dimensión.La declaración se realiza especificando el tipo del array seguido de [], después viene el nombre de la variable.
int[] a;
Ahora reservamos un espacio de memoria para almacenar el array con el operador new.
a=new int[20];
![Page 14: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/14.jpg)
Ejemplos de cómo declarar arrays
float[] b=new float[10];
int tamaño=15;
float a[]=new float[tamaño];
![Page 15: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/15.jpg)
Declaración de un array multidimensional
La forma de definirlo se ve a continuación:int[][] tabla=new int[6][7];
Al definir un array multidimensional, sólo es obligatorio indicar el número de filas, después se puede reservar memoria para el resto de forma independiente.
int[][] tabla=new int[3][];tabla[0]=new int[3];tabla[1]=new int[3];
Cuando tenemos más dimensiones todo continúa funcionando de la misma forma, sólo es necesario añadir otro grupo de corchetes para poder declarar cada nueva dimensión.
![Page 16: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/16.jpg)
Operadores Aritméticos
Operador Descripción
+ Suma
- Resta
* Multiplicación
/ División
% Módulo
++ Incremento
-- Decremento
![Page 17: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/17.jpg)
Operadores Relacionales
Operador Descripción
== Igual
!= Diferente
> Mayor que
< Menor que
>= Mayor o igual
<= Menor o igual
![Page 18: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/18.jpg)
Operadores Lógicos
Operador Descripción
& AND
| OR
^ XOR
&& AND en cortocircuito
|| OR en cortocircuito
! NOT
![Page 19: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/19.jpg)
SENTENCIAS CONDICIONALESSentencia if-else
if(expresión){ if(opción==3){ sentencia suma=suma+2; sentencia opción=0; ... }else{}else{ suma=0 sentencia opción=0; sentencia } ...}
![Page 20: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/20.jpg)
int opción=0;
switch(opción){
case 1: Suma;
break;
case 2: Resta;
break;
case 3: Multiplicación;
break;
case 4: División;
break;
case 5: Potencia;
break;
default: System.out.println(“Opción Incorrecta”);
}
![Page 21: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/21.jpg)
Sentencia switchswitch(expresión){
case valor1: sentencia;sentencia;...[break;]
case valor2: sentencia;sentencia;...[break;]
[default: sentencia; sentencia;
}
![Page 22: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/22.jpg)
Bucle whileSu principal característica es que posee una condición de entrada, es decir si se cumple la condición, se ejecutan las sentencias que estén dentro del bucle.
int valor=1, suma=0;
while(expresión){ while(valor>=10){
sentencia; suma=suma+valor;
sentencia; valor++;
... }
}
![Page 23: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/23.jpg)
Bucle forAl igual que el bucle while posee una condición de entrada, es decir si se cumple la condición, se ejecutan las sentencias que estén dentro del bucle.
int i, producto=1;
for(exp;exp;exp){ for(i=1;i>=50;i++)
sentencia; producto= producto*i;
sentencia; }
...
}
![Page 24: Cap I](https://reader036.fdocuments.us/reader036/viewer/2022081519/55c30081bb61eb682a8b47db/html5/thumbnails/24.jpg)
Bucle do-whileÉste bucle al contrario de los anteriores posee una condición de salida, lo que permite al bucle ejecutarse por lo menos una vez.
do{
sentencia;
sentencia;
...
}while(expresión);