|
Mostrar Temas
|
Páginas: [1]
|
1
|
Sistemas Operativos / Windows / Problema Windows 7 , aumento de la CPU
|
en: 25 Septiembre 2013, 15:04 pm
|
Buenas, tengo el siguiente problema, y es que al abrir administrador de tareas para ver el proceso inactivo del sistema, me sale que un 13% de la CPU esta siendo consumida constantemente por system, utilice el programa process explorer y vi que el uso desmesurado se debia a esto: ntoskrnl.exe!KeReleaseInStack Queued SpinLock+0x1e0 Aqui subo una imagen: https://www.dropbox.com/s/mrvly1lq5mq1ndk/CPU.png?mSi alguien consigue alguna solucion a este problema se lo agradeceria, ya que me incrementa mucho la temperatura y me paraliza bastante el portatil. He probado en modo seguro, y el error no se produce, por lo que tiene que ser por un driver o programa, la cosa es que nose cual puede ser y nose como puedo saber cual es.
|
|
|
2
|
Programación / ASM / Ensamblador MIPS cadena de caracteres
|
en: 10 Mayo 2013, 14:23 pm
|
Buenas, ¿como puedo hacer un procesamiento de cadena de caracteres, en el cual tengo que meter una cantidad maxima de 200 caracteres y tiene que Mostrar por pantalla el número de palabras, Mostrar por pantalla la cadena invertida y Pedir por teclado un carácter y decir cuantas veces se repite en la cadena?
Ejemplo de lo que tiene que hacer:
Introduce una cadena: Hola a todos Número de palabras: 3 Cadena invertida: sodot a aloh Introducir un carácter: a Número de repeticiones: 2
Gracias de antemano.
|
|
|
3
|
Programación / ASM / ENSABLADOR MIPS
|
en: 2 Mayo 2013, 19:20 pm
|
Buenas, tengo que hacer lo siguiente: implementar en lenguaje ensamblador del MIPS el producto escalar de 2 vectores. data # Segmento de datos tvector: .word 6 # Tamaño de los vectores res: .space 4 # Resultado del producto escalar vector1: .word 6,7,8,9,4,1 # Vector 1 vector2: .word 2,3,5,4,6,7 # Vector 2 Después de la ejecución del programa ejemplo, el resultado debe ser res=140 También se debe de poder modificar el resultador res. .data # Segmento de datos res: .space 4 # Resultado del producto escalar tvector: .word 6 # Tamaño de los vectores vector1: .word 6,7,8,9,4,1 # Vector 1 vector2: .word 2,3,5,4,6,7 # Vector 2
main: la $a0,vector1 # $a0 <-- dirección base del array vector1 la $a1,vector2 # $a1 <-- dirección base del array vector2 lw $a2,tvector # $a2 <-- tamaño del array = n li $a3,140 # $a3 <-- valor que le daremos a res sw $a3,res # $a3 <-- carga el contenido de la memoria en la dirección especificada de 32 bits en res jal ip # invoca rutina ip, guarda en $ra la dir. de vuelta move $a0, $v0 # escribe en consola el resultado (que ip dejó en $v0) li $v0, 1 syscall li $v0, 10 syscall ip: li $v0, # inicializa sum a 0. $v0 guardará el resultado que devuelve la rutina li $t3, 0 # $t3: índice de los elementos del array (i) ip1: bge $t3, $a3, res # sale cuando i >= res lw $t0, 0($a0) # $t0 <-- a0[i] lw $t1, 0($a1) # $t1 <-- a1[i] mul $a3, $t0, $t1 add $v0, $v1, $a3 # res <-- res + a0[i] * a1[i] addi $a0,$a0, 4 #incrementa los punteros $a0 addi $a1,$a1, 4 #incrementa los punteros $a1 addi $t3, $t3, 1 # i++ b ip1 # cierra bucle (salto incond. a ip1) ipx: jr $ra # retorna al invocador
como puedo aumentar la posicion del puntero que apunta a los vectores, esque no se me mueve?
|
|
|
4
|
Programación / Programación C/C++ / Horientacion Vertical y horizontal
|
en: 24 Febrero 2013, 14:24 pm
|
Buenas, estoy intentando hacer unas funciones que haga la colocacion de una palabra en el tablero. Los movimientos se deben indicar con el formato XY PALABRA, donde la primera coordenada (X) puede ser tanto una letra como un numero. Ejemplo: H8 BASE 8H CACTUS 10F CEREAL F10 BALANCE Si ponemos H8 BASE, la palabra BASE comenzara en H8 y se colocara en vertical sobre el tablero, mientras que con 8H BASE la casilla de origen sera la misma pero la palabra se colocara en horizontal. Se supondra que la sintaxis de la instruccion es correcta, es decir, que el usuario siempre introducira dos palabras separadas por un espacio y la primera correspondera a una coordenada, pero hay que comprobar que el numero de la coordenada este entre 1 y 15 y su letra entre la A y la O. En caso de que esto no se cumpla, o si alguna letra de la palabra se sale del tablero, se debe emitir el mensaje Error: Orden incorrecta y volver a mostrar el tablero y el rack. Si alguna de las letras de la segunda parte (la palabra) estan en minuscula, se pasara a mayuscula para guardar el movimiento. Estoy intentando hacer que una funcion que devuelve una coordenada a partir de un string (por ejemplo,H10). La orientacion de la palabra (horizontal o vertical) se devuelve por referencia. En caso de que los valores del string sean incorrectos, la coordenada devuelta debe tener los valores fila=-1 y columna=-1. Tambien otra funcion que haga que construye y devuelve un movimiento a partir de una orden,por ejemplo, H8 CACTUS. Esta funcion debe separar los campos por el caracter de espacio y llamar a leerCoordenada con la primera parte. El resultado de la funcion es un movimiento, con su origen, orientacion y palabra. Si la orden no se corresponde con un movimiento, la coordenada origen debe tener los valores fila=-1 y columna=-1. Lo de fila=-1 y columna=-1 no entiendo mucho a lo que se refiere. Aqui esta lo que tengo por ahora: #include <iostream> #include<string.h> using namespace std;
const char LETRA[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O'}; const char NUMERO[]={'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15'}; // Orientacion de la palabra (si es horizontal o vertical) enum Orientacion {HORIZONTAL, VERTICAL}; const char PALABRA[]; int x,y; // Caracter para indicar que una casilla no tiene ninguna letra const char CASILLAVACIA=' '; typedef char Letra; // Registros struct Coordenada { int fila; int columna; };
struct Movimiento { Coordenada origen; Orientacion orientacion; string palabra; }; Coordenada leerCoordenada(string coord, Orientacion &orientacion) //XY PALABRA // X PUEDE SER UNA LETRA O UN NUMERO, PERO LE DARE A LOS NUMEROS COMO VALOR '1','2'... HASTA '15'
if (orientacion==HORIZONTAL && orientacion==LETRA[]) //hacia la derecha { if(orientacion==LETRA[]) //hay que hacer una cadena que se mueva hacia la derecha for (int i=0; i<kFILAS; i++){ cout<<Letra<<Numero<<CASILLAVACIA<<PALABRA[]; } if (orientacion==VERTICAL && orientacion==NUMERO[]) //hacia abajo { if(orientacion==LETRA[]) //hay que hacer dos bucles, para que se desplace las letras hacia abajo for (int i=0; i<kFILAS; i++){ for (int j=0; j<kCOLUMNAS; j++){ cout<<Numero<<Letra<<CASILLAVACIA<<PALABRA[]; }
|
|
|
5
|
Programación / Programación C/C++ / SUPERINDICE
|
en: 24 Febrero 2013, 13:46 pm
|
Buenas, tengo que hacer el superindice de las letras del abecedario, y tengo mas o menos esto: #include <iostream> #include <string.h> using namespace std; main(){
//A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z // Array para imprimir un superindice por el terminal. Ejemplo para imprimir el numero 1: cout << SUPERINDEX[1]; const string SUPERINDEX[]={"\u2070","\u00B9","\u00B2","\u00B3","\u2074","\u2075","\u2076","\u2077","\u2078","\u2079"};
//En PUNTUACIONLETRAS[], te indica en orden el valor de cada letra. Y cada uno de esos valores corresponde a un //superindice que viene dado por SUPERINDEX[]. Si el valor de por ejemplo V es 4, su superinidice seria el cuarto //elemento de SUPERINDEX \u00B3
char Letra; cout<<"Introduce letra"<<endl; cin>>Letra;
switch (Letra) { case 'A': case 'E': case 'I': case 'L': case 'N': case 'O': case 'R': case 'S': case 'T': case 'U': cout<<Letra<<SUPERINDEX[0]; break; case 'D': case 'G': cout<<Letra<<SUPERINDEX[1]; break; case 'B': case 'C': case 'M': case 'P': cout<<Letra<<SUPERINDEX[2]; break; case 'F': case 'H': case 'V': case 'W': case 'Y': cout<<Letra<<SUPERINDEX[3]; break; case 'K': cout<<Letra<<SUPERINDEX[4]; break; case 'J': case 'X': cout<<Letra<<SUPERINDEX[7]; break; case 'Q': case 'Z': cout<<Letra<<SUPERINDEX[9]; break; } } Lo que quiero que haga es que si por ejemplo pongo la letra A me salga al lado un 1 pero en forma de superindice.
|
|
|
6
|
Programación / Programación C/C++ / Ayuda lenguaje C pequeña duda
|
en: 11 Febrero 2013, 21:42 pm
|
Buenas, tengo el siguiente codigo y lo que quiero es que me lea el menú y si le doy a la letra q se me finalice el programa (que no se porque no me va cuando le doy a una letra pero si cuando le pongo un número) y que si por ejemplo le doy a la z o cualquier numero que no sea ni el 1 ni el 2 que me salga "Error: Opcion incorrecta" y vuelva otra vez a pedirme la opción, el problema es que me sale un bucle infinito y no se porque y lo que quiero es que me salga "Error: Opcion incorrecta" y vuelva a pedirme otra vez la opcion hasta que de al 1,2 o q. #include <iostream> using namespace std; main(){
int opcion; do {
cout<<"1- Nueva partida"<<endl; cout<<"2- Cargar partida"<<endl; cout<<"q- Salir"<<endl; cout<<"Opcion:"<<endl; cin>>opcion;
switch (opcion){ case 1: cout<<"1- Nueva partida"<<endl;
break; case 2: cout<<"2- partida"<<endl; break;
default: cout<<"Error: Opcion incorrecta"<<endl;
}
}while(opcion!=q); }
|
|
|
|
|
|
|