|
211
|
Programación / ASM / traducir ensamblador a codigo maquina
|
en: 26 Septiembre 2013, 23:42 pm
|
Saludos tengo que sacar el codigo maquina de este programa en ensamblador
pero tengo una instruccion que no entiendo como va
0806 BCD0 DS.B 1 .... .... .... E017 ?????? lbeq FIN0 ; digito BCD0 .... .... ...
FIN0 stab BCD0
pero no se cual es el codigo correcto que va en los ????? por que por un lado lbeq tiene codigo maquina 18 27 qq rr y stab tiene codigo maquina 7b hh ll, yo supuse que como al lado de lbeq tiene FIN0 pues que tenia que brincarme hasta esa intruccion. ya intente leer manuales de esto pero no los comprendo, si alguien me pudiera ayudar se lo agradeceria mucho
|
|
|
212
|
Programación / Programación C/C++ / problema con getc()
|
en: 26 Septiembre 2013, 20:19 pm
|
Saludos tengo el siguiente codigo que me tiene que leer un archivo de texto e imprimir cuantas veces aparece un caracter, para esto uso el fgetc para que vaya leyendo 1 por 1 pero no me imprime correctamente #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 100 int main() { int i,tam,cont; char nombre[MAX],archivo[MAX],car,opcion,*ptr; FILE *fd,*ap; printf("Dame el nombre del archivo: "); if ((ptr = strchr(nombre , '\n')) != NULL ) *ptr = '\0'; sprintf(archivo ,"F:\\%s.txt",nombre ); ap = fopen("Archivo_producto","w"); if((fd = fopen(archivo ,"r"))!=NULL ) { printf("a) Comprimir archivo\n"); printf("b) Descomprimir archivo\n"); { case 'A':case'a': cont = 0; for(i=0;i <= tam;i++) { if((car = fgetc(fd ))== 'd'); cont++; } break; default: printf("La opcion no existe\n"); } } else printf("No se pudo abrir el archivo"); return 0; }
de antemano gracias
|
|
|
213
|
Programación / Programación C/C++ / problema con sprintf()
|
en: 25 Septiembre 2013, 19:02 pm
|
Saludos Tengo el siguiente programa que le pide al usuario que ingrese el nombre de cualquier archivo que desee abrir y una vez que teclea el nombre se lo asigna a un arreglo que se llama archivo, para esto uso el sprintf, pero no se cual es el problema que aunque le ingreso un archivo que si existe me aparece que no se pudo abrir archivo #include <stdio.h> #include <stdlib.h> #define MAX 100 int main() { int i,j; char nombre[MAX],archivo[MAX]; FILE *fd; printf("Dame el nombre del archivo: "); sprintf(archivo ,"F:\\%s.txt",nombre ); if((fd = fopen(archivo ,"r"))!=NULL ) { printf("Si se pudo abrir archivo"); } else printf("No se pudo abrir el archivo"); return 0; }
de antemano gracias
|
|
|
214
|
Programación / Programación C/C++ / serie de numeros en fichero
|
en: 23 Septiembre 2013, 22:37 pm
|
Saludos tengo el siguiente codigo que mediante un for me tiene que imprimir 1000 numeros inversamente ordenados en un archivo con el mismo nombre, el problema es que me imprime basura en el archivo y no tengo idea de por que?? #include <stdio.h> #include <stdlib.h> int main() { int i; FILE *fd; if((fd = fopen("F:\\1000-Inversamente Ordenados.txt","w"))!=NULL ) { for(i=1000;i > 0;i--) { fwrite("\n",sizeof(int),1,fd ); } } else printf("No se pudo crear el archivo"); return 0; }
de antemano gracias
|
|
|
215
|
Programación / Programación C/C++ / Re: analisis codigos de ordenamiento
|
en: 22 Septiembre 2013, 19:33 pm
|
Saludos rir3760 ya le quite al codigo la libreria unistd.h, ya entendi que no es necesario usarla, pero con respecto al feof no tengo idea de que otra manera sustituirlo.le hice unos cambios al codigo para que en vez de que me imprimiera el vector ordenado en el archivo me imprima el numero de intercambios que se hacen en el metodo de ordenamiento pero me imprime una cantidad que no es en un arreglo desordenado me dice que solo necesita un intercambio #include <stdio.h> #include <stdlib.h> void Ordenacion_Burbuja(int v[],int n,FILE *fd); void analizar_Burbuja(char nombreArchivo[],FILE *fd,int n); int main() { FILE *fd; if((fd = fopen("F:\\Analisis_algoritmos.txt","w"))!=NULL ) {/* analizar_Burbuja("5-Ordenados",fd,5); analizar_Burbuja("10-Ordenados",fd,10); analizar_Burbuja("100-Ordenados",fd,100); analizar_Burbuja("1000-Ordenados",fd,1000); analizar_Burbuja("10000-Ordenados",fd,10000); analizar_Burbuja("100000-Ordenados",fd,100000); analizar_Burbuja("1000000-Ordenados",fd,1000000);*/ analizar_Burbuja("5-Desordenados",fd,5);/* analizar_Burbuja("10-Desordenados",fd,10); analizar_Burbuja("100-Desordenados",fd,100); analizar_Burbuja("1000-Desordenados",fd,1000); analizar_Burbuja("10000-Desordenados",fd,10000); analizar_Burbuja("100000-Desordenados",fd,100000); analizar_Burbuja("1000000-Desordenados",fd,1000000);*/ } else printf("No se pudo leer archivo"); return 0; } void Ordenacion_Burbuja(int v[],int n,FILE *fd) { int i,j,aux,intercambio=0; for(i=1;i < n;i++) { for(j=0;j < n-i;j++) { if(v[j] > v[j+1]) { aux = v[j+1]; v[j+1] = v[j]; v[j] = aux; intercambio++; } } } fprintf(fd ,"El numero de intercambios es %d",intercambio ); } void analizar_Burbuja(char nombreArchivo[],FILE *fd,int n) { int i; FILE *entrada; int *arreglo; char ruta[50]; sprintf(ruta ,"F:\\%s.txt",nombreArchivo ); if((entrada = fopen(ruta ,"r"))!=NULL ) { arreglo = (int*)malloc(n *sizeof(int)); i = 0; { fscanf(entrada ,"%d",&arreglo [i ]); i++; } Ordenacion_Burbuja(arreglo,n,fd); } else printf("No se pudo abrir archivo"); }
de antemano gracias
|
|
|
216
|
Programación / Programación C/C++ / Re: analisis codigos de ordenamiento
|
en: 21 Septiembre 2013, 22:48 pm
|
saludos rir3760 le hice algunos cambios al codigo le puse que me leyera los elemento que tengo en un archivo de texto y me los guardara en un arreglo que luego le voy a pasar a la funcion Ordenacion_burbuja para que me los ordene y en esa misma funcion con un fwrite le digo que me imprima en otro archivo el arreglo ya ordenado el problema es que me imprime basura en el archivo Analisis_algoritmos, que es el que cree para que se escribiera en el #include <stdio.h> #include <stdlib.h> #include <unistd.h> void Ordenacion_Burbuja(long v[],long n,FILE *fd); void analizar_Burbuja(char nombreArchivo[],FILE *fd,long n); int main() { FILE *fd; if((fd = fopen("F:\\Analisis_algoritmos.txt","w"))!=NULL ) {/* analizar_Burbuja("5-Ordenados",fd,5); analizar_Burbuja("10-Ordenados",fd,10); analizar_Burbuja("100-Ordenados",fd,100); analizar_Burbuja("1000-Ordenados",fd,1000); analizar_Burbuja("10000-Ordenados",fd,10000); analizar_Burbuja("100000-Ordenados",fd,100000); analizar_Burbuja("1000000-Ordenados",fd,1000000);*/ analizar_Burbuja("5-Desordenados",fd,5);/* analizar_Burbuja("10-Desordenados",fd,10); analizar_Burbuja("100-Desordenados",fd,100); analizar_Burbuja("1000-Desordenados",fd,1000); analizar_Burbuja("10000-Desordenados",fd,10000); analizar_Burbuja("100000-Desordenados",fd,100000); analizar_Burbuja("1000000-Desordenados",fd,1000000);*/ } else printf("No se pudo leer archivo"); return 0; } void Ordenacion_Burbuja(long v[],long n,FILE *fd) { int i,j,aux; for(i=1;i < n;i++) { for(j=0;j < n-i;j++) { if(v[j] > v[j+1]) { aux = v[j+1]; v[j+1] = v[j]; v[j] = aux; } } } } void analizar_Burbuja(char nombreArchivo[],FILE *fd,long n) { int i; FILE *entrada; long *arreglo; char ruta[50]; sprintf(ruta ,"F:\\%s.txt",nombreArchivo ); if((entrada = fopen(ruta ,"r"))!=NULL ) { arreglo = (long*)malloc(n *sizeof(long)); i = 0; { fscanf(entrada ,"%ld",&arreglo [i ]); i++; } Ordenacion_Burbuja(arreglo,n,fd); } else printf("No se pudo abrir archivo"); }
de antemano gracias
|
|
|
217
|
Programación / Programación C/C++ / Re: imprimir basura
|
en: 21 Septiembre 2013, 00:07 am
|
Saludos eferion ya pude por fin descubrir cual era el error, y es uno bien tonto porque cuando declare el vector lo declare como v[10] cuando en realidad le estaba diciendo que queria un vector con 11 elementos, que idiota!! #include <stdio.h> #include <stdlib.h> void Shell_Sort(int v[],int n); int main() { int v[11],i,n; printf("Dame el numero de elementos del vector: "); for(i=0;i < n;i++) { printf("Dame el elemento %d\n",i +1); } Shell_Sort(v,n); for(i=0;i < n;i++) return 0; } void Shell_Sort(int v[],int n) { int i,j,k,aux,m; k = n/2; for(i=0;i < k;i++) { for(j=i+k;j < n;j+=k) { m = j; while(m > i) { if(v[m] < v[m-k]) { aux = v[m]; v[m] = v[m-k]; v[m-k] = aux; } m-=k; } } } }
gracias de todos modos
|
|
|
218
|
Programación / Programación C/C++ / Re: imprimir basura
|
en: 20 Septiembre 2013, 16:38 pm
|
el codigo es el siguiente: void ordenamiento(int v[],int n) { int i,j,k; k = n/2; for(i=0;i < 1;i++) { for(j=i+k;j < n;j=j+k) { if(v[i] > v[j]) { aux = v[i]; v[i] = v[j]; v[j] = aux; }*/ } } }
|
|
|
219
|
Programación / Programación C/C++ / imprimir basura
|
en: 20 Septiembre 2013, 06:01 am
|
Saludos tengo el siguiente arreglo de 11 elementos 74,14,21,44,38,97,11,78,65,88,30 y quiero que me imprima el primer elemento (74), el quinto (97) y el 30 que es el ultimo, todo esto porque estoy empezando un metodo de ordenamiento pero no lo he terminado, el problema es que aunque si me imprime el primero y el quinto en el ultimo me imprime basura, en vez de imprimir el 30 me imprime 31 y no se por que void arreglo(int v[],int n) { int i,j,k; k = n/2; for(j=0;j <= k;j+=k) { if(v[j] < v[j+k]) { } else { } } }
de antemano gracias
|
|
|
220
|
Programación / Programación C/C++ / Re: analisis codigos de ordenamiento
|
en: 20 Septiembre 2013, 02:27 am
|
xiruko yo tambien pensaba que con la funcion rand() seria todo mas facil, pero el profesor me dijo que tengo que utilizar archivos ordenados, inversamente ordenados y aleatorios, de 10, 100,1000,10000,100000,1'000,000, y ps como las cantidades son tan grandes no puedo ingresarle numero por numero y como son ordenadas y no solo aleatorias no puedo usar el rand(),voy a tener que usar archivos, pero yo todavia estoy muy verde en eso. Estaba pensando que en un archivo.txt meterle los numeros y despues irlos leyendo o algo asi pero la verdad no se muy bien como le voy a hacer Creo que la cosa va mas o menos asi: #include <stdio.h> #include <stdlib.h> #include <unistd.h> typedef struct { int numero; }Arreglo; void Ordenacion_Burbuja(int v[],int n); int main() { FILE *fd; Arreglo arreglo[5]; if((fd = fopen("F:\\Analisis_algoritmos","r"))!=NULL ) { Ordenacion_Burbuja(arreglo,5); Ordenacion_Burbuja(arreglo,10); Ordenacion_Burbuja(arreglo,100); Ordenacion_Burbuja(arreglo,1000); Ordenacion_Burbuja(arreglo,10000); Ordenacion_Burbuja(arreglo,100000); Ordenacion_Burbuja(arreglo,1000000); } return 0; } void Ordenacion_Burbuja(int arreglo[],int n) { int i,j,aux; for(i=1;i < n;i++) { for(j=0;j < n-i;j++) { if(v[j] > v[j+1]) { aux = v[j+1]; v[j+1] = v[j]; v[j] = aux; } } } for(i=0;i < MAX;i++) }
gracias por su ayuda
|
|
|
|
|
|
|