Sei sulla pagina 1di 16

Definición y Características del Algoritmo

Capítulo 1
Definición y Características
del Algoritmo

Objetivo

Al finalizar el capítulo, el alumno

 Comprender la diferencia entre un algoritmo y pseudocódigo.


 Crear algoritmos con entrada de datos, operaciones y resultados.

Temas

1. ¿Qué es un algoritmo?
2. Pseudocódigo
3. Diagrama de flujo o flujograma
4. Variables
5. Input / Output
6. Operadores

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 1


Definición y Características del Algoritmo

1. ¿Qué es un algoritmo?

Un algoritmo, en su definición más genérica, es un método para resolver un


problema.

Aplicando el concepto al ámbito de la programación, podremos afirmar que un


algoritmo es un modelo que representa la lógica de cómo se desarrolla la
solución de un problema (que se resolverá luego mediante la elaboración de un
programa), sin necesidad aún de codificarlo en un lenguaje de programación.
Eso permite a los programadores desarrollar modelos que, luego de probarlos y
depurarlos, les permitan obtener el código en un determinado lenguaje de
programación de una manera más simple y eficiente.

Características

 Debe ser preciso indicando la realización de cada paso ordenadamente.


 Debe estar bien definido, si se sigue un algoritmo más de una vez, los
resultados deben ser los mismos.
 Debe tener un fin; es decir, deberá ser finito.
 Debe ser independiente a la forma como se implementará en un lenguaje de
programación dado.
 Debe estar documentado con comentarios que permitan su fácil
interpretación.
 Debe ser lo más específico posible dentro del tenor del problema planteado.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 2


Definición y Características del Algoritmo

2. Pseudocódigo

Es un lenguaje intermedio entre nuestro lenguaje y el de programación, debido a


que quien lo utiliza se guía por una serie de normas, pero sin llegar a usar una
estructura tan rígida como la del lenguaje de programación.
El objetivo al que apunta es que quien lo pone en práctica se centre más en la
solución del algoritmo o el diseño de un software que en el programa que utiliza
para crearlo. Y esto es posible porque es más fácil de manipular ya que no tiene
que tener en mente el lenguaje en sí y además, más fácil de construir que un
programa.

Por ejemplo, si alguien tiene que hacer un software con un fin determinado,
utiliza un pseudocódigo propio en donde confluyen frases del lenguaje coloquial
y algunas sentencias de programación y una vez que se logra concretar el
software, se puede pasar al escalón siguiente que es el de la transformación al
lenguaje de programación formal que se vaya a utilizar.
De esta manera, al ser un lenguaje intermedio, no tiene una sintaxis determinada
por lo que no todos los programadores utilizan la misma sintaxis con exactitud.
Pero a la vez, como es una herramienta que está un paso previo al lenguaje
formal de programación es fácil de transformar al que será ejecutado en la
computadora.

2.1 Partes de un pseudocódigo

Por lo general, los pseudocódigos se pueden componer de las siguientes


partes:

 Declaración de Variables
Sección donde se declaran las variables y tipos de datos necesarios
para el ingreso de datos.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 3


Definición y Características del Algoritmo

 Ingreso de Datos
Sección donde se leen los datos de entrada almacenándolos en
variables, sin los cuales no se puede efectuar el proceso
 Proceso
Parte donde se realizan los cálculos dependiendo de las reglas de
negocio del problema.
 Impresión de Resultados
Parte final del pseudocódigo que es donde se muestran los resultados
de los procesos y cálculos realizados.

Ejemplo

A continuación, se muestra el pseudocódigo para obtener el promedio de un


alumno en base a 3 notas.

Inicio

Declarar intNota1
Declarar IntNota2
Declarar intNota3
Declarar floatPromedio

Leer intNota1
Leer intNota2
Leer intNota3

floatPromedio= (intNota1+intNota2+intNota3)/3

Escribir sngpromedio

Fin

Recuerde
El algoritmo es uno solo, no importa en qué lenguaje de programación se
codifique. Esto es una muestra de que la lógica para desarrollar un
problema es la misma, independientemente de cómo se implemente.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 4


Definición y Características del Algoritmo

3. Diagrama de flujo o flujograma

Los diagramas de flujo, al igual que el pseudocódigo, permiten elaborar


algoritmos, pero en este caso, de manera gráfica en base a una simbología
previamente definida. Cada tipo de acción (lectura, escritura, condiciones,
búcles, etc.) tiene su propia simbología y manera de representarse.

Es en sí, un diagrama que representa el flujo lógico secuencial de la lógica para


resolver un problema, que si no presenta incoherencias, puede ser fácilmente
codificado en un determinado lenguaje de programación.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 5


Definición y Características del Algoritmo

Los símbolos usados para dar solución a los algoritmos mediante diagramas son
los siguientes:

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 6


Definición y Características del Algoritmo

4. Uso de variables en la programación de aplicaciones

Una variable es un espacio de memoria en el que podemos almacenar un valor o


dato. En una variable podemos cambiar de valores durante la ejecución del
algoritmo, es decir, una variable puede haber almacenado “n” valores distintos,
pero del mismo tipo; es decir, si la variable es entera, podemos guardar en ella
valores enteros, lo mismo sería para cadenas u otros tipos de datos.

Para poder manejar variables de manera correcta, primero debe declararlas y


luego, asignarles un valor. Por ejemplo, observe lo siguiente:

Declarar int x;
x = 50;

En el ejemplo anterior, declaramos la variable entera x y luego asignamos en


ella, el valor 50. En las siguientes líneas, podemos asignar otros valores si
queremos, por eso se llama variable.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 7


Definición y Características del Algoritmo

4.1 Las Constantes

Una constante es todo lo contrario a una variable. Es un espacio de


memoria que una vez asignado su tipo de dato y su valor, este ya no se
puede modificar durante la ejecución del algoritmo.
Si queremos declarar una constante cuyo valor nunca podrá ser
modificado, esta debe ser inicializada en el momento de su definición
utilizando la palabra reservada final.
Generalmente, utilizamos variables finales combinadas con la palabra
reservada static para crear constantes que son variables fijas, es decir
que nunca cambiarán de valor.

Por convención, los nombres de las variables estáticas se definen en


mayúsculas. Si el nombre está formado por más de una palabra, las
palabras se separan por un carácter de subrayado.

Ejemplo:

Declarar static final int LUNES=1;


Declarar static final int MARTES=2;
Declarar static final int MIERCOLES=3;
Declarar static final int JUEVES=4;
Declarar static final int VIERNES=5;
Declarar static final int SABADO=6;
Declarar static final int DOMINGO=7;
//Ejemplo de constante cuyo nombre está formado por más de una palabra:
Declarar static final float IMPUESTO_IMPORTACION;

4.2 Tipo de Datos Primitivos en Java

En Java tenemos diferentes tipos de datos y para ello, tenemos el


siguiente cuadro de valores primitivos:

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 8


Definición y Características del Algoritmo

Tipo Descripción

boolean Tiene dos valores true o false.

Caracteres Unicode de 16 bits. Los caracteres alfa-numéricos


son los mismos que los ASCII con el bit alto puesto a 0. El
char
intervalo de valores va desde 0 hasta 65535 (valores de 16-
bits sin signo).

Tamaño 8 bits. El intervalo de valores va desde -27 hasta 27 -


byte
1 (-128 a 127).
Tamaño 16 bits. El intervalo de valores va desde -215 hasta
short
215-1 (-32768 a 32767).

Tamaño 32 bits. El intervalo de valores va desde -231 hasta


int
231-1 (-2147483648 a 2147483647).

Tamaño 64 bits. El intervalo de valores va desde -263 hasta


long
263-1 (-9223372036854775808 a 9223372036854775807).

Tamaño 32 bits. Números en coma flotante de simple


float precisión. Estándar IEEE 754-1985 (de 1.40239846e–45f a
3.40282347e+38f).

Tamaño 64 bits. Números en coma flotante de doble precisión.


double Estándar IEEE 754-1985. (de 4.94065645841246544e–324d
a 1.7976931348623157e+308d.).

El cuadro muestra los tipos de datos y los rangos de valores que en ellos
debemos considerar.

Para asignar cadenas, Java utiliza objetos que revisaremos en capítulos


posteriores. Ejemplo: La clase String.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 9


Definición y Características del Algoritmo

5. Input / Output

El ingreso de datos es importante para que la computadora realice los cálculos;


esta operación es la entrada; luego, estos datos se convertirán en resultados y
estos serán la salida.

A la entrada se le conoce como operación de Lectura (read). Esta operación de


lectura se realiza a través de los dispositivos de entrada que son teclado,
unidades de disco, CD-Rom y otros. La operación de salida se realiza por medio
de dispositivos como monitor, impresora y otros, a esta operación se le conoce
como escritura (write).

Para las aplicaciones Web, normalmente el Cliente ingresa o selecciona datos


que envía al Servidor mediante un formulario, conociéndose a esto como el input
y el servidor recibe estos datos que después de procesarlos responde al cliente
con una nueva página según solicitud del Cliente, siendo esto la salida.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 10


Definición y Características del Algoritmo

6. Los operadores aritméticos

Existe una gran variedad de operadores en Java con los que podemos
procesar nuestros datos, así tenemos las siguientes categorías de operadores:

Categoría Operadores

Aritméticos + - * / % ++ --
Lógicos && || ! ^
Relacionales == != < > <= >=
Bits & | ^~
Asignación = += -= *= /= %=
Ternario ?:

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 11


Definición y Características del Algoritmo

7.1 Aritméticos

+ Adición
- Sustracción
* Multiplicación
/ División
% Módulo. Toma el residuo de una división de enteros.

Ejemplo:
17%5 == 2; // Residuo de 17 entre 5 es 2
++ Se incrementa en uno
Ejemplo 1:
int a, b; // Se declara dos enteros a y b
a = 5;
b = ++a; // a==6 y b==6
Ejemplo 2:
int a, b;
a = 5;
b = a++; // a==6 y b==5
-- Decremento en uno. Contrario al anterior.

Ejemplo:

//Suma de valores
int contador=10;
int otroOperador=5;
int resultado=contador+otroOperador;
//resultado tendrá el valor de 15

//Multiplicamos por 2 el valor de resultado


resultado= resultado *2;
//resultado tendrá el valor de 30

//Obtiene el residuo de una división


Int resto=resultado%7
//resto tendrá el valor de 2

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 12


Definición y Características del Algoritmo

7.2 Lógicos

&& Y (and)
P q p && q
v v V
v f F
f v F
f f F

|| O (or)
Ejemplo: sean p y q 2 expresiones

P q p || q
v v v
v f v
f v v
f f f

! No (not)

q !q
v F
f V

Ejemplo:

//Ejemplo AND
Int contador1=10;
Int contador2=20;
Boolean resultado=(contador1==contador2)&&(contador2<100);
// el resultado nos devuelve FALSE

//Ejemplo OR
resultado=(contador1!=contador2)&&(contador2<100);
// el resultado nos devuelve TRUE

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 13


Definición y Características del Algoritmo

7.3 Relacionales

Igual que
== Ejemplo:
3+4 == 7; // 3 más 4 es igual que 7, resulta true
Diferente que.
!= Ejemplo:
5+6 != 7; // 5 más 6 es diferente de 7, resulta true
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que

Ejemplo:

//Ejemplo Igual que


Int contador1=10;
Int contador2=20;
boolean opequal
opequal=contador1==contador2;
// el resultado nos devuelve FALSE

//Ejemplo Diferente que


Int contador1=10;
Int contador2=20;
boolean notequal
notequal=contador1!=contador2;
// el resultado nos devuelve TRUE

7.4 Bits

A & B Operación AND a nivel de bits. Si ambos bits


& comparados son 1, establece el resultado en 1. De lo
contrario, da como resultado 0.

A | B Operación OR a nivel de bits. Si por lo menos uno de


| los dos bits comparados es 1, establece el resultado en 1.
De lo contrario, da como resultado 0.

A ^ B Operación XOR a nivel de bits. Si uno de los bits


^ comparados es 0 y el otro 1, el resultado es 1. Si ambos
bits comparados son iguales, el resultado es 0.

~A Complemento de A, a nivel de bits. Solo invierte los


~
bits, es decir, convierte los ceros en unos y viceversa.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 14


Definición y Características del Algoritmo

7.5 Asignación

= Asigna un valor

Compacta una adición


+= Ejemplo:
a += 5; // Es igual a poner a = a + 5;

Compacta una sustracción


-= Ejemplo:
x = 8; // Es igual a poner x = x - 8;

Compacta un producto
*= Ejemplo:
y *= 12; // Es igual a poner y = y * 12;

Compacta una división


/= Ejemplo:
b /= 100; // Es igual a poner b = b / 100;

%= Compacta el módulo

7.6 Ternario

Tiene tres operandos, cada uno de los cuales es una


?: expresión; se ordena de la siguiente forma:
expresión1 ? expresión2 : expresión3

El valor de la expresión completa equivale al de la expresión2 si la


expresión1 es verdad, o al valor de la expresión3 en caso contrario.

Ejemplo:

(5>4)? 1:2 //Toma el valor 1


(5<4)? 1:2 //Toma el valor de 2
(x>y)? x:y// Toma el mayor entre x e y

Precedencia de operadores

Los operadores en una misma fila tienen la misma precedencia. La


precedencia disminuye según se baja en la tabla.
La regla de precedencia establece que los operadores de mayor nivel se
ejecuten primero.

Podemos observar que los últimos son los de asignación, esto es lógico ya
que se debe calcular, primeramente, la expresión antes de asignar un
resultado a una variable.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 15


Definición y Características del Algoritmo

Ejemplo:

Int j=1 + 3 * 4;
// resultado de j=13

De acuerdo a nuestra tabla de precedencia de Java y al igual que la aritmética,


se calcula la multiplicación antes que la suma.

Int j=1 + 3 -4;


// resultado de j=0

Si todos los operadores tienen un nivel idéntico de precedencia se evalúa la


expresión de izquierda a derecha.

Cibertec Perú S.A.C - Java 8.0 Fundamentals Developer 16

Potrebbero piacerti anche