domingo, 12 de marzo de 2017

Clase String


La clase String clase String representa una cadena de caracteres. Todos los literales de la cadena tales como “abc” son implementados como instancias de ésta clase.
La clase String incluye métodos que permiten examinar los caracteres individuales de una cadena para compararlos, ubicarlos extraerlos como subcadenas y para crear copias de una cadena convirtiendo todos sus caracteres a mayúsculas o minúsculas. 
Java provee un soporte especial para la concatenación (unión) de cadenas con el operador (+). y para convertir otros objetos a cadenas. La concatenación de cadenas es implementada a través de la clase StringBuffer y su método append(). Las conversiones son implementadas a través del método toString() definido en la clase Object la cual es heredada por todas las clases en Java.

La clase String pertenece al paquete java.lang.
Existen diferentes formas para crear objetos String como las siguientes: 

String str =”abc”;
char str[] = {‘a’,’b’,’c’};  //arreglo de caracteres
String str = new String (“abc”) ;  //objeto con valor inicial “abc”

El lenguaje java proporciona el operador “+” para concatenar (unir) objetos String.

Un objeto String representa una cadena de caracteres no modificable; por lo tanto, una operación como convertir a mayúsculas o minúsculas no modificará el objeto original sino que devolverá un nuevo objeto con la cadena resultante de esa operación el cual deberá ser guardado en otro objeto string.



JERARQUÍA DE CLASES
ES cualquier clasificación u ordenación de abstracciones en una estructura de árbol. Algunos tipos de Jerarquía son: Jerarquía de agregación, jerarquía de clases, jerarquía de herencia, jerarquía de partición, jerarquía de especialización, jerarquía de tipo. Éste concepto es sumamente importante ya que con ello conocemos la importancia de dividir los problemas en una jerarquía de ideas. 
Los dos tipos importantes de jerarquía son: la de generalización/especialización y la de todo/parte.
La jerarquía de generalización/especialización se basa en que las propiedades de una categoría general se transmiten a todas las categorías que se especializan o subcategorías. En la programación, la Jerarquía de clases significa un conjunto de clases relacionadas por la jerarquía de generalización/especialización.

MÉTODOS

String (String valor) .- Se usa cuando se desea crear una cadena de caracteres : 

String cadena = “Hola”
String cadena = new String (“Hola”); //Constructor de la clase String


cadena.concat(string txt) .- Devuelve como resultado un nuevo objeto String resultado de concatenar dos cadena: 



1
2
String cadena = “Hola”        
String result= cadena.concat(" Mundo");//El resultado será Hola mundo

cadena.compareTo(String otra cadena) .- Compara lexicográficamente la cadena con otra cadena , esta comparación es carácter por carácter  teniendo en cuenta que las mayúsculas son mayores que las minúsculas – esto es de acuerdo al código ASCII o UNICODE – según esto devuelve : 



< 0 : si cadena < otra cadena
= 0 : si cadena = otra cadena
> 0 : si cadena > otra cadena

Ejemplo :
ANA > ana
ana > Sofia
ANA > ANA
abcde > abcdefg 

cadena.toIgnoreCase(String otra cadena) .- Hace lo mismo que compareTo pero con la única diferencia que no se hace diferencia entre mayúsculas y minúsculas ; es decir : ANA= ana
cadena.length() .- Devuelve la longitud o número de caracteres de la cadena :

String cad="Hola Mundo";
int cant = cad.length();// El valor de cant será 10
cadena.toLowerCase() .- Convierte a minúsculas las letras mayúsculas de la cadena
cadena.toUpperCase().- Convierte en mayúsculas las letras minúsculas de la cadena.


1
2
String cad1="Esto Es Una Prueba";
String cad2=cad1.toUpperCase();//cad2 será igual a : ESTO ES UNA PRUEBA.

cadena.trim () .- Elimina los espacios en blanco que puedan haber al principio o al final de la cadena.


1
2
String cad1="     Esto Es Una Prueba   ";
String cad2=cad1.toLowerCase();//cad2=Esto Es Una Prueba.


CONSTRUCTORES
Constructor
Descripción
String( )
Crea un nuevo objeto String vacío sin caracteres.
String (byte[ ] bytes)
Crea un nuevo objeto String inicializado con los caracteres equivalentes a cada número guardado en el arreglo de bytes.
String (char[ ] value)
Crea un nuevo objeto String inicializado con los caracteres contenidos en el arreglo dado como parámetro.
String (String cadena)
Crea un nuevo objeto String inicializado con el valor dado como parámetro.
MÉTODOS
Tipo de retorno
Método
Descripción
char
charAt(int index)
Retorna el carácter correspondiente al índice dado como parámetro.
int
compareTo(String otraCadena)
Retorna como entero el resultado de la comparación entre la cadena que lo llama con otraCadena. Si el parámetro devuelto es "0" significa que las dos cadenas son iguales; realizándose la comparación carácter con carácter diferenciándose las mayúsculas con las minúsculas.
int
compareToIgnoreCase(String otraCadena)
Retorna como entero el resultado de la comparación de la cadena que lo llama con otraCadena. Si éste entero es 0 significa que ambas cadenas son iguales; siendo la comparación carácter con carácter pero ignorando la diferencias entre mayúsculas y minúsculas.
String 
concat(String otraCadena)
Retorna el resultado de la concatenación de la cadena con otraCadena dada como parámetro.
boolean
equals(Object otroObjeto )
Retorna true si la cadena que lo llama es igual al objeto enviado como parámetro.
boolean
equalsignoreCase(String otraCadena)
Retorna true si la cadena que lo llama es igual a la cadena dad  como parámetro ignorando las diferencias entre mayúsculas y minúsculas.
int
indexOf (String cad)
Retorna la posición de la primera ocurrencia encontrada de la cadena dada como parámetro dentro de la cadena que llama al método.
int
indexOf (String cad, int ini)
Retorna la posición de la primera ocurrencia encontrada de la cadena dada como parámetro pero comenzando la búsqueda desde la posición ini dada como parámetro.
int
lastIndexOf (String cad) 
Retorna la posición de la ultima ocurrencia de la cadena dada como parámetro.
int
lastIndexOf (String cad,int ini)
Retorna la posición de la última ocurrencia de la cadena dada como parámetro buscando en retroceso a partir de la posición dada como parámetro.
int
length ( )
Retorna el número de caracteres que contiene la cadena.
String
replace (char car1,char car2)
Retorna una nueva cadena como resultado de reemplazar todas las ocurrencias del carácter "car1" por el carácter "car2" dados como parámetros.
String
replaceAll (String cad1,String cad2)
Retorna una nueva cadena como resultado de reemplazar todas las concurrencias de la sub cadena cad1 por la sub cadena cad2 dada como parámetro.
boolean
startsWith (String cad)
Retorna true si la cadena que llama al método empieza con la subcadena cad dada como parámetro.
String
subString(int posIni)
Retorna una subcadena cuyo primer carácter empieza en la posición posIni dada como parámetro.
String
subString(int posIni,int posFin)
Retorna una subcadena cuyo primer carácter empieza en la posición posIni y  termina con el carácter de la posición  posFin.
String
toLowerCase( )
Retorna una nueva cadena como resultado de convertir todos los caracteres a minúsculas.
String
toUpperCase ( ) 
Retorna una nueva cadena como resultado de convertir todos los caracteres a mayúsculas.
String
trim ( )
Retorna una nueva cadena como resultado de omitir los espacios en blanco al inicio y al final de la cadena.




martes, 7 de marzo de 2017

Conceptos de fundamentos de programación


¿Qué es programación?
Programación es el proceso a través del cual un programa o aplicación informática es desarrollado.
Se conoce como programación en ciencias de la computación a los pasos que se abordan para crear el código fuente de un programa informático. De acuerdo con estos pasos, el código se escribe, se prueba y se perfecciona.

¿Qué es un programa?
Un programa es un conjunto de instrucciones u órdenes basadas en un lenguaje de programación que una computadora interpreta para resolver un problema o una función específica.
Conjunto secuenciado de instrucciones que quedan escritas en un lenguaje determinado con unos fines específicos.

Tipos de programación


  • Programación declarativa: mantiene un paradigma de programación el cual se basa en el desarrollo de programas que están especificando un conjunto de determinadas condiciones, proposiciones, afirmaciones, restricción, ecuaciones o transformaciones las cuales pueden mostrar, describir y detallar un problema y su solución. Esta solución se obtiene mediante diversos mecanismos internos de control. Las mismas no son específicas en cuanto a su localización, solo se le pide a la computadora que busque algo.


  • Programación estructurada: conocido también como un paradigma de la programación el cual se encuentra orientado a mejorar la calidad, claridad y el tiempo que tarde en se desarrollado un programa de computadora.
Para esto utiliza solamente subrutinas y tres estructuras: secuencia, selección e iteración.


  • Programación modular: este tipo de programación consiste principalmente en dividir los programas en partes llamadas subprogramas o módulos, los cuales son más legibles y manejables, es decir, tienen como fin facilitar su uso. Es el resultado evolutivo de la programación estructura para solucionar algunos problemas más grandes y difíciles de lo que la primera puede llegar a resolver.
Una vez aplicada la programación modular, un problema de índole complejo se divide en varios subproblemas mucho más simples los cuales son divididos, a su vez, en otros subproblemas más simples todavía. Este proceso se continúa hasta que se encuentra un subproblema lo suficientemente simple como para poder ser resuelto fácilmente. Esta técnica es conocida como refinamiento sucesivo o análisis descendente.
Un módulo es considerado cada una de las partes de un programa que puede resolver uno de los subproblemas encontrados, en los que se divide el problema original. Todos estos módulos contienen una tarea específica y definida diferente una de otra por lo que es posible que unos necesiten de otros para poder operar y concretar la finalización de un subproblema.
En los casos en los que un módulo necesita de otro, pueden comunicarse a través de una interfaz de comunicación la cual también se encuentra bien definida. En la práctica el módulo es considerado un proceso y función, muy diferente a la parte teórica el cual puede entenderse como una parte del programa. Sin embargo, no debe ser confundido el término procedimiento o función con el término módulo ya que el mismo puede contener muchos de ellos por lo que se debe tener cuidado.


  • Programación orientada a objetos: puede ser encontrado bajo las siglas POO, y se refiere a un paradigma de la programación el cual utiliza los objetos resultantes en sus interacciones para poder diseñar aplicaciones y programas informáticos.
Para esto basa sus conceptos en varias técnicas como la herencia, la cohesión, la abstracción, el polimorfismo, el encapsulamiento y el acoplamiento. Comienza su utilización en la década de los años 1990 y se mantiene hasta hoy, donde pueden encontrarse grandes variedades de lenguajes de programación que soportan la orientación a objetos

¿Qué es un paradigma de la programación?
Un paradigma de programación es una propuesta tecnológica adoptada por una comunidad de programadores y desarrolladores cuyo núcleo central es incuestionable en cuanto que únicamente trata de resolver uno o varios problemas claramente delimitados.

¿Qué es un intérprete en programación?
Analiza el programa fuente y lo ejecuta directamente, o sea en el ejemplo del traductor humano, éste sería un traductor humano que conforme a lo que está escuchando va ejecutando, sin generar ningún escrito, es decir que sobre la marcha va traduciendo.



¿Qué es un compilador?


Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje diferente. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.












domingo, 5 de marzo de 2017

Lenguajes de programación


Lenguajes
Según la definición teórica, como lenguajes se entiende a un sistema de comunicación que posee una determinada estructura, contenido y uso.
La programación es, en el vocabulario propio de la informática, el procedimiento de escritura del código fuente de un software. De esta manera, puede decirse que la programación le indica al programa informático qué acción tiene que llevar a cabo y cuál es el modo de concretarla.
Los lenguajes de programación son herramientas que nos permiten crear programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, entre otras.



Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro.

Los lenguajes de programación de una computadora en particular se conocen como código de máquinas o lenguaje de máquinas.

Estos lenguajes codificados en una computadora específica no podrán ser ejecutados en otra computadora diferente.

Por otra parte, los lenguajes de programación en código de máquina son verdaderamente difíciles de entender para una persona, ya que están compuestos de códigos numéricos sin sentido nemotécnico.
Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leídas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar.
Los lenguajes de programación representan en forma simbólica y en manera de un texto los códigos que podrán ser leídos por una persona. 
Los lenguajes de programación son independientes de las computadoras a utilizar.





Arreglos de programación

¿Qué  son los arreglos?
Los arreglos se pueden definir como objetos en los que podemos guardar más de una variable, es decir, al tener un único arreglo, este puede guardar múltiples variables de acuerdo a su tamaño o capacidad, es importante recordar que las variables guardadas deben ser del mismo tipo, por ejemplo: Si tenemos un arreglo de tipo numérico que puede almacenar 20 variables, solo podrá almacenar 20 números diferentes, no otras variables como Caracteres o String.

Existen 3 tipos de arreglos, los unidimensionales, bidimensionales y los multidimensionales.

Arreglos unidimensionales
Cada elemento de un arreglo está asignado a una posición concreta del arreglo, designada por un índice.

Declaración de Arreglos

La declaración de un arreglo unidimensional se puede hacer de 2 formas:

 1. tipoDato nombreArreglo[];
 2. tipoDato[] nombreArreglo;
 Ejemplo:

Int notas[] o Int[] notas;

En este ejemplo se está declarando un arreglo llamado notas que almacenará valores enteros (int).




Arreglos bidimensionales
Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas.

Ejemplo:

#include <stdio.h>
int main()
{
int fila, columna;
int matriz[2][2];
for(fila=0; fila<2; fila++)
for(columna=0; columna<2; columna++)
printf(“%d”, matriz[fila][columna]);
return 0;
}



Arreglos multidimensionales
Un arreglo multidimensional es simplemente una extensión de un  arreglo unidimensional. Más que almacenar una sola lista de elementos, piensa en un arreglo Multidimensional como el almacenamiento de múltiples listas de elementos. 
Por ejemplo, un arreglo  bidimensional almacena listas en un formato de tabla de dos dimensiones de filas y columnas, en donde cada  fila es una lista. Las filas proporcionan la dimensión vertical del arreglo, y las columnas dan la dimensión horizontal. Un arreglo de tres dimensiones almacena listas en un formato de tres dimensiones de filas, columnas y planos, en donde cada plano es un  arreglo bidimensional. Las  filas proporcionan la dimensión vertical; las columnas, la dimensión horizontal; y los planos, la dimensión de profundidad del arreglo.