Desarrollo avanzado en Android
|
|
- Blanca Pinto Revuelta
- hace 8 años
- Vistas:
Transcripción
1 DesarrolloavanzadoenAndroid MiguelÁngelLozano,BoyánBonev,PabloSuau,JuanManuelSáez MobileVisionResearchLab Dep.CienciadelaComputacióneInteligenciaArtificial InstitutoUniversitariodeInvestigaciónenInformática UniversidaddeAlicante
2 Esquema MobileVisionResearchLab Orígenes:robóticamóvilyvisión Trabajoactual DesarrolloavanzadoenAndroid NDK NEON Necessitas
3 MobileVisionResearchLab Creaciónen2011 Origen:RobotVisionGroup Miembros FranciscoEscolano MiguelÁngelLozano JuanManuelSáez PabloSuau AntonioPeñalver BoyánBonev
4 Actividadesdeinvestigación Visiónartificial(monocularyestéreo) Robóticamóvil Reconocimientodepatrones(teoríadela información) Visiónendispositivosmóviles
5 Visiónmóvilenrobótica
6 Visiónmóvilenrobótica
7 Visiónmóvilenrobótica
8 Reconocimientodepatrones
9 Reconocimientodepatrones
10 Visiónmóvilenelteléfono
11 VisiónenAndroid Métodosestándardemanejodeimágenes ClaseBitmap setpixels,getpixels Arraydeenteros FormatoARGB_8888 Operacionesaniveldebit Alternativa:getPixel,setPixel Necesidaddecopiarimágenes
12 VisiónenAndroid SetPixelsygetPixelsmuylentos Ejemplo:pasaragris,SamsungGalaxyS,imagen de320x240,10segundos(conenteros) Alternativas NDK NEON Necessitas
13 AndroidNDK Herramientainstaladaporseparado CódigonativoenCparalaspartescríticasde laaplicación Requiere Android1.5osuperior Android2.2osuperiorparatratarconimágenes
14 JavaNativeInterface Plataformaparaejecutarcódigoescritoen otroslenguajesdesdejava ogramming/jdcbook/jni.html ogramming/jdcbook/jniexamp.html
15 EjemploNDK Carpetajni Android.mk archivo.c ContenidodeAndroid.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := imagenes LOCAL_SRC_FILES := nativo.c LOCAL_LDLIBS := -llog -ljnigraphics -lm include $(BUILD_SHARED_LIBRARY)
16 EjemploNDK Contenidodenativo.c(1) #include #include #include #include #include #include #include <jni.h> <string.h> <math.h> <time.h> <stdlib.h> <android/bitmap.h> <android/log.h> // La macro LOGE permite mostrar en el log de android (ejecutando en un terminal adb -logcat) // diferentes mensajes de error. El formato de los parámetros es exactamente igual a los del // printf de c #define LOG_TAG "libimages" #define LOGE(...) android_log_print(android_log_error,log_tag, VA_ARGS ) // FROM RGB888 TO RGB565 // r,g and b values are 8-bit values (from 0 to 255) inline int rgb(int r, int g, int b) { return((r>>3<<11) + (g>>2<<5) + (b>>3)); } // FROM RGB565 TO RGB888 inline int red(uint16_t color) { return (color&0xf800)>>11<<3;} inline int green(uint16_t color) { return (color&0x07e0)>>5<<2;} inline int blue(uint16_t color) { return (color&0x001f)<<3;}
17 EjemploNDK Contenidodenativo.c(2) // Convertir a escala de grises void colortogray(androidbitmapinfo info, uint16_t *pixels16) { int i,r,g,b,gray; } for (i=0;i<info.width*info.height;i++) { r = red(pixels16[i]); g = green(pixels16[i]); b = blue(pixels16[i]); gray = (299*r + 587*g + 114*b)/1000; // Las operaciones se hacen con //enteros para que el procesamiento sea más rápido pixels16[i] = rgb(gray, gray, gray); }
18 EjemploNDK Contenidodenativo.c(3) // Método que se llamará desde java. El formato del nombre debe ser como se muestra. En primer lugar la palabra // Java, seguida por el nombre del paquete, el nombre de la clase, y el nombre del método (en este caso processimage) JNIEXPORT jfloat JNICALL Java_rvg_ua_es_Gris_procesarImage(JNIEnv * env, jobject bitmap) { AndroidBitmapInfo info; void *pixels; int ret; jfloat timep; clock_t start, finish; if ((ret = AndroidBitmap_getInfo(env, bitmap, &info)) < 0) { LOGE("Fallo en AndroidBitmap_getInfo()! error=%d", ret); return; } if (info.format!= ANDROID_BITMAP_FORMAT_RGB_565) { LOGE("El formato del bitmap no es RGB_565!"); return; } if ((ret = AndroidBitmap_lockPixels(env, bitmap, &pixels)) < 0) { LOGE("Fallo en AndroidBitmap_lockPixels()! error=%d", ret); return; } // EMPEZANDO PROCESAMIENTO uint16_t *pixels16 = (uint16_t *)pixels; start = clock(); // Transformar a escala de grises colortogray(info, pixels16); // TERMINANDO PROCESAMIENTO AndroidBitmap_unlockPixels(env, bitmap); finish = clock(); timep = ((double)finish - (double)start)/clocks_per_sec; return timep; // El método devuelve el tiempo de ejecución }
19 EjemploNDK Compilación Directoriojni ndk build Segeneraelficherolibimagenes.so Importante:sinosecambióelcódigoJava, haceruncleardelproyecto
20 EjemploNDK UtilizarcódigonativodesdeJava private native float processimage(bitmap bitmap); static { System.loadLibrary("images"); } Tiempo:0.2s
21 NEON SetdeinstruccionesARMv7 ArquitecturaSIMD(SingleInstructionMultiple Data) Registrosvectorialesalosqueselesaplicauna mismaoperación 32registrosde64bits(ó16registrosde128bits) Procesamientoimágenes,video,gráficos n.php
22 UsandoNEONenAndroid ConjuntamenteconNDK AñadiraAndroid.mk ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) LOCAL_CFLAGS := -DHAVE_NEON=1 LOCAL_SRC_FILES += native-neon.c.neon endif LOCAL_C_INCLUDES := $(NDK_ROOT)/sources/cpufeatures LOCAL_STATIC_LIBRARIES := cpufeatures include $(NDK_ROOT)/sources/cpufeatures/Android.mk Extensión neon.caarchivosconcódigoneon
23 UsandoNEONenAndroid Libreríacpu features.hparalacomprobación delaexistenciadeinstruccionesneon // Comprobando la existencia del set de instrucciones NEON if (android_getcpufamily() == ANDROID_CPU_FAMILY_ARM && (android_getcpufeatures() & ANDROID_CPU_ARM_FEATURE_NEON)!=0 && (android_getcpufeatures() & ANDROID_CPU_ARM_FEATURE_ARMv7)!=0) { LOGE( NEON disponible ); } else { LOGE("El procesador no es ARMv7 o no es compatible con NEON"); return(-1); } Códigoalternativoencasodeincompatibilidad conneon
24 SetdeinstruccionesNEON NEON Intrinsics Ejemplos Suma: Comparación: uint32x2_tvadd_u32(uint32x2_t,uint32x2_t) uint32x2_tvceq_u32(uint32x2_t,uint32x2_t)
25 EjemploNEON(1) // Transforms image from rgb to grayscale void rgbtogray(androidbitmapinfo info, uint8_t *pixels) { int i; // Tamaño total de la imagen en pixels int n = info.width*info.height; // Puntero auxiliar para acceder en cada iteracion del bucle // a una posicion absoluta de la imagen, en lugar de ir incrementando // el puntero pixels uint8_t *auxp = pixels; int pos = 0; // Tres variables vectoriales compuestas por 8 valores de 8 bits. En // concreto, estos son los coeficientes por los que se van a multiplicar // los valores RGB de cada pixel para obtener el tono de gris uint8x8_t rfac = vdup_n_u8(77); uint8x8_t gfac = vdup_n_u8(151); uint8x8_t bfac = vdup_n_u8(28); // Dividimos el tamaño entre 8 porque los pixeles se van a procesar de // 8 en 8 (por lo que hay 8 veces menos iteraciones) n /= 8; // 8 pixels are processed simultaneously for (i=0;i<n;i++) { uint16x8_t temp; uint8x8_t result; // La variable rgb se comportará como un registro, con un unico // campo, un vector llamado val, de 4 componentes. Cada componente // de ese vector es un registro vectorial // Asi que aqui lo que estamos haciendo es almacenar las cuatro // componentes RGBA de los ocho pixeles actuales (apuntados por // auxp) en cuatro registros vectoriales uint8x8x4_t rgb = vld4_u8(auxp); // Lo siguiente son instrucciones de multiplicacion y // multiplicacion con acumulacion temp = vmull_u8(rgb.val[0], rfac); temp = vmlal_u8(temp, rgb.val[1], gfac); temp = vmlal_u8(temp, rgb.val[2], bfac);
26 EjemploNEON(2) // Se realiza un desplazamiento para dividir y volver a tener // valores entre 0 y 255 result = vshrn_n_u16(temp,8); // Se asigna // del pixel rgb.val[0] = rgb.val[1] = rgb.val[2] = el mismo valor de intensidad a todas las componentes para tener una imagen en tonos de gris result; result; result; // Se vuelven a almacenar los 4 conjuntos de 8 bytes // (correspondientes a los 8 pixeles procesados esta iteracion) // en su posicion correspondiente de memoria vst4_u8(auxp,rgb); // Se apuna al siguiente conjunto de pixeles (aumentamos 8*4 bytes) pos += 32; // En lugar de ir incrementando el valor de pixels, vamos calculando // auxp como una suma absoluta. // Si no se hacía de esta forma el resultado no era correcto. Quiza // es debido a que el procesamiento con NEON se realiza de forma // asincrona auxp = pixels + pos; } return; } Tiempo:0.04s(50vecesmásrápidoquesin NEON,250vecesmásrápidoquesinNDK)
27 Necessitas PortdeQTaAndroid Ventajas Códigonativo CompilaciónbasadaenelsetdeNEON Inconvenientes Estadomuyprematuro Nosemanejancorrectamentealgunoseventosdeinterfaz Necesidaddeinstalargrancantidaddelibrerías(Ministro)
28 Necessitas Reconstrucción2Dentiemporealbasada únicamenteenvisión
29 Necessitas
30 Necessitas
31 DesarrolloavanzadoenAndroid MiguelÁngelLozano,BoyánBonev,PabloSuau,JuanManuelSáez MobileVisionResearchLab Dep.CienciadelaComputacióneInteligenciaArtificial InstitutoUniversitariodeInvestigaciónenInformática UniversidaddeAlicante
El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */
Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones
Más detallesPunteros. Definición Un puntero es un dato que contiene una dirección de memoria.
Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesSOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
Más detallesProgramación de Sistemas
Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia
Más detalles1. Manejo de memoria estática 2. Manejo de memoria dinámica
1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo
Más detallesUnidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)
Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.
Más detallesJAVA NATIVE INTERFACE (JNI) INVOCANDO C/C++ DESDE JAVA
JAVA NATIVE INTERFACE (JNI) INVOCANDO C/C++ DESDE JAVA Java proporciona un marco denominado Java Native Interface (JNI), con la que es posible escribir métodos nativos. Un método nativo es un método que
Más detallesUna variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.
Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden
Más detallesContenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE
Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar
Más detallesPaso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.
Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1. Anjuta es un entorno de desarrollo de C que podemos encontrar en cualquier distribución de GNU/Linux. Si nuestra distribución no dispone de ella,
Más detallesSistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Aritmética binaria
Oliverio J. Santana Jaria 3. Aritmética tica binaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Para Los La en conocer muchos aritmética comprender otros binaria tipos
Más detallesAritmética finita y análisis de error
Aritmética finita y análisis de error Escuela de Ingeniería Informática de Oviedo (Dpto. de Matemáticas-UniOvi) Computación Numérica Aritmética finita y análisis de error 1 / 47 Contenidos 1 Sistemas decimal
Más detallesEstructura de datos tipo vector.
Estructura de datos tipo vector. Hemos empleado variables de distinto tipo para el almacenamiento de datos (variables int, float, String) En esta sección veremos otros tipos de variables que permiten almacenar
Más detallesActividades de Divulgación del Centro Atómico Bariloche. Qué hay detrás de un programa de computadora? Daniela Arnica Pablo E. Argañaras.
Actividades de Divulgación del Centro Atómico Bariloche Qué hay detrás de un programa de computadora? Expositores: Daniela Arnica Pablo E. Argañaras División Mecánica Computacional Gerencia de Investigación
Más detallesUn elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista:
Tipos Abstractos de Datos: TAD Lista en educación Profesional 1.- Introducción Los tipos abstractos de datos son fundamentales para la informática puesto que de ellos se sirven todos los programas para
Más detallesPruebas de unidad con JUnit
Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro
Más detallesAprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Por Andrés Raúl Bruno Saravia Entrega Nº 5. Cómo declaramos una variable en Lenguaje C? En C siempre se deben declarar las variables.
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Más detallesEstructura de Datos [Tipos de datos concretos y tipos de datos abstractos]
Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Estructura
Más detallesInformática 1 Sistemas numéricos: decimal, binario, octal y hexadecimal FCFA Febrero 2012
Informática 1 Sistemas numéricos: decimal, binario, octal y hexadecimal CONVERSIONES DE UN SISTEMA A OTRO Para la realización de conversiones entre números de bases diferentes se efectúan operaciones aritméticas
Más detallesTema: Arreglos de Objetos en C++.
Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.
Más detallesEjercicios - Persistencia en Android: ficheros y SQLite
Ejercicios - Persistencia en Android: ficheros y SQLite Índice 1 Uso de ficheros (0.5 puntos)...2 2 Persistencia con ficheros (0.5 puntos)...3 3 Base de datos: SQLiteOpenHelper (0.5 puntos)... 3 4 Base
Más detallesEsquema de un programa en C: bloques básicos
Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include #include // Si queremos definir alguna constante,
Más detallesPresentación. Programación I. Conceptos Avanzados de Programación. :: Prof. Yeniffer Peña
Presentación Conceptos Avanzados de Programación :: Prof. Yeniffer Peña Unidad I: Conceptos Avanzados de Programación Recursividad: El concepto de recursividad va ligado al de repetición. Son recursivos
Más detallesCurso 0 de Informática
Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,
Más detalles11. Algunas clases estándar de Java (II)
122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación
Más detallesLABORATORIO 1 OPERACIONES DE ENTRADA Y SALIDA
LABORATORIO 1 OPERACIONES DE ENTRADA Y SALIDA 1 OBJETIVOS Al finalizar esta actividad, serás capaz de: Entender el funcionamiento del compilador. Definir variables y efectuar asignaciones de valores con
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 8 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante ÍNDICE ÍNDICE... 1 1. INTRODUCCIÓN... 1 1.1 EJERCICIO 1: HERENCIA Y POLIMORFISMO I... 1 1.2 EJERCICIO
Más detalles1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)
1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los
Más detallesEscuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo
Más detallesPROGRAMACIÓN EN C. PRÁCTICA 2: Operaciones con bits. Práctica 2: Índice. 2.1 Introducción 2.2 Representación de información binaria en C
PROGRAMACIÓN EN C PRÁCTICA 2: Operaciones con bits Práctica 2: Índice 2.1 Introducción 2.2 Representación de información binaria en C 2.3 Operando con bits en C 2.4 Máscaras 2.5 Desplazamientos 2.6 Ejercicios
Más detallesINTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones
INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL BLACKJACK Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones 1. Explicación del juego de cartas del Blackjack El Blackjack
Más detallesMatemática de redes Representación binaria de datos Bits y bytes
Matemática de redes Representación binaria de datos Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo pueden entender
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesProgramación. Ejercicios Tema 4 Estructuras de Control Repetitivas
Ejercicios Tema 4 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero Jose A. Iglesias Martínez Jose Luis Mira SOLUCIONES 1. Escriba un programa en C que
Más detallesPROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE
L11 CONSTRUCTORES DEL LENGUAJE CLASES class { } PLANTILLAS template { } ESPACIOS DE NOMBRES namespace { } EXCEPCIONES try catch.. SOBRECARGA DE OPERADORES operator (parametros) BIBLIOTECA
Más detallesObjetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Más detallesPráctica 3: Programación con subrutinas
Práctica 3: Programación con subrutinas 3.1 Objetivos El objetivo de esta práctica es estudiar el soporte del ensamblador del ARM para la gestión de subrutinas, para lo que resulta necesario familiarizarse
Más detallesAPÈNDIX: PREPROCESSADOR C
APÈNDIX: PREPROCESSADOR C 1. El preprocessador de C La programació en C, especialment la de sistemes operatius, utilitza bastant les facilitats que dona els preprocessadors de C. Encara que se suposa que
Más detallesRepaso de las características más importantes de la programación Java y su adaptación a Android
Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y
Más detallesRepresentación de Datos. Una Introducción a los Sistemas Numéricos
Representación de Datos Una Introducción a los Sistemas Numéricos Tipos de Datos Datos Texto Número Imagen Audio Video Multimedia: Información que contiene números, texto, imágenes, audio y video. Como
Más detallesTEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio
Más detallesCONCEPTOS BASICOS DEL LENGUAJE JAVA
CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten
Más detallesDEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006
ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los
Más detallesTEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información
TEMA 1: SISTEMAS INFORMÁTICOS Parte 2: representación de la información Qué vamos a ver? Cómo se representa y almacena la información en un ordenador Cómo podemos relacionar la información que entendemos
Más detallesModulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Más detallesISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA
ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario
Más detallesPowerPoint 2010 Hipervínculos y configuración de acciones
PowerPoint 2010 Hipervínculos y configuración de acciones Contenido CONTENIDO... 1 HIPERVÍNCULOS... 2 CONFIGURACIÓN DE ACCIONES... 6 HIPERVÍNCULOS EN POWERPOINT WEB APP... 8 1 Hipervínculos En Microsoft
Más detalles6-REGISTROS DEL 8086 Y DEL 80286
ESTRUCTURA DE COMPUTADORES I (Capítulo 6: Los registros del microprocesador 8086) 1/7 6-REGISTROS DEL 8086 Y DEL 80286 6.1 INTRODUCCIÓN: Dentro del procesador existen unos contenedores especiales de 16
Más detallesPRÁCTICA 1. Grupo de Visión Artificial. David García Pérez
PRÁCTICA 1 MANEJO BÁSICO DE IMÁGENES CON MATLAB Imagen tamaño NxM píxeles En Matlab: Imagen = Matriz/es Cada elemento de la matriz el tono de gris para imágenes en B/N Si la imagen es en color, existen
Más detallesPRIMERA VISTA A UNA IMAGEN DE MICROSCOPIA DE FLUORESCENCIA EN IMAGEJ
PRIMERA VISTA A UNA IMAGEN DE MICROSCOPIA DE FLUORESCENCIA EN IMAGEJ Benito Alarcón. Servicio de Microscopia. Instituto de Biomedicina de Valencia (CSIC). C/ Jaume Roig 11, 46010, Valencia. Telf: 96 3391760.
Más detalles8. Sentencia return y métodos
92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente
Más detallesTema: Sobrecarga de Operadores.
Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen
Más detallesProgramación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas
Programación 1 Tema II. Diseño de programas elementales Lección 7. Diseño modular y descendente de programas 1 Objetivos de la lección : Aprender qué es un diseño modular de un programa Aprender a diseñar
Más detallesClases y funciones amigas: friend
1. Introducción a las funciones amigas (Funciones friend) 2. Funciones amigas 3. Clases amigas 4. Ejemplo: La clase fraccional. Métodos operadores amigos 5. Ejemplo: Las clases Coche y Camión. 1 Introducción:
Más detallesEjercicio 1 (2 puntos. Tiempo: 25 minutos)
Fecha de publicación de notas: jueves 18 de Julio. Fecha de revisión: viernes 19 de Julio a las 10:00h. Despacho C-209. Ejercicio 1 (2 puntos. Tiempo: 25 minutos) Se desea desarrollar un programa en C
Más detallesClases y Objetos. Informática II Ingeniería Electrónica
Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),
Más detallesIntroduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Más detallesTitulo: Suma de N primeros números
Titulo: Suma de N primeros números Realizar un programa que pida un número N de tipo entero por teclado. Se usará una función para calcular el valor de la suma de los N primeros números enteros, usando
Más detallesUn puntero no es más que una variable estática cuyo contenido es una dirección de memoria.
Los punteros en C 1 Introducción Cómo se organiza la memoria asociada a un programa? Como una colección de posiciones de memoria consecutivas. En ellas se almacenan los distintos tipos de datos, que ocupan,
Más detallesEjercicios resueltos de vectores
Ejercicios resueltos de vectores 1) Sean a(2,-1,3), b(3,0,-2) y c(-2,-2,1), realiza las siguientes operaciones con vectores: a) 3a + b - c b) a -2b c) a c 2) Utilizando los vectores del ejercicio 1, comprueba
Más detalles1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1
5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0
Más detallesBlanco y Negro coloreado con GIMP Alberto García Briz
Blanco y Negro coloreado con GIMP Alberto García Briz Blanco y Negro con Canales en GIMP (21/02/2012) Una de las formas más prácticas para transformar una foto en color a blanco y negro es la de la mezcla
Más detallesZCARTAS: Iniciación a la suma y resta de números enteros... 4. Introducción... 4. Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...
CONTENIDO ZCARTAS: Iniciación a la suma y resta de números enteros... 4 Introducción... 4 Actividad 1: Escenario con cartas numeradas desde -2 hasta 2... 4 Contenidos trabajados... 4 Instrucciones de Scratch...
Más detallesTema 6: Generación de código (parte 2)
Tema 6: Generación de código (parte 2) Procesamiento de Lenguajes Dept de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 6: Generación de código (parte 2) 1 /
Más detallesSistema binario. Representación
Sistema binario El sistema binario, en matemáticas e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno ( y ). Es el que se utiliza
Más detallesInformática I. While & do While
Asignatura: Informática I Trabajo práctico Nº5 While & do While Estructura repetitiva MIENTRAS o while En C la sentencia while (condición o expresión) instrucciones; es seguramente la más utilizada. La
Más detallesPhotoshop. Conceptos Básicos
Photoshop Conceptos Básicos Qué es Photoshop? Tratamiento de imágenes Retoque fotográfico Pintura Posee gran versatilidad Herramienta de post-producción (separación de colores y medios tonos) La ventana
Más detallesDpto. Lenguajes y Ciencias de la Computación E.T.S.I. Telecomunicación. Laboratorio de Programación Introducción a Allegro con Dev-C++
Dpto. Lenguajes y Ciencias de la Computación E.T.S.I. Telecomunicación Laboratorio de Programación Introducción a Allegro con Dev-C++ Abril 2004 David Bueno Vallejo Plan Introducción Instalación Hola Mundo
Más detallesLógica Binaria. Arquitectura de Ordenadores. Codificación de la Información. Abelardo Pardo abel@it.uc3m.es. Universidad Carlos III de Madrid
Arquitectura de Ordenadores Codificación de la Información Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Lógica Binaria COD-1 Internamente el ordenador
Más detallesDepartamento de Tecnologías de la Información y la Comunicación 2 Año Unidad 1: Edición digital de imágenes
Trabajo práctico: Modificando una imagen Prof. Ricardo P. Salvador Marzo de 2015 Importante i. En las consignas se indica qué resultado se quiere obtener, por lo que ustedes tienen que averiguar cuáles
Más detallesCapítulo 1. MANUAL DE USUARIO
Capítulo 1. MANUAL DE USUARIO 1.1 SUCESIONES GRÁFICAS Lo primero que se hará es mostrar la pantalla que se encontrará el usuario cuando ejecute la aplicación, indicando las zonas en las que se divide esta:
Más detallesUD 1. Representación de la información
UD 1. Representación de la información 1.1 INTRODUCCION... 1 1.2 SISTEMAS DE REPRESENTACIÓN... 2 1.2.1 El Sistema Decimal.... 2 1.2.2 Teorema Fundamental de la Numeración. (TFN)... 2 1.2.3 El Sistema Binario....
Más detallesInformática Bioingeniería
Informática Bioingeniería Representación Números Negativos En matemáticas, los números negativos en cualquier base se representan del modo habitual, precediéndolos con un signo. Sin embargo, en una computadora,
Más detallesSegundo parcial de Sistemas Operativos. 24/6/2008. Ejercicios. 5 puntos. Duración 2h.
Segundo parcial de Sistemas Operativos. 24/6/2008. Ejercicios. 5 puntos. Duración 2h. Nombre DNI Especialidad 1. (1.5 p)tenemos dos discos duros (D0 y D1) con la misma geometría (4 cabezas, 8192 cilindros
Más detallesLenguaje C Bucles, Condicionales, operadores y Algoritmos.
Lenguaje C Bucles, Condicionales, operadores y Algoritmos. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Operadores Los operadores son aquellos
Más detallesArreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h>
Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en
Más detallesSintaxis y Convenciones de Java. M. en C. Erika Vilches
Sintaxis y Convenciones de Java M. en C. Erika Vilches Estructura del Código en Java Hay una clase en un archivo fuente Hay métodos en una clase Hay enunciados en un método Anatomía de una Clase Cuando
Más detallesTrabajo Práctico Nº 1 SISTEMAS DE NUMERACION
Trabajo Práctico Nº 1 SISTEMAS DE NUMERACION 66.70 Estructura del Computador OBJETIVOS: Elementos que definen un sistema numérico. Conversiones entre sistemas. Diferentes formas de representar números
Más detallesQue es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.
Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Qué es PHP? PHP (Hypertext Preprocessor). Es un lenguaje de programación: De código
Más detallesManual de Instalación del Certificado ACA en Windows 8.1
Manual de Instalación del Certificado ACA en Windows 8.1 1. Consideraciones previas: Antes de iniciar el proceso de instalación de nuestro certificado ACA, debemos tener claro cuales son las versiones
Más detallesProgramación estructurada
3. Funciones Programación estructurada Cuando un programa crece: Es importante mantenerlo ordenado No repetir código Agrupar el código según su función Dar nombre a las operaciones comunes var cantidad
Más detallesSe guardan en archivos con extencion c y los cabezales con extension h
Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767
Más detallesInstructivo. VIDEOS EN: www.vimeo.com/apolosoft INTRODUCCION
RUBROS Instructivo INTRODUCCION Se puede definir los Rubros como los ítems que ayuda a construir los pagos constituidos o no como salario que se aplican al momento de realizar el cálculo de la Nómina.
Más detallesTema I. Sistemas Numéricos y Códigos Binarios
Tema I. Sistemas Numéricos y Códigos Binarios Números binarios. Aritmética binaria. Números en complemento-2. Códigos binarios (BCD, alfanuméricos, etc) Números binarios El bit. Representación de datos
Más detallesOperaciones con polinomios
Operaciones con polinomios Los polinomios son una generalización de nuestro sistema de numeración. Cuando escribimos un número, por ejemplo, 2 354, queremos decir: 2 354 = 2 000 + 300 + 50 + 4 = 2)1 000)
Más detallesProgramación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesMi primer proyecto en Dev-C++
Mi primer proyecto en Dev-C++ Para realizar esta actividad deberás disponer de un ordenador en el que esté instalado el Dev-C++. Debes ir realizando cada uno de los pasos indicados, en el mismo orden en
Más detallesLenguaje C. Tipos de Datos Simples y Estructuras de Control
Lenguaje C Tipos de Datos Simples y Estructuras de Control Lenguaje C C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje
Más detallesIntroducción al lenguaje Java
Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno
Más detallesDESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO
I. SISTEMAS NUMÉRICOS DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO LIC. LEYDY ROXANA ZEPEDA RUIZ SEPTIEMBRE DICIEMBRE 2011 Ocosingo, Chis. 1.1Sistemas numéricos. Los números son los mismos en todos
Más detallesUNIDADES DE ALMACENAMIENTO DE DATOS
1.2 MATÉMATICAS DE REDES 1.2.1 REPRESENTACIÓN BINARIA DE DATOS Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo
Más detallesARQUITECTURA DE DISTRIBUCIÓN DE DATOS
4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia
Más detallesIdentificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java
Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente
Más detallesSorting++ Herman Schinca. Clase 21. 10 de Junio de 2011
Sorting++ Herman Schinca Clase 21 10 de Junio de 2011 Recordando Ya vimos 3 algoritmos de ordenamiento basados en la comparación entre elementos: Selection, Insertion y Bubble. Los 3 en peor caso (cuando
Más detallesINFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.
INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados
Más detalles1. Dada la siguiente tabla, indique si los datos mostrados son correctos o no. Justifique. Dirección de red, Clase Mascara, Subred, Broadcast
PRACTICA DE SUBREDES 1. Dada la siguiente tabla, indique si los datos mostrados son correctos o no. Justifique. Dirección de red, Clase Mascara, Subred, Broadcast R/= 126.0.0.0 En la primera red que nos
Más detallesTema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código
Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación
Más detalles