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 - placa4

#1
Perdón XD, es que en realidad la torre está acostada, pero la pared donde está la tarjeta gráfica vendría a ser la parte de arriba si la torre estuviera dispuesta de forma vertical, o sea de pie.

Al final lo he puesto al 60% el ventilador, y voy a mirar cómo va todo esto del speedfan. Igualmente he probado a ponerlo al 100% un rato solo por probar, y no baja de los 55-60 grados la tarjeta T_T. Creo que le voy a hacer los agujeros igual.

#2
Un pequeño dato. Me he bajado el speedfan, y he visto que el ventilador de mi tarjeta gráfica se mantiene a un constante 29% de trabajo. Hay algo malo en subir ese trabajo del ventilador al máximo? o al menos aumentarlo? Es que baja considerablemente la temperatura.
#3
Hola. Resulta que ayudando a una amiga, me bajé un programa HWMonitor, cuál fue mi sorpresa al ver que mi tarjeta gráfica se encuentra entre los 80 y los 85 grados centígrados sin jugar a nada. Y jugando no lo he comprobado, pero seguro que se pone peor.

Eso es mucha temperatura, y estoy preocupado. Creo que puede deberse a la forma en que está colocada (que vino así de fábrica), porque el ventilador tira el aire contra una pared de la torre y parece ser que eso la recalienta, ¿puede ser? Os pongo capturas para que lo veais vosotros mismos.

http://imageshack.us/a/img542/6519/kph0.jpg
http://imageshack.us/a/img19/9834/ve7c.jpg

Como podeis comprobar, la tarjeta está "chocando" el aire del ventilador que tiene contra la pared de la torre, a lo mejor eso le impide refrescarse bien, no sé (recuerdo que vino así de fábrica). Lo que sí que no veo normal es que esté a ochenta grados sin jugar a nada. Independientemente de que le limpie el polvo y todas esas cosas, sería buena idea abrirle un agujero a la pared de la torre? No tendría problema con eso si vosotros me dais el visto bueno.

Gracias!

PD: Es una Radeon HD 4650 (y en españa, concretamente murcia, hace un calor que flipas)
#4
Aaah bonitas ideas amchacon. Claro usando vector es cierto podría hacerlo sin límite de antemano, no lo había pensado.

Y muchas gracias por aclarármelo ^_^, claro vigilando a mano el tamaño de los bytes es algo análogo a si eof (si es que funcionara como a mí me gustaría ¬¬) devolviera true al llegar al final del archivo y no al sobrepasarlo, perfecto =)

Y en cuanto a rir3760 muchas gracias, es también una buena idea, pero no uso etiquetas por capricho, verás yo lo hice con la idea de que las preguntas y respuestas pudieran tener por dentro saltos de línea, párrafos etc. no fueran simples preguntas de un renglón, solo fue por eso, pero muchas gracias =)

Un saludo a los dos.
#5
Hola, resulta que estaba creando un programa que lea de un archivo de texto con el siguiente formato:

<pregunta> esta es la pregunta </pregunta> <respuesta> esta es la respuesta a la pregunta </respuesta>


Así pudiera guardar la pregunta en una cadena, y luego la respuesta en otra. De esta manera el programa iría haciendo las preguntas aleatoriamente y luego mostrando las respuestas, pero tengo un problema. La clase ifstream no la sé usar y siempre me trata una entrada más de la que quiero, lo que me hace tener que usar de forma rara el número de preguntas (restándole uno porque si no usa una entrada vacía de los arrays), ¿alguien me puede decir a qué se debe? Pongo el code completo:

main.cpp
Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include "pregunta.h"

using namespace std;

int main()
{
   Pregunta p;
   p.comenzar();

   return 0;
}

pregunta.h
Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>

#define MAX_LETRAS 5000
#define MAX_PREGUNTAS 200

class Pregunta{
   private:
       char pregunta[MAX_PREGUNTAS][MAX_LETRAS];
       char respuesta[MAX_PREGUNTAS][MAX_LETRAS];
       int nPreguntas;
   public:
       Pregunta();
       void comenzar();
       void auxMuestra();
};

pregunta.cpp
Código (cpp) [Seleccionar]
#include "pregunta.h"
#include <stdlib.h> //Pseudorandomizado y limpiar la pantalla
#include <time.h> //Para la semilla de randomizacion

using namespace std;

//Constructor
Pregunta::Pregunta(){
   char aux[MAX_LETRAS];
   nPreguntas = 0;
   ifstream archivo;
   archivo.open("preguntas.txt",ifstream::in);

   while(!archivo.eof()){
       //PREGUNTA
       //Comida de etiqueta <pregunta>
       archivo.getline(aux, MAX_LETRAS, '>');
       //Adquirir el texto de la pregunta
       archivo.getline(pregunta[nPreguntas], MAX_LETRAS, '<');
       //Comida de etiqueta </pregunta>
       archivo.getline(aux, MAX_LETRAS, '>');
       //RESPUESTA
       //Comida de etiqueta <respuesta>
       archivo.getline(aux, MAX_LETRAS, '>');
       //Adquirir el texto de la respuesta
       archivo.getline(respuesta[nPreguntas], MAX_LETRAS, '<');
       //Comida de etiqueta </respuesta>
       archivo.getline(aux, MAX_LETRAS, '>');
       nPreguntas++;
   }

   archivo.close();
}

void Pregunta::comenzar(){
   srand (time(NULL));
   while(true){
       int aleatorio = rand() % (nPreguntas-1);
       cout << "PREGUNTA: " << endl;
       cout << pregunta[aleatorio];
       cout << endl;
       cin.get();
       cout << "RESPUESTA: " << endl;
       cout << respuesta[aleatorio];
       cin.get();
       system("cls");
   }
}

void Pregunta::auxMuestra(){
   for(int i=0; i < nPreguntas; i++){
       cout << "PREGUNTA" << endl << pregunta[i];
       cout << endl << "RESPUESTA" << endl << respuesta[i] << endl;
   }
}


El problema está en el constructor de la clase Pregunta, donde se inicializa el array con preguntas y respuestas. Antes hice una traza de la variable nPreguntas y siempre coge una más de la que debe, lo que me cabrea bastante y es la razón por la que pregunto esto. Es decir, si el texto tiene 2 preguntas, nPreguntas vale 3,y así, en comenzar() fijaros que tengo que hacer módulo de nPreguntas-1 y no de nPreguntas, para que funcione correctamente.

Muchas gracias de antemano y un saludo.
#6
Hola, ando trasteando con el contenedor set de la STL de C++, y me he topado con algo que me está haciendo perder los nervios. Quiero definir el puntero a una función para decirle al set de qué manera debe ordenar los elementos que yo le introduzco. Hasta ahí bien, ¿no? Pues tengo este código, que he hecho a modo de ejemplo para explicarme mejor, no tiene utilidad práctica:

#include <iostream>
#include <set>

using namespace std;

class objeto{
private:
int id;
public:

objeto(int id){
this->id = id;
}

objeto(){
id = 0;
}

void setId(int id){
this->id = id;
}

int getId(){
return id;
}
};

using namespace std;

bool comp(objeto* a, objeto* b){
return a->getId() < b->getId();
}

int main(){

bool(*fn_pt)(objeto*,objeto*) = comp;
set<objeto*, bool(*)(objeto*,objeto*)> conj (fn_pt);

objeto * apuntador;
set<objeto*>::iterator it;
objeto a(35);
objeto b(17);
objeto c(34);
objeto d(18);
objeto e(44);
objeto f(1);
objeto g(42);

conj.insert(&a);
conj.insert(&b);
conj.insert(&c);
conj.insert(&d);
conj.insert(&e);
conj.insert(&f);
conj.insert(&g);

for(it = conj.begin(); it != conj.end(); it++){
apuntador = *it;
cout << apuntador->getId() << endl;
}

return 0;
}


Bien, comp es la función de comparación, y fn_pt el puntero a dicha función, que es la que le paso al set. Todo genial, ¿verdad? Compila perfecto, y devuelve en la salida los elementos ordenados por su Id, todo genial, de maravilla. Ahora hagamos el siguiente código:

#include <iostream>
#include <set>

using namespace std;

class Objeto{
private:
int id;
public:

Objeto(int id){
this->id = id;
}

Objeto(){
id = 0;
}

void setId(int id){
this->id = id;
}

int getId(){
return id;
}
};

bool comp(Objeto* a, Objeto* b){
return a->getId() < b->getId();
}
bool(*fn_pt)(Objeto*,Objeto*) = comp;

class Contenedor{

private:

set<Objeto*, bool(*)(Objeto*,Objeto*)> conj (fn_pt);

public:

void addObjeto(Objeto* o){
conj.insert(o);
}

void mostrarObjetos(){
Objeto* aux;
set<Objeto*>::iterator it;
for(it = conj.begin(); it != conj.end(); it++){
aux = *it;
cout << aux->getId();
}
}
};

int main(){

cout << "Hola =)" << endl;

return 0;
}


Pues señoras y señores, este código no funciona, y se me está averiando el cerebro de intentar averiguar por qué. Una vez que meto el set en los datos de la clase, me tira siempre el mismo error, que el puntero fn_pt a la función comp no es un tipo, y por tanto no puede compilar, ¡¿pero por qué pasa esto si en el código anterior funcionaba perfecto?! He probado a meterlo en la parte pública y tampoco, no entiendo ya por qué pasa esto.

Si alguien me consigue explicar por qué al definirlo dentro de una clase el set deja de funcionar con el puntero a la función de comparación, le estaré profundamente agradecido.

Muchas gracias y buenos días :).
#7
Hola, ¿podrías explicarme más sobre cómo usar esa librería para el propósito que busco?

Gracias y un saludo.
#8
Hola, estoy buscando una forma de que scanf() pueda leer un número arbitrario de entradas, es decir, que sin saber de antemano cuántos datos le van a entrar, pueda leerlos todos, ya sea mediante un bucle o como sea. La verdad es que no se me ocurre ninguna manera de hacerlo.

¿Alguna pista? Gracias




Ya lo he adivinado es con feof(stdin) en la consola. Mientras no se de feof(stdin) hay datos para leer. Gracias de todas formas.
#9
Electrónica / Re: Diodo laser amplificado
5 Mayo 2007, 10:07 AM
gracias por responder ;) pero lo que tu estas queriendo decir es que si uso lentes puedo aumentar el alcance pero perdiendo un poquitin de potencia no?

Salu2
#10
Compraros una ds que no es tan cara >:( >:(