Vous êtes sur la page 1sur 22

1.

- la noción de programación se encuentra muy asociada a la creación de


aplicaciones informáticas y videojuegos; es el proceso por el cual una
persona desarrolla un programa valiéndose de una herramienta que le
permita escribir el código (el cual puede estar en uno o varios lenguajes,
tales como C++, Java y Python) y de otra que sea capaz de “traducirlo” a
lo que se conoce como lenguaje de máquina, el cual puede ser
entendido por un microprocesador.
Este último paso se conoce como compilación y es necesario para que el
código pueda ser ejecutado por la plataforma para la cual haya sido
creado, que puede ser un ordenador, una tableta, una consola o un
teléfono móvil, por ejemplo. Existe también una forma de traducir el
código denominada interpretación, que consiste en analizar línea a
línea, hasta que se traduzca lo suficiente como para poder realizar una
tarea. Cabe mencionar que los lenguajes de programación se dividen en
dos grandes grupos, donde los que pueden ser compilados no pueden ser
interpretados, y viceversa.

La programación se guía por una serie de reglas y un conjunto pequeño de órdenes,


instrucciones y expresiones que tienden a parecerse a una lengua natural acotada. El
lenguaje de programación, son todas aquellas reglas o normas, símbolos y palabras
particulares empleadas para la creación de un programa y con él, ofrecerle una solución
a un problema determinado.

El lenguaje de programación es el responsable de que la computadora siga paso a


paso las órdenes que el programador ha diseñado en el algoritmo. Con esto se
entiende que el lenguaje de programación es una especie de intermediario entre el
ordenador y el usuario, para que este último pueda darle respuesta a los problemas
mediante la computadora y haciendo uso de palabras (funciones), que le interpretan
dicho programa al computador para la realización de ese trabajo.

Ahora bien, dependiendo del lenguaje que se elija, se puede hablar del tipo de
programación que se va a realizar. Algunos de ellos son:

Programación secuencial: son aquellos programas que se diseñan con directrices que
van en secuencia una detrás de la otra. Por ejemplo: Cobol, Basic.

Programación estructurada: se considera así, cuando la programación es diseñada por


módulos. Cada módulo realiza una tarea en especial, y cuando se requiera de esa tarea,
sencillamente se le hace el llamado a ese módulo. Por ejemplo: Turbo Pascal, Ada,
Modula.

Programación orientada a objetos: son aquellos lenguajes que permiten la


implementación de objetos dentro del diseño del mismo y el usuario podrá pegar a
cada objeto un código de programa. Algunos de estos son: Java, Xml, entre otros.

Programación lógica o de lenguaje natural: son aquellos programas que se diseñan con
interfaces, de tal manera que el usuario pueda darle ordenes a la máquina utilizando un
lenguaje simple. Por ejemplo: Prolog.

Programación de inteligencia artificial: son aquellos programas que más se acercan a la


inteligencia humana, ya que tienen la capacidad de desarrollar conocimiento. Este tipo
de lenguaje trabaja de una manera muy semejante a la mente humana.

2.- Los 5 lenguajes de programación más populares de la actualidad son: Java, C, C++,
Pyhton y C#. Así lo asegura el Índice TIOBE en su última actualización de junio 2017. La
novedad es que el lenguaje de programación Kotlin salta a los 50 más populares.
Probablemente te preguntes qué se supone que debas interpretar por lenguaje de
programación "más popular". A continuación, te explicamos.

El Índice TIOBE es un índice elaborado por una empresa de software holandesa que se
especializa en la evaluación y seguimiento de la calidad de los programas informáticos.
Actualmente, la empresa revisa en tiempo real más de 300 millones de códigos de diversos
programas informáticos por día actualizando mes a mes su índice.

El Índice TIOBE se elabora a partir de diversas variables, como por ejemplo, número de
ingenieros cualificados en determinado lenguaje, las búsquedas que hacen los usuarios a
través de los buscadores solicitando información de los distintos lenguajes de
programación, la demanda de cursos o los lenguajes que están siendo más utilizados. El
índice no dice cuál es el mejor, o en qué lenguaje de programación se escribió la mayor
cantidad de líneas de código. Más bien sirve para que un programador pueda determinar
si sus conocimientos en un determinado lenguaje han quedado obsoletos, o si por el
contrario sus conocimientos están vigentes. También puede ser de utilidad si tienes que
tomar una decisión estratégica respecto a qué lenguaje debes utilizar para la construcción de
determinado software. Los datos que veremos a continuación corresponden al mes de junio
de 2017.

1. Java
Reconocido por su legibilidad y simplicidad, Java es uno de los lenguajes de programación
más adoptados: más 9 millones de desarrolladores lo usan y está presente en 7 mil millones
de dispositivos en todo el mundo. Desde 2001 se mantiene en las primeras posiciones,
llegando al número puesto número 2 como la más baja de todas en marzo de 2015. Su
enorme popularidad se debe a su poder de permanencia, cuestión que asegura el
funcionamiento a largo plazo de las aplicaciones que lo utilizan.
Asimismo, cabe destacar que el manejo de Java está incluido dentro de las 20 habilidades
más valoradas por los empleadores en 2016, según un estudio elaborado por LinkedIn.
¿Te gustaría saber más? Conocé >4 cursos online gratuitos para que aprendas a programar
en Java y comenzá a estudiar hoy mismo. Si sos de Córdoba, informate sobre la Carrera de
Web Developer que ofrece el Instituto Superior Santo Domingo.

2. C
Creado entre 1969 y 1972 en los Laboratorios Bell, es uno de los más utilizados en el
mundo. Si bien es ejecutado en la mayoría de los sistemas operativos, es de propósito
general, con lo cual es muy flexible. Es muy popular para el desarrollo de aplicaciones de
escritorio, como el conocido editor gráfico GIMP.
Conocé el Curso de Diseño de Sitios Web y Maquetación HTML de la Nueva Escuela de
Diseño y Comunicación en Balvanera.

3. C++
Conocido por el nombre “C Plus Plus”, este lenguaje de programación orientado a objetos
surge como una continuación y ampliación del C. Hay una gran cantidad de programas
escritos en C++, como por ejemplo los paquetes de Adobe.

4. Python
Un lenguaje de programación multiplataforma y multiparadigma, que también es de
propósito general. Esto significa que soporta la orientación a objetos, la programación
imperativa y funcional. Su simpleza, legibilidad y similitud con el idioma inglés lo
convierten en un gran lenguaje ideal para principiantes.

5. C#
También llamado “C Sharp”, este lenguaje de programación orientado a objetos fue
desarrollado en el año 2000 por Microsoft para ser empleado en una amplia gama de
aplicaciones empresariales ejecutadas en el framework .NET. C Sharp es una evolución del
C y C++ que se destaca por su sencillez y modernidad.
Tal vez te pueda interesar la Certificación Oracle de Java (OCJP Oracle Certified Java
Programmer) que brinda la UTN de forma online.

6. Visual Basic. NET


Pasó del número 9 en junio de 2016 al sexto lugar en 2017. Es utilizado por una gran
cantidad de personas a lo largo del mundo que no cuentan con conocimientos profundos
como desarrolladores, quienes encuentran en visual basic, además de una sintaxis sencilla,
la posibilidad de automatizar sus propios procesos y crear sus propias aplicaciones web. Es
visto como uno de los lenguajes más amigables para los que recién comienzan, sobre todo a
comparación de C#.

7. JavaScript
Antes que nada, no confundir con Java. Son lenguajes distintos. Javascript es un lenguaje de
programación que puede ser utilizado para crear programas que luego son acoplados a una
página web o dentro de programas más grandes. Sirve para crear efectos y realizar acciones
interactivas. Podemos ver funcionando este lenguaje en servicios como el chat,
calculadoras, buscadores de información y un sin fin de utilidades más.
Conocé la Certificación MCSD 70-480 Programming in HTML with Javascript and
CSS3 que ofrece la UTN de forma online.

Lista de Símbolos Utilizados en


4.-

Diagramas de Flujo
Aquí tienen una lista más completa de los símbolos de diagramas de flujo.

Símbolo de Inicio / Final


El símbolo de terminación marca el punto inicial o final del sistema. Por lo general,
contiene la palabra "Inicio" o "Fin".
Símbolo de Acción o Proceso
Un rectangulo solo puede representar un solo paso dentro de un processo ("agregar dos
tazas de harina"), o un subproceso completo ("hacer pan") dentro de un proceso más
grande.

Símbolo del Documento Impreso


Un documento o informe impreso.

Símbolo de Multidocumento
Representa multidocumento en el proceso.

Símbolo de Decisión o Ramificación


Un punto de decisión o ramificación. Las líneas que representan diferentes decisiones
surgen de diferentes puntos del diamante.

Símbolo de Entrada / Salida


Representa el material o la información que entra o sale del sistema, como una orden del
cliente (entrada) o un producto (salida).
Símbolo de Entrada Manual
Representa un paso en el que se pide al usuario que introduzca la información
manualmente.

Símbolo de Preparación
Representa un ajuste a otro paso en el proceso.

Símbolo del Conector


Indica que el flujo continúa donde se ha colocado un símbolo identico (que contiene la
misma letra).

O Símbolo
Indica que el flujo del proceso continúa en más de dos ramas.

Símbolo de Unión de Invocación


Indica un punto en el diagrama de flujo en el que múltiples ramificaciones convergen de
nuevo en un solo proceso.

Símbolo de Fusión
Indica un paso en el que dos o más sub-listas o subprocesos se convierten en uno.
Símbolo de Intercalar
Indica un paso que ordena información en un formato estándar.

Símbolo de Ordenar
Indica un paso que organiza una lista de elementos en una secuencia o establece según
algunos criterios predeterminados.

Símbolo de Proceso Predefinido


Indica una secuencia de acciones que realizan una tarea específica incrustada dentro de
un proceso más grande. Esta secuencia de acciones podría describirse con más detalle
en un diagrama de flujo separado.

Símbolo del Operación Manual


Indica una secuencia de comandos que continuarán repitiéndose hasta que se detenga
manualmente.

Símbolo de Límite de Bucle


Indica el punto en el que debe detenerse un bucle.
Símbolo de Retardo
Indica un retraso en el proceso.

Almacenamiento de Datos o Símbolo de Datos Almacenados


Indica un paso donde se almacenan los datos.

Símbolo de la Base de Datos


Indica una lista de información con una estructura estándar que permite buscar y
ordenar.

Símbolo de Almacenamiento Interno


Indica que la información se almacenó en la memoria durante un programa, utilizado en
diagramas de flujo de diseño de software.

Símbolo de Visualización
Indica un paso que muestra información.
Conector Fuera de Página
Indica que el proceso continúa fuera de la página.

3.- Definición de algoritmo


Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea especifica, como

la solución de un problema. Los algoritmos son independientes tanto del lenguaje de programación en que

se expresan como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar

en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo el

algoritmo será siempre el mismo.

Por ejemplo en una analogía con la vida diaria, una receta de un plato de cocina se puede expresar en

español, ingles o francés, pero cualquiera que sea el lenguaje, los pasos para la elaboración del plato se

realizaran sin importar el cocinero.

Los pasos a seguir en la solución de una ecuación de segundo grado.

Los pasos matemáticos para la solución de un número factorial.

Las instrucciones para la liquidación de una nomina.

Las acciones que se deben seguir para la obtención de una estadística.

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo que

sin algoritmo no puede existir un programa.

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

de tener un número finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.

En el algoritmo citado anteriormente se tendrá:

Entrada ingredientes y utensilios empleados

Proceso elaboración de la receta de cocina

Salida terminación del plato (por ejemplo, cordero)

Un algoritmo exige que se tengan varias propiedades importantes:

Los pasos de un algoritmo deben ser simples y exentos de ambigüedades (diferentes significados), deben

seguir un orden cuidadosamente prescrito, deben ser efectivos y deben de resolver el problema en un

número finito de pasos.

El siguiente ejemplo muestra un algoritmo para cambiar un foco quemado.

Cambiar un foco quemado podría resumirse en dos pasos:

Quitar el foco quemado

Colocar un foco nuevo

LOS ALGORITMOS EN INFORMATICA


ALGORITMO
Un algoritmo es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y
finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a
quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos
sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de
estudio de la algoritmia.

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos


ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las
instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos
en matemática son el algoritmo de ladivisión para calcular el cociente de dos números,
el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o
el método de Gauss para resolver un sistema lineal de ecuaciones.

Definición formal
Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo
así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los
datos que se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando
una estructura de primer orden y cada algoritmo es independiente de su implementación (los
algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer
orden son invariantes bajo isomorfismo.

Exploración acotada. La transición de un estado al siguiente queda completamente


determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente
se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.

Aritmetizabilidad. Solamente operaciones innegablemente calculables están disponibles en el


paso inicial.

En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo.


Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto,
es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una
solución (salida). Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que
terminar o resolver un problema en particular. Por ejemplo, una versión modificada de lacriba de
Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.

Clasificación y Tipos de algoritmos


Se ha clasificado a los algoritmos de diversas formas, de acuerdo con algunos
de sus atributos. Por ejemplo:

A) Según el sistema de signos con el que describen los pasos a seguir, se


reconocen:

–Algoritmos cualitativos: cuando se hace a través de palabras, es decir, las


instrucciones son verbales. Sucede, por ejemplo, con recetas de cocina.

–Algoritmos cuantitativos: cuando se hace a través de cálculos numéricos.


Se puede hacer un algoritmo, por ejemplo, para obtener la raíz cuadrada de un
número.

B) Según su función, los algoritmos pueden ser:

–Algoritmos de ordenamiento: secuencian los elementos que ingresan a


partir de un cierto orden, en general, según un orden numérico o léxico.
–Algoritmos de búsqueda: al contrario de realizar operaciones o secuenciar
elementos, se dedica a encontrar dentro de una lista que ingresa, uno o varios
elementos en particular que cumplan con el conjunto de condiciones dadas.

–Algoritmos de encaminamiento: deciden de qué modo se deberá


transmitir algo que llega, y cómo seguirá un conjunto de pasos encadenados.
Se dividen fundamentalmente entre adaptativos y estáticos, los primeros
con cierta capacidad de aprendizaje y ajuste a la circunstancia, mientras que los
segundos funcionan mecánicamente, siempre del mismo modo. Es importante
decir que los algoritmos de encaminamiento cuentan con una propia
subdivisión, según el camino que se toma para que la transmisión llegue de
manera efectiva (ejemplos de estos tipos son: por el camino más corto, de
manera óptima, basado en el flujo, etc.).

C) También los algoritmos han sido clasificados según la estrategia que se


utiliza para llegar al resultado. Veamos algunos ejemplos:

–Algoritmos probabilísticos: no se puede estar seguro de la exactitud de la


respuesta que darán. Se agrupan en distintos subtipos, pero con esa premisa: o
bien presentan soluciones aproximadas del problema, o bien presentan
soluciones que pueden ser correctas pero también erróneas.

–Algoritmo cotidiano: es el que se da en la vida común de las personas, no


se aplica en sistemas informáticos ni en nada ajeno al día a día. Muchas de las
decisiones que se toman desde que uno se despierta por la mañana pertenecen
a este grupo.

–Algoritmo heurístico: abandona alguno de los objetivos como recurso para


terminar llegando a la solución. En general, son utilizados cuando no existe una
solución mediante las vías tradicionales.

–Algoritmo de escalada: se comienza con una solución insatisfactoria (que


no cumple la entrada y la salida), y se la va modificando aproximándose a lo
que se busca. En algún momento, estaremos cerca de (o llegaremos a) la
solución correcta.

–Algoritmo voraz: Con la idea de llegar a una solución óptima definitiva, elige
analizar cada paso como único y elegir la solución óptima para ese paso.

–Algoritmo determinista: es completamente lineal (cada paso tiene un paso


sucesor y un paso predecesor) y por lo tanto predictivo, si se conocen sus
entradas y su forma de proceder. El algoritmo de Euclides, que permite
averiguar el máximo común divisor entre dos números, responde a este tipo. Se
distinguen de los no deterministas, donde el algoritmo tiene un
comportamiento en forma de árbol.
5.- La resolución de un problema mediante un ordenador consiste en el proceso que a
partir de la descripción de un problema, expresado habitualmente en lenguaje natural y en
términos propios del dominio del problema, permite desarrollar un programa que resuelva
dicho problema.
Este proceso exige los siguientes pasos:

 Análisis del problema.


 Diseño o desarrollo de un algoritmo.
 Transformación del algoritmo en un programa (codificación).
 Ejecución y validación del programa.
Los dos primeros pasos son los más difíciles del proceso. Una vez analizado el problema y
obtenido un algoritmo que lo resuelva, su transformación a un programa de ordenador es
una tarea de mera traducción al lenguaje de programación deseado.

Diseño del algoritmo[editar]


Un algoritmo consiste en una especificación clara y concisa de los pasos necesarios para
resolver un determinado problema, pero para poder diseñar algoritmos es necesario
disponer de una notación, que llamaremos ‘notación algorítmica’, que permita:

 Describir las operaciones puestas en juego (acciones, instrucciones, comandos,...)


 Describir los objetos manipulados por el algoritmo (datos/informaciones)
 Controlar la realización de las acciones descritas, indicando la forma en que estas se
organizan en el tiempo
Para poder describir cualquier tipo de acción de las que intervienen en un algoritmo,
diversos autores proponen el uso de un conjunto de construcciones lógicas (secuencia,
decisión e iteración) con las que es posible escribir cualquier programa. Lo que sigue a
continuación es la descripción de las diferentes construcciones disponibles para el diseño
de algoritmos.

Acciones elementales[editar]
Se entiende por acciones elementales aquellas que el ordenador es capaz de realizar y
que serán de dos tipos:

 Aritmético – lógicas: Operaciones que, a partir de unos determinados datos, realizan


un cálculo aritmético (suma, resta, multiplicación,...) o un cálculo lógico (mayor que,
menor que, igual que,...).Las primeras devuelven un valor numérico (4, -5.67,...) y las
segundas un valor lógico (verdadero o falso).
 De entrada – salida: Acciones que permiten capturar datos para su posterior
tratamiento (las de entrada) y guardar los resultados de dicho tratamiento (las de
salida).
Secuencia de acciones elementales[editar]
Cuando en un algoritmo se deben ejecutar varias acciones sucesivamente, éstas se
describen una detrás de otra según el orden en que deban ejecutarse. Si se desea se
puede emplear algún tipo de símbolo para separar dos acciones consecutivas. En el
siguiente ejemplo se muestra la descripción de acciones separadas por punto y coma
(símbolo que habitualmente se emplea como separador).

Acción 1;
Acción 2;
...
Acción n;

Composición condicional[editar]
Cuando en un algoritmo se quiere indicar que cierta acción solo se debe ejecutar bajo
cierta condición se indica del siguiente modo:

Si Condición Entonces
Acción;
FinSi

Solo si la Condición (operación lógica) es verdadera se ejecutará la Acción. En este caso,


la Acción puede referirse tanto a una acción elemental como a un conjunto de ellas.

Composición condicional doble (alternativa)[editar]


En ocasiones, se deben ejecutar unas acciones u otras dependiendo de la ocurrencia de
una determinada condición. Esta especificación se realiza del siguiente modo:

Si Condición Entonces
Acción A;
SiNo
Acción B;
FinSi

Dependiendo de si la Condición es verdadera o falsa se ejecutará la Acción A o la Acción


B respectivamente. De forma análoga a como ocurría en el caso anterior, tanto la Acción
A como la Acción B pueden referirse a una acción elemental o a un conjunto de ellas.

Composición condicional múltiple[editar]


También es posible que a la hora de especificar la ejecución de una acción haya que
escoger ésta entre varias dependiendo del valor de una determinada variable (o indicador).
Este caso se expresa del siguiente modo:

Según Indicador Hacer


Caso Valor 1:
Acción 1;
Caso Valor 2:
Acción 2;
...
Caso Valor n:
Acción n;
[De Otro Modo:
Acción X;]
FinSegun

En esta construcción Indicador debe tener un determinado valor que en caso de coincidir
con alguno de los n valores provocará la ejecución de la acción asociada a dicho valor. Si
el valor del Indicador no coincidiera con ninguno de los especificados se ejecutará
la Acción X. No tiene por qué haber una Acción X para cuando el Indicador' no coincida
con ninguno de los n valores; en ese caso, si el Indicador' no coincide con ningún valor no
se ejecutaría ninguna acción.
Al igual que en los casos anteriores, todas las acciones que aparecen en esta estructura
(Acción 1, Acción 2,..., Acción n y Acción X) pueden referirse a una única acción o a un
conjunto de ellas.

Composición iterativa o bucle[editar]


Cuando una acción o conjunto de acciones debe ejecutarse varias veces se recurre a una
estructura iterativa o bucle. En este tipo de estructuras se necesita una condición que
determine cuando terminan las iteraciones. Dependiendo de si esa condición se evalúa al
principio o al final de la estructura y de si la condición para que las iteraciones continúen
debe ser verdadera o falsa, se pueden definir cuatro construcciones iterativas distintas:

CUÁL ES LA FORMA ADECUADA PARA


RESOLVER PROBLEMAS EN PROGRAMACIÓN?
Cuando nos proponemos resolver problemas en
programación siempre pasamos directamente al computador y
empezamos a escribir código sin antes haber analizado en
lo más mínimo el problema, o bueno lo vamos analizando
y directamente vamos escribiendo el código y pues en
algunos casos esta práctica funciona, claro está, cuando los
problemas son sencillos o cuando eres un programador
experimentado, no así con problemas más complejos y más
aún cuando estas empezando a programar.
A veces pensamos que con hacer las cosas directamente
vamos a 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 perdemos tiempo.
Un buen hábito y como buenos programadores es la de
llevar una metodología para solucionar un problema por más mínimo
que este sea. Es por eso que esta vez vamos a ver algunos
pasos que debemos seguir para resolver un problema en
programación y básicamente la idea es convertirlo en un
hábito cada vez que vayamos a programar.
1. ANÁLISIS PREVIO DEL PROBLEMA

En esta etapa 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, 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, muy importante 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..
De igual forma se debe analizar todos los escenarios que
pueden darse ya que un cambio de escenario puede variar
el resultado final del programa, siempre vale la pena
cuestionarse y hacer la pregunta: y si pasa esto o aquello? qué
comportamiento tomaría el programa.

Para clarificar dudas se debe 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.
En lo personal no importa el tiempo que demores en esta
etapa, la idea es que quede bien claro todo, la primera vez
puede que te demores un montón pero a medida que lo
practicas vas cogiendo experiencia y si lo tomas como
hábito en las próximas veces lo harás aún más rápido.
2. DISEÑO DEL ALGORITMO
Una vez que tenemos claro el problema, después de haber
definido todas la 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 unlenguaje 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ñó si no por cualquier
persona.
En conclusión en la etapa anterior se define qué es lo que hará el
programa, en esta fase, se define como lo hará.
Algo importante de este diseño es que sea entendible para
el programador que lo va implementar.
3. 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: IDEs, librerías, Frameworks (aunque este
último no lo recomiendo si estas empezando a programar,
es mejor aprender las cosas más básicas los fundamentos,
todo a mano primero y luego los frameworks) y luego pasar
el algoritmo al lenguaje de programación.
4. COMPILACIÓN Y PRUEBAS

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


compilación, ejecución y lógicos,y en el caso de Java se generará uno
o varios archivos bytecode que serán ejecutados por la
computadora.
En esta fase también es necesario realizar pruebas con una
gran cantidad de datos para encontrar posibles errores y
corregirlos.
5. 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 va ha
modificar no se acuerda que rayos hacia ese código, me ha
pasado), y cuando un programa es pobre en documentación
este proceso de modificación es totalmente complejo.

Vous aimerez peut-être aussi