Está en la página 1de 10

República Bolivariana De Venezuela

Ministerio Del Poder Popular Para La Educación

Universidad Bolivariana De Venezuela

Biscucuy-Portuguesa

Algoritmo
Y
Programación

Profesora: Silvia integrantes:

Skarle vasqued

Raul Uzcategui

Fredervith Uzcategui

Omar Garcia
1-Programación imperativa:

Se trata del desarrollo de una aplicación, de la programación de máquinas o del


desarrollo de un software de empresa, antes de escribir la primera línea de código,
el desarrollador debe decidir qué lenguaje de programación usar. La selección de
los posibles lenguajes de programación es muy amplia. Sin embargo, cada uno de
ellos se puede clasificar en uno de los dos paradigmas de programación: la
programación imperativa y la programación declarativa. Los dos enfoques tienen
sus ventajas y sus inconvenientes.

La programación imperativa (del latín imperare = ordenar) es el paradigma de


programación más antiguo. De acuerdo con este paradigma, un programa consiste
en una secuencia claramente definida de instrucciones para un ordenador.

El código fuente de los lenguajes imperativos encadena instrucciones una detrás


de otra que determinan lo que debe hacer el ordenador en cada momento para
alcanzar un resultado deseado. Los valores utilizados en las variables se
modifican durante la ejecución del programa. Para gestionar las instrucciones,
se integran estructuras de control como bucles o estructuras anidadas en el
código.

Los lenguajes de programación imperativa son muy concretos y trabajan cerca del
sistema. De esta forma, el código es, por un lado, fácilmente comprensible, pero,
por el otro, requiere muchas líneas de texto fuente para describir lo que en los
lenguajes de la programación declarativa se consigue con solo una parte de las
instrucciones.

Los lenguajes de programación imperativa más conocidos son:

 Fortran
 Java
 Pascal
 ALGOL
 C
 C#
 C++
 Ensambladores
 BASIC
 COBOL
 Python
 Ruby

Los distintos lenguajes de programación imperativa pueden clasificarse a su


vez en tres estilos distintos de programación subordinados: el estructurado,
el procedimental y el modular.
El estilo estructurado de programación amplía el principio imperativo central
con las estructuras concretas de control: secuencias, selección e iteración. Esto se
hace para mitigar o evitar por completo las instrucciones de salto que añaden una
complejidad innecesaria al código imperativo.

El enfoque procedimental divide las tareas de las que se debe ocupar un


programa en tareas parciales más pequeñas que se describen en el código por
separado. De esta forma, se crean principios básicos de programación que
también se pueden reutilizar en otros programas.

El modelo de programación modular, cada uno de los componentes de


programa se diseña, desarrollan y prueban con total independencia los unos de
los otros. No es hasta el final del proceso cuando los módulos se combinan para
conformar el software real.

Programación imperativa (PHP):

$listaParticipantes = [1 => 'Peter', 2 => 'Hans', 3 => 'Sarah'];


$nombres = [];
foreach ($listaParticipantes as $id => $name) {
$nombres[] = $name;
}

Copy

Programación declarativa (PHP)


$nombres = array_values($listaParticipantes);

2-Programación Declarativa
Antes de explorar las limitaciones de la programación declarativa, me parece es
necesario entender sus méritos. Sin duda la herramienta de programación
declarativa más efectiva es la base de datos relacional (RDB, por su nombre en
inglés relational database). Incluso podría considerarse la primera herramienta
declarativa. De todos modos, RDB tiene dos propiedades que consideró son
arquetípicas de la programación declarativa:

Un Lenguaje Específico de Dominio (DSL): la interface universal para bases de


datos relacional es este DSL: Lenguaje Query Estructurado, mejor conocido como
SQL.
El DSL esconde las capas de bajo nivel al usuario: desde que Edgar F. Codd
publicó su artículo sobre RDB se ha vuelto bastante claro que el punto de este
modelo es desasociar las consultas deseadas de los bucles, índices y rutas de
acceso subyacentes que las implementan.
Los defensores de la programación declarativa siempre mencionan rápidamente
sus ventajas. Sin embargo, incluso estas personas admiten que viene con ciertos
compromisos.

1. Legibilidad/usabilidad: un DSL usualmente se acerca más a un lenguaje


natural (como el Inglés o Español) que a un pseudocódigo y por ello es más
fácil de leer y aprender por personas que no son programadores.
2. Concisión: la mayor parte de la tablatura es extraída por el DSL, dejando
así menos líneas para hacer el mismo trabajo.
3. Reutilización: es más fácil crear un código que puede ser usado para
diferentes propósitos; algo que todos saben es extremadamente difícil
cuando se usan construcciones imperativas.
4. Idempotencia: puedes trabajar con estados finales y dejar que el programa
haga el resto. Por ejemplo, en una operación de upsert puedes insertar una
fila si no está ahí o puedes modificarla si ya se encuentra ahí, esto en lugar
de escribir un código que se encargue de ambos casos.
5. Error de Recuperación: es fácil identificar una construcción que se
detendrá ante el primer error, en lugar de tener que añadir listados de
errores para cada posible error. (Si alguna vez has escrito 3 retrollamadas
o callbacks anidadas en node.js entonces sabes de lo que habló.)
6. Transparencia Referencial: aunque esta ventaja se asocia más a la
programación funcional, la verdad es que es válida para cualquier enfoque
que minimice la manipulación manual del estado y se base en efectos
secundarios.
7. Conmutatividad: la posibilidad de expresar un estado final sin que se
especifique el orden real en el que se implementará.

3-Diferencias entre Software de Sistema y Software de Aplicación

Podemos clasificar el software en básicamente dos categorías, Software de


Sistema y Software de Aplicación.
El Software de Sistema actúa como interfaz entre el Software de Aplicación y el
hardware del ordenador.
El Software de Aplicación actúa como interfaz entre el usuario y el Software del
Sistema.

Podemos distinguirlos por el propósito de su diseño.

Mientras el Software del Sistema está diseñado para administrar los recursos del
sistema y también proporciona una plataforma para que el Software de Aplicación
se ejecute, el Software de Aplicación está diseñado para que los usuarios realicen
sus tareas específicas.
Diferencias Principales

• El Software de Sistema está diseñado para gestionar los recursos del


sistema como la gestión de memoria, la gestión de procesos, la protección y la
seguridad, etc. y también proporciona la plataforma para que el software de la
aplicación se ejecute. Por otro lado, el Software de Aplicación está diseñado para
cumplir con los requisitos de los usuarios para realizar tareas específicas.

• El Software de Sistema está escrito en un lenguaje de bajo nivel como el


lenguaje ensamblador. Sin embargo, el Software de Aplicación está escrito en un
lenguaje de alto nivel como Java, C++, .net, VB, etc.

4-¿Qué son los algoritmos?

En informática, se llaman algoritmos el conjunto de instrucciones sistemáticas y


previamente definidas que se utilizan para realizar una determinada tarea .
Estas instrucciones están ordenadas y acotadas a manera de pasos a seguir
para alcanzar un objetivo.

Todo algoritmo tiene una entrada, conocida como inputy una salida, conocida
como output,y entre medias, están las instrucciones o secuencia de pasos a
seguir. Estos pasos deben estar ordenados y, sobre todo, deben ser una serie
finita de operaciones que permitan conseguir una determinada solución.

En el mundo de la programación, todo programa o sistema operativo funciona a


través de algoritmos, escritos en un lenguaje de programación que el ordenador
pueda entender para ejecutar los pasos o instrucciones de una forma
automatizada. A nivel debig data e inteligencia artificial, los algoritmos analizan
la información y datos de consumidores y usuarios finales. 

¿Cuáles son las características de los algoritmos?

Independientemente del uso que se le dé a los algoritmos, todos guardan en


común las siguientes características:

1. Inicio y fin: parten de un estado inicial desde el cual ejecutan una serie


de instrucciones para llegar a un estado final de salida o finalización.
2. Exactitud: deben indicar un orden claro, específico y lógico de
instrucciones para la ejecución de cada paso, sin que exista espacio
para la ambigüedad.
3. Secuencia: deben seguir una serie de pasos ordenados, entendibles y
previamente establecidos. 

4. Completos: deben tener en cuenta todas las posibilidades y


presentaciones del problema para ejecutar la solución exacta. 
5. Finitos: el número de pasos para ejecutar la tarea debe ser finito para
darla por concluida. 
6. Abstractos: representan una guía o modelo para ordenar procesos. 

5-¿Qué tipos de algoritmos existen?

Según su sistema de signos, es decir, cómo se describen los pasos a seguir,


los algoritmos pueden ser:

 Cuantitativos y cualitativos: si funcionan a través de cálculos


matemáticos o secuencias lógicas.
 Computacionales o no computacionales: si requieren o no del uso de
un ordenador para la solución o ejecución de una determinada tarea.  

Según su función y estrategia, es decir, qué hacen y cómo lo hacen, existen


cinco tipos de algoritmos:

 Algoritmos de búsqueda: aquellos que encuentran uno o varios


elementos que presenten un conjunto de propiedades dentro de una
determinada estructura de datos. Las búsquedas pueden ser:
o Secuenciales: comparan el elemento a buscar con cada elemento del
conjunto, hasta encontrarlo.
o Binarias: comparan el elemento de búsqueda con un elemento ubicado
en el medio de una serie ordenada para determinar si son iguales. 

 Algoritmo de ordenamiento: son los que se utilizan para reorganizar


elementos de un listado, siguiendo unas pautas de orden numérico o
alfanumérico. Pueden ser:
o De burbuja: comparan cada elemento de la lista a ordenar,
intercambiando posiciones si no están ordenados correctamente.
o Por selección: ordenan a partir del elemento más pequeño de forma
consecutiva.
o Rápido: eligen un elemento del conjunto y reubican el resto en torno a
este en función de si son menores o mayores respecto a él.

 Algoritmos voraces: se trata de un tipo de algoritmo aplicado a


problemas de optimización y se utiliza para la toma de decisiones lógicas
para llegar a una solución final global. Estos algoritmos no son
reversibles una vez que se toma la decisión de ejecutarlos. 

 Programación dinámica: este tipo de algoritmo está asociado al método


con el que se procesa el resultado. La solución de un elemento depende
de la solución de una serie de problemas más pequeños, por lo que
conforme se van solucionando subproblemas, se van almacenando las
soluciones para que no sea necesario calcularlas nuevamente. Con la
programación dinámica se reduce el tiempo de ejecución del algoritmo. 

 Algoritmos probabilísticos: este tipo de algoritmosbasa sus resultados en el


azar, de manera que, en líneas generales, se pueda obtener una buena
solución para cualquier distribución aleatoria de inputs de entrada. El azar
representa una optimización de tiempo respecto a si se determinara la mejor
alternativa para cada caso individual. Se obtiene, en consecuencia, una buena
solución a un problema para cualquier distribución de datos de entrada.

6-¿Qué es un lenguaje de programación?


Un lenguaje de programación es un conjunto de reglas gramaticales (tanto
sintácticas como semánticas) que instruyen a que un ordenador o dispositivo se
comporte de una cierta manera. Cada lenguaje de programación tiene un
vocabulario, un conjunto único de palabras clave que sigue a una sintaxis especial
para formar y organizar instrucciones del ordenador.  
Diferencias entre lenguaje natural y lenguaje de programación 
Una persona habla con un lenguaje natural, mientras que el lenguaje de
programación está destinado a las máquinas. Ambos lenguajes contienen
importantes similitudes. Por ejemplo, la diferenciación está entre la sintaxis y la
semántica y la existencia de una composición básica. Ambos tipos fueron creados,
esencialmente, para comunicar ideas, expresiones e instrucciones.  
Aunque tienen varias similitudes y puntos en común, también es posible identificar
alguna de las diferencias. 
Lenguajes naturales Lenguajes de programación
Más estricto y menos tolerante. Los ordenadores
Más ambiguo. Los humanos
son muy precisos en cuanto a las instrucciones
tienen la habilidad de determinar
el significado de una expresión.  que les gusta recibir.  Además, los lenguajes de
La redundancia incorporada en programación prácticamente no son
los lenguajes humanos permite redundantes, así evitan la ambigüedad y emiten
que se resuelva cierta los comandos correctos.
ambigüedad gracias al contexto.
Están abiertos y permiten
combinaciones sin riesgo de Son cerrados y están hechos para evitar
error. confusiones y errores.
Tipos de lenguajes de programación y características de cada lenguaje de
programación
La evolución de los ordenadores ha llevado a la creación de cientos de diferentes
lenguajes de programación para varios tipos de desarrollo. El campo de la
programación es inmenso, por lo que el uso de un lenguaje particular dependerá
de los objetivos a conseguir. 
Tipos de lenguajes de programación
Los tipos de lenguajes de programación se pueden clasificar principalmente como
lenguajes de programación de bajo y alto nivel. Aunque son simples en
comparación con los lenguajes humanos, los lenguajes de alto nivel son más
complejos que los de bajo nivel. Al mismo tiempo, un lenguaje de alto nivel ofrece
más legibilidad en comparación con su contraparte de bajo nivel, cuya
interpretación necesita un conocimiento especializado en arquitectura
informática.    

 Los lenguajes de bajo nivel incluyen lenguajes ensambladores y de


máquina.  
 Un lenguaje ensamblador contiene una lista con instrucciones básicas y
es mucho más difícil de leer que un lenguaje de alto nivel. Está solo un nivel
por encima del lenguaje de máquina en cuanto a abstracción, usa códigos
simples que se convierten fácilmente en cadenas de 1s y 0s
(representación binaria). No se puede usar para estructurar y manipular
información compleja.  
 El lenguaje de máquina se entiende directamente por la unidad de
procesamiento del ordenador. Un programador escribirá primero su código
en un lenguaje de alto nivel, luego lo compilará en un formato legible por
máquina donde las instrucciones se representan en binario.  
 Por otro lado, los lenguajes de alto nivel están diseñados para ser fáciles
de leer y entender, permiten así a los programadores escribir el código
fuente al usar palabras y símbolos lógicos y significativos. Encapsulan todo,
desde los primeros lenguajes algorítmicos como FORTRAN hasta lenguajes
más extendidos y orientados a objetos como C++, C# y Java.  

Las siguientes actividades se pueden realizar con lenguajes de programación de


alto nivel: 
 Desarrollo de programas y aplicaciones. 
 Desarrollo de inteligencia artificial. 
 Desarrollo de base de datos. 
 Desarrollo de videojuegos. 
 Desarrollo de controladores e interfaz de hardware. 
 Desarrollo de internet y páginas web. 
 Desarrollo de scripts. 

Principales características de los lenguajes de programación


La popularidad de un lenguaje de programación depende de las características y
utilidades que proporciona a los programadores. Aquí están las principales
características que un lenguaje de programación debe poseer para destacar entre
los demás: 

 Simplicidad: el lenguaje debe ofrecer conceptos claros y simples que sean


fáciles de entender, facilitando así, el aprendizaje y la aplicación. Sin
embargo, la simplicidad puede ser un equilibrio difícil de alcanzar sin
comprometer la capacidad general del lenguaje. 
 Capacidad: además de ser fácil de usar, el lenguaje debe estar bien
equipado con un conjunto sólido de características para realizar una amplia
variedad de tareas. Si un lenguaje de programación ha sido diseñado para
ser utilizado en un área específica, éste debe ofrecer los medios necesarios
(operadores, estructuras y sintaxis) para lograr resultados óptimos.   
 Abstracción: es la capacidad del lenguaje para definir y utilizar estructuras
u operaciones complejas ignorando ciertos detalles de bajo nivel. 
 Eficiencia: los lenguajes de programación que pueden ser traducidos y
ejecutados de manera eficiente, ayudan a evitar el consumo excesivo de
memoria y tiempo. 
 Estructuración: el lenguaje permite a los programadores escribir su código
de acuerdo con los conceptos de programación estructurada para evitar
que se cometan errores. 
 Compacidad: un lenguaje de programación con esta característica puede
expresar las operaciones de forma concisa sin tener que escribir
demasiados detalles. 
 Principio de localidad: también se conoce como localidad de
referencia. Este fenómeno indica la preferencia de un programa informático
al haber accedido continuamente a las mismas áreas de memoria en un
corto periodo de tiempo.  Permite el uso de bucles y subrutinas. Un
lenguaje de programación puede aprovechar el principio de localidad para
optimizar el rendimiento general de una aplicación.   

.  

También podría gustarte