elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: [1]
1  Programación / ASM / Traducción de código en C a IA32 en: 15 Diciembre 2010, 10:58 am
Hola chicos me gustaría que me miraséis este fragmento de código que me ha tocado traducir en un examen de la carrera. Creo que tengo algún error pero no estoy seguro.

El código en C es:

Código:
#define MAX 15
int main ()
{
short i, cont;
int vector[MAX];


cont = 1;
for (i = 0; i < MAX || cont <10; i++){


if ( i - cont == 0) { vector [i] = cont;
                            cont++;
                          }
else { vector[i] = i; }

}


Y mi traducción a ensamblador ha sido:

Código:
.data
MAX = 15
.bss
.comm vector,4*MAX,4
.comm i,2,2
.comm cont,2,2

main:

movw $1, cont
movw cont, %ax

movw $0, i
movw i, %si

for:

cmpw %si, MAX
jg ok
cmpw %ax, $10
jle endfor

ok:

if:

movw %si, %bx
subw %ax, %bx
cmpw %bx, $0
jne else
movw %ax, vector(,%si,4)
incw %ax
incw %si
jmp for

else:

movw %si, vector(,%si,4)
incw %si
jmp for

endfor





Me gustaría que me dijerais que tal lo veis Gracias
2  Programación / Programación C/C++ / Re: Introducir un nombre en un vector en: 18 Noviembre 2010, 06:31 am
Ey chicos! gracias! lo que hice fue, en vez de usar 1 sola función, usar 2, leer_alumno y leer_lista, así que en parte do-while hice lo que has mencionado, inicializar la i a 0 en cada vuelta del for  :D

Gracias!
3  Programación / Programación C/C++ / Re: Introducir un nombre en un vector en: 16 Noviembre 2010, 23:08 pm
Hola Littlehorse, gracias por prestarme un poquito de atención  :D, pero tengo que decirte que no nos dejan usar fgets ni sscanf...solamente : printf,scanf,for,while,do-while,if-else,vectores,matrices y funciones. Todo esto que te he dicho engloba el temario del cuatrimestre.

Me recomiendas que en todos los scanf añada un %*c para evitar posibles saltos de linea?
4  Programación / Programación C/C++ / Introducir un nombre en un vector en: 16 Noviembre 2010, 19:04 pm
Veréis, necesito leer un nombre e introducirlo a un vector, son las condiciones del proyecto, no nos dejan usar la librería strings. Os muestro mi función leer_alumno y me decís que puede pasar, luego os muestro un ejemplo de ejecución.

Código
  1. void leer_persona (tlista *p)
  2. {
  3.    talumno alumno;
  4.     p->num_pers = 0;
  5.    int i, j = 0, n;
  6.    printf ("\nIntroduce la cantidad de alumnos que quieres guardar. Recuerda que el maximo es 200 alumnos: ");
  7.    scanf("%d", &n);
  8.    if (n < MAXALUMNO) {// Se ha de cumplir que el número de alumnos a introducir sea menor o igual a 200
  9.  
  10.      for (i = 0; i < n; i++)
  11.          {
  12.              printf("\nInformacion del ALUMNO%d\n", i+1);
  13.              printf("Introduce informacion con el siguiente formato(Nombre_apellidos:DNI 00000000X:anyo_ingreso):\n");  
  14.              //ENCONTRAR OTRA MANERA DE LEER EL NOMBRE
  15.      do{
  16.                 scanf("%c", &alumno.nombre[j]);
  17.                 j++;
  18.              }while (alumno.nombre[j-1] != ':' && j-1 < 20);
  19.              scanf("%8d%1c:%4d", &alumno.num_dni, &alumno.letra_dni, &alumno.fecha_ingreso);
  20.      printf("\n");
  21.              p->lista[i] = alumno;
  22.          } p->num_pers = n;
  23.    }
  24.    else {printf("El máximo de alumnos que puedes introducir es 200.\n");}
  25. }

La variable tlista p está inicializada en el main (), el programa es un menú con diferentes opciones, y en cada case va una función. Un ejemplo de ejecución para que veáis que es lo que puede fallar:

Código:
BIENVENIDOS AL PROGRAMA DE GESTIÓN DE EXPEDIENTES       

Escoge una operación a realizar:

 1. Introducir los datos de los expedientes.
 2. Mostrar todos los datos de los expedientes.
 4. Añadir o modificar el expediente de un alumno.
 5. Eliminar el expediente de un alumno a partir de su DNI.
 6. Mostrar los datos (Nombre, DNI y fecha de ingreso) de los alumnos que más tiempo llevan en la escuela.
 7. Mostrar el expediente de un alumno a partir de su DNI.
 13. Salir del programa.

Su opción es:1

Introduce la cantidad de alumnos que quieres guardar. Recuerda que el maximo es 200 alumnos: 2

Informacion del ALUMNO1
Introduce informacion con el siguiente formato(Nombre_apellidos:DNI 00000000X:anyo_ingreso):
alejandro:39427559Q:1992


Informacion del ALUMNO2
Introduce informacion con el siguiente formato(Nombre_apellidos:DNI 00000000X:anyo_ingreso):
fernando:11111111Q:1993

Escoge una operación a realizar:

 1. Introducir los datos de los expedientes.
 2. Mostrar todos los datos de los expedientes.
 4. Añadir o modificar el expediente de un alumno.
 5. Eliminar el expediente de un alumno a partir de su DNI.
 6. Mostrar los datos (Nombre, DNI y fecha de ingreso) de los alumnos que más tiempo llevan en la escuela.
 7. Mostrar el expediente de un alumno a partir de su DNI.
 13. Salir del programa.

Su opción es:2

alejandro:39427559Q:1992
:11111111Q:1993

Como vereis, cuando uso la función mostrar_datos, que muestra todos los expedientes guardados en la lista, el nombre del segundo no me lo muestra, creo que es porque ya directamente no entra en el while porque se cumple la condición de != ':' . Así que deduzco que el error viene por la función leer_alumnos y en concreto en la parte en la que leo el nombre del alumno y lo introduzco al vector.

Por si es necesario, la función mostrar datos es la siguiente:
Código
  1. talumno mostrar_datos(tlista *p){
  2.                             int i, k=0;
  3.                             for ( i = 0; i < p->num_pers ; i++) {
  4.                                 while (p->lista[i].nombre[k] != ':'){
  5. printf("%c", p->lista[i].nombre[k]);
  6. k++;
  7. }
  8.                                 printf(":%d%c:%d\n", p->lista[i].num_dni, p->lista[i].letra_dni, p->lista[i].fecha_ingreso); //Mostrar DNI y fecha de ingreso
  9.  
  10. } // Cerramos el for
  11. printf("\n");
  12.                                 } //Cerramos la función

Siento si no me he sabido explicar del todo bien, la asignatura no se me da mal, este es el primer proyecto importante que tengo y me gustaría que me saliera bien, si pudierais ayudarme con esta pequeña duda sería muy importante, porque me permitiría avanzar.
5  Programación / Programación C/C++ / Re: leer frase con scanf en: 14 Noviembre 2010, 16:02 pm
En cualquier ingeniería no te dejarán usar la función gets durante el enseñamiento...así que otra opción es usar un do-while y un vector
6  Foros Generales / Foro Libre / Re: ¡Vuestros Ordenadores! en: 22 Agosto 2010, 10:49 am
Hola, no es aún mi ordenador pero en breves (este martes lo será), tampoco dispongo de un presupuesto muy alto así que fuí a la tienda, en concreto a PC BOX y pedí que me hicieran un presupuesto más o menos con lo que yo pedía. La cosa quedó así:

- Caja ST NOX Sapphira LX negra
- Fuente alimentación 600W NOX
- Procesador Intel Core i5 750 (8M Cache, 2.66 GHz)
- Refrigerador Arctic Cooling Freezer 7 Pro
- Placa base Intel Core i3/i5/i7 GIGABYT.
- Memoria 2GB DDR3 1333 Kingston (x2..osease 4GB)
- tarjeta Gráfica 1GB ATI Powercolor HD5750 PCX DDR5 HDMI
- Disco Duro 500 GB Maestro de sistema SATA2 SAMSUNG 7200 16MB
- Regravadora  LG DVD-R/+RW GH22NS40 22X SATA NEGRA
- Lector multitargeta  INT negro coolbox CR400
- Monitor 21.6'' LG W2243S-PF TFT 19
- S.O Windows 7 Home Premium 32/64 bits.
-----
y en principio, según el presupuesto que me hicieron el teclado y el ratón serían:

- Teclado Innobo standard negro
- Ratón Innobo óptico negro

Y el presupuesto era de -> 1.059 € (IVA añadido)

Pero aquí he hecho unas modificaciones y me quedará así:

- Teclado Logitech multimedia K300 negro USB
- Ratón Logitech óptico M115 negro USB

Con lo cuál el precio es bastante probable que ascienda a unos 1.100 €


Me gustaría saber que piensan sobre este ordenador. Gracias  :D
7  Foros Generales / Foro Libre / Sobremesa + netbook, o portátil? en: 25 Julio 2010, 11:49 am
La pregunta es, con un presupuesto de unos 1400-1500 euros, para los estudios (uni), qué me aconsejáis: un buen sobremesa por partes y un ultraportátil, o un pepino de laptop?
8  Media / Multimedia / Procesamiento de audio y video en: 26 Abril 2010, 13:30 pm
Hola, me gustaría saber que software se usa actualmente para el procesamiento de audio y de video a un nivel profesional.


Gracias.
9  Programación / Programación General / Re: ¿Qué lenguajes de programación usas? en: 14 Febrero 2010, 21:56 pm
Solamente se (y bastante poco) PHP, me inicié con él en este mundo, y a ver si consigo perfeccionar la técnica cuando tenga tiempo.
10  Foros Generales / Foro Libre / Re: ¡Vuestros Ordenadores! en: 14 Febrero 2010, 21:10 pm
Yo dispongo de un laptop Acer Aspire 5920 G , estas navidades cumplió 2 añitos, y ya estoy pensando en el próximo sobremesa que me compraré.

Ahí van las especificaciones:

Intel Core 2 Duo processor T7500 (2.2 GHz , 800 Mhz FSB, 4MB L2 cache)
15.4'' WXGA Acer CrystalBrite LCD (8ms /220 nit)
Up to 1280MB Nvidia Geforce 8600M GS Turbocache
2 GB DDR2 (RAM)
250 GB HDD
1 GB of Intel Turbo Memory

basicamente.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines