Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Naimaderis

#1
Cita de: Eleкtro en 29 Julio 2018, 11:25 AM
foreach está diseñado para iterar colecciones enumerables donde el concepto de índice no existe, por ende no es lo más adecuado dada la situación por tu necesidad de conocer el índice del elemento, puedes hacerlo como prefieras, no va a tener un impacto negativo en el rendimiento pero el uso de foreach combinado con el el seguimiento del índice usando una variable local es del todo innecesario cuando perfectamente puedes aplicar un bucle for tradicional y obtener el índice directamente de la variable de for.

Saludos

Entiendo, muchas gracias. ¿El usar .count para ir hasta el largo de la lista es correcto?
¿O seria mas eficiente declararla fuera?
#2
Hola, tengo una lista
Código (csharp) [Seleccionar]
List<Pelicula> Peliculas_Recomendadas = new List<Pelicula>();
Pero estaba dudando si recorrerla con un for o con un foreach, pues al necesitar un contador, el for me parece mas coherente. Pero como por lo general se usan foreach para lista, lo duda.
Código (csharp) [Seleccionar]

foreach( Pelicula i in Peliculas_Recomendadas)
            {
                Console.WriteLine(aux + " - " + i.Nombre_Pelicula());
                aux++;
            }


Código (csharp) [Seleccionar]

for (int i = 0; i < Peliculas_Recomendadas.Count(); i++)
            Console.WriteLine(i + "- " + Peliculas_Recomendadas[i].Nombre_Pelicula());


¿Que creen?
#3
Quiero hacer mi propio Netflix en C++/C#, sin usar sql, ya que todavia no lo he aprendido. (En unas semanas tengo pensado aprenderlo, pero por ahora solo memoria dinamica)
Pensé en este diagrama de clase. ¿Qué piensas?



En mi programa principal tengo una lista con todas las películas existentes.

Cada usuario tiene 2 listas, las películas que vio y las pelicula que guardo, y un vector de 5 peliculas recomendadas, que se generan en tiempo real (Cada vez que ve una pelicula)

Aca viene mi primera duda:

Ya que en mi archivo principal tengo una lista con las películas totales, es mucho gasto de memoria, colocar nuevamente en cada usuario "peliculas_vista" y "peliculas_no_vistas" por eso pense en hacer lo siguiente:
Una lista de punteros a peliculas "Peliculas_No_vistas", donde se tiene punteros a todas las peliculas existentes, cunado se ve una pelicula, el puntero pasa de estar en "Peliculas_No_vistas" a "Peliculas_Vistas", donde siempre voy manteniendo un registro de las que se vieron y no se vieron.

¿Que les parece? ¿O es insignificante el gasto de memoria adicional como para hacer esto?


La segunda pregunta:

Lo de tener Peliculas_No_vistas surge de que tengo que recomendar peliculas a a través de un algoritmo basado en los generos de películas que vio el usuario.

Entonces, dentro de las no vistas, quiero buscar en las de cierto genero, así que se me ocurrió lo siguiente:

Que Peliculas_No_Vistas sea un vector con los 10 géneros existentes, y en cada entrada del vector pongo la listas de peliculas con respecto al genero.(Solo para ordenarlas)

Donde, si quiero acceder a las de "terror" voy directo a esa categoría y no tengo que estar recorriendo las todas.

Y lo otro que pense es que las peliculas vistas sea un vector con dos listas, calificadas y no calificadas
Pero no se si es conveniente, ya que no se base de datos,  en un futuro cuando quiera hacerlo con base de datos, se me complique.
Gracias
#4
Bueno, tengo el siguiente problema:





Como solución plante esto:







¿Que les parece?  


Y esta?


#5
Hola, quiero generar una carta aleatoria, pero mediante una funcion, el problema esta en que el programa no me compila. La funcion generara carta, crea una estructura temp y le asigna palo y numero, y retorna la struc, pero al hacer carta1 = generarcartaaleatoria(); me provoca un error porque al parecer es de tipo int, lo cual no entiendo.

#include <stdio.h>

struct carta
{
int numero;
char palo;
};

int numero[12];
char palo[4] = {'c', 'o', 'b', 'e'};
typedef struct carta cartau;

int main()
{
rellenar(numero,12);
cartau carta1;
carta1 = generarcartaaleatoria();
}

cartau generarcartaaleatoria()
{
cartau temp;
temp.numero = numero[rand()%11];
temp.palo = palo[rand()%4];
return temp;
}

void rellenar(int *vector,int tamanio){
int i;
for(i = 0; i < tamanio; i++) {
   vector[i] = i+1;
}
return 0;
}
#6
Cita de: Eleкtro en 26 Mayo 2017, 06:25 AM
Si la intención es hacer un manual para ti mismo, entonces supongo que la estética tiene prioridad, y en ese caso podrías utilizar directamente Html u otro lenguaje de markups como por ejemplo MarkDown, con cualquier editor de MarkDown como por ejemplo MarkDownPad: http://markdownpad.com/ aunque en mi opinión personal sería más recomendable utilizar cualquier editor de CHM profesional (los hay que se parecen a Microsoft Word, donde puedes arrastrar imágenes y videos, crear listas, tablas, y hacer de todo un poco) para generar un archivo de ayuda compilada en Html, sería estéticamente mucho más bonito y profesional que esto, pero bueno, ya que buscas sencillez te propongo la opción estética que a mi me parece más sencilla: MarkDown.

Probe MarkdownPad y sencillamente me encanto, no puedo objetar nada, era justamente lo que buscaba, muchas gracias!!
#7
Hola, estoy comenzando a escribir un manual de programación para mi mismo, como una bitácora de todo lo que aprendo, actualmente me encuentro utilizando latex, pero creo que no es lo mas conveniente. ¿Conocen alguna editor para escribirlo?. En lo posible que tenga facilidad a la hora de colocar los codigos. Gracias
#8
Hola, ¿Como estan? Me ha surgido una duda, supongamos que yo tengo el siguiente struct:



struct prueba_text {
 char caracteres[20];
 int longitud;
};



Ahora creo el tipo`textito_tip' que es un puntero a los elementos de `prueba_text'.


typedef prueba_text *textito_tip;


Aca es donde viene mi duda, he creado una struct "prueba_text" la cual tiene dos campos, caracteres y longitud, que sucede si yo creo una nueva estructura
cuyos campos sean "int numero" y "textito_tip texto":


struct prueba_info {
 int numero;
 textito_tip texto;
};


Segun mi logica, prueba_info deberia tener 3 campos, "numero" y los dos que toma de "prueba_text" que son "caracteres" y "longitud"

¿Esto es asi?

Si es asi, entonces creo un nuevo tipo "info_tip" el cual es puntero a los elementos de "prueba_info"


typedef prueba_info *info_tip;


La otra duda es, en caso de ser asi, yo para acceder a los elementos de rep_text, lo hacia de la siguiente forma:

textito_tip res = new prueba_text /* lo creo  y ahora accedo:*/
res -> longitud = 4;

mi duda es como accedo ahora, ya que esta dentro de prueba_info,supuse que seria algo asi:

info_tip hola = new prueba_info;
hola -> numero;

y en la parte que "hereda" del otro?
"hola -> longitud" ?

La otra pregunta seria:
Suponiendo que me pasan como parametro de una funcion "info_tip h" entonces para acceder solo tengo que poner
Código (cpp) [Seleccionar]

h -> numero;

o tengo que crear uno nuevo con "new" y asignarle h?
#9
He cambiado lo que me dijiste, y ha quedado maravilloso, muchas gracias.
#10
Estoy tratando de construir un programa, al cual yo le de una frase y una letra, y me diga cuantas veces aparece esa letra en la frase. El problema esta en que logro dirigirme a cada letra de la frase, pero al compararla, siempre me la toma como si fueran iguales...


    #include <stdio.h>
    int ContarLetra(char vector[],int largo,char letra);

    int main(){

    char frase[30] = "AJO Y AGUA";
    int k = ContarLetra(frase,10,'O');
    printf("%d",k);

    }

    /* Funcion a la cual se le da la frase a contar, el largo de la frase
    y la letra que queremos contar cuantas vecces aparece */

    int ContarLetra(char vector[],int largo,char letra){

    int contador = 0;

    for (int i = 0;i < largo;i++){

    printf("%c \n",vector[i]);

    if (vector[i] = letra) {
    contador ++;
    }
   
    }

    return contador;

    }