Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido:
1. ALGORITMOS.................................................................................................................................... 3
1.1. CONCEPTO DE ALGORITMO ......................................................................................................................... 3
1.2. CARACTERÍSTICAS DE LOS ALGORITMOS ......................................................................................................... 5
1.3. ELEMENTOS QUE CONFORMAN UN ALGORITMO .............................................................................................. 5
2. DATOS .............................................................................................................................................. 6
2.1. INTRODUCCIÓN ......................................................................................................................................... 6
2.2. TIPOS DE DATOS ........................................................................................................................................... 6
2.3. VARIABLES Y CONSTANTES .......................................................................................................................... 7
3. ACCIONES (OPERACIONES)................................................................................................................ 8
1. Algoritmos
1.1. Concepto de Algoritmo
Un Algoritmo es el conjunto de pasos que especifica la secuencia de operaciones a realizar para
resolver un problema o clase de problemas.
La RAE define algoritmo como “conjunto ordenado y finito de operaciones que permite hallar la
solución de un problema”.
Existen varios tipos de algoritmos para distintas finalidades. Algunos de ellos forman parte de la
vida cotidiana.
Algoritmo ¿Quién lo procesa?
Receta cocina Cocinero
Partitura musical Músico
Programa Ordenador
Cuando el procesador es un ordenador, el algoritmo ha de expresarse de una forma que recibe el
nombre de Programa.
Un programa es un conjunto de instrucciones correspondientes a cada paso hecho en el
algoritmo. Se escribe en un Lenguaje de programación.
La actividad de expresar un algoritmo en forma de programa se le denomina Programación o
Codificación, y es parte fundamental en el Desarrollo de aplicaciones.
Enseñemos a los niños a codificar | Mitch Resnick (16 min)
https://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code?language=es
Mitch dice que la codificación no es sólo para genios informáticos, sino que es de utilidad para las
personas. En una charla divertida y llena de demostraciones, Resnick describe los beneficios de
enseñar a los niños a codificar, para que puedan hacer algo más que "leer" las nuevas
tecnologías, sino también crearlas. (Filmado en TEDxBeaconStreet).
Scratch: Entorno para aprender a programar, que permite desarrollar tus propias historias
interactivas, juegos y animaciones https://scratch.mit.edu/
Fragmento de código
realizado en Scratch,
que controla una
pelota en pantalla
Pág. 2
Artículo sobre una Web para probar distintos tipos de lenguajes de programación
https://www.genbeta.com/herramientas/mycompiler-web-donde-puedes-practicar-16-lenguajes-programacion-instalar-nada
Herramienta online myCompiler para probrar distintos tipos de lenguajes de programación
https://www.mycompiler.io
1.2. Características de los Algoritmos
Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún
momento; o sea, debe tener un número finito de pasos.
Además, todo algoritmo tiene que ser independiente de un lenguaje de
programación.
1.3. Elementos que Conforman un Algoritmo
Entrada
Proceso
Salida
Pág. 3
Módulo Programación Algoritmos y Programas
2. Datos
2.1. Introducción
El ser humano realiza los razonamientos a partir de información adquirida que está almacenada en
su cerebro. También el ordenador tiene que almacenar en su interior toda la información necesaria
para realizar el proceso automático que le pedimos que ejecute.
La parte del ordenador que realiza esta función es la Memoria principal, interna o central según
los autores. Es la denominada memoria R.A.M., memoria de acceso directo (Random Access
Memory).
La memoria está constituida por multitud de posiciones de memoria (celdas de memoria), capaces
de retener elementos de información que vamos a denominar datos o valores.
(En la RAM también se almacenarán las acciones o instrucciones del programa, que se estudiarán
mas adelante).
2.2. Tipos de datos
Tipos Simples:
Numéricos (enteros y reales)
Carácter
Cadena
Lógicos
Tipos Estructurados
Se verán en unidades posteriores.
2.3. Variables y Constantes
Como hemos visto, la memoria del ordenador dispone de una serie de elementos (que podrán
ocupar una o más celdas), cuya única misión es almacenar valores.
A estos elementos se les identifica por un nombre y el tipo de valor que puede contener para
realizar un uso correcto.
A los elementos cuyo valor almacenado no cambia durante la ejecución de todo el proceso,
se les denomina Constantes. Por tanto una constante es un elemento cuyo valor permanece
sin cambios durante todo el desarrollo del algoritmo o ejecución del programa.
A los elementos cuyo valor almacenado sí puede cambiar durante la ejecución de un proceso
se les denomina Variables.
Pág. 4
3. Acciones (Operaciones)
3.1. Operadores y Expresiones
Expresiones Aritméticas: son análogas a las fórmulas matemáticas.
Las constantes y variables son numéricas y las operaciones son las aritméticas: +, -, /, *.
Además de los operadores típicos, incluimos la división entera y el módulo.
Operadores
Aritméticos Significado
^ Potencia
*, / Multiplicación y División
Div División entera y
Mod Módulo (resto de la división entera)
+, - Suma y Resta
Expresiones Lógicas: Una expresión lógica sólo puede dar dos valores: verdadero o falso.
Utilizan los operadores relacionales y lógicos.
Operadores Significado
Relacionales
> Mayor que
< Menor que
= Igual que
>= Mayor o igual que
<=
Menor o igual que
<>
Distinto que
4. Asignación
Con esta operación podrás asignar valores a una variable, es decir,
guardar un valor en un lugar de la memoria.
Debemos tener en cuenta el tipo de variable para no cometer errores a la hora de la asignación; es
decir, nunca se permitirá asignar a una variable numérica un valor lógico, o a una variable de tipo
carácter, un valor numérico real (con decimales).
Una asignación de un valor a una variable supone una escritura en memoria y por tanto una
operación destructiva del valor que tuviera la variable anteriormente.
Formato:
variable valor o expresión
Primero se evalúa la expresión (parte derecha)
Segundo se guarda el valor resultante en la variable (parte izquierda)
4.1. Entrada y Salida de Información
LEER: operación por la cual se introducen valores al algoritmo para que pueda realizar el
proceso.
Esta operación implica una Escritura en memoria.
Formato: LEER variable
ESCRITURA: acción de salida de información para que, una vez que se ha realizado el proceso
algorítmico, los resultados sean visibles. Esta operación implica una Lectura en memoria.
Formato: ESCRIBIR expresión
Ejemplo: Cálculo del doble de un número dado
INICIO
LEER NUM Se introduce un valor (p.e. por teclado) que es escrito en memoria, en la
celda correspondiente a la variable NUM
RES 2*NUM Evalúa la expresión, multiplicando por dos el contenido de NUM.
Guarda dicho valor en la variable RES.
ESCRIBIR RES Escribe (p.e. en pantalla) el contenido de la variable RES (que es el
doble del número tecleado).
FINAL
Pág. 6
5. Resolución de Problemas
La razón principal para que las personas aprendan a programar, en general, y los lenguajes de
programación en particular, es utilizar el ordenador como herramienta para la resolución de
problemas.
En general, cualquier desarrollo lleva implícitas las siguientes fases que provienen del modelo de
Programación Estructurada:
Análisis:
Definición del problema
Especificación de entradas
Especificación de salidas
Diseño de Algoritmos:
Diseño descendente: dividir en módulos o subprogramas. "DIVIDE Y VENCERÁS"
Refinamientos sucesivos
Uso de herramientas: Diagrama de Flujo y Pseudocódigo
Resolución con ordenador:
Codificación (escritura en un lenguaje de programación)
Ejecución
Pruebas
Módulo Programación Algoritmos y Programas
6. Instrucciones de control
6.1. Instrucciones Condicionales
Permiten realizar acciones alternativas según se de o no una condición.
La condición es una expresión lógica. En caso de ser verdad, ejecuta las instrucciones contenidas.
Condicional simple
Si (expresión-lógica) Entonces
I1
...
In
Fin Si
Condicional doble
Si (expresión-lógica) Entonces
I1
...
In;
Sino
J1
...
Jm;
Fin Si
Condicional múltiple
Según sea el contenido de una variable, realiza las acciones correspondientes si su
contenido coincide con alguno de los valores indicados.
En “De Otro Modo” se indican las acciones cuando la variable no toma ninguno de los
valores que aparecen antes.
El “valor” será una constante.
Según (variable) Hacer
<Valor1>:
A1
...
An
<Valor2>:
B1
...
Bn
[De Otro Modo]:
N1
…
Nn]
Fin Según
Pág. 12
6.2. Instrucciones Repetitivas
Permiten repetir una o varias acciones N veces. Este tipo de instrucciones se denominan bucles
(loop en inglés). Por tanto, un bucle es un segmento de un algoritmo o programa, cuyas
instrucciones se repiten un número determinado de veces.
Un bucle consta de:
Inicialización de una variable de control
Cuerpo del bucle: las instrucciones que se repiten
Condición de salida: expresión lógica que es la que determina cuando se termina el bucle.
Cambio en la variable de control
6.3. Estructuras Repetitivas
Se evalúa la condición (expresión-lógica) antes de iniciar el bucle o una vez que se produce
una iteración, y se repiten sucesivamente las instrucciones dentro de él mientras o hasta que
la condición sea verdadera.
Los lenguajes de programación proporcionan varias estructuras para realizar dichos bucles.
La diferencia entre unos y otros radica en cuándo se evalúa la condición y en la propia condición
para terminar.
Módulo Programación Algoritmos y Programas
Ejemplos:
1. Algoritmo que calcule la suma de una secuencia de números leída por teclado. Cuando se
teclee un 0 se terminará de leer.
Pág. 14
Bloque de acciones
Constituido por el conjunto de operaciones del algoritmo que resuelve el problema.
Unidad de código
7.2. Acumuladores
Los acumuladores son variables que se utilizan en un programa para acumular resultados
parciales de cálculos con una misma operación. En general se utilizan para calcular sumas
y productos, sin descartar otros posibles tipos de acumulación.
Se utilizan realizando sobre ellos dos operaciones básicas:
Inicialización. Todo acumulador necesita ser inicializado con el valor neutro de la
operación que va a acumular, que en el caso de la suma es 0 y en el del producto es
1.
Acumulación. Se utiliza una asignación:
Con la suma sería:
acum acum + variable
Con el producto sería:
acum acum * variable
Ejemplo:
4. Algoritmo que suma los N primeros números naturales. N es leido por teclado.
Pág. 16
7.3. Interruptores (Switches) o Banderas
Los interruptores son variables que se utilizan en un programa y que sólo pueden tomar
dos valores (Verdadero y Falso, 0 y 1), realizando la función de transmitir información de
un punto a otro dentro del programa.
Se utilizan inicializándolos con un valor y en los puntos que corresponda, se cambian al
valor opuesto, de tal forma que examinando su valor posteriormente, es posible detectar
qué situación se ha dado con anterioridad.
Ejemplos:
5. Algoritmo que calcule el primer número entero positivo cuyo cuadrado es superior a
un valor L dado.
Módulo Programación Algoritmos y Programas
6. Algoritmo que dado un año, nos dice si es bisiesto. Utiliza una variable
"interruptor" para anotar el estado y escribir el resultado al final.
Pág. 18
8. Subprogramas
8.1. Concepto de Subprograma
Una estrategia habitual para solucionar un problema complejo es dividirlo en
subproblemas (problemas mas sencillos) que sean más fáciles de resolver. A esta
técnica de dividir el problema principal en subproblemas se suele denominar “DIVIDE
Y VENCERÁS”.
El problema principal se soluciona por el correspondiente programa o algoritmo
principal.
Los subproblemas son solucionados mediante subprogramas.
Sintaxis en pseudocódigo
Función nombre (lista parámetros formales): tipo devuelto
declaración de variables y constantes
instrucciones
devolver valor
FinFuncion
Ejemplo
7. Función Potencia en pseudocódigo. Dados la base y el exponente, devuelve el
resultado de elevar la base B al exponente e (Be).
Pág. 20
Ejemplo
2 3 4
8. Algoritmo que calcula el 2 , 2 y 2 , utilizando la función anterior.
Proceso Potencias2
Definir resultado Como Entero
resultado Potencia(2,2)
Escribir resultado
resultado Potencia(2,3)
Escribir resultado
resultado Potencia(2,4)
Escribir resultado
FinProceso
Programa principal
Pág. 22
9. Estilo de Escritura de Código Fuente
La escritura de código debe ser lo más clara y estructurada posible, de modo que:
facilite su entendimiento
facilite la realización de modificaciones
facilite la reutilización
Existen una serie de reglas básicas que todo desarrollador debería seguir para escribir
código:
A. Emplear indentación en las estructuras de control para mejorar la legibilidad.
B. Emplear lineas en blanco para separar partes del código. Por ejemplo, se suele dejar
una línea en blanco para separar las declaraciones iniciales del resto de instrucciones.
C. Emplear identificadores significativos para constantes, variables, funciones y
parámetros.
D. Escribir expresiones sencillas, utilizando siempre paréntesis.
E. No repetir pasos o instrucciones iguales en distintas partes.
F. No usar la misma variable para distintos propósitos.
G. Evitar niveles profundos de anidamiento de estructuras de control. Más de tres
niveles dificulta la comprensión del código.
H. Añadir comentarios a lo largo del código para facilitar su comprensión.
Estilo para la Codificación
https://www.ecured.cu/Estilos_de_c%C3%B3digos#Crisis_del_software
http://hp.fciencias.unam.mx/~alg/normas/estilo.html (java)