Está en la página 1de 7

ALGORITMO.

Es “Un conjunto ordenado y finito de operaciones que permite hallar la solución de un


problema”, pues la formulación de algoritmos es el paso fundamental en el proceso de
creación de programas. Cabe aclarar que, para formular un algoritmo no es necesario
conocer la estructura interna del computador, así como tampoco es necesario conocer un
lenguaje de programación específico. Un algoritmo, en términos generales, es un conjunto
de instrucciones que se han de seguir para hacer una tarea.

Requisitos que debe cumplir un algoritmo:


▪ Finito: un algoritmo siempre debe terminar después de un número específico de pasos.
▪ Precisión: cada paso que realice un algoritmo debe estar obligatoriamente definido, así
como las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no
ambigua para cada paso.
▪ Entrada: un algoritmo tiene cero o más entradas, cuyos valores le son asignados antes
de que el algoritmo empiece.
▪ Salida: un algoritmo tiene una o más salidas, cuyos valores tienen una relación
determinada y específica con las entradas.
▪ Eficacia: un algoritmo debe cumplir correctamente con la tarea para la cual fue
formulado.
▪ General: un algoritmo debe de poder contemplar todos los casos de entrada.

REPRESENTACIÓN DE UN ALGORITMO.
En esta sección se explican dos formas de representar un algoritmo. La primera forma
corresponde a una representación gráfica y esquemática denominada diagrama de flujo,
la cual ofrece una descripción visual de las actividades implicadas en un proceso
mostrando la relación secuencial entre ellas y facilitando su rápida comprensión. La
segunda forma concierne a una descripción compacta e informal de alto nivel,
denominada pseudocódigo.

Diagrama de Flujo:
Un diagrama de flujo no solamente establece la representación de un algoritmo, sino que
sirve de herramienta complementaria dentro del proceso de formulación de la estructura
de un programa previo situarnos delante un computador a desarrollarlo.
Al ser una descripción visual de las actividades implicadas en un algoritmo y al mostrar la
relación secuencial entre ellas y su interdependencia con las demás actividades mientras
se va estableciendo el flujo de información, su correcto desarrollo nos permitirá
evidenciar aspectos probablemente desconocidos como es el caso de la existencia de
posibles bucles infinitos, al igual que definir el número de pasos que requiere un
algoritmo. Por lo tanto, se torna imperativo definir una simbología, así como establecer el
proceso a seguir para su correcta formulación, dos aspectos esenciales que serán
detallados en los siguientes párrafos.

Pseudocódigo:
El pseudocódigo, igualmente conocido como falso lenguaje, es una representación de alto
nivel e informal del principio operativo de un algoritmo. Para ello utiliza las convenciones
estructurales de un lenguaje de programación auténtico, pero sin serlo, debido a que está
concebido para la lectura humana. Por tal razón se excluyen detalles que se consideran no
esenciales y que pudieran dificultar su comprensión, como es el caso de la declaración de
variables, código específico del sistema y algunas subrutinas, brindándole independencia
ante cualquier lenguaje de programación con el cual se pudiera llegar a implementar un
algoritmo

Tipos primitivos de datos.


Todo lenguaje de programación consta de elementos específicos que permiten realizar las
operaciones básicas de la programación: tipos de datos, operadores e instrucciones o
sentencias. En este apartado se introducen los distintos tipos de dato que pueden
emplearse en la programación con Java. En concreto, se presentan los tipos primitivos en
Java, así como las constantes y las variables.

Categorías de tipos de datos.


Los tipos de datos utilizados en Java se pueden clasificar según diferentes categorías:
a) de acuerdo con el tipo de información que representan. Esta correspondencia
determina los valores que un dato puede tomar y las operaciones que se pueden realizar
con él.
Según este punto de vista, pueden clasificarse en:
* Datos de tipo primitivo: Representan un único dato simple que puede ser de tipo char,
byte, short, int, long, float, doublé, boolean. Por ejemplo: ‘a’, 12345, 750.68, False, … Cada
tipo de dato presenta un conjunto de valores o constantes literales.
* Variables referencia (variables arrays, de una clase/instancias, interfaces...). Se
implementan mediante un nombre o referencia (puntero) que contiene la dirección en
memoria de un valor o conjunto de valores (objeto creado con new).
b) según cambie su valor o no durante la ejecución del programa. En este caso, se tienen:
* Variables: sirven para almacenar datos durante la ejecución del programa; el valor
asociado puede cambiar varias veces durante la ejecución del programa.
* Constantes o variables finales: también sirven para almacenar datos, pero una vez
asignado el valor, éste no puede modificarse posteriormente.
c) según su papel en el programa. Pueden ser:
* Variables miembro de una clase. Se definen dentro de una clase, fuera de los métodos.
Pueden ser de tipos primitivos o referencias y también variables o constantes.
* Variables locales. Se definen dentro de un método o, en general, dentro de cualquier
bloque de sentencias entre llaves {}. La variable desaparece una vez finalizada la ejecución
del método o del bloque de sentencias. También pueden ser de tipos primitivos o
referencias.
los tipos primitivos, tales como int, char, etc., que no se consideran objetos y se tratan de
forma especial. Java tiene un conjunto de tipos primitivos para representar datos enteros
(cuatro tipos diferentes), para datos numéricos reales en coma flotante (dos tipos
diferentes), para caracteres y para datos lógicos o booleanos. Cada uno de ellos tiene
idéntico tamaño y comportamiento en todas las versiones de Java y para cualquier tipo de
ordenador. Esto implica que no hay directivas de compilación condicionales y asegura la
portabilidad de los programas a diferencia de lo que ocurre.

Los tipos de datos numéricos en Java no pueden representar cualquier número entero o
real. Por ejemplo, el tipo de dato entero int tiene un intervalo de representación entre
2147483648 y 2147483647.
Los datos de tipo doublé no tienen tanta limitación. Pueden alcanzar un valor del orden de
10308, pero tienen otro problema: la precisión. En concreto, el tipo doublé tiene una
precisión de 15 dígitos significativos.

Un número real de tipo float utiliza 32 bits de los cuales 24 son para la mantisa y 8 para el
exponente. La mantisa representa un valor entre –1.0 y 1.0 y el exponente representa la
potencia de2 necesaria para igualar la mantisa al valor que se quiere representar
conjuntamente.
Los números reales se caracterizan por dos magnitudes: la precisión y el intervalo de
representación. La precisión es el número de dígitos significativos con los que se puede
representar un número y el intervalo de representación es la diferencia entre el mayor y el
menor número que se pueden representar.
La precisión de un número real depende del número de bits de su mantisa mientras que el
intervalo depende del número de bits de su exponente.
Una mantisa de 24 bits como en el caso del tipo float puede representar
aproximadamente, ±223, o sea, cerca de 7 dígitos decimales significativos.
Un exponente de 8 bits puede representar multiplicadores entre 2–128 y 2127 de forma
que el intervalo de representación es de 10–38 a 1038 aproximadamente. En
consecuencia, los datos de tipo float tienen un intervalo de representación mucho mayor
en el mayor de los enteros, pero con sólo siete dígitos significativos de precisión.

Por su parte, un número real de tipo doublé utiliza 64 bits en la memoria del ordenador
dividida en 53 bits para la mantisa y 11 para el exponente. Una mantisa de 53 bits permite
representar entre 15 y 16 dígitos decimales significativos así que la precisión es de 15
dígitos decimales. Un exponente de 11 bits permite representar multiplicadores entre 2–
1024 y 21024, de forma que el intervalo de representación va de 10–308 a 10308
aproximadamente.

Una constante real se distingue de un entero porque contiene un punto decimal (no una
coma) y/o un exponente. Si la constante es positiva puede escribirse con o sin el signo +.
El tipo de una constante real se puede especificar añadiendo la letra F para el tipo float o
la letra D para doublé. Por defecto, una constante real es de tipo doublé. En este caso
debe estar en el intervalo de representación comprendido entre los valores numéricos
reales -1.79769313486231570E+308 y 1.79769313486231570E+308.

Tipos de Variables:
El tipo de variable hace referencia al dominio o clase al que pertenece dicha variable. Por
ejemplo, una variable de tipo «entero», hace referencia a que puede tomar cualquier
valor dentro del dominio de los números enteros, mientras que una variable tipo
«character» es aquella que puede tomar el valor de cualquier carácter individual (letra,
número, signo, símbolos especiales, etc.).
Cada lenguaje de programación posee un conjunto de tipos de datos básicos o primitivos
que le permiten almacenar:
▪ Caracteres,
▪ Números enteros,
▪ Números reales y
▪ Valores booleanos o lógicos (verdadero o falso).
El tipo de dato de una variable es una restricción impuesta para la interpretación,
manipulación y representación del dato, que no solo determina el conjunto de posibles
valores que la variable puede asumir, sino el conjunto de operaciones que con ella se
pueden realizar. Adicionalmente, cada variable ocupa un lugar en la memoria del
computador, cuyo tamaño asignado depende del tipo de variable seleccionada.

Declaraciones de variables.
Una variable es un espacio de la memoria correspondiente a un dato cuyo valor puede
modificarse durante la ejecución de un programa y que está asociado a un identificador.
Toda variable ha de declararse antes de ser usada en el código de un programa en Java. En
la declaración de una variable debe indicarse explícitamente el identificador de la variable
y el tipo de dato asociado. El tipo de dato determina el espacio reservado en memoria, los
diferentes valores que puede tomar la variable y las operaciones que pueden realizarse
con ella. La declaración de una variable en el código fuente de un programa de Java puede
hacerse de la siguiente forma: tipo de dato identificador de la variable; o bien, la
declaración de múltiples variables (con los correspondientes identificadores separados por
comas) del mismo tipo: tipo de dato ident_1, ident_2, . . ., ident_n;
Por ejemplo:
int n;
doublé x, y;
En el primer ejemplo se declara n como una variable de tipo int. En el segundo ejemplo se
declaran dos variables x e y de tipo doublé. En Java una variable queda definida
únicamente dentro del bloque de sentencias (entre llaves {}) en el que ha sido declarada.
De esta forma queda determinado su ámbito o alcance (scope) en el que puede
emplearse.

Operadores.
Un operador lleva a cabo operaciones sobre uno (operador unario), dos (operador binario)
o tres (operador ternario) datos u operandos de tipo primitivo devolviendo un valor
determinado también de un tipo primitivo. El tipo de valor devuelto tras la evaluación
depende del operador y del tipo de los operandos. Por ejemplo, los operadores
aritméticos trabajan con operandos numéricos, llevan a cabo operaciones aritméticas
básicas y devuelven el valor numérico correspondiente. Los operadores se pueden
clasificar en distintos grupos:
▪ Operador asignación: El operador asignación, =, es un operador binario que asigna el
valor del término de la derecha al operando de la izquierda. El operando de la izquierda
suele ser el identificador de una variable. El término de la derecha es, en general, una
expresión de un tipo de dato compatible; en particular puede ser una constante u otra
variable. Como caso particular, y a diferencia de los demás operadores, este operador no
se evalúa devolviendo un determinado valor.

▪Operadores aritméticos: El lenguaje de programación Java tiene varios operadores


aritméticos para los datos numéricos enteros y reales.

▪Operadores aritméticos incrementales: Los operadores aritméticos incrementales son


operadores unarios (un único operando). El operando puede ser numérico o de tipo char y
el resultado es del mismo tipo que el operando. Estos operadores pueden emplearse de
dos formas dependiendo de su posición con respecto al operando.

▪Operadores aritméticos combinados: Combinan un operador aritmético con el operador


asignación. Como en el caso de los operadores aritméticos pueden tener operandos
numéricos enteros o reales y el tipo específico de resultado numérico dependerá del tipo
de éstos.

▪Operadores de relación: Realizan comparaciones entre datos compatibles de tipos


primitivos (numéricos, carácter y booleanos) teniendo siempre un resultado booleano. Los
operandos booleanos sólo pueden emplear los operadores de igualdad y desigualdad.

▪Operadores lógicos o booleanos: Realizan operaciones sobre datos booleanos y tienen


como resultado un valor booleano.

▪El operador condicional: Este operador ternario tomado de C/C++ permite devolver
valores en función de una expresión lógica. Sintaxis:
Expresión Lógica ? expresion_1: expresion_2
Si el resultado de evaluar la expresión lógica es verdadero, devuelve el valor de la primera
expresión, y en caso contrario, devuelve el valor de la segunda expresión.
▪Operadores de bit: Tienen operandos de tipo entero (o char) y un resultado de tipo
entero. Realizan operaciones con dígitos (ceros y unos) de la representación binaria de los
operandos. Exceptuando al operador negación, los demás operadores son binarios.

▪Operador concatenación de cadenas: El operador concatenación, +, es un operador


binario que devuelve una cadena resultado de concatenar las dos cadenas que actúan
como operandos. Si sólo uno de los operandos es de tipo cadena, el otro operando se
convierte implícitamente en tipo cadena.

▪Separadores: Existen algunos caracteres que tienen un significado especial en el lenguaje


Java.
() Permiten modificar la prioridad de una expresión, contener expresiones para el control
de flujo y realizar conversiones de tipo. Por otro lado, pueden contener la lista de
parámetros o argumentos, tanto en la definición de un método como en la llamada al
mismo.
{} Permiten definir bloques de código y ámbitos y contener los valores iniciales de las
variables array.
[] Permiten declarar variables de tipo array (vectores o matrices) y referenciar sus
Elementos.
; Permite separar sentencias.
, Permite separar identificadores consecutivos en la declaración de variables y en las listas
de parámetros. También se emplea para encadenar sentencias dentro de un bucle for.
. Permite separar el nombre de un atributo o método de su instancia de referencia.
También separa el identificador de un paquete de los de los subpaquetes y clases.

▪Expresiones: Una expresión es una combinación de operadores y operandos que se


evalúa generándose un único resultado de un tipo determinado.

▪Prioridad entre operadores: Si dos operadores se encuentran en la misma expresión, el


orden en el que se evalúan puede determinar el valor de la expresión.

También podría gustarte