fbpx
Wikipedia

Bucle for

El bucle for es una estructura de control en programación en la que se puede indicar de antemano el número máximo de iteraciones

Elementos del bucle

 
 
 
  • Variable de control: prácticamente un mandato impuesto por el uso habitual es utilizar la letra i Iterador como variable de control, o bien sus sucesoras en caso de bucles anidados. El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles anidados superan las tres dimensiones (por una sencilla cuestión de explosión exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso. En C se define en el primer parámetro de la instrucción junto con la inicialización (opcional).
  • Inicialización de la variable de control: en pseudolenguaje se pide explicitarlo (es la sección := ValorInicial), sin embargo, otros lenguajes más permisivos como C no lo requieren de forma obligatoria. De todos modos, la práctica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del código. En C se define en el primer parámetro del bucle junto con la variable de control.
  • Condición de control: en pseudolenguaje se ve representado por el valor final que puede tomar la variable de control (la sección A ValorFinal). En C es el segundo parámetro y puede ser cualquier condición (ni siquiera es obligación que esté la variable de control, aunque una vez más, esto no se considera una buena práctica).
  • Incremento: en pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por medio de la sentencia PASO = ValorPaso cualquier número entero (léase bien entero, o sea que técnicamente podemos decrementar). En C es el último parámetro.
  • Cuerpo: es lo que se hará en cada iteración, pueden ser una o más instrucciones. En pseudolenguaje pesa la restricción de no poder alterar el valor de la variable de control; esto no es requerido en C, pero no se considera una buena práctica.

Usos

Su uso principal se orienta a los vectores, pudiendo modificar, agregar, eliminar o consultar datos que se encuentren según el índice. Por esto último, una condición mínima del vector es que debe ser ordenado, porque si se intenta leer un dato inexistente, esto genera un error de programación.

En pseudolenguaje

La principal diferencia de un bucle PARA con respecto a los bucles MIENTRAS Y REPETIR, es que puede determinarse al comienzo del bucle cuántas veces se interará el mismo, lo cual muchas veces puede redundar en una optimización del código por parte de los compiladores. Los condicionales constituyen junto con los bucles los pilares de la programación estructurada, y su uso es una evolución de una sentencia de lenguaje ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.

El bucle PARA se ha convertido en el bucle más ampliamente utilizado en la programación, ya que con la evolución de los lenguajes la mayoría de las condiciones de fin


Es lo mismo decir:

PARA i=0 a CantidadRegistros(tabla) - 1, PASO = 1 PróximoRegistro(tabla) HacerAlgo(ElementoActual(tabla)) FIN PARA 

Otro uso común es utilizar los bucles PARA para recorrer vectores de dos o más dimensiones, en cuyo caso se anidan estas iteraciones.

PSEUDOLENGUAJE

Vector a[3][4][2]. // Estamos indicando un vector de 3 dimensiones y 24 elementos en total. PARA i:= 0 A 2 HACER PARA j:= 0 A 3 HACER PARA k:= 0 A 1 HACER HacerAlgo(a[i][j][k]) FIN PARA FIN PARA FIN PARA 

Ejemplo en pseudocódigo

For VariableControl := ValorInicial A ValorFinal, PASO = Incremento

 Instrucciones FIN For 

donde VariableControl, ValorInicial, ValorFinal y Paso son enteros. La(s) instrucción(es) del cuerpo se ejecutará(n) (ValorFinal - ValorInicial + 1) veces, o sea que va desde ValorInicial a ValorFinal inclusive.

Ejemplo en C++

#include <iostream> #include <conio.h> using namespace std; int main(){ int vector[10]; for(int i=0; i<10; i++){ vector[i] = i; cout<< i<<endl; } system ("PAUSE"); return 0; } 

En la definición del for, tenemos que la variable de control i se inicializa en un valor 0, luego se entrega la condición de control que debe ser falsa durante su ejecución, para completar el ciclo; y por último, tenemos el incrementador en una unidad.

Si por ejemplo en la condición colocamos i < 11, entonces el ciclo for se ejecutará desde [0...10], lo cual, al intentar acceder al elemento vector[10], esto generará error, ya que el vector (por definición) va desde [0..(n-1)].

Cualquiera de los componentes en el paréntesis se puede omitir, pero los separadores punto y coma deben aparecer siempre. El resultado es un bucle infinito.

Ejemplo anterior escrito en léxico

tarea { los objetos vector[10], i son cantidades variando i desde 0 hasta 9 haga copie i en vector[i] } 

Bucle Por Cada (For Each)

Este bucle es una evolución del concepto del bucle Para en algunos lenguajes. Se utiliza para recorrer estructuras repetitivas de datos de forma más simple y ágil. El bucle For Each puede describirse genéricamente (en pseudolenguaje) de la siguiente manera:

POR CADA elemento DE tipo EN conjunto HACER Cuerpo FIN FOR EACH 
  • Elemento: es el nombre de la variable u objeto que toma el elemento iterado en el cuerpo del bucle.
  • Tipo de Dato: es el tipo de variable o la clase a la que pertenece el objeto que se quiere iterar.
  • Conjunto: es la estructura de datos que se quiere iterar. El uso más típico es con vectores o -en programación orientada a objetos- clases del tipo Colección.
  • Cuerpo: es lo que se hará en cada iteración, pueden ser una o más instrucciones. Si bien no se impone una obligación al respecto, lo más común es que en este Cuerpo exista alguna operación sobre el elemento iterado.

Una de las características importantes que se pueden aprovechar de las computadoras es precisamente su capacidad de repetir la ejecución de secuencias de instrucciones a una gran velocidad y con alto grado de confiabilidad. Para estos fines, precisamente se definen en los lenguajes de programación las estructuras de control iterativas. El objetivo de estas estructuras es permitir la expresión de la repetición de una secuencia de instrucciones, a estas estructuras se les denomina ciclo, lazo o bucle.

Sumario 1 Estructuras de Control Iterativas 2 La instrucción while 3 La instrucción do/while 4 La estructura de control for 5 Caso de Estudio 5.1 MCD() 5.2 CantDigitos() 5.3 Factorial() 6 Ciclos Anidados 7 Fuentes Estructuras de Control Iterativas En la vida diaria existen situaciones que frecuentemente se resuelven realizando una determinada secuencia de pasos que puede repetirse muchas veces, ejemplo:

El proceso que seguimos para comer, mientras no se termine la comida. El proceso de insertar monedas, hasta que se abone la cantidad necesaria. Las operaciones que realizamos para llamar por teléfono, mientras no se logre la comunicación. Como se puede observar estos son algoritmos que se hacen cotidianamente, pero tienen la particularidad de que la ejecución de alguno de sus pasos puede repetirse muchas veces, mientras no se logre la meta trazada. A este tipo de algoritmo se le conoce como algoritmos iterativos o repetitivos. En C#, las instrucciones while, do/while, y for, permiten ejecutar iteraciones, bucles o ciclos. En cada caso se ejecuta un bloque de instrucciones mientras la condición que se evalúa tome valor verdadero. Se resalta que cualquiera de las 3 instrucciones cumple con el mismo objetivo que es el de ejecutar una secuencia de pasos, más de una vez.

La instrucción while La instrucción while tiene la siguiente sintaxis:

InstruccionWhile.JPG

La semántica de la instrucción es la siguiente:

<condición>. Está representada por una expresión booleana y mientras se cumpla se ejecutará el ciclo. [Bloque de Instrucciones] El bloque de instrucciones puede estar formado por una o varias instrucciones y es el conjunto de pasos que se van ejecutar en cada iteración del ciclo. Para una mayor comprensión se muestra su representación en un diagrama de actividad.

DiagramaWhile.JPG

Esta estructura de control permite repetir o iterar el [Bloque de Instrucciones] mientras la condición sea verdadera o dicho de otra manera, estas iteraciones terminarán cuando la condición sea falsa y entonces se podrá ejecutar la siguiente instrucción después del while.

Es válido señalar que en esta instrucción la condición se evalúa al inicio del ciclo por lo que si la primera vez que se evalúa la condición esta es falsa, el ciclo no llegará a realizarse.

La instrucción do/while La estructura de control do/while es otra sentencia de iteración en la que la condición se evalúa por primera vez una vez que se haya ejecutado el [Bloque de Instrucciones] y tienen la siguiente sintaxis:

InstruccionDoWhile.JPG

Su semántica es la misma que la de la instrucción while y su representación en un diagrama de actividad es la siguiente:

DiagramaDoWhile.JPG

En esta estructura repetitiva el bloque de instrucciones siempre se ejecuta al menos una vez pues la condición se evalúa al final. Una vez realizada la evaluación si el resultado es true, se vuelve a ejecutar el [Bloque de Instrucciones], en caso contrario se ejecutan las instrucciones que sigan a continuación saliendo del ciclo. La funcionalidad de este método será la misma que en el ejemplo con while. La única diferencia es la forma en que se controla el bucle. En la práctica, verá que la instrucción while se utiliza más a menudo que la instrucción do – while. El elegir una instrucción en lugar de la otra es una elección personal. Un aspecto muy importante a tener presente en los ciclos condicionales es la necesidad de contemplar dentro del bloque de instrucciones al menos una, que de alguna manera, altere –en algún momento- el resultado de la expresión booleana. La explicación sencillamente está dada por el hecho que de no existir esta instrucción una vez entrada al ciclo este nunca terminaría por lo que se caería en un ciclo infinito.

La estructura de control for Los procesos iterativos que se han visto hasta ahora terminan por una condición. En muchas situaciones las iteraciones se realizan un número determinado de veces, muchos autores les llaman ciclos por conteo pues se conoce de antemano cuántas veces se hará el proceso que se repite. En este tipo de iteración, siempre se necesita una variable que lleve el control de las veces que se repite el proceso por esto se les conoce también como ciclos con variable de control. Uno de los ciclos más conocidos y usados en la mayoría de los lenguajes de programación es el de la instrucción for que suele estar controlado por un contador o variable de control y tiene la siguiente sintaxis:

InstruccionFor.JPG

La semántica de la instrucción es la siguiente:

<instrucciones 1>. Se ejecutará una sola vez al inicio del ciclo, generalmente se realizan inicializaciones y declaraciones de variables puesto que como se dijo con anterioridad, esta solo se ejecuta una vez. En caso de que se quiera realizar o ejecutar más de una instrucción en este momento, dichas instrucciones se deben separar por comas (“,”). <expresión>. Es evaluada en cada iteración y en dependencia del valor que devuelva, dependerá que el ciclo continúe ejecutándose (valor de la expresión true) o no (false). Destacar que de no colocarse nada en esta parte, el ciclo tomará como true el valor de la expresión por lo que en principio, el ciclo puede estar repitiéndose infinitamente. <instrucciones 2>. Es ejecutado siempre en cada ciclo al terminar de ejecutar todas las instrucciones que pertenecen al bucle for en cuestión. Por lo general puede contener alguna actualización para las variables de control. Análogamente a <instrucciones 1> en caso de querer ejecutar en este momento más de una instrucción se deben separar por comas. Observe que es obligatorio para separar cada término que compone la instrucción for utilizar un punto y coma (;) de lo contrario el compilador mostrará un error de tipo semántico. Reiterar que la <instrucción 1> se ejecuta una sola vez al comienzo, que la <instrucción 2> es la que generalmente se utiliza para modificar la variable de control aunque en el ciclo esta puede modificarse también, y que <expresión>, es la que garantiza la finitud del ciclo, el for se estará ejecutando siempre y cuando <expresión> sea evaluada y tome valor true.

Véase también

Referencias

Enlaces externos

  • Ciclo for en C++. Estructura, sintaxis y uso de un ciclo for en C++
  •   Datos: Q838119

bucle, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, septiembre, 2011, bucle, estructura, control, programación, puede, indicar, antemano, número, máximo, iteraciones, Índice, elementos, bucle, usos, p. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 29 de septiembre de 2011 El bucle for es una estructura de control en programacion en la que se puede indicar de antemano el numero maximo de iteraciones Indice 1 Elementos del bucle 2 Usos 3 En pseudolenguaje 4 Ejemplo en pseudocodigo 5 Ejemplo en C 6 Ejemplo anterior escrito en lexico 7 Bucle Por Cada For Each 8 Vease tambien 9 Referencias 10 Enlaces externosElementos del bucle Editarp a r a i x h a s t a n a i n c r e m e n t o s d e s h a c e r displaystyle color Sepia mathit para color OliveGreen mathit i color BlueViolet mathit gets color OliveGreen mathit x color Sepia mathit hasta color OliveGreen mathit n color Sepia mathit a incrementos de color OliveGreen mathit s color Sepia mathit hacer i n s t r u c c i o n e s displaystyle color BlueViolet mathit instrucciones dd f i n p a r a displaystyle color Sepia mathit fin para Variable de control practicamente un mandato impuesto por el uso habitual es utilizar la letra i Iterador como variable de control o bien sus sucesoras en caso de bucles anidados El uso de esta letra criptica quizas a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al codigo por su uso tan extensivo Como raras veces los bucles anidados superan las tres dimensiones por una sencilla cuestion de explosion exponencial las letras i j y k suelen ser las unicas relacionadas con este uso En C se define en el primer parametro de la instruccion junto con la inicializacion opcional Inicializacion de la variable de control en pseudolenguaje se pide explicitarlo es la seccion ValorInicial sin embargo otros lenguajes mas permisivos como C no lo requieren de forma obligatoria De todos modos la practica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del codigo En C se define en el primer parametro del bucle junto con la variable de control Condicion de control en pseudolenguaje se ve representado por el valor final que puede tomar la variable de control la seccion A ValorFinal En C es el segundo parametro y puede ser cualquier condicion ni siquiera es obligacion que este la variable de control aunque una vez mas esto no se considera una buena practica Incremento en pseudolenguaje se toma por defecto el valor 1 aunque puede explicitarse por medio de la sentencia PASO ValorPaso cualquier numero entero lease bien entero o sea que tecnicamente podemos decrementar En C es el ultimo parametro Cuerpo es lo que se hara en cada iteracion pueden ser una o mas instrucciones En pseudolenguaje pesa la restriccion de no poder alterar el valor de la variable de control esto no es requerido en C pero no se considera una buena practica Usos EditarSu uso principal se orienta a los vectores pudiendo modificar agregar eliminar o consultar datos que se encuentren segun el indice Por esto ultimo una condicion minima del vector es que debe ser ordenado porque si se intenta leer un dato inexistente esto genera un error de programacion En pseudolenguaje EditarLa principal diferencia de un bucle PARA con respecto a los bucles MIENTRAS Y REPETIR es que puede determinarse al comienzo del bucle cuantas veces se interara el mismo lo cual muchas veces puede redundar en una optimizacion del codigo por parte de los compiladores Los condicionales constituyen junto con los bucles los pilares de la programacion estructurada y su uso es una evolucion de una sentencia de lenguaje ensamblador que ejecutaba la siguiente linea o no en funcion del valor de una condicion El bucle PARA se ha convertido en el bucle mas ampliamente utilizado en la programacion ya que con la evolucion de los lenguajes la mayoria de las condiciones de finEs lo mismo decir PARA i 0 a CantidadRegistros tabla 1 PASO 1 ProximoRegistro tabla HacerAlgo ElementoActual tabla FIN PARA Otro uso comun es utilizar los bucles PARA para recorrer vectores de dos o mas dimensiones en cuyo caso se anidan estas iteraciones PSEUDOLENGUAJE Vector a 3 4 2 Estamos indicando un vector de 3 dimensiones y 24 elementos en total PARA i 0 A 2 HACER PARA j 0 A 3 HACER PARA k 0 A 1 HACER HacerAlgo a i j k FIN PARA FIN PARA FIN PARAEjemplo en pseudocodigo EditarFor VariableControl ValorInicial A ValorFinal PASO Incremento Instrucciones FIN For donde VariableControl ValorInicial ValorFinal y Paso son enteros La s instruccion es del cuerpo se ejecutara n ValorFinal ValorInicial 1 veces o sea que va desde ValorInicial a ValorFinal inclusive Ejemplo en C Editar include lt iostream gt include lt conio h gt using namespace std int main int vector 10 for int i 0 i lt 10 i vector i i cout lt lt i lt lt endl system PAUSE return 0 En la definicion del for tenemos que la variable de control i se inicializa en un valor 0 luego se entrega la condicion de control que debe ser falsa durante su ejecucion para completar el ciclo y por ultimo tenemos el incrementador en una unidad Si por ejemplo en la condicion colocamos i lt 11 entonces el ciclo for se ejecutara desde 0 10 lo cual al intentar acceder al elemento vector 10 esto generara error ya que el vector por definicion va desde 0 n 1 Cualquiera de los componentes en el parentesis se puede omitir pero los separadores punto y coma deben aparecer siempre El resultado es un bucle infinito Ejemplo anterior escrito en lexico Editartarea los objetos vector 10 i son cantidades variando i desde 0 hasta 9 haga copie i en vector i Bucle Por Cada For Each EditarEste bucle es una evolucion del concepto del bucle Para en algunos lenguajes Se utiliza para recorrer estructuras repetitivas de datos de forma mas simple y agil El bucle For Each puede describirse genericamente en pseudolenguaje de la siguiente manera POR CADA elemento DE tipo EN conjunto HACER Cuerpo FIN FOR EACH Elemento es el nombre de la variable u objeto que toma el elemento iterado en el cuerpo del bucle Tipo de Dato es el tipo de variable o la clase a la que pertenece el objeto que se quiere iterar Conjunto es la estructura de datos que se quiere iterar El uso mas tipico es con vectores o en programacion orientada a objetos clases del tipo Coleccion Cuerpo es lo que se hara en cada iteracion pueden ser una o mas instrucciones Si bien no se impone una obligacion al respecto lo mas comun es que en este Cuerpo exista alguna operacion sobre el elemento iterado Una de las caracteristicas importantes que se pueden aprovechar de las computadoras es precisamente su capacidad de repetir la ejecucion de secuencias de instrucciones a una gran velocidad y con alto grado de confiabilidad Para estos fines precisamente se definen en los lenguajes de programacion las estructuras de control iterativas El objetivo de estas estructuras es permitir la expresion de la repeticion de una secuencia de instrucciones a estas estructuras se les denomina ciclo lazo o bucle Sumario 1 Estructuras de Control Iterativas 2 La instruccion while 3 La instruccion do while 4 La estructura de control for 5 Caso de Estudio 5 1 MCD 5 2 CantDigitos 5 3 Factorial 6 Ciclos Anidados 7 Fuentes Estructuras de Control Iterativas En la vida diaria existen situaciones que frecuentemente se resuelven realizando una determinada secuencia de pasos que puede repetirse muchas veces ejemplo El proceso que seguimos para comer mientras no se termine la comida El proceso de insertar monedas hasta que se abone la cantidad necesaria Las operaciones que realizamos para llamar por telefono mientras no se logre la comunicacion Como se puede observar estos son algoritmos que se hacen cotidianamente pero tienen la particularidad de que la ejecucion de alguno de sus pasos puede repetirse muchas veces mientras no se logre la meta trazada A este tipo de algoritmo se le conoce como algoritmos iterativos o repetitivos En C las instrucciones while do while y for permiten ejecutar iteraciones bucles o ciclos En cada caso se ejecuta un bloque de instrucciones mientras la condicion que se evalua tome valor verdadero Se resalta que cualquiera de las 3 instrucciones cumple con el mismo objetivo que es el de ejecutar una secuencia de pasos mas de una vez La instruccion while La instruccion while tiene la siguiente sintaxis InstruccionWhile JPGLa semantica de la instruccion es la siguiente lt condicion gt Esta representada por una expresion booleana y mientras se cumpla se ejecutara el ciclo Bloque de Instrucciones El bloque de instrucciones puede estar formado por una o varias instrucciones y es el conjunto de pasos que se van ejecutar en cada iteracion del ciclo Para una mayor comprension se muestra su representacion en un diagrama de actividad DiagramaWhile JPGEsta estructura de control permite repetir o iterar el Bloque de Instrucciones mientras la condicion sea verdadera o dicho de otra manera estas iteraciones terminaran cuando la condicion sea falsa y entonces se podra ejecutar la siguiente instruccion despues del while Es valido senalar que en esta instruccion la condicion se evalua al inicio del ciclo por lo que si la primera vez que se evalua la condicion esta es falsa el ciclo no llegara a realizarse La instruccion do while La estructura de control do while es otra sentencia de iteracion en la que la condicion se evalua por primera vez una vez que se haya ejecutado el Bloque de Instrucciones y tienen la siguiente sintaxis InstruccionDoWhile JPGSu semantica es la misma que la de la instruccion while y su representacion en un diagrama de actividad es la siguiente DiagramaDoWhile JPGEn esta estructura repetitiva el bloque de instrucciones siempre se ejecuta al menos una vez pues la condicion se evalua al final Una vez realizada la evaluacion si el resultado es true se vuelve a ejecutar el Bloque de Instrucciones en caso contrario se ejecutan las instrucciones que sigan a continuacion saliendo del ciclo La funcionalidad de este metodo sera la misma que en el ejemplo con while La unica diferencia es la forma en que se controla el bucle En la practica vera que la instruccion while se utiliza mas a menudo que la instruccion do while El elegir una instruccion en lugar de la otra es una eleccion personal Un aspecto muy importante a tener presente en los ciclos condicionales es la necesidad de contemplar dentro del bloque de instrucciones al menos una que de alguna manera altere en algun momento el resultado de la expresion booleana La explicacion sencillamente esta dada por el hecho que de no existir esta instruccion una vez entrada al ciclo este nunca terminaria por lo que se caeria en un ciclo infinito La estructura de control for Los procesos iterativos que se han visto hasta ahora terminan por una condicion En muchas situaciones las iteraciones se realizan un numero determinado de veces muchos autores les llaman ciclos por conteo pues se conoce de antemano cuantas veces se hara el proceso que se repite En este tipo de iteracion siempre se necesita una variable que lleve el control de las veces que se repite el proceso por esto se les conoce tambien como ciclos con variable de control Uno de los ciclos mas conocidos y usados en la mayoria de los lenguajes de programacion es el de la instruccion for que suele estar controlado por un contador o variable de control y tiene la siguiente sintaxis InstruccionFor JPGLa semantica de la instruccion es la siguiente lt instrucciones 1 gt Se ejecutara una sola vez al inicio del ciclo generalmente se realizan inicializaciones y declaraciones de variables puesto que como se dijo con anterioridad esta solo se ejecuta una vez En caso de que se quiera realizar o ejecutar mas de una instruccion en este momento dichas instrucciones se deben separar por comas lt expresion gt Es evaluada en cada iteracion y en dependencia del valor que devuelva dependera que el ciclo continue ejecutandose valor de la expresion true o no false Destacar que de no colocarse nada en esta parte el ciclo tomara como true el valor de la expresion por lo que en principio el ciclo puede estar repitiendose infinitamente lt instrucciones 2 gt Es ejecutado siempre en cada ciclo al terminar de ejecutar todas las instrucciones que pertenecen al bucle for en cuestion Por lo general puede contener alguna actualizacion para las variables de control Analogamente a lt instrucciones 1 gt en caso de querer ejecutar en este momento mas de una instruccion se deben separar por comas Observe que es obligatorio para separar cada termino que compone la instruccion for utilizar un punto y coma de lo contrario el compilador mostrara un error de tipo semantico Reiterar que la lt instruccion 1 gt se ejecuta una sola vez al comienzo que la lt instruccion 2 gt es la que generalmente se utiliza para modificar la variable de control aunque en el ciclo esta puede modificarse tambien y que lt expresion gt es la que garantiza la finitud del ciclo el for se estara ejecutando siempre y cuando lt expresion gt sea evaluada y tome valor true Vease tambien EditarVectores C Lenguaje de programacion Estructuras de control Bucle programacion Bucle while Bucle repetir Ciclo infinito Teorema del programa estructurado Programacion estructuradaReferencias EditarEnlaces externos EditarCiclo for en C Estructura sintaxis y uso de un ciclo for en C Datos Q838119 Obtenido de https es wikipedia org w index php title Bucle for amp oldid 141195332, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos