Si es tu primera visita, quizás deberías visitar la Ayuda para aprender un poco sobre el uso de los foros. Es posible que tengas que registrarte antes de poder iniciar temas o dejar tu respuesta a los temas de otros usuarios: haz clic en el enlace 'registrarse' para crear tu cuenta. Para empezar a ver mensajes, selecciona el foro que quieres visitar de la lista de abajo.
![]() |
| Alcanza tus sueños. ID: 153663 Registrado: junio-2007 Hace: (899 dias)
Mensajes: 746
|
Estoy bien o me equivoco? Hay varias cosas que todavia no entiendo muy bien, pero lo empezare a poner en practica aver si ahce lo entiendo mas facil. Un saludo!!!!
__________________ ![]() -Te quiero… -Yo te amo... ¿Ves la diferencia? | |||
| | |
| Sin estado ID: 287958 Registrado: junio-2008 Hace: (522 dias)
Mensajes: 10
| De los tantos programadores, acá no hay nadie jugando en Project Euler?
C pertenece a los lenguajes del paradigma de la programacion imperativa o sea, describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Cual es la idea? que se parezca lo más la programación de Turing (hiperbásica, la que entienden los computadores directamente) pero que permita usar herramientas más complejas. C++, continuacion de C, pertenece a una mezcla de 3 paradigmas: imperativo, genérico y orientado a objetos. Orientado a objetos significa que puedo crear cosas que en si son Abstracciones de algún modelo, que en si son programas y además almacena información que puede ser consultada pero también no está directamente a la vista (O sea, uno debe preguntarle al objeto que tiene). Generico significa que puede definir metodos de manera abstracta para despues definirlos de manera concreta. Esto es muy util para crear capas que funcionan distinto pero tienen el mismo objetivo. Un buen ejemplo de esto es Figuras Geometricas. Supongamos que yo quiero Un programa que calcule el perimetro y area de ciertas figuras geometricas (triangulo, cuadrado, circunferencia). Para esto, en C, yo tendría que atacar cada parte distinto y crear metodos cuadrado_perimetro, cuadrado_area, triangulo_perimetro, triangulo_area, circulo_perimetro, circulo_area. Y al final tendría por lo bajo dos metodos por cada figura geometrica. Sin embargo en C++ puedo hacer algo distinto: Puedo crear una clase abstracta llamada Figura. Esta clase no tiene mas que dos metodos: perimetro y area. Pero ninguno hace nada, no almacena si quiera informacion. Esto es lo importante: del padre puedo crear hijos. Que son los hijos? Los hijos son clases como el padre, y guardan al menos la misma informacion y metodos que el padre. Entonces puedo crear el hijo Triangulo, que tiene 3 lados y su perimetro se calcula sumando los lados y su area se calcula raiz((s-a)(s-b)(s-c)s) donde s es el semiperimetro (perimetro/2). Y puedo hacer lo mismo con el cuadrado. Y la gran gracia de todo esto es que al ser objetos (por ejemplo llamado "a" y es cuadrado)puedo invocar su perimetro haciendo a.perimetro(); El paradigma de la programacion a objetos es una excelente forma de programar modelando datos e ideas de una manera simple y clara Última edición por pwn3d3r; 20-feb-2009 a las 22:46. Razón: quote de zero y aclaración | ||||
| | |
| NOVIEMBRE, mes la patria de mi alma, de mi
corazón ID: 142747 Registrado: mayo-2007 Hace: (932 dias)
Mensajes: 603
| Gracias por la aclaración. Todo lo que dices es correcto. No sé que me pasó. La POO es una gran diferencia, pero sigamos pues. Aquí les traigo algo que ayudará a programar mejor. En esta ocasión, hablaré un poco de programación, será algo corto de explicar; hablaremos de arreglos de memoria o estructuras de almacenamiento en el lenguaje Borland C++. !Comencemos! ¿Que son los arreglos de memoria o estructuras de almacenamiento ? No son más que localidades de memoria en donde se realiza una “partición”, por decir algo, pero en realidad son posiciones en donde se pueden agregar diferentes tipos de datos. ¿Que tipos de datos podemos guardar? Como ya sabemos que para poder utilizar una variable, debemos declararla, los mismo debemos hacer con los arreglos de memoria, según el tipo de declaración, una variable acepta un tipo de valor, si es entero, no aceptará decimales, si es un caracter, no aceptará un número, si es de simple presición, no aceptará de doble presición como es el valor de Pi(3.141592654) y viceversa. Así es que dependiendo que valores trabaje al algoritmo así mismo debemos declarar en arreglo y las variables. ¿Los arreglos se pueden clasificar? Claro que sí, se clasifican en tres categorías:
Los vectores trabajan con coordenadas “x”, las matrices con coordenadas “x” y “y” mientras que los arreglos tridimensionales trabajan con “x”, “y” y “z”. Sintaxis La declaración de arreglos, específicamente Vectores, en Borlan C++, se ase de la siguiente manera: (nombre del vector)[tamaño o espacios del vector] Explico: la letra que antecede a los corchetes (que son necesarios ya que forman parte de la sintaxis) puede ser tanto mayúscula como minúscula. Entonces, el numero que ponemos entre corchetes es el tamaño que definirá el vector. Ejemplo: a[3], I[10]. En el primer caso, declaré un vector de tres espacios y en el segundo, de diez. Cabe señalar que la letra se llama identificador a igual que las variables y además los espacios no se cuentan a partir de numero 1, sino desde el 0. En el primer caso, los tres espacios son 0, 1 y 2. No se si digo que el cero cuenta, para que me entiendan. Imagínense un rectángulo partidos en tres pedazos y que ese rectángulo se llame “a”. Esto mismo es con el segundo caso, el identificador es “I” y consta de 10 espacios (del 0 al 9). Así se ve un vector gráficamente: ![]() La declaración de arreglos, específicamente Matrices se realiza de la siguiente forma: (nombre de la matriz)[cantidad de espacios en eje x][cantidad de espacioes en eje y]. Explico: como en los vectores la letra es el identificador, y lo más relevante que puedo decir es que los dos corchetes son las coordenadas que ya dicho por que. Estos arreglos pueden tener cualquier tamaño de filas y columnas y trabajan igual que los vectores en lo que se refiere a los espacios. Algo importante Para introducir datos ya sea en vectores y en matrices, se usa la sentencia for para el lenguaje C++ o for...next para el caso de Visual Basic. Algo importante es que en una matriz, la de debemos imaginar varios vectores uno arriba de otro: ![]() ¿Se entiende? Se ve por qué digo coordenadas "x" y "y" ? Coordenadas x son las filas y las coordenadas y son las columnas. Para determinar el tamaño de una matriz, basta con realizar el productor escalar ( jajajaja multiplicar pues jaja ya les ando metiendo cálculo 3) de la fila por la columna. Osea, el eje x por el eje y. Si tengo una matriz G[4][5], ella tiene 20 espacios: desde el 0, hasta el 19. ¿se entiende? Igual que los vectores, se necesita un ciclo for (Para) para llenarla PERO como estámos trabajando en 2 dimenciones ("x" y "y". Por eso arreglo bidimencional), necesitamos 2 ciclos for para manejar las filas (eje x) y las columnas (eje y) ¿Sí? Para ambos, se guardan los archivos desde la posición 0 hasta la última, aunque el programador puede “jugar” con el ciclo de repetición y agregar los datos de atrás hacia adelante en vectores y matrices o introducirlos por columnas para las matrices...esto solo es desarrollar la lógica. Aunque, no pienses en que uno debe volverse loco para eso y que tampoco halla que complicarse la vida, eso depende de que tipo de programador eres. Declaración en el lenguaje: Un vector en C++ lo escribimos de la siguiente manera: int D[3]; Int z[5]; Una matriz, sería de esta forma: int EJEMPLO[2][3]; float PP[4][4]; Esto es algo que sirve para programar cuando trabajamos con diferentes datos como por ejemplo, medidas de sangre de un grupo de personas, la cantidad de agua que callo en una cuidad por tres años...dependiendo del problema se opta por usar vectores o matrices. Yo espero que puedan realizar el código de programa para inicializar un vector y/o matriz. Es el mismo también para cargarlo de datos. Igualmente, se los voy a poner: Código: #include stdio .h
#include conio.h (acuérdense de agregar > <. No me los pone el code)
void main()
{
int x, y, a, v[5], m[3][2];
//para un vector
for(x=0; x<5; x++)
{
printf("Introduzca un dato");
scanf("%d", &a);
v[x]=a;
//o también scanf("%d", &v[x])
}//fin del ciclo for
//para una matriz
for(x=0; x<3; x++)
{
for(y=0; y<2; y=y+1)
{
scanf("%d", &a);
m[x][y]=a;
}
}//fin del ciclo for
}//fin del programa
printf("Tal cosa%d", <nombre>[# del espacio]. Si es para una matriz, lo mismo: <nombre>[coordenada de la fila][coordenada de la columna] Obviamente, que esto va dentro de un ciclo de repetición si queremos imprimir todo lo que tiene el arreglo. Si solo queremos imprimir una posición exacta, solo imprimimos la posición que queremos. Un programa para meterle salsa: Realice un programa que permita introducir 5 notas para 4 estudiantes. Al final, que muestre los datos introducidos. Un programa sencillo sin complicaciones que creo que no debe dar problemas. Cualquiera duda, hágame saberla y con mucho gusto trataré de esclarecerla. Esto es dedicado a Stigmae que está trabajando con mi amigo C++ jajaja Un poco tarde te lo publico, pero si me hubieras avisado; te lo hubiera adelantado.Saellvertu!!! ![]() "Z"
__________________ PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANAMÁ ![]() VIVA MI PATRIA CARAJO! Última edición por "Zero"; 09-mar-2009 a las 16:30. |
| | |
| Sin estado ID: 328440 Registrado: noviembre-2008 Hace: (379 dias) Edad: 21
Mensajes: 31
| Holas! En vista de q nadie se animó a poner la solución del ejercicio, acá se las dejo: #include "stdio.h" int main(void){ int f, c; float notas[4][5]; for(f = 0; f < 4; f++){ for(c = 0; c < 5 ; c++){ printf("Ingrese la nota %d del alumno %d: ", c+1, f+1); scanf("%f",¬as[f][c]); } } for(f = 0; f < 4; f++){ printf("\nNotas del Alumno %d:\n", f+1); for(c = 0; c < 5 ; c++) printf("\n\tNota %d = %.2f\n", c+1, notas[f][c]); } return 0; } Saludos!
__________________ Bravery can only be found in a knight's heart... ![]() |
| | |
| NOVIEMBRE, mes la patria de mi alma, de mi
corazón ID: 142747 Registrado: mayo-2007 Hace: (932 dias)
Mensajes: 603
| Excelente. Todo correcto. Bien chévere el programa. Quizás se pudo hacer la recabación de datos más ordenada pero está bien. Está correcto el programa, pero no se te olvide los >< del stdio.h Aprovechando el post pues, daré la explicación a mi ausencia en el foro. 1. Los estudios de la U. Ahí no se discute. 2. Pues no hay mucha actividad en mi tema, pero debes en cuando me paso. También quiero decir que después de esto, quiero enseñarles a los interesados, estructuras de datos y como no, también otro lenguaje de programación. Si alguien quiere animarce a enseñar, como no; mejor aún 8D Saellvertu y gracias Lionheart-009 por participar 8D "Z"
__________________ PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANAMÁ ![]() VIVA MI PATRIA CARAJO! Última edición por "Zero"; 10-may-2009 a las 23:17. |
| | |
| Sin estado ID: 328440 Registrado: noviembre-2008 Hace: (379 dias) Edad: 21
Mensajes: 31
|
Mmm... pues le pongo comillas x pura costumbre y el código compila sin problemas, aunque sí se pueden cambiar las comillas x los signos ><.
Yo estoy interesado! xD Listas, Pilas, Colas, Árboles rayos!! hay mucho q hablar de ellos! xD jeje la verdad no me emociona tanto la idea xq se me dificultan un poco, en especial los árboles y las pilas xD pero en los otros si puedo ayudar ![]() Saludos!
__________________ Bravery can only be found in a knight's heart... ![]() | ||||||||
| | |
| NOVIEMBRE, mes la patria de mi alma, de mi
corazón ID: 142747 Registrado: mayo-2007 Hace: (932 dias)
Mensajes: 603
|
No te preocupes, cuando estemos en pilas y colas, ahí espero que se te aclare la duda y cuando estemos en árboles, me ayudas también ![]() Por ahora, esto está en stanby por mis estudios, pero de que va, va ![]() Saludos mano!! "Z"
__________________ PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANAMÁ ![]() VIVA MI PATRIA CARAJO! | ||||
| | |
| Sin estado ID: 287958 Registrado: junio-2008 Hace: (522 dias)
Mensajes: 10
| Ufff, pilas , colas y arboles son casi pelos de la cola!. Tantos tipos de arboles(binarios, balanceados, bayer, 2-3, van Emdeboas, etc) Sin olvidar tablas de hash implementadas con listas o con avances. Y lo mejor de todo es que todo es escalable. |
| | |
| NOVIEMBRE, mes la patria de mi alma, de mi
corazón ID: 142747 Registrado: mayo-2007 Hace: (932 dias)
Mensajes: 603
| Jaajajaja pues, los árboles son muy buenas estructuras. Para efecto de esto, solo voy a dar árboles generales y binarios. Por supuesto, todo lo que pueda de ambos tipos de árboles. Y a lo mejor de grafos. Todo lo dirá el tiempo. Gracias por comentar ![]() "Z"
__________________ PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANAMÁ ![]() VIVA MI PATRIA CARAJO! |
| | |
| Sin estado ID: 59230 Registrado: mayo-2006 Hace: (1286 dias)
Mensajes: 55
| gracias por iniciar esto.
__________________ [Barcelona] [/Barcelona] |
| | |
| De regreso a DZ!!! ID: 151836 Registrado: junio-2007 Hace: (904 dias)
Mensajes: 89
| Microsoft tiene un programa academico gratuito para aprender a programar sobre tecnologias microsoft, muy buen recurso, se los recomiendo. Enlace: http://www.mslatam.com/latam/msdn/comunidad/dce2005/ PD: Al tener las 5 estrellas, Microsoft te certifica!!! |
| | |
| NOVIEMBRE, mes la patria de mi alma, de mi
corazón ID: 142747 Registrado: mayo-2007 Hace: (932 dias)
Mensajes: 603
| Hola gente!! Aprovechando que estoy de vacaciones, vamos a seguir con esto. En esta ocasión, vamos a hablar de: Funciones en C++ Primero, ¿que es una función? Es un subprograma que ejecuta una serie de instrucciones con ciertos valores y que solo retorna un solo valor(si uno desea). Entonces, esa función puede ser llamada desde el programa principal sin importar cuantas veces sea llamada. Mencione “ciertos valores” esto valores se llaman parámetros, que son los datos con que va a trabajar la función. Además dije “retorna un valor”, toda función realiza esa operación(lo que hace), pero solo hay que tener en cuenta de que el valor que va a retornar, tiene que ser mismo tipo que la variable que va a recoger ese valor. No puedo decir que la función en entera y que la variable que va a recoger el valor, es flotante. Produce un resultado no deseado. Si no deseo retornar nada, no pasa nada. Solo declaro la función como "void" ¿Como declaro una función? Cuando declaramos las librerías que vamos a usar en el programa, inmediatamente se declara la función, junto con sus parámetros con que va atrabajar. Ejemplo: <tipo de función> <nombre la de función> (<tipo de variable><nombre de la variable>…etc) int suma(int a, int b); ¿Cómo la llamo? En el programa principal, solo escribes el nombre, más los parámetros de dicha función. Esto le indica al compilador de C++ que es una función y que se está invocando. Ejemplo: suma(a, b) Y entonces, ¿la función que? Después que declaras la función y realizas el llamado, claro, debes programar la función. Se declara así: <nombre de la función> (parámetros) suma(int a, int b) En ella escribes todos lo que quieres que haga la función, pero tomando en cuenta de que solo devolverá una solo valor de retorno. ¡Algo muy importante! Después que terminas de estructurar tu función, siempre debe poner la palabra reservada “return(valor)” Le indica el programa que ya terminó la función y que va a mandar un valor de retorno…como quien dice: ¡hey! Ya terminé, voy para allá…jajajaja…¿me explico? Si no quiero retornar, otra ves; declaro la función como "void". Aquí hay un ejemplo de una función sencilla de sumar dos números, para que lo vean mejor: Código: #include<conio.h>
#include<stdio.h>
//declaro la función
int suma(int a, int b);
void main()
{
int w, e, h;
printf("Programa que suma dos números\n");
printf("primer número\n");
scanf("%d", &w);
printf("segundo número\n");
scanf("%d", &e);
//llamo la función y lo que retorna, lo apaña la variable "h"
h=suma(w, e);
printf("\n%d", h);
}
//cabezera de la función, tiene esa estructura
suma(int a, int b)
{
int k;
k=a+b;
return(k);//indica que termina la función y que va a retornar un valor
}
Bueno, eso sería todo. Haber, un problema sencillo. Hagan (los interesados por supuesto), un programa que utilizando funciones, sea una calculadora básica que sume, reste, multiplique y divida 2 números cualquiera. Utilizando todas las herramientas que he dado aquí, me parece que esto debe ser muy fácil. Bueno, amanecerá y veremos. Por ahí veré si puedo empezar con Estructuras de Datos, si me alcanza las vacas XD!! Saellvertu!!! ![]() "Z"
__________________ PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANAMÁ ![]() VIVA MI PATRIA CARAJO! |
| | |
| Sin estado ID: 328440 Registrado: noviembre-2008 Hace: (379 dias) Edad: 21
Mensajes: 31
| Acá el código del programa anterior. Saludos! Código: #include "stdio.h"
void menu(void);
int option(void);
float sumar(float x, float y);
float restar(float x, float y);
float producto(float x, float y);
float dividir(float x, float y);
int main(void){
int flag = 1, op;
float r, a, b;
while(flag){
menu();
op=option();
switch(op){
case 0: flag = 0;
break;
case 1: printf("\n\tDigite el primer valor: ");
scanf("%f",&a);
while(getchar()!='\n');
printf("\n\tDigite el segundo valor: ");
scanf("%f",&b);
r = sumar(a,b);
printf("\n\t %.2f + %.2f = %.2f",a,b,r);
break;
case 2: printf("\n\tDigite el minuendo: ");
scanf("%f",&a);
while(getchar()!='\n');
printf("\n\tDigite el sustraendo: ");
scanf("%f",&b);
r = restar(a,b);
printf("\n\t%.2f - %.2f = %.2f",a,b,r);
break;
case 3: printf("\n\tDigite el primer valor: ");
scanf("%f",&a);
while(getchar()!='\n');
printf("\n\tDigite el segundo valor: ");
scanf("%f",&b);
r = producto(a,b);
printf("\n\t%.2f x %.2f = %.2f",a,b,r);
break;
case 4: printf("\n\tDigite el dividendo: ");
scanf("%f",&a);
while(getchar()!='\n');
printf("\n\tDigite el divisor: ");
scanf("%f",&b);
r = dividir(a,b);
printf("\n\t%.2f / %.2f = %.2f",a,b,r);
break;
}
}
return 0;
}
float sumar(float x, float y){
return x + y;
}
float restar(float x, float y){
return x - y;
}
float producto(float x, float y){
return x * y;
}
float dividir(float x, float y){
return x / y;
}
void menu(void){
printf("\n\n\t********* MENU *********\n\n");
printf("\n\t\t0. Salir\n");
printf("\n\t\t1. Sumar\n");
printf("\n\t\t2. Restar\n");
printf("\n\t\t3. Multiplicar\n");
printf("\n\t\t4. Dividir\n");
printf("\n\t************************\n\n");
}
int option(void){
int x;
do{
printf("\t\tIngrese su opcion: ");
scanf("%d",&x);
while(getchar()!='\n');
if(x<0 || x>4)
printf("\t\tSu opcion debe estar entre 0 y 4\n");
} while(x<0 || x>4);
return x;
}
__________________ Bravery can only be found in a knight's heart... ![]() Última edición por Lionheart-009; 28-jul-2009 a las 17:48. |
| | |
| NOVIEMBRE, mes la patria de mi alma, de mi
corazón ID: 142747 Registrado: mayo-2007 Hace: (932 dias)
Mensajes: 603
| Bueno, quizás no ponga los programas más difíciles, pero yo pienso en los que no saben nada de nada. Lo miré por encima, y como pensé; estaba bien. Bien por que me lo llevé a C++ y todo corrió bien. Lo único que sugeriría es que antes de mostrar el menú, justamente después de mostrar el resultado, limpiaras la pantalla. Solo son detalles de apariencia, pero el programa está muy bien elaborado. Me gustó mucho que evaluaras la condición que si meten un número negativo o mayo que 0. Eso está bien. Bueno, gracias por participar. Si tienes algo que decir o agregar, con mucho gusto te leemos. Saellvertu!!! ![]() "Z"
__________________ PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANAMÁ ![]() VIVA MI PATRIA CARAJO! Última edición por "Zero"; 31-jul-2009 a las 21:49. |
| | |
| Sin estado ID: 398052 Registrado: julio-2009 Hace: (128 dias)
Mensajes: 11
| Un problema, división entre cero. No deben permitir que eso ocurra. Por el momento, propongo un cambio en la función dividir, con un mensaje de error. Creo que sería mejor un try...catch, que ataje el error para mas inteligentemente quitar el mensaje posterior de 'a / b = 0', pero para ir despacio dejemoslo así. Con respecto al valor (double)0.0, hay un punto que tomar en cuenta. Por el momento, para los que inician pueden seguir programando sin considerar esto, pero lo propongo para otros programadores mas avanzados. float dividir(float x, float y) { if (0.0 == y)} Ah, antes de que lo pregunten. Ya habrán notado mi notación de (0.0 == y). Esto es un truco que recomiendo utilizar siempre, con el cual puedes pescar potenciales error de sintaxis que se nos podrían haber escapado. Explico: Última edición por weredragon; 02-ago-2009 a las 21:31. |
| | |
| NOVIEMBRE, mes la patria de mi alma, de mi
corazón ID: 142747 Registrado: mayo-2007 Hace: (932 dias)
Mensajes: 603
| Hola!! Clarito, es cierto lo que dices. Me gustó el truco del 1º spoiler. Estubo bueno mira. Con lo del apañado del error, se me escapó decirlo. Verdad que esa es una condición importante para evaluar. Aunque para este tipo de problemas, siempre estará presente. Oye, gracias por tus comentarios. Saellvertu!! (=D "Z"
__________________ PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANAMÁ ![]() VIVA MI PATRIA CARAJO! |
| | |
| Sonríe, yo existo 8D ... ID: 47470 Registrado: marzo-2006 Hace: (1344 dias)
Mensajes: 319
|
Una solución bastante fácil sería evitar las divisiones por cero usando el bucle DO-WHILE de la siguiente manera: Código: cout<<"Ingrese valor de numerador: ";
cin>>x;
do{
cout<<"Ingrese valor de denominador: ";
cin>>y;
}
while(y==0);
k = x/y;
return k;
Básicamente el bucle ingresará una primera vez a analizar el valor de "y", si es cero, pues volverá a pedir y "chancará" el valor colocado anteriormente. Es algo muy básico pero que ayuda bastante en problemas similares o de mayor complejidad. Saludos ![]()
__________________ ![]() ... "Vivir no es sólo existir, sino existir y crear, saber gozar y sufrir y no dormir sin soñar. Descansar, es empezar a morir" ... Visita PC HELP ZONE | ||||
| | |
| NOVIEMBRE, mes la patria de mi alma, de mi
corazón ID: 142747 Registrado: mayo-2007 Hace: (932 dias)
Mensajes: 603
|
Para mi, las dos formas son buenas. Chao chigüires (=D "Z"
__________________ PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANAMÁ ![]() VIVA MI PATRIA CARAJO! | ||||
| | |
| Sin estado ID: 188008 Registrado: septiembre-2007 Hace: (809 dias)
Mensajes: 11
| o o Io me lei todo el primer post y parte de los primeros comentarios... El detalle es que llegue hasta "NO pidan programas" y no logre leer mas... x x Hay demasiada info en mi cerebro... Tengo un comentario que hacer... o o El CD que pusiste ia no esta disponible para descargar... u u El primer link dice q el archivo fue borrado... Es posible que Gracias por leer. Ciao~
__________________ ![]() ______________________________ ♥ ______________________________ Yo tampoco conozco a Albaricoca y no estoy segura de haberle escuchado en la radio, pero vamos... el monito regurgitando un arcoires tiene su encanto "Firefox o muerte" - Sinner |
| | |
![]() |
| (0 miembros y 1 visitantes) | |
| Herramientas | |
| |