JAVA

HISTORIA DE JAVA 
Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road, en Menlo Park, en su desarrollo.
El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas, y finalmente se renombró como Java.
Es frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus diseñadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la de que Java debe su nombre a un tipo de café disponible en la cafetería cercana; de ahí que el icono de Java sea una taza de café caliente. Un pequeño signo que da fuerza a esta teoría es que los cuatro primeros bytes (el número mágico) de los archivos.class que genera el compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas estas teorías, el nombre fue sacado al parecer de una lista aleatoria de palabras.
La primera característica, orientado a objetos  (“OO”), se refiere a un método de programación y al diseño del lenguaje. Aunque hay muchas interpretaciones para OO, una primera idea es diseñar el software de forma que los distintos tipos de datos que usen estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos. Un objeto puede verse como un paquete que contiene el “comportamiento” (el código) y el “estado” (datos). El principio es separar aquello que cambia de las cosas que permanecen inalterables. Frecuentemente, cambiar una estructura de datos implica un cambio en el código que opera sobre los mismos, o viceversa. Esta separación en objetos coherentes e independientes ofrece una base más estable para el diseño de un sistema software. El objetivo es hacer que grandes proyectos sean fáciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el número de proyectos fallidos.

La segunda característica, la independencia de la plataforma, significa que programas escritos en el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware. Este es el significado de ser capaz de escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo, tal como reza el axioma de Java, "write once, run anywhere".
Para ello, se compila el código fuente escrito en lenguaje Java, para generar un código conocido como “bytecode” (específicamente Java bytecode), instrucciones máquina simplificadas específicas de la plataforma Java. Esta pieza está “a medio camino” entre el código fuente y el código máquina que entiende el dispositivo destino.El bytecode es ejecutado entonces en la máquina virtual (JVM), un programa escrito en código nativo de la plataforma destino (que es el que entiende su hardware), que interpreta y ejecuta el código. Además, se suministran bibliotecas adicionales para acceder a las características de cada dispositivo (como los gráficos, ejecución mediante hebras o threads, la interfaz de red) de forma unificada. Se debe tener presente que, aunque hay una etapa explícita de compilación, el bytecode generado es interpretado o convertido a instrucciones máquina del código nativo por el compilador JIT (Just In Time).


ESTRUCTURA LÓGICA DE JAVA


CICLOS EN JAVA 

CICLO FOR : Los ciclos for (o ciclos para) son una estructuras de control cíclica, nos permiten ejecutar una o varias líneas de código de forma iterativa (o repetitiva), pero teniendo cierto control y conocimiento sobre las iteraciones. En el ciclo for, es necesario tener un valor inicial y un valor final, y opcionalmente podemos hacer uso del tamaño del "paso" entre cada "giro" o iteración del ciclo.
for(int i = valor inicial; i <= valor final; i = i + paso)
{
                Bloque de Instrucciones
}
 EJEMPLO:

public class CicloFor{
                public static void main(String args[]){
                               for(int i=500;i<=1000;i+=2){
                                               System.out.println(i);
                               }
                }


CICLO WHILE: presenta ciertas similitudes y ciertas diferencias con el bucle for. La repetición en este caso se produce no un número predeterminado de veces, sino mientras se cumpla una condición.

 while (condición) { instrucciones a ejecutarse } 
public int leerNumero() {
    Scanner sc = new Scanner(System.in);
    int numero = -1;

    while (numero <= 0) {
        System.out.println("Introduce un numero positivo: ");
        numero = sc.nextInt();
    }

    sc.close();

    return numero;
}   


CICLO DO WHILE: es muy similar al ciclo while. La diferencia radica en cuándo se evalúa la condición de salida del ciclo. En el ciclo while esta evaluación se realiza antes de entrar al ciclo, lo que significa que el ciclo puede no llegar ejecutarse. En cambio, en un ciclo  do while, la evaluación se hace después de la primera ejecución del ciclo, lo que significa que el bucle obligatoriamente se ejecuta al menos en una ocasión.


do {
    ...
} while (condicion)
public void numeroPar(int numero) {
    System.out.println("Numero par menor que: " + numero);
    int n;
    do {
        n = (int) (Math.random() * numero);
        System.out.println(n);
    } while (n % 2 != 0);
    System.out.println("Y el numero par elegido es: " + n);
}
CONDICIONAL If

Se evalúa una condición y en caso de que se cumpla se ejecuta el contenido entre las llaves {} o en caso de que se omitan se ejecuta el código hasta el primer “;” por lo tanto si no se usan los {} la condición aplica solo a la siguiente instrucción al if.

import java.util.Scanner;
 public class PositivoNegativo{
  public static void main(String[]args){
Scanner sc=new Scanner(System.in);
int num;
System.out.print("digite un numero");
num=sc.nextInt();
if(num==0){
System.out.print("neutro");
}
else{
if(num>0){
System.out.print("el numero es positivo");
}
else{
System.out.print("el numero es negativo");
}


}

}
}
VECTORES EN JAVA 

Los vectores se utilizan para almacenar información de una manera más ordenada y de esta forma será mas fácil y rápido de acceder a la información cuando la necesitemos.
Un vector es una estructura estática, que se maneja por índices, cada uno de estos índices es un espacio donde se puede almacenar un valor. Si visualizamos un vector en una imagen sería así:
tipo de variable;nombrevec[ ];


import java.util.Scanner;
       public class Notas{
            public static void main(String[]arg){
            Scanner mt=new Scanner(System.in);
              Double[][] notas;
              System.out.println ("Digite dimencion de la Matriz");
              System.out.println("Filas");
              int f=mt.nextInt();
              System.out.println("Columnas");
              int c=mt.nextInt();
              
              notas=new Double[f][c];
              for(int i=0; i<notas.length;i++){
                 
                  for(int j=0; j<notas[i].length;j++){
                     System.out.println ("DIgite notas");
                     notas[i][j]=mt.nextDouble();
                     
                  }
                  
              }
               for(int i=0; i<notas.length;i++){
                 
                  for(int j=0; j<notas[i].length;j++){
                     System.out.print ("|"+notas[i][j]+"|");
                     
                     
                  }
                 System.out.println(); 
              }
          
            }
       }
             



VECTORES EN PSeInt

un vector es una variable,espacio de memoria que agrupa información del mismo tipo para luego referirse a los mismos utilizando uno o más subíndices.
Para crear un arreglo en PSeInt se utiliza la palabra clave Dimensión, seguido del nombre del arreglo (identificador) y su tamaño (numero de subíndices) entre corchetes [].

Acontinuación se presentan algunos ejemplos de vectores en PSeInt:

vector que nos imprime si el numero digitado es positivo o negativo
vector que nos imprime los números digitados de manera inversa 
en este ejercicio se presenta una suma de vectores  

En este ejercicio se puede apreciar la creación de un menú y la realización de diferentes operaciones 

SISTEMAS NUMÉRICOS

 EL SISTEMA BINARIO El sistema binario  requiere únicamente dos dígitos, 0 y 1. Este sistema es ideal para uso en sistemas digitales, ya que éstos están construidos de dispositivos de dos estados (relevadores, transistores, etc.). 
EL SISTEMA OCTAL es el sistema numérico en base 8 se llama octal y utiliza los dígitos del 0 al 7.
EL SISTEMA DECIMAL  es un sistema de numeración posicional en el que las cantidades  se representan utilizando como base aritmética  las potencias del número diez
EL SISTEMA HEXADECIMAL es el sistema de numeración posicional  que tiene como base el 16. Su uso actual está muy vinculado a la informática y ciencias de la computación.
tabla de valores 



Pseint

PSeInt es una herramienta para aprender la lógica de programación, esta diseñado para estudiantes sin experiencia en este tema. Mediante la utilización de un simple e intuitivo pseudocódigo en español, permite comprender conceptos básicos y fundamentales de un algoritmo computacional.Descarga el Manual de Pseint


     



           
PSEUDOCÓDIGO EN Pseint






DIAGRAMAS DE FLUJO

Los diagramas de flujo son una herramienta que permite representar visualmente qué operaciones se requieren y en qué secuencia se deben efectuar para solucionar un problema dado. Por consiguiente, un diagrama de flujo es la representación gráfica mediante símbolos especiales, de los pasos o procedimientos de manera secuencial y lógica que se deben realizar para solucionar un problema dado. 
tabla de los principales símbolos utilizados para elaborar diagramas de flujo.
a continuación se presenta algunos ejemplos de diagrama de flujo :
diagrama de flujo para determinar la suma de dos números 
diagrama de flujo para obtener el volumen de un cubo 
CONDICIONALES 
diagrama de flujo para obtener el numero mayor y menor


diagrama de flujo para determinar si un número es positivo o negativo
diagrama de flujo para designar si un numero es par o impar 
CICLOS 

diagrama de flujo para obtener la suma de diez cantidades con ciclo.






TIPOS DE DATOS


Un  tipo de dato es la propiedad de un valor que determina su dominio, qué valores puede tomar, qué operaciones se le pueden aplicar y cómo es representado internamente por el computador.En cualquier lenguaje de programación es muy importante saber manejar los tipos de datos lo que permite almacenar la información.
  • Números enteros : el tipo int, permite representar números enteros.Los valores que puede tomar un int son todos los números enteros: ... -3-2-10123, ...
  • Números reales :El tipo float permite representar números reales.Hay que tener mucho cuidado, porque los números reales no se pueden representar de manera exacta en un computador. Por ejemplo, el número decimal 0.7 es representado internamente por el computador mediante la aproximación 0.69999999999999996. Todas las operaciones entre valores float son aproximaciones. 
  • Números complejos:El tipo complex permite representar números complejos.Los números complejos tienen una parte real y una imaginaria. La parte imaginaria es denotada agregando una J inmediatamente después de su valor.
  • Valores lógicosLos valores lógicos True y False (verdadero y falso) son de tipo bool, que representa valores lógicos.
  • Texto:A los valores que representan texto se les llama strings, y tienen el tipo str.Los strings literales pueden ser representados con texto entre comillas simples o comillas dobles.
  • Nulo:Existe un valor llamado None que es utilizado para representar casos en que ningún valor es válido, o para indicar que una variable todavía no tiene un valor que tenga sentido.












VARIABLES


Básicamente la definición de una variable es  indicar el tipo de dato que se va a incluir y almacenar.Teniendo en cuenta lo anterior ,se aprovisiona determinado espacio o dirección  de memoria ( cantidad de bytes que ocupa un tipo de dato), en esencia una variable es una zona donde se almacena información, que puede ser de tipo numérico, alfanumérico, etc. Se debe definir la variable antes de introducir cualquier valor, ya que es necesario reservar el espacio de memoria según el  tipo dato ingresado.