Está en la página 1de 18

INFORMÁTICA PARA LA INGENIERÍA Y LAB.

ALGORITMOS
CAPÍTULO III
ALGORITMOS
3.1 DEFINICIÓN
Algoritmo, es una serie de instrucciones sencillas que se
llevan a cabo para solventar un problema.

“Conjunto de reglas que, aplicada sistemáticamente a


unos datos de entrada apropiados, resuelven un problema
en un número finito de pasos elementales”

“Ejecutar instrucciones de manera sistemática de un


procedimiento finito”

Los algoritmos recogen operaciones tan sencillas que


pueden ser realizadas con éxito por cualquier persona o
máquinas.

3.2 FORMAS DE REPRESENTAR ALGORITMOS


ALGORITMOS DE LA VIDA REAL EN PSEUDOCÓDIGO

Los algoritmos ya existían desde los tiempos de los


babilonios, con la llegada de los ordenadores tomaron mucho
más protagonismo, donde la unión de máquinas y algoritmos
es lo que revoluciono el mundo informático.

El matemático británico Alan Turing, famoso por haber reventado la máquina “Enigma” de
mensajes cifrados de los nazis y posteriormente haberse suicidado mordiendo una manzana
envenenada tras sufrir una dura persecución debido a su condición sexual, fue de los
primeros que relacionó algoritmo y ordenadores, llegando a pensar que las máquinas podrían
tener pensamiento propio.

La Máquina de Turing paso de ser máquina a


un constructo mental, consiste en una cinta
infinita sobre la que se va haciendo
operaciones repetitivas hasta dar soluciones,
lo cual viene a ser una definición informática
del algoritmo y un ordenador, el primero,
conceptualizado como: “el precursor de los
ordenadores que tiene memoria,
instrucciones (un programa), operaciones
elementales, una entrada y una salida”.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 1


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
Dentro de los problemas del mundo hay de dos tipos: los que puede resolver una Máquina
de Turing (llamados computables) y los que no (los no computables), igual que vemos en el
mundo real tareas que pueden realizar las máquinas (cada vez más) y otras que solo pueden
realizar las personas. Todos los ordenadores, tablets, smartphones, etc, que conocemos
son máquinas de Turing.

Los ordenadores pueden calcular mucho más


rápido que un cerebro humano y desde la
aparición de internet hay un salto y se están
llegando a cosas que parecían imposibles. Por
ejemplo, en disciplinas en plena ebullición
como el big data o la inteligencia artificial.

Los algoritmos se usan para conocer nuestros gustos, esto es empleado por las redes
sociales, también puede utilizarse para predecir resultados electorales, es así que el mundo
del trabajo va algoritmizando las diferentes tareas y se automatiza al trabajo. Las únicas
tareas no algoritmizables, por el momento, son las relacionadas con la creatividad y las
emociones humanas, esa es nuestra ventaja a diferencia de las máquinas.

Los algoritmos se encuentran involucrados con la


industria, por el impacto económico que puede
ocasionar, y se prueban con un “pool de usuarios” los
cuales son consumidores de un determinado producto.
El problema en los algoritmos más complejo grandes
a menudo aparecen sesgos, es así que un algoritmo “no
es una caja negra” y sus resultados no se deben
asumir sin cuestionarlos, entonces cuando se perciba una situación anómala es preciso
denunciarla a entes superiores para que lo analice”, ya que los algoritmos no son entes
autónomos, sino que debe existir personas que lo supervisen.

Entonces los programadores e ingenieros informáticos,


deben desarrollar un código ético para evitar algunos de los
problemas que pueda acarrear la tecnología. Debido a su
posición en el desarrollo de sistemas software, los ingenieros
tienen suficientes oportunidades para causar beneficio o
generar daño, para influenciar a otros a causar beneficio o
generar daño. Por eso, al realizar un algoritmo el primer
punto de sus principios debe ser: “Los ingenieros de software
actuarán de manera coherente con el interés social”.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 2


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
3.2.1 DIAGRAMAS DE FLUJO

Es una representación gráfica del algoritmo o proceso,


mostrando paso a paso las operaciones de los componentes de
un sistema. Son herramientas gráficas para la representación
visual de algoritmos, compuestos por una serie de símbolos
icónicos unidos por flechas.

Características:

• Los símbolos representan acciones o funciones en el programa.


• Las flechas representan el orden de realización de las acciones o funciones,
marcando el sentido o flujo lógico del algoritmo.
• Cada símbolo tendrá al menos una flecha que conduzca hacia él y una flecha que
parta del mismo, a excepción de los terminadores y conectores.
• Se leen de arriba a abajo y de izquierda a derecha.

Sus principales ventajas son que al ser visuales son muy sencillos de entender y que utilizan
símbolos estándar.

Su mayor desventaja es la dificultad de mantenimiento y actualización, puesto que deben


utilizarse editores gráficos.

3.2.2 SIMBOLOS DE USO EN UNA DIAGRAMACIÓN


Estos diagramas utilizan símbolos con significados definidos que representan los pasos del
algoritmo mediante flechas que conectan los puntos de inicio y fin del proceso.

SIMBOLO NOMBRE SIGNIFICADO


Indica el inicio o la terminación un programa, también
Terminal puede representar una parada o interrupción
programada que sea necesaria realizar en un programa.

Disparador Indica el inicio de un procedimiento o subrutina.

Cualquier tipo de introducción de datos en la memoria


Entrada o
desde los periféricos o registros de información
Salida
procesada en un periférico.
Representa la realización de una operación o actividad
relativas a un procedimiento que pueda originar cambio
Proceso u
de valor, formato o posición de la información
Operación
almacenada en memoria, operaciones aritméticas, de
trasformación, etc.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 3


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
Indica un punto dentro del flujo en que son posibles
varios caminos alternativos, mediante la utilización de
operaciones lógicas o de comparación entre datos
Decisión o
(Normalmente dos) y en función del resultado de la
Alternativa
misma determina (normalmente SI y NO) cuál de los
distintos caminos alternativos del programa se debe
seguir.
Sirve para enlazar dos partes cualesquiera de un
Conector diagrama a través de un conector en la salida y otro
Misma Página conector en la entrada. Se refiere a la conexión en la
misma página del diagrama.
Indicador de
Dirección o Indica el sentido de la ejecución de las operaciones
Línea de Flujo
Se utiliza en ocasiones en lugar del símbolo de salida. El
Salida dibujo representa un pedazo de hoja. Es usado para
mostrar datos o resultados.

3.3 METODOLOGÍA PARA LA ELABORACIÓN DE DIAGRAMAS DE


FLUJO
Para la elaboración de los diagramas de flujo, se debe tener en cuenta una metodología
planificada; considerando que los flujogramas son la parte fundamental del manual. Para
conformar su estructuración, mejorarlos o cambiarlos, se debe considerar los siguientes
aspectos:

Delimitación del procedimiento

Donde debe preguntarse: ¿Cuál es el procedimiento que se va a analizar?

¿Dónde se inicia?

¿Dónde termina?

Una vez contestadas las preguntas anteriores, se podrá fijar el objetivo del estudio; éste
servirá de guía para la investigación, el análisis y la propuesta del procedimiento en estudio.

Recolección de la Información
Consiste en buscar la información y documentos, estos cuando están organizados,
analizados y sistematizados, nos den a conocer los procesos como se operan en el momento;
lo que nos servirá posteriormente para proponer los ajustes que se consideren
convenientes.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 4


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
Para recabar la información, es fundamental
acudir a varias fuentes, entre ellas pueden
ser: los archivos documentales, que rigen el
funcionamiento y actividades; los
funcionarios y empleados quienes pueden
aportar información para el análisis, diseño e
implantación de procedimientos; y las áreas
de trabajo que sirven para tener la visión real
de las condiciones, medios y personal que
operan los procedimientos.

Análisis de la Información

Constituye una de las partes más


importantes del estudio de procedimientos,
consiste fundamentalmente en estudiar
cada uno de los elementos de información o
grupos de datos que se integraron durante
la recolección de información, con el
propósito de obtener un diagnóstico que
refleje la realidad operativa actual.

Esta información una vez analizada, se


procede a organizar y reflejar a través de
gráficos ordenados que nos va a mostrarnos
el flujo de un proceso.

Análisis del Procedimiento

Este punto nos ayuda a definir los flujos de los procedimientos, una vez que todas las
actividades se han sometido al análisis correspondiente, y se considera que es necesario
mejorar o rediseñar un procedimiento, se deberá utilizar la técnica de los cinco puntos que
se presenta a continuación:

a) Eliminar

La primera y más importante de este método es eliminar todo lo que no sea absolutamente
necesario. Cualquier operación, paso o detalle que no sea indispensable, deben ser
eliminados.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 5


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
b) Combinar

Si no puede eliminar algo, entonces el


siguiente punto es combinar algún paso del
procedimiento con otro. Cuando se
combina, generalmente se eliminan algunos
detalles.

c) Cambiar

En este punto debe revisarse si algún


cambio que pueda hacerse en el orden, el
lugar o la persona que realiza una actividad,
puede simplificar el trabajo. Los
procedimientos pueden simplificarse
cambiando la secuencia de las operaciones, modificando o cambiando el lugar, o
sustituyendo a la persona que realiza determinada actividad.

d) Mejorar

Algunas veces es imposible eliminar, combinar o cambiar; en estas circunstancias el


resultado más práctico se logra mejorando el procedimiento; haciendo alguna mejoría a la
actividad, puesto de trabajo o equipo empleado.

e) Mantener

Consiste en conservar las actividades que como resultado del análisis, no fueron aptos para
eliminar, combinar, cambiar o mejorar.

LENGUAJES DE PROGRAMACIÓN

El trabajo de los programadores informáticos consiste en traducir los problemas del mundo
a un lenguaje que una máquina pueda entender, para ello se analiza un determinado caso,
que serán convertidos en pequeños problemas de sucesión y pasarán a ser procesados a la
computadora como tarea. Un programa de ordenador es un algoritmo escrito en un lenguaje
de programación, que al final acaba convertido en miles de sencillas operaciones que se
realizan con corrientes eléctricas en el procesador,
corrientes representadas por los famosos unos y
ceros, los dígitos que caracterizan lo digital.

El lenguaje de programación, es un lenguaje formal


que, mediante una serie de instrucciones, le permite
a un programador escribir un conjunto de órdenes,

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 6


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
acciones consecutivas, datos y algoritmos, para desarrollar programas que controlen el
comportamiento físico y lógico de una aplicación.

Mediante este lenguaje se comunican el programador y el ordenador, permitiendo


especificar de forma precisa, aspectos como:

• Cuáles datos debe operar un software específico


• Cómo deben ser almacenados o transmitidos esos datos
• Las acciones que debe tomar el software dependiendo de las circunstancias
variables

El lenguaje de programación es un sistema estructurado de comunicación, el cual está


conformado por conjuntos de símbolos, palabras claves, reglas semánticas y sintácticas
que permiten el entendimiento entre un programador y un ordenador. En general un
lenguaje de programación sirve para programar. Sin embargo cada uno tiene un alcance y
forma de comunicación diferente.

Existe el lenguaje de bajo nivel que permite la comunicación interna


de la máquina o control directo sobre el hardware, donde cada
instrucción tiene su código único de operación, están condicionados
por la estructura física de la computadora que lo soporta. El uso de
la palabra bajo en su denominación no implica que el lenguaje sea
inferior a un lenguaje de alto nivel, si no que se refiere a la reducida
abstracción entre el lenguaje y el hardware.

Son lenguajes dependientes de la máquina, el


programa que se realiza con este tipo de
lenguajes no se pueden migrar o utilizar en
otras máquinas. Estos lenguajes como están
diseñados a medida del hardware, aprovechan
al máximo las características del mismo.

VENTAJAS DESVENTAJAS
- Mayor adaptación al equipo - El código es dependiente de cada máquina
- Dificultad de programar y compresión de programas
- Posibilidad de obtener la - El programador debe conocer más de un centenar de
máxima velocidad con instrucciones
mínimo de memoria -Debe conocerse la estructura de la arquitectura

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 7


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
Y el lenguaje de alto nivel, que facilita la captación de instrucciones que el programador le
da a la máquina, donde se introduce datos en el idioma conocido, la máquina lo va
absorbiendo en lenguaje de máquinas mediante traductores o compiladores, permitiendo
así:
• reducir el tiempo de programación;
• entender más fácilmente la tarea a realizar;
• permitir al programador desvincularse del
funcionamiento interno de la máquina, entre
otros.

En otras palabras, el lenguaje de bajo nivel es cercano a los idiomas de las máquinas,
mientras que el lenguaje de alto nivel está más cerca del entendimiento e idioma humano.

3.3 CONDICIONES QUE DEBE CUMPLIR TODA LÓGICA PARA


DENOMINARSE ALGORITMO
Los algoritmos, además de ser un conjunto finito de reglas que dan lugar a una secuencia
de operaciones para resolver un tipo específico de problemas, deben cumplir con las
siguientes condiciones:

• Finitud: Un algoritmo tiene que


acabar siempre tras un número
finito de pasos. (Un procedimiento
que tiene todas las características
de un algoritmo salvo que
posiblemente falla en su finitud, se
conoce como método de cálculo).

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 8


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
• Definibilidad: Cada paso de un
algoritmo debe definirse de modo
preciso; las acciones a realizar han
de estar especificadas para cada
caso rigurosamente y sin
ambigüedad.
• Conjunto de entradas: Debe
existir un conjunto especificado
de objetos, cada uno de los cuales
constituye los datos iniciales de un
caso particular del problema que
resuelve el algoritmo. A este
conjunto se le denomina conjunto
de entradas del algoritmo.
• Conjunto de salidas: Debe existir un número especificado de objetos, cada uno de
los cuales constituye la salida o respuesta que debe obtener el algoritmo para los
diferentes casos particulares del problema. A este conjunto se le denomina conjunto
de salidas del algoritmo. Para cada entrada del algoritmo, debe existir una salida
asociada que constituye la solución al problema particular determinado por dicha
entrada.
• Efectividad: Un algoritmo debe ser efectivo. Esto significa
que todas las operaciones a realizar por el algoritmo deben
ser lo bastante básicas para poder ser efectuadas de modo
exacto, y en un lapso de tiempo finito por el procesador que
ejecute el algoritmo.

3.4 OPERADORES ARITMÉTICOS, LÓGICOS Y DE RELACIÓN


Los operadores, son elementos que relacionan de forma diferente, los valores de una o más
variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Es así
que a continuación se describen los siguientes tipos de operadores.

Los operadores aritméticos permiten la realización de operaciones


matemáticas con los valores (variables y constantes). Los operadores
aritméticos pueden ser utilizados con tipos de datos enteros o
reales. Si ambos son enteros, el resultado es entero; si alguno de
ellos es real, el resultado es real.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 9


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
Ordenador Nombre Ejemplo Significado
+ Suma a+b a más b
– Resta c–d c menos d
* Multiplicación e*f e multiplicado por f
/ División g/h g dividido entre h

Existen las siguientes prioridades en los operadores aritméticos:

• Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con
paréntesis anidados se evalúan de dentro a fuera, el paréntesis más interno se evalúa
primero.
• Dentro de una misma expresión los operadores se evalúan de izquierda a derecha.

Los operadores relacionales, son símbolos que se usan para


comparar dos valores. Si el resultado de la comparación es
correcto la expresión considerada es verdadera (true), en
caso contrario es falsa (false). Por ejemplo, 9 > 5 (nueve
mayor que cinco) es verdadera, se representa por el valor
true del tipo básico booleano, en cambio, 9 < 5 (nueve menor
que cinco) es falsa, false.

En la primera columna de la tabla, se dan los símbolos de los operadores relacionales, en la


segunda el nombre de dichos operadores, y a continuación su significado mediante un
ejemplo.

Operador Nombre Ejemplo Significado


< Menor que a<b a menor que b
> Mayor que c>d c mayor que d
= == Igual que e=f e igual que f
<= Menor igual que g <= h g menor igual que h
>= Mayor igual que k >= l k mayor igual que l
< > != Diferente que q<>r q diferente que r

Los operadores lógicos, se utilizan para establecer relaciones entre valores lógicos. Estos
valores pueden ser resultado de una expresión relacional.

Nombre Ejemplo Significado


and (a < b) and (c < d) (a menor que b) y (c menor que d)
or (e > f) or (g > h) (e mayor que f) o (g mayor que h)
not not (q < r) q no es menor que r

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 10


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
3.5 CONSTANTES Y VARIABLES
Una constante es un dato cuyo valor no puede cambiar durante la ejecución del programa.
Recibe un valor en el momento de la compilación y este permanece inalterado durante todo
el programa.

Se puede hacer una división de las constantes en tres clases:

• Constantes literales, Son valores de cualquier tipo que se utilizan


directamente, no se declaran ya que no tienen nombre.
 3,1415
Ejemplo: V = d2  h → cte =
4 4
• Constantes declaradas, o constantes con nombre, son las que se declaran en la
sección “const” asignándoles un valor directamente.

Pi 2
Ejemplo: const Pi = 3,1415 → V = d h
4

• Constantes expresión, también se declaran en la sección “const”, pero a estas no se


les asigna un valor directamente, sino que se les asigna una expresión. Esta expresión
se evalúa en tiempo de compilación y el resultado se le asigna a la constante.
Ejemplo: const C = a + b → d=C+f z=g-C

Una variable es un nombre asociado a un elemento de datos que está situado en posiciones
contiguas de la memoria principal, y su valor puede cambiar durante la ejecución de un
programa. Toda variable pertenece a un tipo de dato concreto.

En la declaración de una
variable se debe indicar el
tipo al que pertenece. Así
tendremos variables enteras,
reales, booleanas, etc. Las
variables pueden ser globales
o locales:

• Una variable es global a no ser que esté declarada dentro de una definición de
función. Las variables globales resultan visibles y disponibles para todas las
sentencias.
• Las variables locales sólo resultan visibles y disponibles dentro de la función o
subrutina en la que están definidas. Aunque los nombres de variables y los
identificadores deben ser exclusivos, resulta válido declarar una variable local con

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 11


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
el mismo nombre que una variable global o con el mismo nombre que una variable local
definida en otra función. Los nombres de parámetros de una definición de función
se consideran variables locales. Los datos que se pasan a una función se pasan según
el valor.

Nombrar una variable

Los nombres de las variables pueden empezar con letras, y no símbolos, solo pueden
contener letras, números, no deben empezar con un número. Los nombres de las variables
deben ser claros y con sentido, preferentemente que el programador pueda recordar y
relacionar con el procedimiento a realizar. Como ejemplo "miVariable", "Dato1" y "valor2"
son todos ejemplos válidos de nombres de variables.

Los nombres de las variables distinguen entre mayúsculas y minúsculas, lo que significa que
"xPos" es diferente de "xpos", así que debe asegurarse de ser consistente e irrepetible.
Los nombres de las variables no pueden ser los mismos que los nombres de palabras ya
existentes, ya que existen palabras reservadas por un programa que no deben ser
empleadas nuevamente como por ejemplo la palabra “to”.

Los nombres de las variables deben usar el formato mayúscula y minúscula (camelCase)
para varias palabras.

CamelCase, es un estilo de escritura que se aplica a frases o palabras compuestas. El


nombre se debe a que las mayúsculas a lo largo de una palabra en “CamelCase” se asemejan
a las jorobas de un camello. El nombre CamelCase se podría traducir como
Mayúsculas/Minúsculas Camello. El término case se traduce como "caja tipográfica", que a
su vez implica si una letra es mayúscula o minúscula y tiene su origen en la disposición de
los tipos móviles en casilleros o cajas.

Existen dos tipos de CamelCase:

• UpperCamelCase, cuando la primera letra de cada una de las palabras es mayúscula.


Ejemplo: EjemploDeUpperCamelCase.
• lowerCamelCase, igual que la anterior con la excepción de que la primera letra es
minúscula. Ejemplo: ejemploDeLowerCamelCase.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 12


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
SENTENCIA

Las sentencias son los elementos básicos en los que se divide el código en un lenguaje de
programación. Al fin y al cabo, un programa no es más que un conjunto de sentencias que
se ejecutan para realizar una cierta tarea.

En algunos casos, después de la sentencia hay una


palabra reservada de las que delimitan de alguna
forma un trozo de código. Por ejemplo, end, else,
until, etc. Las sentencias como casi todas las
cosas, se dividen en simples y estructuradas.

Las sentencias simples se dividen en:

• La sentencia GOTO, se utilizaba mucho en los primeros lenguajes de programación


porque era la única manera de saltar de una instrucción del programa a otra.

• La sentencia de llamada a procedimiento, consiste en llamar a un procedimiento, y


se hace poniendo el nombre del procedimiento. Mediante el uso de procedimientos
se facilitará la resolución de problemas, la legibilidad de tu código y la depuración
de los programas. Lo que hace es, dividir un programa grande en otros más pequeños
para llamarlos cuando los necesite. La declaración de procedimientos se suele hacer
justo antes del cuerpo principal del programa y puede verse su tema
correspondiente. Además se dedica un tema completo a la creación y uso de
procedimientos.

• La sentencia de asignación, es una de las instrucciones más comunes en un programa,


lo que permite es dar un primer valor o cambiar el valor a una variable. Una sentencia
de asignación consta de tres partes:
o La parte a la izquierda del símbolo de asignación
o El propio símbolo de asignación
o La parte de la derecha

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 13


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
3.6 CONTADORES Y ACUMULADORES
Contadores, En programación, se llama contador a una
variable cuyo valor se incrementa o decrementa en un
valor fijo (en cada iteración de un bucle). Un contador
suele utilizarse para contar el número de veces que itera
un bucle. Pero, a veces, se utiliza para contar, solamente,
aquellas iteraciones de un bucle en las que se cumpla una
determinada condición. Por lo general los programas
utilizan la letra reservada “i” como variable
predeterminada de un contador: Como ejemplo:
a=i+1 b = a*(i+1)

Acumuladores, Definiremos acumulador como un


elemento cuyo contenido actual se genera a partir de su
contenido precedente, tienen las mismas características
que un contador excepto el valor de incremento que es un
valor variable. El concepto de acumulador guarda relación
estrecha con el de contador. Podríamos decir que el
contador es un tipo específico de acumulador. En general,
los valores del acumulador se van generando a través de
sumas (o restas) sucesivas. Casos particulares serían los
de generación de valores a partir de multiplicaciones (o
divisiones) u otras operaciones matemáticas.

La expresión genérica de la evolución de un acumulador A sería:


Sumas Restas Multiplicaciones Divisiones
A=A+B A=A–B A=A*B A=A/B
A=A+C A=A–C A=A*C A=A/C
A=A+D A=A–D A=A*D A=A/D
. . . .
. . . .
. . . .
A=A+X A=A–X A=A*X A=A/X

Diferencia entre Acumulador y Contador

La diferencia entre un contador y un acumulador es que mientras el primero va


aumentando en una cantidad fija preestablecida, el acumulador va aumentando en una
cantidad o valor variable.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 14


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
3.7 METODOLOGÍA GENERAL PARA LA RESOLUCIÓN DE PROBLEMAS
Cuando se quiere resolver problemas en programación se puede pasar directamente al
computador y empezar a escribir código sin antes haber
analizado en lo más mínimo el problema, o se puede analizar y
directamente escribir el código donde en algunos casos esta
práctica funcionaria, cuando los problemas son sencillos o
cuando eres un programador experimentado, no así con
problemas más complejos y más aún cuando se inicia en la
programación. A veces se piensa que con hacer las cosas
directamente se ganará más tiempo, pero en realidad no es así,
muchas de las veces el tiempo que se lleva programando un
problema directamente sin haber hecho un análisis previo, es el doble o triple que si
hubiésemos hecho previamente un análisis, por lo general se cometen muchos errores, que
a la larga consume mayor tiempo.

Un buen hábito y como buenos programadores es llevar una metodología para solucionar un
problema por más simple que sea, entonces se procede con los siguientes pasos para
resolver un problema en programación y básicamente la idea es convertirlo en un hábito
cada vez que vayamos a programar:

ANÁLISIS PREVIO DEL PROBLEMA

• Se debe definir y tener claro lo que el programa


tiene que hacer, junto con las tareas que debe
realizar para llevar a cabo la solución.
• Realizar pedir formatos (formas de presentación de los
datos o de donde se obtienen los datos cuando se hacen de
forma manual), fórmulas, realizar ejemplos y verificar los
resultados. Básicamente en este punto o fase se debe
recoger todos los requerimientos y especificaciones del
problema. Este punto debe ser uno de los más importantes
y críticos de la resolución de problemas ya que un mal
análisis lleva a un mal diseño y posterior a un mal resultado.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 15


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
• Qué datos necesito para realizar la tareas, que formato
deben tener los datos de entrada, de donde provienen
los datos de entrada, como se obtienen esos datos, cómo
interactúan los datos entre sí para obtener el resultado.
• Tener claro cuál será el resultado que se desea obtener,
tampoco dejar de lado las restricciones que puede haber
al momento de procesar los datos.
• Cuestionarse y hacer la pregunta: ¿y si pasa esto o
aquello? qué comportamiento tomaría el programa.

DISEÑO DEL ALGORITMO

Una vez que tenemos claro el problema,


después de haber definido todas las entradas y
salidas que va tener el programa, también las
tareas a realizar, es hora de diseñar el
algoritmo y que irá de acuerdo a todas las
especificaciones anteriores y posteriormente
será implementado en un lenguaje de
programación para ser ejecutado por la
computadora. El algoritmo se lo puede hacer de cualquier forma: Pseudocódigo o Diagrama
de Flujo, la idea principal es que sea entendible, y no solo por el que lo diseño si no por
cualquier persona. En conclusión se define lo que hará el programa.

CONFIGURACIÓN DEL ENTORNO DE DESARROLLO Y CODIFICACIÓN

Esta etapa consiste en transcribir o adaptar el algoritmo a un lenguaje de programación,


se tendrá que adaptar todos los pasos diseñados en el algoritmo con sentencias y sintaxis
propias del lenguaje. Verificar errores, organizar el código y comentarlo, son buenas
prácticas que hacen programas más legibles y facilitan la depuración. Previamente a la
codificación se debe tener configurado el entorno de trabajo, y luego pasar el algoritmo al
lenguaje de programación.

COMPILACION Y PRUEBAS

La fase de compilación permitirá detectar errores en tiempo


de compilación, ejecución y lógicos, donde es recomendable
guardarlo por fechas o estado de precedencia o importancia.
En esta fase también es necesario realizar pruebas con una
gran cantidad de datos para encontrar posibles errores y
corregirlos.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 16


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS
DOCUMENTACIÓN Y MANTENIMIENTO

Por últimos se debe tener una documentación de todos los pasos hasta llegar a la solución
del problema, a veces es un poco tedioso esta fase pero también es muy importante ya que
muchas veces suceden modificaciones con el pasar del tiempo y estas se hace en algunos
casos por otros programadores diferentes a los que lo crearon (que incluso cuando uno
mismo modifico y no se acuerda que hacia ese código), y cuando un programa es pobre en
documentación este proceso de modificación es totalmente complejo.

3.9 RESOLUCIÓN DE PROBLEMAS NUMÉRICOS, REFLEJADOS EN


PSEUDOCÓDIGO Y DIAGRAMA DE FLUJO
Pseudocódigo, es un pseudolenguaje intermedio entre el natural del programador y el
lenguaje de programación seleccionado, considerándose por tanto un lenguaje de
pseudoprogramación. No existe una sintaxis estándar para el pseudocódigo, utilizando una
mezcla de lenguaje natural (utilizando como base la lengua nativa del programador) y una
serie de símbolos, términos y otras características propias de los lenguajes de
programación de alto nivel.

Sus principales características son:


• Es fácil de aprender y utilizar.
• Es conciso.
• Es independiente del lenguaje de programación que se vaya a utilizar.
• Facilita el paso del programa al lenguaje de programación.
• Es fácil de mantener.

Sus principales ventajas sobre las técnicas diagramáticas que veremos a continuación son
su facilidad de creación, evolución y mantenimiento, además de la facilidad para expresar
el pseudocódigo en cualquier lenguaje de programación.

Sus mayores inconvenientes son su falta de estandarización y la dificultad para su lectura


cuando su tamaño crece.

Para resolver problemas numéricos, debe realizarse un análisis, mediante un algoritmo que
generalmente se representa con un diagrama de flujo y pseudo código, es así que presenta
el siguiente código.

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 17


INFORMÁTICA PARA LA INGENIERÍA Y LAB. ALGORITMOS

En Pseudocódigo: En código:
Leer A, B y C Dim A, B, C
Si A>B entonces: If A>B then
Si A>C entonces: If A>C then
Escribir “El mayor es A” “El mayor es A”
Si no Else If
Escribir “El mayor es C” “El mayor es C”
Fin del Si End If
Si no Else If
Si B>C entonces: If B>C then
Escribir “El mayor es B” “El mayor es B”
Si no Else If
Escribir “El mayor es C” “El mayor es C”
Fin del Si End If
Fin del Si End If

M.Sc. Ing. EFRAIN SANTALLA ALEJO Página 18

También podría gustarte