Está en la página 1de 19

Programación

RESUMEN UNIDAD DIDÁCTICA:


1 ALGORITMOS Y PROGRAMAS

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

3.1. OPERADORES Y EXPRESIONES ...................................................................................................................... 8


3.2. FUNCIONES INCORPORADAS ........................................................................................................................ 9
3.3. ASIGNACIÓN ............................................................................................................................................. 9
3.4. ENTRADA Y SALIDA DE INFORMACIÓN ......................................................................................................... 10
4. RESOLUCIÓN DE PROBLEMAS ....................................................................................................... 11

5. INSTRUCCIONES DE CONTROL ...................................................................................................... 12


5.1. INSTRUCCIÓN CONDICIONAL ...................................................................................................................... 12
5.2. INSTRUCCIÓN REPETITIVA.......................................................................................................................... 14
5.3. INSTRUCCIONES DE DECLARACIÓN .............................................................................................................. 16

6. VARIABLES SEGÚN SU PROPÓSITO ................................................................................................ 17


6.1. CONTADORES ......................................................................................................................................... 17
6.2. ACUMULADORES ..................................................................................................................................... 18
6.3. INTERRUPTORES (SWITCHES) ..................................................................................................................... 19
7. SUBPROGRAMAS ............................................................................................................................ 21

7.1. CONCEPTO DE SUBPROGRAMA................................................................................................................... 21


7.2. FUNCIONES ............................................................................................................................................ 22
7.3. CODIFICACIÓN PARA PSEINT ..................................................................................................................... 24
7.4. CODIFICACIÓN EN LENGUAJE “C” ............................................................................................................ 25
8. ESTILO DE ESCRITURA DE CÓDIGO FUENTE.................................................................................... 26
Módulo Programación Algoritmos y Programas

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

Operadores Lógicos Significado


NOT Verdad si el operando es Falso y viceversa.
AND Verdad solo si todos los operandos son Verdaderos
OR Verdad siempre que al menos uno de los operandos sea Verdadero
3.2. Funciones Incorporadas
Son funciones que realizan operaciones comunes y que suelen estar disponibles en los lenguajes
de programación.
Se utilizan escribiendo el nombre de la función, seguido de uno o varios operandos encerrados
entre paréntesis.
Ejemplos:
ABS(-25) devolvería 25
REDONDEO (6.5) devolvería 7
CUADRADO(4) devolvería 16
TRUNC(5.6) devolvería 5
RAIZCUA(16) devolvería 4
Módulo Programación Algoritmos y Programas

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.

Variable de control Variable de control


Mientras (expresión-lógica) Hacer Repetir
I1; I1;
Repetir…Hasta
I2; I2;
Mientras
... ...
In; In;
Cambio en la Variable de control Cambio en la Variable de control
Fin Mientras Hasta (expresión-lógica)

Para (inicialización; expresión-lógica;


incremento) I1;
I2;
... Para
In;
Fin Para

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.

2. Algoritmo que escriba el cuadrado de los 10 primeros números naturales.

6.4. Instrucciones de Declaración


Desde el punto de vista de la escritura de un programa o unidad de código, tenemos dos bloques
bien diferenciados:
Bloque de declaraciones
En él se especifican todos los elementos (variables, constantes) que utiliza el programa.

Pág. 14
Bloque de acciones
Constituido por el conjunto de operaciones del algoritmo que resuelve el problema.
Unidad de código

Las instrucciones de declaración, anuncian la utilización de variables, indicando el tipo de


cada una, para que el traductor (compilador) reserve la memoria necesaria para ellas.
Toda variable u objeto referenciado en el programa, debe haber sido declarado
previamente.
Ejemplo de declaraciones
Definir salario Como Entero
Definir tipoInteres Como Real
Definir letraPulsada Como Caracter
Definir admitido Como Logico
Módulo Programación Algoritmos y Programas

7. Variables Según su Propósito


7.1. Contadores
Un contador es una variable que se utiliza para llevar la cuenta de cualquier suceso que se
necesite dentro de un programa.
En general se suele contar de forma natural desde 0 y de 1 en 1, aunque se pueden realizar
otros tipos de cuenta, según lo requerido en el proceso.
Se utilizan realizando sobre ellos dos operaciones básicas:
Inicialización. Todo contador se inicializa a 0 si realiza cuenta natural o a un valor Vi
(Valor inicial) si se desea realizar otro tipo de cuenta.
contador  0
Contabilización o incremento. Cada vez que aparece el evento a contar se ha de
incrementar el contador en 1 si se realiza cuenta natural o en In (Incremento) si se
realiza otro tipo de cuenta.
contador  contador + constante
Ejemplo:
3. Algoritmo que lea una secuencia de números por teclado hasta introducer -1, al
finalizar que escriba el número total de ceros introducidos.

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.

 El programa principal llama o invoca al subprograma en algún momento.


Podría hacerlo en varias ocasiones o en diferentes lugares.
 El subprograma ejecuta una tarea y a continuación devuelve el control al
programa, en el mismo punto donde se realizó la llamada.
Ventajas de crear subprogramas
 Evita tener que escribir el mismo código varias veces en diferentes partes
de nuestro programa, con los problemas que entrañarían las
modificaciones.
 Se podría reutilizar en otros proyectos ya que será una unidad que hemos
escrito y probado y por tanto no habría necesidad de volver a probarlo.
8.2. Funciones
Desde el punto de vista matemático, una función es una operación que toma uno o
varios operandos, y devuelve un resultado.
Función F(x,y)
Desde el punto de vista algorítmico, es un subprograma que toma uno o varios
parámetros como entrada y devuelve un único resultado.
Función Potencia(base:entero, exp:entero) : entero
Escritura de una función
Una función constituye un subprograma pero no por eso deja de ser un
algoritmo, es decir, es un algoritmo que realiza una tarea concreta.
Es una unidad independiente del programa principal que además está
“encapsulada” con una cabecera que indica:
 Qué valores debe recibir: los parámetros formales con su tipo
 Qué tipo de valor va a devolver
Módulo Programación Algoritmos y Programas

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).

Función Potencia (base:entero, expo:entero):entero


Definir producto Como Entero
Definir cont Como Entero
producto 1
cont 1
Mientras (cont <= expo) Hacer
producto <- producto * base
cont <- cont + 1
Fin Mientras
devolver producto
FinFuncion
Llamada a una función
Para llamar a una función se escribe el nombre de la función seguido de los
parámetros reales (entre paréntesis), que podrán ser constantes, variables o
expresiones, pero siempre del mismo tipo que los parámetros formales
asociados. El valor devuelto se deberá guardar en alguna variable para no
perderlo.
resultado nombreFuncion (lista parámetros reales)
Por tanto, la llamada a una función, implica el conocimiento previo de que la
función existe, de su nombre, de los parámetros que recibe (su tipo y significado
de cada uno) y, por último, del tipo de dato que devuelve.
 En la llamada a una función, los parámetros reales se asocian
automáticamente a los parámetros formales según la posición que ocupan
de izquierda a derecha.
 Si el parámetro real y el formal no son de tipos compatibles, se producirá
un error en la llamada.

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

8.3. Codificación en PSeInt


Función y Programa principal
Módulo Programación Algoritmos y Programas

8.4. Codificación en Lenguaje “C”


Función

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)

También podría gustarte