Herramientas de programacion 4RI

 Los algoritmos vienen a ser una sucesión de pasos cuyo objetivo principal es resolver problemas de

procesamiento de datos; es una serie de instrucciones ordenadas y finitas que pueden cumplir un objetivo 

por medio de pasos sucesivos, desde un inicio y una entrada, luego están los pasos sucesivos hasta el final.


Los algoritmos tienen como herramientas:

 Pseudocódigos.

 Diagramas de representaciones.



El pseudocódigo es un lenguaje artificial e informal que ayuda a los programadores a desarrollar 

algoritmos. El pseudocódigo es una herramienta de diseño de detalles (algorítmica), basada en texto.


Ventajas de utilizar un pseudocódigo:

Puede emplearse una hoja de papel.

Representar fácilmente operaciones repetitivas complejas.

Es transportable porque un Pseudocódigo puede codificarse en cualquier lenguaje de
programación.

Puede observarse los niveles que tiene cada operación en forma clara. Un ejemplo de algoritmo 

tenemos el cambio de un neumático:

Inicio
Aflojar tornillos
Levantar el coche
Sacar los tornillos
Retirar la llanta
Colocar la llanta de repuesto
Poner los tornillos
Bajar el coche
Apretar los tornillos
Fin

El diagrama de flujo son representaciones gráficas de los algoritmos. Debe ser simple, fácil de aprender y usar, tener buena legibilidad y reconocible. La abstracción es una característica imprescindible en el que se puede definir la estructura compleja y luego su grado de usabilidad.

Indicar el inicio y el final.
 Las líneas son de flujo horizontales o verticales. No pueden ser inclinadas ni cruzadas.
 Las líneas de conexión deben ser conectada a un solo.
 Se puede poner comentarios para ayudar a entender
 Los conectores sirven si son necesarios.
 Todas las líneas de flujo deben ser conectadas.
 Debe de leerse siempre con orientación hacia la derecha y hacia abajo.
 Todo texto dentro del símbolo debe ser claro y preciso.




Tipos de algoritmos

Según su sistema de signos:

Algoritmos cualitativos: texto y caracteres.

Algoritmos cuantitativos: cálculos numéricos y operaciones algebraicas.

según sus funciones:

Algoritmos de ordenamiento.
Algoritmos de búsqueda.
Algoritmos de encaminamiento.

según su estrategia:

Algoritmos probabilísticos.
Algoritmos heurísticos. 
Algoritmos cotidianos.
Algoritmos probabilísticos. 
Algoritmos cotidianos. 
Algoritmos de escalada. 
Algoritmos deterministas.




Estructuras

Estructuras condicionales: cuando el usuario quisiera decidir entre dos o más
alternativas, por lo que tendríamos que tener la opción de poder de ir por un camino o
por otro.

Estructuras de repetición: cuando es necesario indicar que deben repetir dada una
condición un conjunto de instrucciones.



¿Qué es un programa?

Un programa es un conjunto de instrucciones que le indican a la computadora que haga varias cosas; a veces la instrucción que debe realizar depende de lo que sucedió cuando realizó una instrucción previa. Esta sección ofrece una descripción general de las dos formas principales en las que puede dar estas instrucciones, como se les suele llamar. Una forma usa un intérprete, la otra un compilador. 


Lenguajes de alto nivel: Existen muchísimos lenguajes de programación y se utilizan
uno a otros según sus características que se adecuan a la resolución del problema.

Traductores de lenguaje: Traducen al lenguaje de máquina y pueden ser
ensambladores, compiladores e intérpretes.

Ensambladores: Traducen un programa escrito en lenguaje ensamblador al lenguaje
máquina.

Compiladores: el rendimiento y la eficacia de estos lenguajes están muy relacionados
con la forma en la que se realiza la traducción por parte del compilador. El programa escrito en lenguaje de alto nivel se suele llamar programa fuente o código fuente. La acción que realiza el compilador es traducir todas las instrucciones del programa fuente y generar un programa traducido, llamado programa objeto o código objeto.

Interpretes: es un traductor de un lenguaje de alto nivel, el cual traduce cada
instrucción del lenguaje de alto nivel y lo ejecuta. Por tanto, los intérpretes no generan
programas objetos ni programas ejecutables.


Compiladores VS intérpretes: la decisión de utilizar un determinado lenguaje de
programación también depende de qué tipo de traductores existan para ese lenguaje:
compiladores o intérpretes.




Modelos de construcción

Lenguaje de programación, es un conjunto de reglas para comunicar ideas, las cuales
tienen ciertos modelos para su construcción:


Modelo en cascada: proceso que se ejecuta secuencialmente.

Prototipo: permite su desarrollo mediante modelos de aplicaciones los cuales permiten
ver la funcionalidad básica de la misma.

Incremental: controlar las partes complejas y los peligros, desarrollando solo una
parte de ellos.

Espiral: se centra en la evaluación y reducción del programa dividiéndolo en partes
más pequeños y con más facilidad de cambio.

Rapid Application Development (RAD):  metodología en base al desarrollo iterativo
y la construcción de prototipos.

Otros enfoques de desarrollo de software: metodologías de desarrollo orientado a
objetos, el modelo incluye seis diagramas: clase, objeto, estado de transición, la
interacción, módulo, y el proceso.




La programación estructurada es un subconjunto de programación procesal que
impone una estructura lógica en el programa que se está escribiendo para que sea más
eficiente y fácil de entender y modificar. Ciertos lenguajes como Ada, Pascal y dBASE
están diseñados con características que fomentan o hacen cumplir una estructura lógica de
programa.

El flujo del programa sigue un modelo jerárquico simple que emplea construcciones en bucle como "for", "repeat" y"while". Se desaconseja el uso de la declaración "Goto"






Programación orientada a objetos.

La programación orientada a objetos (OOP) es un modelo de lenguaje de programación en el que los programas se organizan en torno a datos u objetos, en lugar de funciones y lógica. Un objeto se puede definir como un campo de datos que tiene atributos y comportamiento únicos

En pocas palabras, OOP se enfoca en los objetos que los desarrolladores quieren manipular en lugar de la lógica requerida para manipularlos. Este enfoque de programación es adecuado para programas grandes, complejos y actualizados o mantenidos activamente. Debido a la organización de un programa orientado a objetos, este método también es propicio para el desarrollo colaborativo donde los proyectos se pueden dividir en grupos. Los beneficios adicionales de OOP incluyen la reutilización del
código, la escalabilidad y la eficiencia.

La programación orientada a objetos se basa en los siguientes principios:

Encapsulación: la implementación y el estado de cada objeto se mantienen de forma
privada dentro de un límite definido o clase. Otros objetos no tienen acceso a esta clase
o la autoridad para realizar cambios, pero solo pueden llamar a una lista de funciones o
métodos públicos. Esta característica de la ocultación de datos proporciona una mayor
seguridad del programa y evita la corrupción involuntaria de datos.

Abstracción: los objetos solo revelan mecanismos internos que son relevantes para el
uso de otros objetos, ocultando cualquier código de implementación innecesario. Este
concepto ayuda a los desarrolladores a realizar cambios y adiciones con el tiempo con
mayor facilidad.

Herencia: se pueden asignar relaciones y subclases entre objetos, lo que permite a los
desarrolladores reutilizar una lógica común y mantener una jerarquía única. Esta
propiedad de OOP obliga a un análisis de datos más exhaustivo, reduce el tiempo de
desarrollo y garantiza un mayor nivel de precisión.

Polimorfismo: los objetos pueden adoptar más de una forma según el contexto. El
programa determinará qué significado o uso es necesario para cada ejecución de ese
objeto, reduciendo la necesidad de duplicar el código.

Ejemplos:
Object Pascal
Java
JavaScript
R
PHP
PowerScript
Python
VB.NET
Scala
Power Builder
OOCobol


Criticas de POO
La mayor preocupación es que OOP enfatiza
demasiado el componente de datos del desarrollo de software y no se enfoca lo suficiente
en la computación o los algoritmos. Además, el código OOP puede ser más complicado de
escribir y tomar más tiempo para compilar.



Estructura de un programa

Existen tres elementos fundamentales en un programa: los datos de entrada, salida y
los procesos. Un programa recibirá unos datos de entrada que serán tratados por los
diferentes procesos que componen el programa.



Tipos de datos

Un programa será capaz de manejar muchos tipos de dato, tanto simples como:
numéricos, alfanuméricos, booleanos, también estructuras más complejas como: tablas,
ficheros, entre otros. Los datos que pueden manejar un programa se puede clasificar en:



Clasificación de instrucciones


Simples:

Como los comentarios, estos son líneas de texto que el compilador ignora. Es decir, son textos libres que se encuentran entre el código del programa y que se usa para aclarar el código,
favorecer su comprensión, depurar errores, documentar, etc


Declarativas:

Se utilizan para declarar objetos que se van a usar en el programa. Indican el tipo y las
características de los objetos que componen el programa.
Por ejemplo: De un cliente que se desea guardar su nombre, apellidos, deuda y una
pequeña descripción de sí misma.

Primitivas

Son instrucciones que se ejecutan de inmediato por el procesador, pueden ser:

Entrada: se usan para tomar datos de entrada y guardarlos en variables para que puedan
usarse en el programa. Estas instrucciones detienen la ejecución del programa y se queda
en espera hasta que el usuario introduce un dato por teclado.

Salida: se usan para presentar por algún medio externo (pantalla, impresora) mensajes para
el usuario, el contenido de las variables, etc.

Asignación: este tipo de instrucciones se usa para asignar valores a las variables que están
dentro del programa.

Con el ejemplo anterior y suponiendo que se quieren leer los datos por teclado de
un deudor, aumentar en 5 euros su de usa y finalmente mostrar dicha deuda.


De control

Estas instrucciones son las que permiten controlar la ejecución de otras instrucciones bajo ciertas circunstancias. Evalúan la expresión lógica dependiendo si se cumple o no, fuerzan a que se ejecute una parte del programa.


Alternativas

Permiten la ejecución de una serie de instrucciones u otras dependiendo de si se
cumplen la condición o no.
- Simples: Se usan cuando un programa quiere que se cumpla la condición caso
contrario seguirá su curso normal.

- Dobles: Sucede igual que en el caso de las simples, solo que en caso que no se cumpla
la condición se ejecutar otro determinado bloque de instrucciones.

- Múltiples: Estas instrucciones se usan en casos donde la ejecución de un grupo de
instrucciones u otro depende de valores concretos y conocidos de una expresión o
condición.


Repetitivas

Engloba aquellas que provocan que un bloque de instrucciones se repita un cierto
número de veces.

- Mientras: la condición se evalúa antes de entrar en el bucle.

- Repetir: la condición se encuentra al final del bucle y determina si se sale del mismo o
no.

- Para: se usa cuando se conoce el número de veces que ha de ejecutarse.

-Iterar: en esta instrucción la condición de evaluación se puede encontrar en cualquier
lugar del bucle.


Compuestas

Están compuestas por un conjunto de instrucciones simples agrupadas bajo un
nombre y que se desarrollan en un lugar apartado del resto del código. Pueden ser
llamados desde cualquier lugar del programa invocando su nombre. En ese momento
se ejecutará esta instrucción compuesta y cuando finalice se ejecución el control del
programa volverá a la instrucción siguiente a la que realiza dicha llamada.






 Variables y constantes.

Una variable contiene los siguientes elementos: nombre: a través del cual el
programa accede y manipular esa posición de memoria. Deberá hacer referencia del dato
que va acometer, y tipo: determina el tipo de datos que contendrá la variable. Puede ser
entero, etc. Las constantes son datos que no cambian durante la ejecución de un programa.





Fases del diseño de programación

Las fases son las siguientes:

Definición del problema: Se realiza el análisis respectivo para identificar la
participación de los elementos del sistema.

Análisis del problema: Comprensión a fondo del problema y sus detalles y es un
requisito para lograr una solución eficaz.

Diseño de la solución: “Se utilizan los modelos a seguir mediante un diseño. El
proceso de diseño se realiza en dos pasos”

Elaboración del algoritmo Realización de pruebas de escritorio

Codificación: Se escribe el código de acuerdo al lenguaje de programación que se está
utilizando.

Prueba y depuración (puesta a punto o testing): Se comprueban los datos de prueba,
como lo hicimos en la prueba de escritorio. La lógica del programa está bien, pero hay
errores sencillos, los cuales los corregimos eliminando o modificando algunas
instrucciones o incluyendo nuevas.

Documentación: La documentación es la guía o comunicación escrita en sus variadas
formas, ya sea en enunciados, procedimientos, dibujos o diagramas y sirve para ayudar
a comprender o usar un programa o para facilitar futuras modificaciones
(mantenimiento).

Implementación: Ya probado, revisado y mejorado se considera terminado y puede
utilizarse con un alto grado de confianza para resolver los problemas que dieron origen
a su creación.

Mantenimiento: Es posible que el programa deba revisarse cada cierto tiempo para
ajustes.







Listas y tablas

Relación ordenada de datos y son utilizados generalmente en HTML:

Listas: Las listas pueden ser ordenadas y no ordenadas:
<ol> </ol> Para crear listas ordenadas, quiere decir que van numeradas
<ul> </ul> Para crear listas no ordenadas o sea sin numeración, pero con viñetas
<li> </li> Estas van rodeando cada elemento de la lista


Tablas: “Una tabla es un grupo de información ordenada en filas y columnas. La
primera etiqueta que usaremos es” :

<table></table> para crear tablas

Para colocar un título fuera de la tabla, pero relacionada con ella se utiliza

<caption></caption> después de la etiqueta <table>


Una tabla se divide en encabezado y cuerpo

Encabezado: El encabezado nos ayuda a darle estilo a nuestra tabla, es donde van los
títulos.
<thead> </thead> Es el encabezado de tabla (del inglés table head). Contiene
los títulos de la tabla.
<th> </th> Son las celdas en el encabezado de una tabla y en cada una de las
celdas puede ir un título


Colspan: Es un atributo que se utiliza con la etiqueta <th> y <td> para que un título en la
parte superior de la tabla que por defecto ocupa 1 columna, cubra la cantidad de columnas
que necesitemos en la tabla. Debemos decirle cuantas columnas debe ocupar. 

Cuerpo:
<tbody></tbody> Cuerpo de tabla (del inglés table body). Contiene los datos
tabulares de la tabla.
<tr></tr> Para crear una fila de la tabla
<td></td> Es una celda con uno de los datos de la tabla




¿Qué es un archivo?

Un archivo es una estructura de datos consistente en una secuencia de elementos o
componentes llamados registros, todos del mismo tipo, ya sea simple o estructurado.
A diferencia de los arrays un archivo puede almacenarse en un dispositivo auxiliar
disco, cintas, etc., de forma que los datos obtenidos durante y después del
procesamiento ni se pierdan (p.22).










Aplicaciones

Lenguaje de programación Pascal

En un programa, siempre debe obedecer las reglas del idioma, en nuestro caso, el idioma
Pascal. Un lenguaje natural tiene sus propias reglas gramaticales, ortografía y construcción
de oraciones. El lenguaje de programación Pascal es un lenguaje de alto nivel que tiene sus
propias reglas de sintaxis y reglas gramaticales.



El programa está escrito solo para mostrar el mensaje: 'Hola UNE. ¡Prepárate para
aprender PASCAL - un mensaje introductorio que se le muestra cada vez que va a
aprender un nuevo lenguaje de programación. Esto simplemente se muestra en la pantalla.
Entonces, para mostrar cualquier mensaje en la pantalla, debe usar write (o writeln). El
procedimiento readln, aquí se usa para pausar el programa y espera hasta que el usuario
presione la tecla de retorno. Si se elimina readln de esa línea, el mensaje se muestra en la
pantalla sin que el usuario tenga la posibilidad de leerlo y sale: Intente ejecutar este
programa con y sin el procedimiento readln y observe la diferencia.


Ahora debemos echar un vistazo al programa. Un programa en Pascal comienza
con la palabra reservada 'Programa' (aunque no se requiere explícitamente) y termina con
'Fin', después de una parada completa (aunque esto es obligatorio)


La palabra clave 'Var' se usa para introducir variables en un programa que luego se
utilizará como elementos de almacenamiento de datos temporales. Los nombres de
variable 'Num1', 'Num2' y 'Sum' en el programa son marcadores de posición de datos que
almacenarán números enteros, no números reales / de coma flotante


El texto entre llaves ({}) se denomina comentarios o documentación en línea.
Supongo que considera que los comentarios son 'innecesarios': ¡Esto está mal! L


El procedimiento 'readln' permite al usuario ingresar números o texto solamente, es
decir: usando el teclado. Pero en nuestro caso, 'readln' se usa solo para ingresar números
(las letras aún se aceptan durante el programa, pero en este caso provocará un error de
tiempo de ejecución porque no es el tipo de entrada que queremos) y las almacena en las
variables 'Num1' y 'Num2'. Esto se debe a que ambas variables se asignan como enteros y
las variables enteras no almacenan cadenas.

Una última nota sobre errores: hay 2 tipos principales de errores, a saber: errores de
tiempo de ejecución y errores de compilación. Los errores de tiempo de ejecución son 
32 aquellos que ocurren inesperadamente durante la ejecución del programa, mientras que un
error de compilación es uno que se detecta durante el proceso de compilación




Lenguaje de programación C, C es un lenguaje de programación de propósito general que
es extremadamente popular, simple y flexible. Es un lenguaje de programación
estructurado, independiente de la máquina, que se utiliza ampliamente en diversas
aplicaciones.

Se utiliza para desarrollar aplicaciones de sistemas.
 Es ampliamente utilizado para desarrollar aplicaciones de escritorio.
 La mayoría de las aplicaciones de Adobe se desarrollan utilizando el lenguaje de
programación 'C'.
 Se utiliza para desarrollar navegadores y sus extensiones. Chromium de Google está
construido con el lenguaje de programación 'C'.
 Se utiliza para desarrollar bases de datos. MySQL es el software de base de datos más
popular que se construye usando 'C'.
 Se utiliza en el desarrollo de un sistema operativo. Los sistemas operativos como OS X
de Apple, Windows de Microsoft y Symbian se desarrollan utilizando el lenguaje 'C'.
Se utiliza para desarrollar sistemas operativos de escritorio y de teléfonos móviles.
 Se utiliza para la producción del compilador.
 Es ampliamente utilizado en aplicaciones IOT

Por otra parte C++

-Productos de Adobe como Photoshop, Illustrator, InDesign
-Amazon: uno de los mayores sitios de comercio electrónico
-Productos de Autodesk para diseño asistido por computadora.
-Facebook: las redes sociales son productos pesados centrados en C ++.
-Además, el hecho de que haya una gran comunidad que mejore C ++ en cada iteración
significa que solo se espera que se use aún más en el futuro.



MATLAB

Fue creado a finales de los años 70 por Clever Moler. MATLAB es al mismo tiempo
un entorno integrado de computación orientado hacia la resolución de problemas
científicos y de ingeniería

Características.

Es fácil programarla
 No hay distinción entre números enteros, reales y complejos.
 Abundantes herramientas gráficas.
 Capacidad de vincularse con los lenguajes de programación tradicionales, tales como
FORTRAN, C/C++, Visual Basic, etc.
 Transportabilidad de los programas MATLAB



¿Que son las estructuras de control?

Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa.

Con las estructuras de control se puede:

De acuerdo con una condición, ejecutar un grupo u otro de sentencias (If-Then-Else)
De acuerdo con el valor de una variable, ejecutar un grupo u otro de sentencias (Select-Case)
Ejecutar un grupo de sentencias mientras se cumpla una condición (Do-While)
Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-Until)
Ejecutar un grupo de sentencias un número determinado de veces (For-Next)



Algoritmia

Un algoritmo de búsqueda, por ejemplo, es un procedimiento que determina qué tipo de información se recupera de una gran masa de datos. Un algoritmo de encriptación es un conjunto de reglas mediante las
cuales se codifica información o mensajes para que personas no autorizadas no puedan
leerlos.


Llamaremos algorítmica a la ciencia que estudia a los algoritmos, estos se juzgan más
comúnmente por su eficiencia y la cantidad de recursos informáticos que requieren para
completar su tarea. Una forma común de evaluar un algoritmo es observar su complejidad
temporal.

Hay ciertos requisitos que debe cumplir un algoritmo:

Definitividad: cada paso del proceso se establece con precisión.
Computabilidad efectiva: cada paso en el proceso puede ser realizado por una
computadora.


Algunos tipos comunes de algoritmos incluyen algoritmos de clasificación,
algoritmos de búsqueda y algoritmos de compresión. Las clases de algoritmos incluyen
Gráfico, Programación dinámica, Clasificación, Búsqueda, Cadenas, Matemáticas,
Geometría computacional, Optimización y Varios. Aunque técnicamente no es una clase
de algoritmos, las estructuras de datos a menudo se agrupan con ellos.


 Características y escritura inicial del algoritmo:

Las características clave de los algoritmos son:
 Fácil de entender: los algoritmos están ahí para ayudar a los humanos a comprender
la solución.
 Corrección: esta es una característica imprescindible para todos los algoritmos.
 Precisión: los pasos se establecen (definen) con precisión.
 Finitud: el algoritmo se detiene después de un número finito de pasos.
 Generalidad: el algoritmo se aplica a toda la distribución posible de entradas como
se indica.

Comentarios

Entradas populares de este blog

Mapa conceptual conjuntos - Mónica Erazo

Presentación Induccion

Manejo estatico de las variables en memoria