Introducción a la Programación Orientada a Objetos DCIC - UNS 2018
|
|
- María José Torregrosa del Río
- hace 5 años
- Vistas:
Transcripción
1 2018 EJERCICIO 1. Procesar un número natural N a. Dadas las siguientes definiciones: PRACTICO N 3 Diseño de algoritmos iterativos y planteos recursivos Patrones de algoritmos Implementación en Java o La suma de los dígitos de un número natural N=d m,d m-1,,d 2,d 1 se define como sumadig=d m + d m-1 + +d 2 +d 1 o Un dígito dig está en un número natural N=d m,d m-1,,d 2,d 1 si dig =d i para algún i, 1<=i<=m o Un número natural N=d m,d m-1,,d 2,d 1 verifica la propiedad es creciente si d i < d i-1 para 1<i<=m Complete la clase ProcesadorNumero implementando cada definición: class ProcesadorNumero { /*Cada uno de los servicios provistos por la clase recibe un número natural n y lo procesa para computar un valor*/ public static int sumadig(int n){ /* Retorna la suma de los dígitos del número natural n */ public static boolean estadig(int n,int d){ /* Retorna true si y solo si d es un dígito del número natural n */ public static boolean escreciente(int n){ /* Retorna true si y solo si los dígitos de n están ordenados en forma estrictamente creciente (desde la posición más significativa hacia la menos significativa) */ OBSERVACIÓN: PARTE DEL OBJETIVO DE ESTE EJERCICIO ES QUE SE FAMILIARICE CON LA NOTACIÓN DEL ENUNCIADO. b. Agregue a la clase ProcesadorNumero la implementación de un método: public static boolean esperfecto (int n){ /*Un número es perfecto si es igual a la suma de sus divisores, excluyéndolo a sí mismo */ c. Agregue a la clase ProcesadorNumero los siguientes métodos recursivos considerando que cada uno de ellos corresponda a un planteo recursivo: public static int contadordig(int n, int d){ /* Retorna la cantidad de apariciones del dígito d en el número natural n*/ public static int mayordigito(int n){ /* Retorna el mayor dígito de n */ 1
2 d. Agregue a la clase ProcesadorNumero el método todosimpares, public static boolean todosimpares(int n){ /* Retorna true si y solo si todos los dígitos de n son impares */ implementando el siguiente planteo recursivo: Caso Trivial: Un número con un dígito cumple la propiedad todosimpares sí y solo sí el dígito es impar. Caso Trivial: Un número con dos o más dígitos NO cumple la propiedad todosimpares si el dígito menos significativo es par. Caso Recursivo: Un número con dos o más dígitos cumple la propiedad todosimpares si el dígito menos significativo es impar y N cumple la propiedad, siendo N igual a N sin su dígito menos significativo. e. Implemente una clase tester para verificar los servicios de ProcesadorNumero con casos significativos. EJERCICIO 2. Dada una secuencia S de n elementos leídos por consola a) Analice qué algoritmo corresponde a cada problema: i. Contar la cantidad de apariciones de elementos de S que cumplen una propiedad p. ii. Decidir si algún elemento de S cumple una propiedad p. iii. Decidir si todos los elementos de S cumplen una propiedad p. iv. Computar la posición de la primera aparición de un elemento de S que cumple una propiedad p. La posición es 0 si ninguno cumple la propiedad p. v. Decidir si hay al menos m elementos seguidos de S que cumplen una propiedad p. propiedad true para i tomando valores entre 1 y n, mientras se cumple la propiedad si s NO cumple la propiedad p propiedad falso para i tomando valores entre 1 y n, mientras valor = 0 valor i para i tomando valores entre 1 y n, mientras valor < m y i+(m-valor)-1<=n si S cumple la propiedad p valor valor + 1 sino para i tomando valores entre 1 y n valor valor + 1 valor falso para i tomando valores entre 1 y n, mientras valor es falso valor verdadero 2
3 b) El siguiente algoritmo decide si S contiene al menos m elementos que cumplen una propiedad p. Analice su eficiencia. cont 0 para i tomando valores entre 1 y n cont cont + 1 si cont >= m cumple = verdadero sino cumple = falso c) Muestre una solución eficiente para cada uno de los dos enunciados que siguen y describa qué diferencia al problema y qué diferencia a la solución. Decidir si una secuencia S tiene al menos m elementos que cumplen la propiedad p. Decidir si una secuencia S tiene exactamente m elementos que cumplen la propiedad p. d) Diseñe algoritmos para los siguientes problemas: i. Computar la posición de la última aparición de un elemento de S que cumple una propiedad p. La posición es 0 si ninguno cumple la propiedad p. ii. Decidir si hay al menos 2 elementos de S que cumplen una propiedad p, separados por otro elemento que no cumple la propiedad. EJERCICIO 3. Procesar una secuencia S de n números s 1 s 2... s n, con n > 0, leídos por consola a) Complete la clase SecuenciaConsola escribiendo implementaciones iterativas: class SecuenciaConsola { /*Cada uno de los servicios provistos por la clase lee una secuencia de n números enteros por consola y computa un valor*/ public static int primer(int n){ /* Retorna el primer elemento mayor que 100 que aparece en la secuencia*/ public static int ultimaposicion(int n, int m){ /* Retorna la posición de la última aparición de m, si no existe retorna 0*/ public static int sumasec(int n){ /* Retorna la suma de los números de la secuencia*/ public static boolean estanum(int n,int num){ /* Retorna true si y solo si num es está en la secuencia leída */ public static boolean escreciente(int n){ /* Retorna true si y solo si los elementos de la secuencia están ordenados en forma estrictamente creciente (desde el primero en ser leído hasta el último) */ b) Para cada uno de los siguientes servicios escriba un planteo recursivo, implemente un método consistente con el planteo e inclúyalo en la clase SecuenciaConsola. public static int contadornum(int n,int num){ /* Retorna la cantidad de apariciones de num en la secuencia de n elementos*/ public static int mayornum(int n){ /* Retorna el mayor número de la secuencia de n elementos */ c) Implemente una clase tester para SecuenciaConsola. 3
4 d) Usando los servicios provistos por ProcesadorNumero, aumente los servicios provistos por la clase SecuenciaConsola completando el código de los métodos iterativos: public static int mayorpar(int n){ /* Retorna el mayor número par en la secuencia*/ public static int contarperfectos(int n){ /* Computa la cantidad de números perfectos de la secuencia*/ public static boolean dostodosimpares(int n){ /* Retorna true si solo si la secuencia contiene dos números seguidos, con todos los dígitos impares */ e) Dada la siguiente definición, proponga un planteo recursivo para computar la suma de productos de una secuencia S de n números enteros. Definimos la suma de productos de S como: d 1 *d n + d 2 *d n d n/2*d (n/2)+1 cuando n es par y d 1 *d n + d 2 *d n d (n/2)+1 cuando n es impar. Por ejemplo para n = 6 y S = entonces M = 10* * * 5 = para n = 7 y S = entonces M = 10 * * * = f) Implemente un método recursivo consistente con el planteo e inclúyalo en la clase SecuenciaConsola. g) Implemente una clase tester que verifique los nuevos servicios. EJERCICIO 4. Procesar una secuencia de n caracteres leída por consola a) Implemente soluciones iterativas para cada uno de los servicios de la clase SecuenciaCaracteres: class SecuenciaCaracteres { /*Cada uno de los servicios provistos por la clase lee una secuencia de n caracteres por consola y computa un valor*/ public static boolean dosvocales (int n){ /* retorna true si la secuencia de n caracteres contiene dos vocales seguidas*/ public static boolean estantodas(int n){ /* retorna true si la secuencia de n caracteres contiene al menos una aparición de cada letra mayúscula*/ b) Para cada uno de los siguientes servicios escriba un planteo recursivo, implemente un método consistente con el planteo e inclúyalo en la clase SecuenciaCaracteres. public static int contadorchar(int n,char ch){ /* Retorna la cantidad de apariciones de ch en la secuencia */ public static boolean todasletras(int n){ /* Retorna true si y solo si todas los caracteres de la secuencia son letras*/ c) Implemente una clase tester que verifique los servicios provistos por la clase SecuenciaCaracteres 4
5 d) Agregue un método maxdistancia(n) que compute la máxima distancia entre dos vocales implementando el siguiente algoritmo: Algoritmo maxdistancia maxdis -1 Buscar la posición de la primera vocal si existe maxdis 0 dis 0 mientras no se termina la secuencia S dis dis + 1 si s es una vocal si dis > maxdis maxdis = dis dis = 0 OBSERVE QUE EL ALGORITMO COMPUTA -1 SI NO HAY NINGUNA VOCAL Y 0 SI SOLO HAY UNA VOCAL. e) Una secuencia S = a 1 a 2.. a k b k.. b 2 b 1 de longitud par (2k) se dice que tiene algún reflejo si existe i en [1..k] tal que a i =b i. Por ejemplo * S = abcdbb (longitud=6) tiene algún reflejo (ya que a 2 =b 2 =b). * S = abab (longitud=4) NO tiene algún reflejo * Si S es vacía, NO tiene algún reflejo. Dada la definición de tiene algún reflejo, proponga un planteo recursivo para decidir si una secuencia de caracteres tiene algún reflejo. f) Dada una secuencia de caracteres S = a 1 a 2.. a k b k.. b 2 b 1 de longitud par (2k) su secuencia explosiva desde el centro se genera como a k b k a k-1 b k-1... a 1 b 1 Proponga un planteo recursivo para generar la secuencia explosiva desde el centro de una secuencia S como la descripta anteriormente. g) Implemente los métodos tienealgunreflejo(n) y explosiva(n), inclúyalos en la clase SecuenciaCaracteres y modifique la clase tester para verificar estos servicios con casos de prueba significativos. EJERCICIO 5. Procesar Oracion Dado el siguiente diagrama que describe la forma de una oración: a. Analice si las siguientes cadenas de caracteres son válidas de acuerdo al diagrama sintáctico: Martes, a la mañana. Martes,a la mañana. Martes, a la mañana. Martes, a la mañana. Martes, a la 12 hs. Martes, no. Lunes. 5
6 b. Para cada uno de los servicios provistos por la clase Oracion diseñe un algoritmo y luego implemente la clase completa: class Oracion{ public static int cantletras (){ /* Lee una oración y retorna la cantidad letras */ public static int cantpalabras (){ /* Lee una oración y retorna la cantidad Palabras */ public static int cantpalabrasletra (char ch){ /* Lee una oración y retorna la cantidad de palabras que empiezan con el carácter ch*/ c. Proponga un algoritmo informal para computar la longitud de la palabra más larga de una oración, implemente el algoritmo propuesto e incluya este servicio en la clase Oracion. d. Defina una clase tester para verificar los servicios de la clase Oracion. EJERCICIO 6. Procesar una secuencia S de números enteros, leídos por archivo a. Implemente una clase SecuenciaArchivo con la misma funcionalidad que SecuenciaConsola pero con la secuencia S leída de un archivo, cuyo nombre es recibido como parámetro por cada servicio. En este caso no se conoce la cantidad de elementos en el momento que comienza la lectura. b. Implemente una clase tester para SecuenciaArchivo. Observación Los planteos recursivos con dos casos triviales se modelan en Pascal con dos condicionales. En Java el cortocircuito permite modelar el problema con un solo condicional, pero es importante notar que sigue habiendo dos condiciones de corte. 6
Introducción a la Programación Orientada a Objetos DCIC - UNS 2015
PRACTICO Nº 7 En todos los problemas considere la importancia de interpretar correctamente los enunciados, en particular cuando incluye notación simbólica. En todas las soluciones considere la importancia
Introducción a la Programación Orientada a Objetos DCIC - UNS 2018 PRACTICO Nº 7
PRACTICO Nº 7 En todos los problemas considere la importancia de interpretar correctamente los enunciados, en particular cuando incluye notación simbólica. En todas las soluciones considere la importancia
PRACTICO Nº 9 TDA Vector y Matriz En todas las implementaciones puede agregar métodos para favorecer la modularización.
PRACTICO Nº 9 TDA Vector y Matriz En todas las implementaciones puede agregar métodos para favorecer la modularización. EJERCICIO 1. Dado el siguiente diagrama que modela un TDA Vector Vector V : real[]
Introducción a la Programación Orientada a Objetos DCIC - UNS 2018
PRACTICO Nº 10 Alternativas de Diseño En todas las soluciones considere la importancia de diseñar algoritmos correctos, eficientes y legibles seleccionando estructuras de control adecuadas. En todas las
Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2
Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Diseño de algoritmos recursivos 1. Dado un vector de enteros de longitud N,
Introducción a la Programación Orientada a Objetos DCIC - UNS 2018 PRACTICO Nº 17
PRACTICO Nº 17 EJERCICIO 1. Dadas las siguientes definiciones de clases y las declaraciones de variables class Uno { int f (){ return 10; } int g (){ return 2; } int h () { return 100; } int m (int i)
Dra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR La recursividad es adecuada en problemas que reúnen las siguientes propiedades:
Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa
Contenido Estructura de un programa en Java... 2 Tipos de datos básicos... 2 Operadores... 3 Literales... 4 Entrada / Salida... 4 Sentencias condicionales... 5 Funciones... 5 Ejercicios... 6 Variables,
VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Trabajo Práctico 7 Recursividad Versión 4
Trabajo Práctico 7 Recursividad Versión 4 Para los ejercicios que solicita resolver el problema recursivamente no puede utilizar, en esta materia, ninguna estructura repetitiva de las vistas anteriormente
Iteración Diagrama de SINTAXIS: IF
VISION ESTATICA VISION DINAMICA Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Diagrama de SINTAXIS: IF Visión estática Diagrama
Trabajo Práctico N 9 Recursividad
Trabajo Práctico N 9 Recursividad Ejercicio. Implemente en Pascal las siguientes definiciones recursivas. a) h ( N) h( N ) h( N ), N, N 0 0 b) 0 g ( x, z) 0 g( x, z ), x 0, z 0, ( x 0) y ( z 0) c) f (
Ingeniería del Software I
- 1 - Ingeniería del Software I Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Segundo Cuatrimestre de 2005 Práctica: Testing Funcional - 2 - Comentario: la mayoría de los enunciados
Trabajo Práctico Nº 4 Iteración
Trabajo Práctico Nº 4 Iteración Ejercicio 1: Realice una traza y muestre la salida de cada secuencia de instrucciones. for i:= 0 to 0 do for i:= 1 to -1 do for i:= 1 downto 0 do Ejercicio 2: Escriba un
Tipos de datos algebraicos
Tipos de datos algebraicos Taller de Álgebra I Segundo cuatrimestre de 2013 Programación funcional Recordemos que un tipo de datos es un conjunto dotado con una serie de operaciones sobre los elementos
Recursividad Definición
Recursividad Definición Un procedimiento o función se dice recursivo si durante su ejecución se invoca directa o indirectamente a sí mismo. Esta invocación depende al menos de una condición que actúa como
Java. Introducción a la Programación Orientada a Objetos
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos y Clases Caso de estudio: Cuenta Corriente Bancaria Dr. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación
Guía 2: Listas, recursión e inducción
Introducción a los Algoritmos - 2do cuatrimestre 2014 Guía 2: Listas, recursión e inducción Docentes: Walter Alini, Luciana Benotti En esta guía comenzaremos a trabajar con listas Para familiarizarnos
Trabajo Práctico Nº 06
Tema: Recursividad 1. Dado el siguiente método: static int puzle (int base, int limite) if (base > limite) return -1; if (base = = limite) return base * puzle(base+1,limite); 1.1 Identificar: a) el caso(s)
Iteración Diagrama de SINTAXIS: IF
VISION ESTATICA VISION DINAMICA Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Diagrama de SINTAXIS: IF estática Diagrama de
GUÍA DE TRABAJO Tecnología en Sistemas de Información
1. IDENTIFICACIÓN Asignatura Lógica y Programación Guía No. 3 Área Básica de la Ingeniería Nivel II Código LPI24 Pensum 10 Correquisito(s) Prerrequisito(s) Créditos 4 TPS 4 TIS 8 TPT 64 TIT 96 TRABAJO
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
Introducción a Haskell. Cecilia Manzino
Paradigmas de programación Un paradigma de programación representa un estilo particular o filosofía para la construcción del software. Los más comunes dan lugar a los siguientes tipos de programación:
1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el pseudocódigo de un programa que lo resuelva:
1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el a) Problema: pedir la base y la altura de un triángulo y escribir su superficie. b) Problema: pedir cuatro números enteros
Examen de Estructuras de Datos y Algoritmos (Ingeniería Informática)
Examen de Estructuras de Datos y Algoritmos (Ingeniería Informática) Primera parte (50% nota del examen) Septiembre 2009 1) Se desea hacer un método con la cabecera que se muestra abajo que cree y retorne
PRACTICO Nº 11 Colecciones y Tablas En todas las implementaciones puede agregar métodos para favorecer la modularización.
PRACTICO Nº 11 Colecciones y Tablas En todas las implementaciones puede agregar métodos para favorecer la modularización. EJERCICIO 1. La clase NominaEmpleados modelada en el diagrama permite almacenar
Resolución de Problemas y Algoritmos
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE Estructura de control condicional. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur,
Para la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación.
Para la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación. public class BinTree { public BTNode root; // la raiz
Métodos de la clase String
Métodos de la clase String Ing. Paola A. Manquillo M. Análisis y Desarrollo de sistemas de Información SENA Regional Cauca - 2013 Tabla de contenido Métodos de la clase String 1 equals() {argumentos: String;
Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
CodeHood uno. función. Un algoritmo para determinar si un número real es mayor que 50 podría ser:
CodeHood uno función Un algoritmo para determinar si un número real es mayor que 50 podría ser: # si un número real es mayor que 50 x = 107 si x > 50: escribe 1 La sentencia si permite verificar si una
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:
!" # $ Construir mapa conceptual sobre programación. Identifique relaciones entre los siguientes conceptos, conectándolos con flechas nombradas
"!" # $ El objetivo principal de esta guía de trabajo es repasar los conceptos vistos en el primer curso de programación. Con este trabajo el estudiante podrá: Enumerar los conceptos básicos en la solución
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario
Curso Informática Lección 4. Instrucciones de control
Fundamentos de Informática Lección 4. Instrucciones de control Curso 2010-2011 Pedro Álvarez y José Ángel Bañares 24/09/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos Introducción
28/10/2016. Procesamiento de Secuencias. Procesamiento de Secuencias. Procesamiento de Secuencias. Procesamiento de Secuencias
Un tipo particular de problemas para el cual resulta adecuada la iteración es el procesamiento de secuencias de valores. Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de
Introducción a la Programación Orientada a Objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento y Abstracción Caso de estudio: Estación Meteorológica Dr. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería
CUADERNILLO DE PRÁCTICAS LENGUAJE DE PROGRAMACIÓN: JAVA COMPILADOR: NETBEANS IDE 6.9.1
CUADERNILLO DE PRÁCTICAS LENGUAJE DE PROGRAMACIÓN: JAVA COMPILADOR: NETBEANS IDE 6.9.1 CBT VILLA GUERRERO APLICA LOS PRINCIPIOS DE PROGRAMACIÓN PROFESOR: ING. FABIAN DOMÍNGUEZ SÁNCHEZ Ejercicios Básicos
Informática de 1 o de Matemáticas. Ejercicios de Introducción a Haskell. Ejercicio 1 Consideremos la siguiente definición:
Ejercicios de Introducción a Haskell Informática de 1 o de Matemáticas Ejercicio 1 Consideremos la siguiente definición: doble x = x + x El valor de doble(doble 3) se puede calcular usando distintos métodos
5. Sentencias selectivas o condicionales
60 A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado
Para el Segundo Parcial
Para el Segundo Parcial Ejercicios Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las secciones indicadas. Tiras de Caracteres Sección 5.1.6 167,
Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
1. (1 punto) Dado el siguiente fragmento en Java:
PROGRAMACIÓN I 9-septiembre-2004 1. (1 punto) Dado el siguiente fragmento en Java: class Pares public static void main (String [] argumentos) String numero = argumentos[0]; Completar el programa con las
FUNDAMENTOS DE PROGRAMACIÓN TALLER No. 1 Profesor: Alvaro Ospina Sanjuan
FUNDAMENTOS DE PROGRAMACIÓN TALLER No. 1 Profesor: Alvaro Ospina Sanjuan 1. Escriba un programa que cambie cualquier suma de dinero hasta de 99 ctvs usando las monedas de denominación de 1 ctvs, 5 ctvs,
Práctico 2: Especificación, derivación y verificación de programas funcionales
Práctico 2: Especificación, derivación y verificación de programas funcionales Algoritmos y Estructuras de Datos I 1 er cuatrimestre 2015 Esta guía tiene como objetivo obtener las habilidades necesarias
Bloque 1. Conceptos y técnicas básicas en programación
Bloque 1. Conceptos y técnicas básicas en programación 1. Introducción 2. Datos y expresiones. Especificación de algoritmos 3. Estructuras algorítmicas básicas 4. Iteración y recursión 5. Iteración y recursión
Java Básico. Métodos estáticos
Java Básico Métodos estáticos Agregando métodos estáticos En un programa es deseable separar los algoritmos y asignarles un nombre. Cada algoritmo separado será llamado método. Cuando no necesitamos crear
Programación 2. Lección 4. Metodología de diseño de algoritmos recursivos
Programación 2 Lección 4. Metodología de diseño de algoritmos recursivos 1 1. Diseño iterativo vs diseño recursivo 2. Cómo diseñar algoritmos recursivos 3. Diseño recursivo de funciones: a) Función que
1. Una pila funciona según el método LIFO (Last In First Out ). Se define la clase Pila de la siguiente forma:
Facultad de Ingeniería Establecimiento Público de Educación Superior, adscrito al Departamento de Antioquia Lógica de Programación II Taller Nº 3: Pilas, colas y recursividad Período 02 de 2014 Profesor:
05 Análisis léxico I Compiladores - Profr. Edgardo Adrián Franco Martínez
2 Contenido Introducción Análisis léxico Funciones del analizador léxico Tokens y lexemas Palabras reservadas Estrategias de recuperación de errores léxicos Manejo de búferes 3 Introducción Para la construcción
Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)
Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)
Práctica 5. Contenido: Subprogramas (funciones y procedimientos). Parámetros por valor y por referencia.
CI-2125 Computación I Práctica 5 Contenido: Subprogramas (funciones y procedimientos). Parámetros por valor y por referencia. 1. Especifique y escriba el diagrama de flujo de una función de nombre mcd,
Trabajo Práctico 6 Funciones, Procedimientos y División de Problemas
Trabajo Práctico 6 Funciones, Procedimientos y División de Problemas Ejercicio 1: Considere definida la función Invertir. function Invertir( num: integer ):integer; {Objetivo: Invierte el orden de los
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:
Estructura de datos y de la información Boletín de problemas - Tema 9
Estructura de datos y de la información Boletín de problemas - Tema 9 1. Dada la siguiente función recursiva: void F(char c) { if (( A
Identidad, igualdad y equivalencia. Introducción a la programación orientada a objetos
Identidad, igualdad y equivalencia Introducción a la programación orientada a objetos Clases como tipos - 1 Cuando el analista o el diseñador de un sistema orientado a objetos especifica una clase, establece
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos
Problemas de Recursividad
Problemas de Recursividad Problema 1. El factorial de un número entero n 0, denotado como n!, se define! como!!! i = 1 2 n cuando n > 0, y 0! = 1. Por ejemplo 6! = 1 2 3 4 5 6 = 720 Diseñad una método
INSTITUTO NACIONAL SUPERIOR DEL PROFESORADO TÉCNICO - TÉCNICO SUPERIOR EN INFORMÁTICA APLICADA - PROGRAMACIÓN I
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS La principal razón para que las personas aprendan lenguajes de programación es utilizar una computadora como una herramienta para la resolución de problemas. Cinco
LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Práctica 4 Especificación de problemas
Práctica 4 Especificación de problemas Algoritmos y Estructura de Datos I Primer Cuatrimestre 2011 Ejercicio 1. Las siguientes especificaciones no son correctas. Indicar por qué, y corregirlas para que
Compiladores e Intérpretes
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2018 1. Introducción Este documento
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de
Funciones Segunda parte
Expresiones condicionales Matemática Discreta usando el computador 2011 Funciones Segunda parte Una expresión condicional utiliza una expresión de tipo Bool para decidir entre dos opciones Estructura if...then...
Recursión. Recursión continuación
Recursión Recursión continuación Recursión Temas que veremos hoy Estructuras de control iterativas, repetitivas y la recursión. Ejemplos recursivos Búsqueda lineal Eficiencia y recursión Conclusiones Recursión
Universidad de los Andes Ingeniería de Sistemas y Computación. ISIS1205 Algorítmica y Programación 2. Hoja de trabajo teórica Nivel 7 (N7-EE)
Universidad de los Andes Ingeniería de Sistemas y Computación ISIS1205 Algorítmica y Programación 2 Hoja de trabajo teórica Nivel 7 (N7-EE) Cupi2 Enunciado: Desarrolle las modificaciones al programa exposicióncanina
Programación I. Ingeniería Técnica Informática. Ejercicios de los Temas 4, 5, 6 y 7
Estructuras selectivas Programación I Ingeniería Técnica Informática Ejercicios de los Temas 4, 5, 6 y 7 24.- Elabore un programa para determinar si una hora leída en la forma horas, minutos y segundos
Práctica No. 2. Tipos de Datos y Entrada/Salida Estándar
Práctica No. 2. Tipos de Datos y Entrada/Salida Estándar Comenzar creando un nuevo proyecto tipo Java llamada Practica02, crear también la clase principal. En el método main, se declararán varios de los
A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -
Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En
Trabajo Práctico Nº 13 Tema: RECURSIVIDAD
1 Dado el siguiente método recursivo: int puzzle(int base, int limite) if(base > limite) return -1; if(base == limite) return (base * puzzle(base + 1, limite)); a) Identificar: el o los casos bases del
Programación Funcional Haskell Clase 21
Programación Funcional Haskell Clase 21 José Raymundo Marcial Romero rmarcial@fi.uaemex.mx BUAP c José Raymundo Marcial Romero. Clase Número 21 p.1/12 Temas de la clase Clase Anterior En Haskell cada expresión
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: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz
Guía 2: Funciones, listas, recursión e inducción
Introducción a los Algoritmos - 1er cuatrimestre 2013 Guía 2: Funciones, listas, recursión e inducción El objetivo de los siguientes ejercicios es introducirnos en la programación funcional, es decir,
Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL
Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Cualquier duda sobre el contenido de este tema se puede enviar al foro TEORIA2. 2.1.- El tipo de datos entero (byte,
Examen de Introducción al Software (Ingeniería Informática)
Examen de Introducción al Software (Ingeniería Informática) Febrero 2011 Primera parte (5 puntos, 50% nota del examen) 1) Escribir en Java el siguiente algoritmo descrito en pseudocódigo, que calcula los
Programación Declarativa Haskell Informática Sistemas Curso Pepe Gallardo Universidad de Málaga. Tema 8. Listas
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 8. Listas 8.1 Secuencias aritméticas 8.2 Algunas funciones predefinidas 8.3 Listas por comprensión
Para describir un conjunto usamos una de las siguientes formas: 1. Mencionamos a todos y cada uno de los elementos del conjunto.
Capítulo 2 Conjuntos Definición 2.1. Un conjunto es una agrupación de objetos, distintos unos de otros, que forman un todo. Si un objeto x es parte de un conjunto C, decimos que x es elemento de C o que
Examen escrito de Programación I
Examen escrito de Programación I Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 12 de septiembre de 2011 Disponer sobre la mesa en lugar visible un documento
Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:
Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota: Justificación: Se pretende con éste contribuir a que el alumno se inicie y conozca el entorno del IDE en la creación de pequeños programas en java Objetivos:
Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:
Clase teórica 2 Algoritmos en C Página 1 de 6 TIPOS DE DATOS Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación: Por el momento nuestro
Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java Dr. (c) Noé Alejandro Castro Sánchez Programas Java Applets Pueden correr en navegadores Web Agregan funcionalidad a páginas Web Se llega a restringir su funcionalidad (e. g., no pueden:
24/8/2018. cuota monto/cantcuotas
PROBLEMA: A partir del monto de un crédito y la cantidad de cuotas se desea calcular el monto de cada cuota. Datos de entrada y de salida? Algoritmo ValorDeCuota DE: monto, cantcuotas (enteros) DS: cuota
Especificación de programas. Algoritmos y Estructuras de Datos I. Correctitud de ciclos
Especificación de programas Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Simulacro Coloquio Final - clase 1 Sean dos programas, cada uno recibe
Hoja de ejercicios del Tema 3
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Conversiones de tipos: Prueba el siguiente programa en tu compilador (copia
Hoja de ejercicios del Tema 3
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Escribe un programa que lea un número entero positivo del teclado y muestre
TEORÍA DE CONJUNTOS.
TEORÍA DE CONJUNTOS. NOCIÓN DE CONJUNTO: Concepto no definido del cual se tiene una idea subjetiva y se le asocian ciertos sinónimos tales como colección, agrupación o reunión de objetos abstractos o concretos.
FUNDAMENTOS DE PROGRAMACIÓN - Septiembre 2010
Dpto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación, Ciudad Universitaria, 28040 Madrid FUNDAMENTOS DE PROGRAMACIÓN - Septiembre 2010 Normas del examen: Con
Programación en JAVA. Ejercicios de SELECCIÓN
Programación en JAVA Ejercicios de SELECCIÓN Óscar Blasco tic6axx Curso 2017/2018 Sumario 00.- Control par-impar...2 01.- Valor absoluto...3 02.- Son múltiplos?...4 03.- Dos números ordenados...5 03b.-
Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Exámenes
Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Exámenes Introducción El ejercicio consiste en la implementación de una aplicación para la creación, edición, resolución y corrección de exámenes.
5. ESTRUCTURAS DE REPETICIÓN
5. ESTRUCTURAS DE REPETICIÓN Las estructuras de repetición, permiten la ejecución de una lista o secuencia de instrucciones () en varias ocasiones. El número de veces que el bloque
Dra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Cuando la complejidad de los problemas aumenta, la tarea de hallar una solución
A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES
Capitulo 5. Arboles 1. Al recorrer el siguiente árbol en se visitan más nodos para llegar al número 38. Justifique su respuesta mostrando cada uno de los recorridos. Tipo de Recorrido Recorrido A) PREORDEN
Práctico Nº 5 Tema: Lenguaje de Diseño (1 parte)
Práctico Nº 5 Tema: Lenguaje de Diseño (1 parte) 1. Escribir las siguientes expresiones aritméticas usando sintaxis del lenguaje de diseño: a. (X+Y) 3 b. X+Y 3 c. (A + B 2 ) / X - R donde R es el resto
//mostrar los n primeros numeros //que contienen la cifra x //n y x se piden por el teclado #include<iostream> using namespace std;
//mostrar los n primeros capicuas //n se pide por el teclado //version con funciones //devuelve un numero //formado por las cifras del parametro //en orden inverso int reves(int n) //res es el resultado
Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción
Tema 2. Concepto de Algoritmo
Tema 2. Concepto de Algoritmo Objetivos Definir el concepto de algoritmo Resolver problemas sencillos mediante el diseño de un algoritmo Conocer los tipos de datos elementales y las operaciones sobre ellos