Capítulo 0 Problemas, Programas, Estructuras y Algoritmos
|
|
- Eugenio Miranda Contreras
- hace 5 años
- Vistas:
Transcripción
1 Capítulo 0 Problemas, Programas, Estructuras y Algoritmos Contenido del Capítulo: 0.1. Resolución de problemas Análisis de requisitos del problema Modelado del problema y algoritmos abstractos Diseño de la solución Implementación del diseño Verificación y evaluación de la solución 0.2. Tipos de datos Definición de tipo de datos, tipo abstracto y estructura Tipos de tipos Repaso de tipos y pseudolenguaje de definición 0.3. Algoritmos y algorítmica Definición y propiedades de algoritmo Análisis de algoritmos Diseño de algoritmos Descripción del pseudocódigo utilizado 0.4. Consejos para una buena programación Importancia del análisis y diseño previos Modularidad: encapsulación y ocultamiento Otros consejos 0.1. RESOLUCIÓN DE PROBLEMAS La habilidad de programar ordenadores constituye una de las bases necesarias de todo informático. Pero la característica fundamental de un informático es su capacidad para resolver problemas. Eso implica comprender y analizar las necesidades de los problemas, saber modelarlos de forma abstracta diferenciando lo importante de lo irrelevante, disponer de una variada batería de herramientas conceptuales que se puedan aplicar en su resolución, trasladar un diseño abstracto a un lenguaje y entorno concretos y, finalmente, ser capaz de evaluar la corrección, prestaciones y posibles inconvenientes de la solución planteada.
2 Herramientas del desarrollo de programas: estructuras de datos y algoritmos. Las estructuras de datos representan la parte estática de la solución al problema, el componente almacenado, donde se encuentran los datos de entrada, de salida y los necesarios para posibles cálculos intermedios. Los algoritmos representan la parte dinámica del sistema, el componente que manipula los datos para obtener la solución. Algoritmos y estructuras de datos se relacionan de forma muy estrecha: las estructuras de datos son manipuladas mediante algoritmos que añaden o modifican valores en las mismas; y cualquier algoritmo necesita manejar datos que estarán almacenados en cierta estructura. La idea se puede resumir en la fórmula magistral de Niklaus Wirth: Algoritmos + Estructuras de datos = Programas. En ciertos ámbitos de aplicación predominará la componente algorítmica como, por ejemplo, en problemas de optimización y cálculo numérico y en otros la componente de estructuras como en entornos de bases de datos y sistemas de información, pero cualquier aplicación requerirá siempre de ambos. Esta dualidad aparece en el nivel abstracto: un tipo abstracto está formado por un dominio de valores (estructura abstracta) y un conjunto de operaciones (algoritmos abstractos). Y la dualidad se refleja también en el nivel de implementación: un módulo (en lenguajes estructurados) o una clase (en lenguajes orientados a objetos) están compuestos por una estructura de atributos o variables, y una serie de procedimientos de manipulación de los anteriores.
3 PASOS QUE CONSTITUYEN EL PROCESO DE RESOLUCIÓN DE PROBLEMAS. El proceso de resolución de problemas parte siempre de un problema, de un enunciado más o menos claro que alguien plantea porque le vendría bien que estuviera resuelto. Primer paso en el proceso de resolución de problemas, en programación: - análisis de las características del problema (comprensión del problema). El análisis debe producir como resultado un modelo abstracto del problema. El modelo abstracto es un modelo conceptual, una abstracción del problema, que reside exclusivamente en la mente del individuo y donde se desechan todas las cuestiones irrelevantes para la resolución del problema. En ese modelo abstracto nos quedamos con lo esencial del problema. Normalmente, este modelo se crea a través de una analogía con algo conocido previamente. Por ejemplo, para enseñar a un alumno inexperto lo que es un algoritmo (concepto para él desconocido) se utiliza la analogía con una receta de cocina (concepto conocido, esperemos), y las estructuras de datos se asimilan con la disposición de armarios, cajones y recipientes donde se guardan los ingredientes y el bizcocho resultante.
4 Segundo paso en el proceso de resolución de problemas, en programación: - diseño de una solución Una vez que tengamos un modelo completo y adecuado, significará que hemos entendido bien el problema. Como hemos visto en los ejemplos, el modelo conlleva también un algoritmo informal. El siguiente paso de refinamiento consistiría en diseñar una solución. El diseño de un programa es equivalente a los planos de un arquitecto: el diseño describe el aspecto que tendrá el programa, los materiales que se necesitan y dónde y cómo colocarlos. El diseño es siempre un paso previo a la implementación, pero que se olvida muy a menudo por los programadores primerizos. Ejes básicos en los que se articula el desarrollo de un programa: estructuras de datos y algoritmos. Estructuras de datos: determinan la forma de almacenar la información necesaria para resolver el problema. Algoritmos: manipulan esa información para producir unos datos de salida a partir de unos datos de entrada. El objetivo último de la algorítmica es encontrar la mejor forma de resolver los problemas. Los tipos de datos usados a nivel de diseño son tipos abstractos, en los cuales lo importante son las operaciones que ofrecen y no la representación en memoria. Los algoritmos son una versión refinada de los algoritmos abstractos del paso anterior. No obstante, son aún algoritmos en pseudocódigo, donde se dan cosas por supuestas. Definir los tipos de datos para almacenar la solución suele ser mucho más difícil que definirlos para los datos de entrada. Además, modificaciones en los algoritmos pueden requerir cambios en los tipos de datos y viceversa. En resumen, el diseño indica qué cosas se deben programar, cómo se estructura la solución del problema, dónde colocar cada funcionalidad y qué se espera en concreto de cada parte en la que se ha descompuesto la solución. Esta descripción de lo que debe hacer cada parte es lo que se conoce como la especificación.
5 Tercer paso en el proceso de resolución de problemas, en programación: - implementación del diseño La implementación parte del diseño previo. Una implementación será correcta si cumple la especificación dada en el paso anterior. La dualidad tipos/algoritmos del diseño se traslada en la implementación a estructuras/algoritmos. Para cada uno de los tipos de datos del diseño, se debe elegir una estructura de datos adecuada. La elección debe seguir los criterios de eficiencia en cuanto a tiempo y a uso de memoria que se hayan especificado para el problema. En cada caso, la estructura más adecuada podrá ser una u otra. Por otro lado, la implementación de los algoritmos también se puede ver como una serie de tomas de decisiones, para trasladar un algoritmo en pseudocódigo a un lenguaje concreto. Por el ejemplo, si se necesita repetir un cálculo varias veces, se puede usar un bucle for, un while, se puede usar recursividad e incluso se puede poner varias veces el mismo código si el número de ejecuciones es fijo. Realmente, la implementación de estructuras de datos y algoritmos no van por separado. Ambas son simultáneas. De hecho, así ocurre con los mecanismos de los lenguajes de programación módulos o clases en los que se asocia cada estructura con los algoritmos que la manejan.
6 Cuarto paso en el proceso de resolución de problemas, en programación: - verificación y evaluación del programa resultante La resolución de un problema no acaba con la implementación de un programa. Los programas deberían ser comprobados de forma exhaustiva, verificando que se ajustan a los objetivos deseados, obtienen los resultados correctos sin provocar fallos de ejecución. En la práctica, hablamos de un proceso cíclico de desarrollo: implementar, verificar, corregir, etcétera. En cierto momento, puede que tengamos que cambiar el diseño, e incluso puede que lo que esté fallando sea el modelo abstracto. Cuanto más atrás tengamos que volver, más tiempo habremos perdido haciendo cosas que luego resultan inútiles. La evaluación de los programas incluye no sólo la corrección del resultado sino también la medición de las prestaciones, lo que normalmente se denomina el análisis de eficiencia. La eficiencia es una proporción entre los resultados obtenidos y los recursos consumidos. Fundamentalmente, un programa consume recursos de tiempo y de memoria. Aunque usualmente hablamos de análisis de algoritmos, tanto las estructuras de datos como los algoritmos influyen en el consumo de recursos de un programa. Incluso antes de llegar a la implementación de un programa, es posible y adecuado hacer el análisis del algoritmo en pseudocódigo. Este análisis será una previsión de la eficiencia que obtendría la solución diseñada si la implementamos. Se trata, por lo tanto, de un estudio teórico. Cuando el estudio se realiza sobre una implementación concreta, hablamos normalmente de estudios experimentales.
7 0.2. TIPOS DE DATOS Definición de tipo de datos, tipo abstracto y estructura Los conceptos de tipo abstracto de datos, tipo de datos y estructura de datos no son, en absoluto, redundantes ni incoherentes. Como ya hemos visto, aparecen en los distintos niveles de desarrollo. Un tipo abstracto es un concepto de diseño y por lo tanto previo e independiente de cualquier implementación. Un tipo de datos es un concepto de programación y se puede ver como la realización o materialización de un tipo abstracto. La estructura de datos es la organización o disposición en memoria de la información almacenada para cierto tipo de datos. Veamos, por partes, las definiciones. Definición 0.1 Un Tipo Abstracto de Datos (TAD) está compuesto por un dominio abstracto de valores y un conjunto de operaciones definidas sobre ese dominio, con un comportamiento específico. Por ejemplo, los booleanos constituyen un TAD, formado por el dominio de valores verdadero, falso y las operaciones sobre ese dominio: NO, Y, O, XOR, IMPLICA, etc. Decimos que el dominio de valores es abstracto porque no se le supone ninguna representación ni ningún significado. Es decir, el valor verdadero no tiene por qué ser un 1, ni debe almacenarse necesariamente en un bit. Pero, es más, qué significa verdadero? Es un concepto hueco, vacío, sin ningún significado explícito. El único significado le viene dado implícitamente por su relación con las operaciones del tipo. Por ejemplo, verdadero Y cualquier cosa es siempre igual a cualquier cosa. Las operaciones del TAD son abstractas en el sentido de que sabemos lo que hacen pero no cómo lo hacen. A la hora de programar el TAD, esto da lugar a un principio conocido como ocultación de la implementación: lo importante es que se calcule el resultado esperado y no cómo se calcule.
8 Definición 0.2 El tipo de datos de una variable, un parámetro o una expresión determina el conjunto de valores que puede tomar esa variable, parámetro o expresión y las operaciones que se pueden aplicar sobre el mismo. El tipo de datos es un concepto de programación, de implementación, mientras que el TAD es un concepto matemático previo a la programación. Un tipo de datos debe ajustarse al comportamiento esperado de un TAD. Por ejemplo, el tipo integer de Pascal o el tipo int de C son dos tipos de datos, que corresponden al TAD de los enteros, Z. Además de los tipos de datos elementales existentes en un lenguaje de programación, los lenguajes suelen ofrecer mecanismos para que el usuario se defina sus propios tipos. Estos mecanismos pueden ser más o menos avanzados. En lenguajes como C o Pascal, la definición del tipo indica los atributos que se almacenan para las variables de ese tipo. Las operaciones se definen por separado. En lenguajes orientados a objetos, como C++ o Java, los tipos definidos por el usuario se llaman clases, y su definición incluye tanto los atributos almacenados como las operaciones sobre los mismos.
9 En la programación de un tipo de datos surgen dos cuestiones: cómo almacenar en memoria los valores del dominio y cómo programar las operaciones del tipo de datos. La primera cuestión implica diseñar una estructura de datos para el tipo. La segunda está relacionada con la implementación de las operaciones de manipulación y, evidentemente, estará en función de la primera. Definición 0.3 La estructura de datos de un tipo de datos es la disposición en memoria de los datos necesarios para almacenar los valores de ese tipo. Por ejemplo, para representar las pilas podemos usar una estructura de arrays como la que aparece antes, o una lista enlazada de enteros, o una lista de arrays de enteros, o un array de listas de enteros, y así sucesivamente. Por lo tanto, un tipo de datos puede ser implementado utilizando diferentes estructuras. De forma análoga, una misma estructura de datos puede corresponder a diferentes tipos. Por ejemplo, una estructura de arrays puede usarse para implementar listas, pilas o colas de tamaño limitado. Será la forma de actuar de las operaciones la que determine si el array almacena una lista, una pila o una cola. La utilización de estructuras de datos adecuadas para cada tipo de datos es una cuestión fundamental en el desarrollo de programas. La elección de una estructura tendrá efectos no sólo en la memoria utilizada por el programa, sino también en el tiempo de ejecución de los algoritmos. Por ejemplo, la representación de colas con arrays puede producir desperdicio de memoria, ya que el tamaño del array debe ser el máximo previsible. Si se utilizan punteros se podrá usar menos memoria, pero posiblemente el tiempo de ejecución será sensiblemente mayor.
10 Tipos de tipos Dentro de este apartado vamos a hacer un repaso de terminología, clases y propiedades relacionadas con los tipos de datos. Clasificación de tipos según si el tipo es un tipo estándar del lenguaje o no. - Tipos primitivos o elementales. Son los que están definidos en el lenguaje de programación. Por ejemplo, en C lo son los tipos int, long, char y float, entre otros. - Tipos definidos por el usuario. Son todos los tipos no primitivos, definidos por la misma persona que los usa, o bien por otro programador. Idealmente, un buen lenguaje debería hacer transparente el uso de tipos de una u otra categoría. Es decir, al usar una variable de cierto tipo T debería ser lo mismo que T sea un tipo primitivo o definido por el usuario. Ambos deberían ser conceptualmente equivalentes. Pero esto no siempre ocurre. Por ejemplo, en C es posible hacer asignaciones entre tipos primitivos, pero no entre ciertos tipos definidos por el usuario. La asignación a= b; funcionará o no, dependiendo de que los tipos de a y b sean primitivos o no. Clasificación de tipos según el número de valores almacenados - Tipo simple. Una variable de un tipo simple contiene un único valor en cierto instante. Por ejemplo, los enteros, reales, caracteres y booleanos son tipos simples. - Tipo compuesto. Un tipo compuesto es aquel que se forma por la unión de varios tipos simples o compuestos. Por lo tanto, una variable de tipo compuesto contiene varios valores de tipo simple o compuesto.
11 Mecanismos de composición para crear tipos compuestos en los lenguajes de programación: arrays y registros. Un array contiene una serie de posiciones consecutivas de variables del mismo tipo, cada una identificada con un índice dentro del rango del array. Los registros se definen enumerando los campos que forman el tipo compuesto, cada uno de los cuales tiene un nombre y un tipo (que, a su vez, puede ser simple o compuesto). Las clases, de lenguajes orientados a objetos, también se pueden ver como una manera de crear tipos compuestos, en la cual se pueden añadir atributos y operaciones al tipo. Normalmente los tipos simples son tipos elementales y los tipos compuestos son definidos por el usuario. No obstante, también pueden existir tipos compuestos definidos en el lenguaje de programación, y tipos simples definidos por el usuario. Un mecanismo que permite al usuario definir nuevos tipos simples son los enumerados. Un enumerado se define listando de forma completa el dominio del tipo Un tipo contenedor, o colección, es un tipo compuesto que puede almacenar un número indefinido de valores de otro tipo cualquiera. Por ejemplo, una lista de enteros o un array de Sexo son tipos contenedores. Un registro con dos enteros no sería un contenedor. En general, interesa que los tipos contenedores puedan almacenar valores de otro tipo cualquiera; por ejemplo, que las listas puedan ser de enteros, de reales, de registros o de cualquier otra cosa. Un tipo se dice que es genérico o parametrizado si su significado depende de otro tipo que es pasado como parámetro. Por ejemplo, una lista genérica tendría la forma Lista[T], donde T es un parámetro que indica el tipo de los objetos almacenados. Podríamos tener una variable a de tipo Lista[entero] y otra variable b de tipo Lista[real]; estos casos concretos se llaman instanciaciones del tipo genérico.
12 Realmente son muy pocos los lenguajes que permiten la definición de tipos parametrizados. Entre ellos se encuentra C++, que permite parametrizar un tipo mediante el uso de plantillas template. En la parte de prácticas se profundizará más en el uso de plantillas como una manera de crear tipos genéricos. Finalmente, podemos hacer una distinción entre tipos mutables e inmutables. Decimos que un tipo de datos es inmutable cuando los valores del tipo no cambian después de haber sido creados. El tipo será mutable si los valores pueden cambiar. Qué implicaciones tiene que un tipo sea mutable o inmutable? Supongamos que queremos definir el tipo Lista[T]. Si el tipo se define con una representación mutable, podemos incluir operaciones que añaden o suprimen elementos de la lista. operación Inserta (var lista: Lista[T]; elemento: T) operación SuprimePrimero (var lista: Lista[T]) donde lista es un parámetro que se puede modificar dentro de las operaciones. Pero si el tipo es inmutable no sería posible que un parámetro de entrada se modificara. En ese caso, las operaciones de inserción y eliminación deberían devolver una nueva lista, con el elemento correspondiente insertado o eliminado. operación Inserta (lista: Lista[T]; elemento: T): Lista[T] operación SuprimePrimero (lista: Lista[T]): Lista[T] Según nos interese, definiremos los tipos como mutables o inmutables. Normalmente, la mayoría de los tipos serán mutables, aunque en algunos casos nos interesará usar tipos inmutables: la suposición de que los valores del tipo no cambian puede simplificar, o hacer más eficiente, la implementación de la estructura de datos para el tipo.
13 Repaso de tipos y pseudolenguaje de definición La mayoría de los lenguajes ofrecen al programador un conjunto similar de tipos de datos simples (enteros, reales, booleanos, etc.), con las operaciones necesarias para manejarlos. Estos tipos tienen una correspondencia con los tipos manejados por el procesador, por lo que su implementación es muy eficiente. - Enteros. Con signo o sin signo, con precisión simple, doble o reducida (un byte). - Reales. Con precisión simple o doble. Para los números reales se suelen usar representaciones mantisa-exponente. Cuando lo usemos, pondremos el tipo real. - Caracteres. Lo denotaremos como caracter. - Cadenas. En algunos lenguajes las cadenas de caracteres son tipos elementales. En otros, como en C, las cadenas no son un tipo elemental sino que son simplemente arrays de caracteres. - Booleanos. Igual que antes, no existen en C donde se usan enteros en su lugar, aunque sí en C++ y Pascal. Supondremos que tenemos el tipo booleano. En cuanto a los tipos contenedores (listas, pilas, colas, árboles, etc.), normalmente no forman parte del lenguaje de programación, sino que se definen en librerías de utilidades que se pueden incluir en un programa o no. Pero sí que se suelen incluir mecanismos de composición de tipos como arrays, registros y tipos enumerados. En nuestro pseudolenguaje tenemos la posibilidad de definir nuevos tipos, con una cláusula tipo. Y tb permitimos que se definan tipos parametrizados. tipo DiasMeses = array [1..12] de entero Pila[T] = registro datos: array [1..MAXIMO] de T tope, maximo: entero fin Sexo = enumerado (masculino, femenino)
14 Para los arrays, se indica entre corchetes, [min..max], el rango mínimo y máximo de los índices del array. Para los registros, se listan sus atributos, cada uno con su nombre y tipo. Y, por otro lado, los enumerados se forman listando los valores del dominio. En algunos sitios usaremos también registros con variantes. Un registro con variantes es un registro que contiene un campo especial, en función del cual una variable podrá tener unos atributos u otros (pero nunca ambos a la vez). tipo Empleado = registro nombre: cadena edad: entero según sexo: Sexo masculino: (curriculum: cadena; sueldo: entero) femenino: (estadocivil: enumerado (soltera, otros); telefono: entero) fin fin En cuanto a los tipos colecciones, además de los arrays daremos por supuesto que disponemos de los siguientes: - Listas. Tendremos listas parametrizadas, Lista[T], y que guardan una posición actual. De esta forma, la inserción, eliminación, etc., se hacen siempre sobre la posición actual. Por conveniencia, en algunos sitios no se darán por supuestas las listas. - Pilas. Una pila es una lista LIFO: last in, first out (último en entrar, primero en salir). Suponemos el tipo genérico Pila[T], con las operaciones push, pop y tope. - Colas. Una cola es una lista FIFO: first in, first out (primero en entrar, primero en salir). Suponemos el tipo genérico Cola[T], con las operaciones meter, sacar y cabeza.
15 Por último, pero no menos importante, tenemos el tipo de datos puntero. Considerado como un tipo non-grato por algunos autores por tratarse de un concepto cercano al bajo nivel, lo cierto es que los punteros son esenciales en la definición de estructuras de datos. Los punteros son un tipo parametrizado. Una variable de tipo Puntero[T] contiene una referencia, o dirección de memoria, donde se almacena una variable de tipo T. En nuestro pseudolenguaje suponemos que tenemos el tipo Puntero[T] con las siguientes operaciones y valores especiales: - Operador de indirección. Si a es de tipo Puntero[T], entonces la variable apuntada por a se obtiene con el operador de indirección flecha,, esto es: a es de tipo T. - Obtención de la dirección. Si t es una variable de tipo T, entonces podemos obtener la dirección de esa variable con la función PunteroA(t: T), que devuelve un puntero de tipo Puntero[T]. - Puntero nulo. Existe un valor especial del tipo Puntero[T], el valor predefinido NULO, que significa que el puntero no tiene una referencia válida o no ha sido inicializado. - Creación de una nueva variable. Para crear una nueva variable apuntada por un puntero, suponemos la función genérica Nuevo(T: Tipo), que devuelve un Puntero[T] que referencia a una nueva variable creada. Esta variable se borrará con la función Borrar(a: Puntero[T]). - Comparación. Suponemos que hay definidos operadores de comparación de igualdad y desigualdad entre punteros (=, ). No consideramos otras operaciones sobre punteros, al contrario de lo que ocurre con C/C++, donde los punteros son consideramos como enteros, pudiendo aplicar sumas, restas, etc. Por esta razón, entre otras, decimos que lenguajes como C/C++ son lenguajes débilmente tipados: existen pocas restricciones en la asignación, mezcla y manipulación de tipos distintos. Como contraposición, los lenguajes fuertemente tipados, como Pascal, tienen reglas más estrictas en el sistema de compatibilidad de tipos. En la práctica, esta flexibilidad de C/C++ le proporciona una gran potencia pero es fuente de numerosos errores de programación.
Profesor: José Miguel Rubio L.
Profesor: José Miguel Rubio L. Magíster en Ingeniería Informática Ingeniero Civil en Informática Licenciado en Ciencias de la Ingeniería Técnico en Programación Oficina: 3-20 e-mail 1: jose.rubio.l@ucv.cl
Programación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 9 Nombre: Tipos de datos abstractos Contextualización Conforme los lenguajes de programación evolucionan, nuevas técnicas aparecen para
Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.
Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Con relación a la Estructura LISTA Indicar objetos reales que se puedan modelar con dicha estructura. Listas de Ordenes de visitas
METODOLOGÍA DE LA PROGRAMACIÓN
IV.1.- PROGRAMACIÓN PROCEDIMENTAL. UNIVERSIDAD DE MALAGA DPTO. DE LENGUAJES Y C. DE LA COMPUTACION E.T.S. DE INGENIERIA INFORMATICA INGENIERIA INFORMATICA METODOLOGÍA DE LA PROGRAMACIÓN (CURSO 2006-2007)
ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y
Estructuras Dinámicas de datos.
Estructuras Dinámicas de datos. Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa. Una estructura dinámica de datos es una colección de elementos llamadas nodos
Estructuras de Datos
8 de marzo de 2011 1 2 3 4 5 Tipo de Dato Abstracto Un tipo de dato abstracto (TDA), corresponde a un conjunto de valores y un conjunto de operaciones sobre tales valores. s de TDA Enteros. Reales. Booleanos.
TEMA 2 Estructuras de datos lineales
TEMA 2 Estructuras de datos lineales 1 Objetivos Conocer la especificación algebraica de las principales estructuras de datos lineales: Lista, pila y cola Conocer diferentes alternativas sobre el diseño
Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios
35. Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas
Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).
PLANTEMAIENTO DEL PROBLEMA Identificación de entradas y salidas Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema dado y
TIPOS DE DATOS (VARIABLES) EN JAVA. TIPOS PRIMITIVOS (INT, BOOLEAN, ETC.) Y OBJETO (STRING, ARRAY, ETC.) (CU00621B)
APRENDERAPROGRAMAR.COM TIPOS DE DATOS (VARIABLES) EN JAVA. TIPOS PRIMITIVOS (INT, BOOLEAN, ETC.) Y OBJETO (STRING, ARRAY, ETC.) (CU00621B) Sección: Cursos Categoría: Curso Aprender programación Java desde
ASIGNATURA: ESTRUCTURA DE DATOS II
ASIGNATURA: ESTRUCTURA DE DATOS II Cód: 31-206 Régimen cuatrimestral Horas reloj semanales: 4 Horas teóricas: 15 Horas prácticas: 45 Horas totales: 60 Carrera: Sistemas 2016 FUNDAMENTOS: Un tipo de dato
DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS
DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación Un dato
3.Conocimientos previos requeridos 7.Estimación de la dedicación del alumno. 4.Contenidos mínimos. 1.Introducción. 2.Objetivos generales
Proyecto Docente Curso 05/06 1 de 9 1.Introducción. 2.Objetivos generales 5.Competencias. 6.Calendario de actividades. 9. Evaluación 10. Bibliografía del aprendizaje. 3.Conocimientos previos requeridos
Algoritmos y Estructuras de Datos Ingeniería en Informática
2.1.Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas
Estructuras de Datos Dinámicas: Tipo de Dato Abstracto parte I. Programación I Departamento de Informática Universidad Nacional de San Luis Argentina
Estructuras de Datos Dinámicas: Tipo de Dato Abstracto parte I Programación I Departamento de Informática Universidad Nacional de San Luis Argentina Progreso de la Abstracción Los diferentes niveles de
INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
Prefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27
ÍNDICE Prefacio 25 Organización de la Unidad Didáctica.................... 25 Cómo utilizar el libro............................. 26 Objetivos docentes.............................. 27 1 Fundamentos de
TIPO DE DATO ABSTRACTO (TDA)
TIPO DE DATO ABSTRACTO (TDA) Ing. Eduard Antonio Lozano Córdoba Nota: Toda la información fue copiada de: Libros físicos e Internet Actividad Extra Clases #include #include int binario(int
Definición de Memoria
Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria
El operador contenido ( ) permite acceder al contenido de
3. Memoria Dinámica y Punteros Objetivos: Distinguir los conceptos de memoria estática y memoria dinámica Comprender el concepto de puntero como herramienta de programación Conocer cómo se definen y cómo
CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS
CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS 1 TEMAS A VER Listas simples genéricas Pilas Colas 2 LISTA SIMPLE GENÉRICA Una lista simple genérica nos permite crear listas de diferentes objetos: enteros, char,
Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una 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
1.2.4 Listas enlazadas
1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina
Declaración de variables en pseudocódigo. Ambito global o local programación. (CU00205A)
aprenderaprogramar.com Declaración de variables en pseudocódigo. Ambito global o local programación. (CU00205A) Sección: Cursos Categoría: Curso Bases de la programación Nivel II Fecha revisión: 2024 Autor:
Programación TADs Colecciones Conjuntos, Diccionarios y Tablas
Programación 2 8 - TADs Colecciones Conjuntos, Diccionarios y Tablas 1 El TAD SET (Conjunto) En el diseño de algoritmos, la noción de conjunto es usada como base para la formulación de tipos de datos abstractos
obtenidos a partir de los objetos que manipula. un nuevo paradigma de programación, La POO es Clases su forma de módulo.
(a) definición (b) elementos y notación (c) modelo de computación (d) ejecución de un sistema (e) exportación selectiva Clases Programación Orientada a Objetos DCIC UNS 2002 47 La POO es un nuevo paradigma
Programación Orientada a Objetos
Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Programación Orientada a Objetos Algoritmos y Programación II Junio, 2004 Las tecnologías de objetos hoy
Procesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Datos Elementales y formato de un programa en Java
Datos Elementales y formato de un programa en Java PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Datos, variables y mi primer programa 1 Introducción a la programación o Programa:
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas
Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas Departamento de Informática Universidad de Valladolid Curso 2011-12 Grado en Ingeniería Informática Grado en Ingeniería Informática de
Unidad III: Introducción a la Programación
Unidad III: Introducción a la Programación 3.1 Características del lenguaje de programación Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a
Tipos Abstractos de Datos (TAD) Lección 1
Tipos Abstractos de Datos (TAD) Lección 1 Esquema Paradigmas de programación Definición de TAD Programación con TAD Ventajas de la programación con TAD Lectura recomendada: secciones 1.1 y 1.2 del libro
Metodología y Tecnología de la Programación. I.T. Informática de Gestión
ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA PROGRAMAS, MÉTODOS Y CRITERIOS DE EVALUACIÓN A APLICAR DURANTE EL PROCESO DE EXTINCIÓN DEL PLAN 1999 Metodología y Tecnología de la Programación I.T. Informática
Unidad 2: Estructuras de Datos Tema III. Estructuras de datos Compuestas. Pilas, Colas y Listas implementadas con punteros
Unidad 2: Estructuras de Datos Tema III. Estructuras de datos Compuestas. Pilas, Colas y Listas implementadas con punteros Programación I (Plan 1999) Algoritmos y Estructuras de Datos II (Plan 2009) Mgter.
PROGRAMACION II. Dr. Mario Rossainz López. Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017
PROGRAMACION II Dr. Mario Rossainz López Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017 ABSTRACCIÓN: Proceso mental e intelectual que ignora selectivamente partes
2. ESTRUCTURAS BÁSICAS
2. ESTRUCTURAS BÁSICAS En el computador un conjunto (no vacío) de datos se almacenan en memoria; el área de memoria se denomina por el elemento X k ; esto es una celda, una unidad de memoria direccionable;
Práctica 4. TAD lista posicional
Objetivos. Práctica 4. TAD lista posicional Se trata de construir el TAD lista posicional con una implementación acotada. Haciendo uso de este TAD, se implementará una biblioteca de cálculos estadísticos
TIPOS DE DATOS EN JAVASCRIPT. TIPOS PRIMITIVOS Y OBJETO. SIGNIFICADO DE UNDEFINED, NULL, NAN (CU01112E)
APRENDERAPROGRAMAR.COM TIPOS DE DATOS EN JAVASCRIPT. TIPOS PRIMITIVOS Y OBJETO. SIGNIFICADO DE UNDEFINED, NULL, NAN (CU01112E) Sección: Cursos Categoría: Tutorial básico del programador web: JavaScript
Laboratorio de Arquitectura de Redes. Punteros en lenguaje C
Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones
1 Introducción a los algoritmos y a la programación de computadoras... 1
Contenido - IX Contenido 1 Introducción a los algoritmos y a la programación de computadoras... 1 1.1 Introducción... 2 1.2 Concepto de algoritmo... 2 1.2.1 Definición de algoritmo y problema... 2 1.2.2
Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica
Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de
Introducción a los Tipos Abstractos de Datos
Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de un TAD Implementación
Tipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Estructuras dinámicas lineales (i)
Estructuras dinámicas lineales (i) Introducción En la lección anterior se explicaron los conceptos de dinámicas y puntero; vimos la forma en que se implementan dichas tanto en la notación algorítmica como
INDICE. Prólogo de la Segunda Edición
INDICE Prólogo de la Segunda Edición XIII Capitulo 1. Algoritmos y Programas 1 1.1. Los sistemas de procesamiento de la información 2 1.2. Concepto de algoritmo 4 1.2.1. Características de los algoritmos
(1) Recordemos qué es una pila...
(1) Recordemos qué es una pila... TAD Pila(α) observadores básicos vacía? : pila(α) bool tope : pila(α) p α desapilar : pila(α) p pila(α) generadores vacía : pila(α) apilar : α pila(α) pila(α) otras operaciones
Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????
Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir
Listas, pilas, colas
Listas, pilas, colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas TAD Tipo Abstracto de Dato Qué es un TAD? TAD: Tipo Abstracto de Dato. Nuevo
Lógica: Algoritmo: Archivo: Base de datos: Bit:
Lógica: Algoritmo: Archivo: Base de datos: Bit: 1 LÓGICA: Es una secuencia de operaciones realizadas por el hardware o por el software. Lógica del hardware, Son los circuitos y Chips que realizan las operaciones
Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.
Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo
Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.
Elementos básicos de programación en Java Objetivos del tema Conocer la estructura básica de un programa Java. Comprender los conceptos de tipo, valor y variable. Comprender las diferencias entre tipos
PUNTEROS (Apuntadores)
PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
UA.- Estructura de Datos. Unidad de Competencia I INTRODUCCIÓN Tema 1.1 Estructuras Estáticas
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO Facultad de Contaduría y Administración Licenciatura en Informática Administrativa UA.- Estructura de Datos Unidad de Competencia I INTRODUCCIÓN Tema 1.1 Estructuras
VARIABLES TIPOS FUNDAMENTALES
VARIABLES Una variable es un espacio reservado en el ordenador para contener valores que pueden cambiar durante la ejecución de un programa. Los tipos determinan cómo se manipulará la información contenida
como les va con las practicas?
como les va con las practicas? Problemas NP-completos y Estructuras de datos básicas (representación de datos) mat-151 1 Una maquina de Turing Aceptation state Una maquina de Turing Maquina de Turing Determinística,
Estructura de datos. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.
1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Estructura de datos Licenciatura en Informática IFM - 0412 3-2-8 2.- HISTORIA DEL
Tipos de Datos Abstractos
Tipos de Datos Abstractos Facultad de Ciencias de la Computación Juan Carlos Conde R. Object-Oriented Programming I Contenido 1 Introducción 2 Estructura tipo LIFO 3 Estructura tipo FIFO 4 LISTAS Ligadas
Análisis semántico. Análisis semántico. Índice (I)
Análisis semántico Índice (I) Marina de la Cruz Alfonso Ortega Objetivo del análisis semántico Decisiones para la construcción de un analizador semántico Análisis semántico con Bison Nivel de indirección
Estructura de datos. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.
1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Estructura de datos Licenciatura en Informática IFM - 0411 3-2-8 2.- HISTORIA DEL
INDICE Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación Actividades de Programación Resueltas
INDICE Prologo a la tercera edición xiii Prologo a la segunda edición xxvii Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación 3 1.1. Organización de
UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS
UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo
Unidad III: Estructuras lineales
Unidad III: Estructuras lineales Listas En Ciencias de la Computación, una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos.
Tema: Tipos Abstractos de Datos (TAD s) en C#.
Programación II. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C#. Objetivos Comprender el concepto Tipo Abstracto de Datos
Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES
Estructura de datos y algoritmos Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES 4.1 Introducción 4.2 Ejemplos de TDA dinámicos lineales 4.3 Pilas 4.3.1
Programación Web Tema 3.2 Java Script Estructura del Lenguaje. Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM
Programación Web Tema 3.2 Java Script Estructura del Lenguaje Miguel Ángel Manso Emerson Castañeda Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM Contenido Variables Operadores Estructuras
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones
Implementaciones de pilas, colas y afines. Memoria dinámica.
Implementaciones de pilas, colas y afines. Memoria dinámica. 1 1 Departamento de Computación, FCEyN, Universidad de Buenos Aires, Buenos Aires, Argentina Algoritmos y Estructuras de Datos II, segundo cuatrimestre
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO INTRODUCCION A LA PROGRAMACION Y COMPUTADORAS 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias
Tipos de Datos Recursivos
1/1 Tipos de Datos Recursivos Josefina Sierra Santibáñez 15 de mayo de 2018 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones), sino
Tipo de Datos Abstractos y Programación Orientada a Objetos
Tipo de Datos Abstractos y Programación Orientada a Objetos DISEÑO Y PARADIGMAS DE LENGUAJES ING. EN INFORMÁTICA/ING. EN COMPUTACIÓN DEPARTAMENTO DE INFORMÁTICA UNIVERSIDAD NACIONAL DE SAN LUIS ARGENTINA
ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: NOTA FINAL: Nota Practica (1 punto) + Nota Examen (9 punto) Es indispensable aprobar el examen (4,5 puntos) para aprobar la asignatura (5 puntos) La práctica es opcional Duración:
Prefacio 25. Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes Fundamentos de programación 29
ÍNDICE Prefacio 25 Organización de la Unidad Didáctica.................... 25 Cómo utilizar el libro............................. 26 Objetivos docentes.............................. 27 1 Fundamentos de
Introducción a la Computación (Matemática)
Introducción a la Computación (Matemática) Primer Cuatrimestre de 2016 Tipos Abstractos de Datos 1 Problema: Agenda Queremos programar una agenda de contactos. De cada persona nos interesa guardar: Nombre
GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS
GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS A.- ASPECTOS FUNDAMENTALES DEL CÓDIGO ORIENTADO A OBJETOS MÓDULOS DE CÓDIGO: El código en Visual Basic se almacena en módulos. Hay tres tipos de módulos: de formulario,
ANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Práctica 2. TAD pila
Objetivos. Práctica. TAD pila Se trata de construir el TAD PILA con dos implementaciones (una acotada y otra no acotada sin cabecera) que compartirán el mismo módulo de definición. Haciendo importación
Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1
Unidad 1 Análisis de Algoritmos Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 GENERALIDADES Qué se necesita para escribir un programa eficiente? Para diseñar programas eficientes
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Contenidos: 1. Características generales de C++ 2. Entrada/salida estándar 3. Variables y tipos de datos
Informática Ingeniería en Electrónica y Automática Industrial
V1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C V1.1 Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales
ESTRUCTURAS BÁSICAS Concepto de datos estructurados.
8 ESTRUCTURAS BÁSICAS 8.1. Concepto de datos estructurados. En temas anteriores vimos la representación de los datos en un computador y los distintos tipos que hay: carácter (ASCII), real (o de coma flotante),
Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones
Práctica 2 Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz
Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat
RELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA
RELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA La Programación Orientada a Objetos toma las mejores ideas de la programación estructurada la combina con nuevos y poderosos conceptos
ALGORITMOS Y PROGRAMACIÓN I Unidad 3
ALGORITMOS Y PROGRAMACIÓN I Unidad 3 Tipos de Datos Estructurados Prof. Jaime Soto Sección (007) Material original de Prof. AURELY LEAL Introducción a las Estructuras de Datos Una estructura de datos es
Curso Informática Lección 3. Tipos de datos, constantes y variables
Fundamentos de Informática Lección 3. Tipos de datos, constantes y variables Curso 2010-2011 José Ángel Bañares y Pedro Álvarez 24/09/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos
Planificaciones Algoritmos y Programación I. Docente responsable: GUARNA PABLO FRANCISCO. 1 de 6
Planificaciones 7540 - Algoritmos y Programación I Docente responsable: GUARNA PABLO FRANCISCO 1 de 6 OBJETIVOS Conocer un lenguaje de programación imperativo. Aplicar las capacidades que ofrece el lenguaje
Estructura de Datos Unidad 1: Repaso del Lenguaje Java
Estructura de Datos Unidad 1: Repaso del Lenguaje Java Introducción Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de 1991, con el que se van a
Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)
Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,
Arreglos Estructura (struct)
Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Arreglos Estructura (struct) MSc Jaime Soto Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización
PUNTEROS (APUNTADORES)
2010 UNAN LEON Departamento de Computación Ing. En Sistemas Sabatino Autor: Ing: Karina Esquivel Alvarado. Asignatura: Algoritmo y Estructura de Datos. PUNTEROS (APUNTADORES) TEMA 4: PUNTEROS (APUNTADORES)