lunes, 10 de junio de 2013

Es una secuencia ordenada de pasos (acciones) para resolver un problema, debe ser finito y estar definid;se expresa en lenguaje natural.
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones.

 Ejemplo:

1. PROBLEMA: Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a tomar la clase de programación!!), ¿qué debe haga el estudiante?

ALGORITMO:

Inicio
Dormir   haga 1 hasta que suene el despertador (o lo llame la mamá). 
Mirar la hora.
¿Hay tiempo suficiente? Si  hay,  entonces 
  Bañarse,Vestirse,Desayunar.
  Sino
 Vestirse,Cepillarse los dientes,Despedirse de la mamá y el papá.
 ¿Hay tiempo suficiente? 
Si, Caminar al paradero.
  Sino, Correr al paradero.
Hasta que pase un bus para la universidad haga :
 Esperar el bus,Ver a las demás personas que esperan un  bus.
Tomar el bus.
Mientras no llegue a la universidad haga 
   Seguir en el bus, Pelear mentalmente con el conductor.
Timbrar.
Bajarse.
Entrar a la universidad.


Fin

TIPOS DE DATOS

 Conjunto de valores juntos con las operaciones sobre esos valores. 
   Tipos elementales:
   *Entero 
   *Real
   *Lógico
   *Carácter
   * Cadena de caracteres
   *Punteros    


Tipo Entero:
Son variables que almacenan números enteros. Se pueden dividir en los siguientes tipos:
 

Nota: El tipo de variable en que se almacena por defecto un numero entero es int. El valor por defecto asciado a cualquier variable entera no inicializada es 0.

Tipo Real o de como flotante:
Son variables que almacenan datos numéricos con decimales. Se pueden dividir en los siguientes tipos: 
 
Nota: El tipo de variable en el que se almacena por defecto un numero decimal es double. El valor por defecto asociado a cualquier variable real no  inicializada es 0.0


Tipo Lógico o booleanas:

Son variables que almacenan dos posibles valores: true o false. No se corresponden con ningún valor numérico.
Ejemplo:
boolean tienesCalor=true;
Nota: El valor por defecto asociado a cualquier variable booleana no inicializada es false.

Tipo Carácter o char:

Son variables que almacenan caracteres individuales (letra, numero, signo ?, etc...). El carácter que se inicializa debe ir entre apóstrofes o comillas simples 'a'.
El código de caracteres empleado por Java es Unicode y recoge los caracteres de prácticamente todos los idiomas importantes del mundo (son unos 65.536). Los caracteres Unicode del alfabeto occidental corresponden a los primeros 256 enteros; es decir van desde [0, 255].
A cada carácter le corresponde unívocamente un número entero perteneciente al intervalo [0, 65536] o a [0, 255] si se trabaja sólo con el alfabeto occidental. Por ejemplo, la letra ñ es el entero 164. Más adelante se verá que el casting entre variables primitivas enteras y la variable char está permitido.
Ejemplo:
char miCaracter='n';
char miCaracter1=110;    (ídem antes, pero mediante el entero que le corresponde según Unicode)
char miCaracter2='\u006E'; (ídem antes, pero según notación Unicode. La notación Unicode, en general, es así: \uXXXX siendo X un dígito o cifra fundamental del sistema de numeración hexadecimal (0,1,2,...,9,A,B,...,F))
Asociado a este tipo de variable se tienen las secuencias de escape. Se emplean para representar caracteres especiales (por ejemplo, unas comillas dentro de una instrucción que exige una cadena entrecomillada) y caracteres no imprimibles como el tabulador, salto de línea, etc. Van precedidos de la contrabarra. Algunos de ellos se detallan en la tabla siguiente:
 

Nota: El valor por defecto asociado a cualquier variable char no inicializada es '\u0000'.

ORDEN DE PRESEDENCIA

La recomendación primera es utilizar paréntesis siempre que se considere oportuno.
En ausencia de ellos el orden de evaluación de los operadores es el siguiente:
operadores unarios
++, - -, !, - , +, casting
multiplicaciones y divisiones
*, /, %
sumas y restas
+, -
operadores relacionales
data-blogger-escaped-alt="Descripción: $ < $" data-blogger-escaped-src="file:///C:\Users\USUARIO\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" data-blogger-escaped-v:shapes="Imagen_x0020_5" v:shapes="_x0000_i1025">Descripción: $ > $ data-blogger-escaped-alt="Descripción: $ <= $" data-blogger-escaped-src="file:///C:\Users\USUARIO\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png" data-blogger-escaped-v:shapes="Imagen_x0020_3" v:shapes="_x0000_i1027"> data-blogger-escaped-alt="Descripción: $ >= $" data-blogger-escaped-src="file:///C:\Users\USUARIO\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png" data-blogger-escaped-v:shapes="Imagen_x0020_2" v:shapes="_x0000_i1028">
comparaciones de igualdad
==, !=
`` y `` lógico
&&
``o'' lógico
Descripción: $\vert\vert$
condicional ternario
?         :
asignaciones
=, +=, -=, *=, /=, %=
 Se operan primero (tienen mayor precedencia) lo que se encuentran más  arriba en la tabla. El ultimo en evaluarse es la asignación.

CONDICIONES

Se divide en:
*Condiciones simples: En general todas las condiciones simples se forman con;
Variables operadores relacionales constante o var.
Sexo = m
Sueldo > 300,000
Una condición simple se define como el conjunto de variables y/o constantes unidas por los llamados operadores relacionales.
Los operadores relacionales que reconoce el lenguaje JAVA son:
Operador Significado
== Igual que
Mayor que
< Menor que
= Mayor o igual que.
⇐ Menor o igual que.
!= No es igual que, o es diferente que.
*Condiciones compuestas: En muchas ocasiones es necesario presentar mas de una condición para su evaluación al computador.
Por ejemplo que el computador muestre la boleta de un alumno si este estudia la carrera de medicina y su promedio de calificaciones es mayor de 70.
Una condición compuesta se define como dos o más condiciones simples unidas por los llamados operadores lógicos.
Los operadores lógicos que java jsp reconoce son:
OPERADOR
SIGNIFICADO
&&
“Y” LOGICO
“O” LOGICO
!
“NO” NEGACION
Ejemplo:
if ( (sueldo >100) && ( sexo=='m') ) etc, etc, etc.
Y recordar que para comparar strings usar;
if ( carrera.compareTo(“informática”) == 0 )
Notas:
Observar que cada condición simple lleva sus propios paréntesis.
Si la variable es de tipo string el dato va entre comillas (”), pero si la variable es de tipo char el dato va entre apostrofes (').
Para que el computador evalúe como CIERTA una condición compuesta que contiene el operador lógico”&&”, las dos condiciones simples deben ser ciertas.

Para que el computador evalúe como CIERTA una condición compuesta que contiene el operador lógico “||”, basta con que una de las condiciones simples sea cierta.

CICLOS

 Un ciclo es una acción que se repite determinada cantidad de veces, esta repetición esta basada en la condicional que tenga el ciclo, en la parte de la condicional la podemos manejar con los operadores lógicos que hemos visto anteriormente. Existen tres tipos de ciclos diferentes, cada uno se maneja de una forma distinta y difieren en la evaluación de la condicional, estos ciclos son:
FOR
Sintaxis:
for (inicialización  ;  condición  ;  acción  )
acción a realizar;
Si se requiere realizar más de una acción se deben utilizar llaves.
for (inicialización  ;  condición  ;  acción )
{
bloque de acciones;
}
uncionamiento del For
1-Ejecuta el o los estatutos de inicialización
2-Evalúa la condición, si es verdadera entra al ciclo
3-Ejecuta el o los estatutos
4-Ejecuta la o las acciones y regresa al paso 2
Notas sobre el For
*Las 3 partes del for son opcionales, si no se pone condición se toma como verdadero.
*Si no se incluye la inicialización o condición, los “;” deben de ir.
Ejemplo:  for ( ; a > 10 ; a–)
*Si la primera vez la condición es falsa no se ejecuta ningún estatuto y termina el for
*Una variable puede declararse en la sección de inicialización, solo hay que tomar en cuenta que esta variable solo es reconocida dentro del ciclo.
Ejemplo:  for (int num = 1; num < = 10; num++)
Para ilustrar mejor lo anterior mostrare un simple ejemplo del ciclo, el cual me pedirá ingresar una palabra, esta acción terminara hasta que se ingrese la palabra que nosotros deseemos, en este caso escogí la palabra “fin
Como resultado nos mostrara el numero de veces que se ingresaron palabras hasta llegar a la palabra que termino el ciclo.
WHILE
Sintaxis while ( condición )estatuto;
Si se requiere realizar más de un estatuto se deben utilizar llaves.
while ( condición )
{
bloque de estatutos;


}

ARREGLOS BIDIMENSIONALES

Los arreglos bidimensionales en java se crean de un modo muy similar al de C++(con reserva dinámica de memoria).
En java una matriz es un vector de vectores filas, o masen concreto un vector de referencia a los vectores fila.Con este esquema cada fila podría tener un numero de elementos diferentes.
Una matriz se puede crear directamente en la forma:
int [] [] mat;

Crear el vector de referencias a las filas:
mat = new int [nfilas][];

Reservar memoriapara los vectores  correspondiente a  las filas:
for (int i=0; i<nfilas; i ++ );
mat [i ] = new int [ncols];

A continuación se presentan algunos ejemplos de creación de arreglos bidimensionales:

//crear una matriz 3x3
//se inicializan a cero

double mat [] [] = new double [3] [3];
int [] [] b = {{ 1,2,3}, {4,5,6},//esta coma es permitida
};

int c = new [3][];//se crea el array de referencias arrays

c [0] = new int  [5];

c [1] = new int  [4];

c [2] = new int  [8];



En el caso de una matriz b, b.length es el numero de filas y b[0].length  es el numero de columnas (de la fila 0).

ARREGLOS UNIDIMENSIONALES

Los arreglos unidimensionales son de una sola dimensión
1.Crear  arreglos o arrays unidimensionales:
Para crear un array se deben realizar dos operaciones:
-     *Declaración
-     *instanciación

La referencia será el nombre con el que manejaremos el array en el programa.
Se debe indicar el nombre del array y el tipo de datos que contendrá.
De forma general un array unidimensional se puede declarar en java de cualquiera de estas dos formas:
 tipo []  nombreArray;
 tipo nombreArray[];
 tipo: indica el tipo de datos que contendrá. Un array puede contener elementos     de tipo básico o referencias a objetos.
nombreArray: es la referencia al array. Es el nombre que se usará en el programa para manejarlo.
Por ejemplo:
int [] ventas;  //array de datos de tipo int llamado ventas
double [] temperaturas;  //array de datos de tipo double llamado temperaturas
String [] nombres; //array de datos de tipo String llamado nombres

        2. Inicializar arreglos unidimensionales : 
Un array es un objeto, por lo tanto, cuando se crea, a sus elementos se les asigna automáticamente un valor inicial:

Valores iniciales por defecto para un array en java:
0 para arrays numéricos
'\u0000' (carácter nulo) para arrays de caracteres
false para arrays booleanos
null para arrays de String y de referencias a objetos.

Ejemplos:
//creación de un array de 4 elementos booleanos
boolean [] resultados = {true,false,true,false};
//creación de un array de 7 elementos de tipo String
String [] días = {"Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"};

3. Acceder a los elementos  de un arreglo :
Para acceder a cada elemento del array se utiliza el nombre del array y un índice que indica la posición que ocupa el elemento dentro del array.
El índice se escribe entre corchetes.
Se puede utilizar como índice un valor entero, una variable de tipo entero o una expresión de tipo entero.
El primer elemento del array ocupa la posición 0, el segundo la posición 1, etc. En un array de N elementos el último ocupará la posición N-1.
Un elemento de un array se puede utilizar igual que cualquier otra variable. Se puede hacer con ellos las mismas operaciones que se pueden hacer con el resto de variables (incremento, decremento, operaciones aritméticas, comparaciones, etc).
Por ejemplo:
 

 Para tener mas claro que es un arreglo unidimensionales en el siguiente tutoríal se aclarara las dudas: