Está en la página 1de 14

Algoritmica:

que es:
Un algoritmo se puede definir como una secuencia de instrucciones que representan un
modelo de solución para determinado tipo de problemas. O bien como un conjunto de
instrucciones que realizadas en orden conducen a obtener la solución de un problema. ...
Loa algoritmos son independientes de los lenguajes de programación.

como se diseña un algoritmo:

En programación, un algoritmo establece, de manera genérica e informal, la


secuencia de pasos o acciones que resuelve un determinado problema y, para
representarlo, se utiliza, fundamentalmente, dos tipos de
notación: pseudocódigo y diagramas de flujo.

Así pues, en este artículo, voy a explicar, con un ejemplo, los pasos que
"mentalmente" se pueden seguir para diseñar el algoritmo, en Pseudocódigo
CEE (C En Español) y ordinograma, de un programa que dé solución a un
problema de programación.

En concreto, vamos a ver, desmenuzadamente, cómo se puede diseñar el


algoritmo para resolver el ejercicio 1, "Media aritmética de números
introducidos", de la sección Repetitiva hacer...mientrasdel listado de ejercicios
de programación resueltos en diferentes lenguajes.

De forma que, los pasos a seguir (siete en este caso) son los siguientes:

· Paso 1

Comprender qué es lo que se nos está pidiendo. En este caso, el enunciado del
ejercicio es:

"Diseñe el algoritmo de un programa que:

1º) Pida por teclado un número (dato entero).


2º) Muestre por pantalla los mensajes:

* Ha introducido <cantidad_de_números> número(s)


* La suma es <suma>

3º) Pregunte al usuario si desea introducir otro o no.


4º) Repita los pasos 1º, 2º y 3º, mientras que, el usuario no responda 'n' de (no).
5º) Muestre por pantalla la media aritmética (dato real) de los números
introducidos.

Nota: Utilice un bucle hacer...mientras."

En pantalla:

Introduzca un número entero: 3


Ha introducido 1 número(s)
La suma es 3

¿Desea introducir otro (s/n)?: s


Introduzca un número entero: 7
Ha introducido 2 número(s)
La suma es 10

¿Desea introducir otro (s/n)?: s


Introduzca un número entero: 6
Ha introducido 3 número(s)
La suma es 16

¿Desea introducir otro (s/n)?: s


Introduzca un número entero: 13
Ha introducido 4 número(s)
La suma es 29

¿Desea introducir otro (s/n)?: n


La media aritmética es 7.25

Introduzca un número entero: 8


Ha introducido 1 número(s)
La suma es 8

¿Desea introducir otro (s/n)?: n


La media aritmética es 8.000000

Simplemente, al leer el enunciado del problema, ya podemos hacernos una idea


de algunas características importantes del algoritmo que vamos a diseñar:

* Exiten 5 instrucciones de salida para mostrar por pantalla:

Introduzca un número entero:


Ha introducido X número(s)
La suma es Y
¿Desea introducir otro (s/n)?:
La media aritmética es Z
* Exiten 2 instruccciones de entrada. Una para recoger un dato númerico entero
después de mostrar por pantalla:

Introduzca un número entero:

y, otra, para recoger un dato de tipo carácter después de mostrar por pantalla:

¿Desea introducir otro (s/n)?:

* En algún momento, se deberá calcular:

la cantidad de números introducidos,


la suma de los mismos y
la media aritmética de dichos números,

por tanto, seguramente, emplearemos 2 ó 3 instrucciones de asignación.

* Tendremos que utilizar varias variables para:

recoger el o los números que introduzca el usuario por teclado (numero),


contar los números introducidos (contador),
almacenar la suma de dichos números (acumulador),
preguntar al usuario si desea introducir otro número o no (seguir),
¿calcular la media aritmética (media_aritmetica)?

* Necesitaremos un bucle para que el usuario pueda introducir los números que
desee (solamente uno o más), de hecho, ya se nos especifica, en la "Nota" del
enunciado, que debemos hacer uso de un bucle hacer...mientras.

En los pasos siguientes, vamos a ver cómo combinar los elementos detectados
e integrarlos en la estructura de un algoritmo. No obstante, lo vamos a hacer,
poco a poco, a medida que vayamos construyendo dicho algoritmo.

· Paso 2

Escribir la estructura básica del algoritmo en pseudocódigo:

algoritmo Media_aritmetica_de_numeros_introducidos

inicio

...
fin

Obsérvese que, ya podemos nombrar al algoritmo mediante un identificador, en


este caso, podemos escribir:

Media_aritmetica_de_numeros_introducidos

En ordinograma, comenzaremos escribiendo el inicio y fin del cuerpo:

· Paso 3

Según se nos indica en el primer punto del ejercicio, el algoritmo debe:

1º) Pedir por teclado un número (dato entero).

Mostrándose por pantalla:

Introduzca un número entero: <número>

Por consiguiente, en el algoritmo hay que escribir una instrucción de salida y


otra de entrada. En pseudocódigo:

algoritmo Media_aritmetica_de_numeros_introducidos

inicio

escribir( "Introduzca un número entero: " )


leer( numero )
...

fin

Se tiene que declarar la variable numero, así escribimos:

algoritmo Media_aritmetica_de_numeros_introducidos
variables
entero numero

inicio

escribir( "Introduzca un número entero: " )


leer( numero )
...

fin

En ordinograma:

Recordemos que, en los ordinogramas no se representa la declaración de


variables.

· Paso 4

A continuación, en el segundo punto del ejercicio se nos indica que:

2º) El programa debe mostrar por pantalla los mensajes:

* Ha introducido <cantidad_de_números> número(s)


* La suma es <suma>

De modo que, incorporamos dos nuevas instrucciones de salida al algoritmo, en


las que vamos a mostrar el valor de una variable contador para mostrar la
cantidad de números introducidos por el usuario y, por otra parte, el valor de
una variable acumulador, para mostrar la suma de dichos números. En
pseudocódigo:

algoritmo Media_aritmetica_de_numeros_introducidos

variables
entero numero

inicio

escribir( "Introduzca un número entero: " )


leer( numero )
...

escribir( "Ha introducido ", contador, " número(s)" )


escribir( "La suma es ", acumulador )
...

fin

Y declaramos las nuevas variables: contador y acumulador.

algoritmo Media_aritmetica_de_numeros_introducidos

variables
entero acumulador, contador, numero

inicio

escribir( "Introduzca un número entero: " )


leer( numero )
...

escribir( "Ha introducido ", contador, " número(s)" )


escribir( "La suma es ", acumulador )
...

fin

En ordinograma:

Pero, ¿qué valores tienen las variables contador y acumulador? Inicialmente,


almacenarán un cero (0) cada una de ellas y, después de leer un número, habrá
que incrementar el valor de contador en uno (1) y sumar el valor de dicho
número a acumulador.

algoritmo Media_aritmetica_de_numeros_introducidos

variables
entero acumulador, contador, numero

inicio
acumulador ← 0
contador ← 0

escribir( "Introduzca un número entero: " )


leer( numero )

acumulador ← acumulador + numero


contador ← contador + 1

escribir( "Ha introducido ", contador, " número(s)" )


escribir( "La suma es ", acumulador )
...

fin

En ordinograma:

· Paso 5

Atendiendo al tercer punto del ejercicio:

3º) Preguntar al usuario si desea introducir otro número o no.

al algoritmo le añadimos una nueva instrucción de salida, otra de entrada y


declaramos una nueva variable (seguir).

En pseudocódigo:

algoritmo Media_aritmetica_de_numeros_introducidos

variables
caracter seguir
entero acumulador, contador, numero

inicio
acumulador ← 0
contador ← 0

escribir( "Introduzca un número entero: " )


leer( numero )

acumulador ← acumulador + numero


contador ← contador + 1

escribir( "Ha introducido ", contador, " número(s)" )


escribir( "La suma es ", acumulador )

escribir( "¿Desea introducir otro número (s/n)?: " )


leer( seguir )
...

fin

En ordinograma:

· Paso 6

Teniendo en cuenta el cuarto punto del ejercicio:

4º) Repetir los pasos 1º, 2º y 3º, mientras que, el usuario no responda 'n' de (no).

es necesario hacer uso de una instrucción de control repetitiva que, como se


especifica en la "Nota" del ejercicio, será un bucle hacer...mientras. En
cualquier caso, también podríamos habernos hecho las preguntas del
apartado ¿Cuándo usar un bucle u otro? del Curso de Diseño de Algoritmos:

* ¿Se conoce, de antemano, el número de veces (iteraciones) que tiene que


ejecutarse un determinado bloque de instrucciones? No, por tanto, descartamos
el bucle "para".
* ¿El bloque de instrucciones debe ejecutarse al menos una vez? Sí, de forma
que, optamos por hacer uso de un bucle "hacer...mientras".

En pseudocódigo:

algoritmo Media_aritmetica_de_numeros_introducidos

variables
caracter seguir
entero acumulador, contador, numero

inicio
acumulador ← 0
contador ← 0

hacer
escribir( "Introduzca un número entero: " )
leer( numero )

acumulador ← acumulador + numero


contador ← contador + 1

escribir( "Ha introducido ", contador, " número(s)" )


escribir( "La suma es ", acumulador )

escribir( "¿Desea introducir otro número (s/n)?: " )


leer( seguir )
mientras ( seguir <> 'n' )
...

fin

Fíjese que, la inicialización de las variables contador y acumulador no están


dentro del bloque de instrucciones del bucle, ya que, ello provocaría un error de
lógica.

En ordinograma:

· Paso 7

Y, finalmente, para el quinto punto:

5º) Mostrar por pantalla la media aritmética (dato real) de los números
introducidos.

añadimos una última instrucción. En pseudocódigo:

algoritmo Media_aritmetica_de_numeros_introducidos

variables
caracter seguir
entero acumulador, contador, numero

inicio
acumulador ← 0
contador ← 0

hacer
escribir( "Introduzca un número entero: " )
leer( numero )

acumulador ← acumulador + numero


contador ← contador + 1

escribir( "Ha introducido ", contador, " número(s)" )


escribir( "La suma es ", acumulador )

escribir( "¿Desea introducir otro número (s/n)?: " )


leer( seguir )
mientras ( seguir <> 'n' )

escribir( "La media aritmética es ", acumulador / contador )


fin

Nótese que, para mostrar la media aritmética no hemos utilizado una nueva
variable y, de esta forma, también nos ahorramos escribir una nueva instrucción
de asignación:

media_aritmética ← acumulador / contador

En ordinograma, la solución final será:

Puede consultar la codificación de este algoritmo en lenguaje C y en Pascal. No


obstante, téngase en cuenta que en Pascal se hace uso del bucle
"repetir...hasta" en vez de "repetir...mientras".

Estructura del algoritmo


Partes de un Algoritmo en Pseudocódigo
La estructura de un algoritmo sirve para organizar a los elementos que aparecen
en él. En pseudocódigo, todos los algoritmos tienen la misma estructura, la cual
viene definida por tres secciones: cabecera, declaraciones y cuerpo.

Diagrama de flujo y pseudocódigo:


PSEUDOCÓDIGO:
El pseudocódigo es una manera de escribir algoritmos de forma poco estricta (con una sintaxis
relajada) o estructuras de datos poco detalladas, pero intentando acercar las ideas del
algoritmos a estructuras y sintaxis parecidas a las de los lenguajes de alto nivel en los que
vamos a programar el algoritmo. Es para ser leído por personas, por tanto no se preocupa en
detalles sintácticos. Es un lenguaje de especificación de algoritmos, pero muy parecido a
cualquier lenguaje de programación, por lo que luego su traducción al lenguaje de
programación es muy sencillo, pero con la ventaja de que no se rige por las normas de un
lenguaje en particular.

DIAGRAMA DE FLUJO:
El diagrama de flujo o flujograma o diagrama de actividades es la representación
gráfica de un algoritmo o proceso. Se utiliza en disciplinas
como programación, economía, procesos industriales y psicología cognitiva.

FACES DEE DESARROLLO DE UN PROGRAMA

Fases para la creación de un programa.

1. Definición del Problema

Esta fase está dada por el enunciado del problema, el


cual requiere una definición clara y precisa. Es
importante que se conozca lo que se desea que realice
la computadora; mientras esto no se conozca del todo
no tiene mucho caso continuar con la siguiente etapa.

2. Análisis del Problema


Una vez que se ha comprendido lo que se desea de la
computadora, es necesario definir:
1. Los datos de entrada.
2. Cuál es la información que se desea producir
(salida).

3. Diseño del Algoritmo.

Las características de un buen algoritmo son:

- Debe tener un punto particular de inicio.


- Debe ser definido, no debe permitir dobles
interpretaciones.
Debe ser general, es decir, soportar la mayoría de
las
variantes que se puedan presentar en la definición
del
problema.Debe ser finito en tamaño y tiempo de
ejecución.

4. Codificación.

La codificación es la operación de escribir la solución


del problema (de acuerdo a la lógica del diagrama de
flujo o pseudocódigo), en una serie de instrucciones
detalladas, en un código reconocible por la
computadora, la serie de instrucciones detalladas se le
conoce como código fuente, el cual se escribe en un
lenguaje de programación o lenguaje de alto nivel.

5. Prueba y Depuración

Los errores humanos dentro de la programación de


computadoras son muchos y aumentan
considerablemente con la complejidad del problema. El
proceso de identificar y eliminar errores, para dar paso
a una solución sin errores se le llama depuración.
La prueba consiste en la captura de datos hasta que
el programa no presente errores (los más comunes
son los sintácticos y lógicos).

6. Documentación.

Es la guía o comunicación escrita es sus variadas


formas, ya sea en enunciados, procedimientos, dibujos
o diagramas.
A menudo un programa escrito por una persona, es
usado por otra. Por ello la documentación sirve para
ayudar a comprender o usar un programa o para
facilitar futuras modificaciones (mantenimiento).

La documentación se divide en tres partes:


1. Documentación Interna
2. Documentación Externa
3. Manual del Usuario.

7. Mantenimiento.

Se lleva acabo después de terminado el programa,


cuando se detecta que es necesario hacer algún
cambio, ajuste o complementación al programa para
que siga trabajando de manera correcta. Para poder
realizar este trabajo se requiere que el programa este
correctamente documentado

QUE ES UN LENGUAJE DE PROGRAMACION:

Un lenguaje de programación es un lenguaje formal que proporciona una serie


de instrucciones que permiten a un programador escribir secuencias de órdenes
y algoritmos a modo de controlar el comportamiento físico y lógico de una computadora con el
objetivo de que produzca diversas clases de datos. A todo este conjunto de órdenes y datos
escritos mediante un lenguaje de programación se le conoce como programa.

PARTES DEL PSEINT:

También podría gustarte