Logo Studenta

El valor contenido en la otra, puede pensarse en asignar mutuamente sus valores, quedando: x := y; y := x; o bien y := x; 106 x := y; Sin embargo, ...

El valor contenido en la otra, puede pensarse en asignar mutuamente sus valores, quedando: x := y; y := x; o bien y := x; 106 x := y; Sin embargo, estas soluciones son erróneas. Si las asignaciones se realizaran simultáneamente, serían soluciones correctas, pero su ejecución es secuencial, por lo que se pierde alguno de los dos valores iniciales. Supóngase, por ejemplo, que inicialmente x = 4, y =1. Si se ejecuta la primera solución, primero se asigna a x el valor contenido en y, quedando x = 1, y =1, y después se asigna a y el valor de x. El fallo consiste en que la primera asignación hizo desaparecer el valor que inicialmente contenía x, con lo que es imposible después recuperarlo para asignarlo a y. La segunda solución adolece de un problema análogo. La solución consiste en usar una variable auxiliar aux cuya única misión sea guardar temporalmente el valor antiguo de una de las dos variables: aux := x; x := y; y := aux El lector puede comprobar que partiendo de x = 4, y = 1 y ejecutando la secuencia anterior, se tiene finalmente x = 1, y = 4. En resumen, la forma básica de expresar algoritmos en el paradigma imperativo consiste en declarar las variables necesarias y diseñar una secuencia de asignaciones que transformen los valores almacenados. Para ejecutar un algoritmo imperativo, se parte de ciertos valores almacenados en las variables y se ejecutan las instrucciones del algoritmo secuencialmente; al final, los resultados calculados se encuentran almacenados en estas mismas u otras variables. El paradigma imperativo se completa con otras características que dan mayor flexibilidad de cálculo, aunque siempre siguiendo un modelo abstracto de máquina de von Neumann: tipos de datos, declaraciones, instrucciones de flujo de control, etc. Otros paradigmas Existen otros paradigmas distintos del funcional y el imperativo. Aunque no se abordan en esta cátedra, no queremos dejar de dar las características principales de algunos de ellos. El paradigma orientado a objetos es una abstracción todavía mayor que el imperativo de la máquina de von Neumann. El programador ya no ve las variables como celdas de memoria, sino como objetos cuya estructura interna desconoce. Un objeto puede tomar un valor mediante una asignación, pero en general el programador se ve forzado a utilizar un conjunto finito de operaciones. Un objeto pertenece a cierta clase, que define el conjunto de operaciones utilizables. El paradigma se completa con los conceptos de encapsulamiento, herencia, polimorfismo, etc (Smalltalk, Java). El paradigma ensamblador, al contrario, es una concreción mayor de la máquina de von Neumann. Cada lenguaje ensamblador está asociado a una máquina concreta. Ahora los valores manipulados no son abstractos, sino que se maneja su representación binaria en la memoria de la computadora. Tampoco pueden usarse expresiones funcionales, sino que utilizando zonas de almacenamiento intermedio, llamadas registros, se hace operación tras operación. Otros elementos clave en el paradigma son los modos de direccionamiento, etiquetas, subrutinas, interrupciones, etc. El paradigma imperativo surgió del ensamblador, por lo que sus lenguajes asociados a veces son citados, respectivamente, como lenguajes de alto nivel y de bajo nivel(Assembler). El paradigma lógico, como el funcional, tiene una base matemática: el concepto de predicado o relación. Un programa lógico está formado por hechos (predicados que se cumplen siempre) y reglas (la implicación de un predicado por otros); ambos elementos pueden contener variables que son conceptualmente iguales a los parámetros formales del paradigma funcional. La ejecución de un programa lógico es un proceso deductivo que intenta comprobar que cierto predicado se satisface; la deducción tiene éxito si se encuentran algunos valores de las variables que permiten deducir el predicado a partir de los hechos y las reglas. El paradigma lógico es más flexible que los anteriores, porque permite hacer cálculos (de valores de variables) en varias direcciones. Otros elementos de este paradigma son la unificación, resolución, puntos de elección, variables lógicas, etc. (Prolog). Con frecuencia se intentan clasificar los paradigmas según diversos criterios. Una clasificación bastante extendida agrupa a los paradigmas en dos grupos: con efectos laterales y declarativos. Los primeros están basados en el modelo de Von Neumann y basan sus cálculos en ciertas entidades con un estado que se modifica explícitamente; pueden incluirse aquí los paradigmas ensamblador, imperativo y orientado a objetos. Los segundos expresan las soluciones algorítmicas en términos matemáticos, como funciones, relaciones, restricciones, etc.; e incluyen a los paradigmas funcional y lógico. Otra posible clasificación, que no desarrollaremos aquí, distingue la realización secuencial o paralela de las distintas partes de los algoritmos. ▲i D GUÍAS DE ASIGNATURA RELACIONADAS CON ALGORITMOS, DE ALGUNAS UNIVERSIDADES NACIONALES Y EXTRANJERAS Todas las guías identificadas con la tripleta Institución educativa – Facultad – Tópico (donde tópico puede ser el nombre de una o más asignaturas, un trabajo de investigación o una publicación), fueron obtenidas a partir de búsquedas en la Internet. Por tanto, se especifica el URL de origen para mayor información; si no aparece, significa que dicho contenido fue obtenido directamente en la institución educativa. Se han omitido muchas universidades de prestigio, tanto locales como foráneas. Una exposición exhaustiva de guías de asignatura, haría este anexo bastante basto. 0%), sugerencias sobre un método de estudio. El computador y sus componentes funcionales. 2. Unidades de memoria, cálculo, control, entrada y salida. Manejo estático de la memoria, operandos y operadores. 3. Otras memorias, unidad de control, faces de diseño, traducción y ejecución. Examen 0%. 4. Estructuración, metodología de trabajo y características de los algoritmos. 5. Análisis de ejercicios elementales: cte-cte, cte-var, var-var, cte*(var-var). 6. Análisis de un caso generalizante bajo código rígido var*(var-var). 7. Análisis de problemas y creación de una solución 8. Examen 20%. 9. Arreglos unidimensionales. Análisis de ejercicios. 10. Análisis de problemas y creación de una solución. 11. Análisis de problemas y creación de una solución. 12. Arreglos multidimensionales. Análisis de ejercicios. 13. Análisis de problemas y creación de una solución. 14. Análisis de problemas y creación de una solución. 15. Análisis de problemas y creación de una solución. 16. Análisis de problemas y creación de una solución. 17. Examen 20%. 18. Subalgoritmos. Visión interna. Análisis de ejercicios. 19. Visión externa. Análisis de problemas y creación de una solución. 20. Análisis de problemas y creación de una solución. 21. Análisis de problemas y creación de una solución. 22. Análisis de problemas y creación de una solución. 23. Examen 30%. 24. POO. Análisis de ejercicios. 25. Análisis de problemas y creación de una solución. 26. Análisis de problemas y creación de una solución. 27. Análisis de problemas y creación de una solución. 28. Análisis de problemas y creación de una solución. 29. Análisis de problemas y creación de una solución. 30. Examen 30%. r, concertación de la evaluación con sus porcentajes y fechas y bibliografía. Definición de estructuras de datos y axiomas. 2. Estructura números naturales: funciones y axiomas. estructura arreglo: funciones y axiomas. 3. Estructura lista ordenada: funciones y axiomas. Estructura polinomio: funciones y axiomas. 4. Representación de polinomios: en vectores, forma 1 y forma 2. Ejercicios resueltos y ejercicios propuestos.

Esta pregunta también está en el material:

Metodologia para Desenvolvimento de Algoritmos
264 pag.

Análise Orientada A Objetos Universidad Nacional De ColombiaUniversidad Nacional De Colombia

💡 1 Respuesta

User badge image

Ed IA de Studenta Verified user icon

Lo siento, parece que has pegado un texto extenso que no parece ser una pregunta. Por favor, reformula tu pregunta para que pueda ayudarte.

0
Dislike0

✏️ Responder

FlechasNegritoItálicoSubrayadaTachadoCitaCódigoLista numeradaLista con viñetasSuscritoSobreDisminuir la sangríaAumentar la sangríaColor de fuenteColor de fondoAlineaciónLimpiarInsertar el linkImagenFórmula

Para escribir su respuesta aquí, Ingresar o Crear una cuenta

User badge image

Otros materiales