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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación C/C++ / Error programa que cambia un número de base 10 a cualquier base en: 12 Mayo 2012, 00:14 am
Hola, solicito su ayuda para poder identificar el problema de este programa en C que cambia un numero de base 10 a cualquier base tanto parte entera como parte fraccionaria. Lo hace mediante dos funciones una que se encarga de la conversión de la parte entera y otra que se encarga de la conversión de la parte fraccionaria. Sin embargo en la función que convierte la parte fraccionaria es en la que se encuentra el problema y no he podido resolverlo agradecería grandemente su ayuda.

Les dejo el programa para que le den un vistazo:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

/*Variables globales*/
int ndatos,base,precision;


/*Funciones de conversión*/
void conv_ent(int *p,int num,int base);
void conv_frac(int *p,double num,int base,int pre);


/*Funciones de lectura y escritura*/
int datload(FILE *file,double *t);
int datwrite(FILE *file,int **t,int Cuanto);

int main(){

/*Dos apuntadores tipo FILE para los archivos a leer y a escribir*/
FILE *file_in,*file_out;

/*Variable para nombrar al archivo de salida*/
char archivo1[50];

/*Variables para calculos*/
double *x,pfrac,pentera,cuantos;

/*Variables de conversion a enteros y triple apuntador para almacenar los digitos de todos
los números a convertir */
int parte_ent,***digitos,cuanto,i;

printf("¿Cuantos numeros quiere leer\?\n");
scanf("%d",&ndatos);

/*Se dimensiona el apuntador para almacenar los numeros que se quieren leer*/
x=(double*) malloc(ndatos*sizeof(double));

/*Lectura de datos*/
datload(file_in,x);

/*Se dimensiona las ndatos estructuras que se van a necesitar*/
digitos=(int***) malloc(ndatos*sizeof(int**));

printf("Introduzca la base a la que quiere convertir los numeros\n");
scanf("%i",&base);

printf("Diga cuantos digitos se calcularan para la parte fraccionaria\n");
scanf("%i",&precision);

printf("Introduzca el nombre del archivo donde se escribiran los datos\n");
scanf("%s",archivo1);


file_out = fopen (archivo1,"w");
/*Si el archivo se pudo crear se procede a hacer los cálculos*/
        if(file_out){
fprintf(file_out,"La representacion en base %i de los numeros es:\n",base);


/*Definición de Funciones*/

int datload(FILE *file,double *t);{
     char archivo[50];
     int i;
     printf("Introduzca el nombre del archivo desde donde se leeran los datos\n");
     scanf("%s",archivo);
     file = fopen(archivo,"r");
     
     if(file){
              for (i=0;i<ndatos;i++)
                  fscanf(file,"%lf\n",t+i);
              printf("El archivo ha sido cargado\n");
             }               
     else{
            printf("\nEL archivo no existe\n");
            system("pause");
            return 0;
         }
     
     
     fclose(file);
     return 0;
     
}

int datwrite(FILE *file,int **t,int Cuanto){
     
int j,k;

      for(j=Cuanto-1;j>0;j--)
fprintf(file,"%i",t[0][j]);
fprintf(file,".");
for(k=0;k<precision;k++)
fprintf(file,"%i",t[1][k]);
fprintf(file,"\n");
     
return 0;
     
}


void conv_ent(int *p,int num,int base){
int i;
for(i=0;num>0;i++){
p[i]=num%base;
num/=base;
}
}

void conv_frac(int *p,double num,int base,int pre){
int i,k;
double h=0.0;
for(i=1;i<=pre;i++){
for(k=0;k<base;k++){
if(num>(h+(k/pow(base,i))) && num<=(h+((k+1)/pow(base,i)))){
p[i-1]=k;
h+=(k/pow(base,i));
break;
}
}
}
}

12  Programación / Programación C/C++ / Programa en C que cambie de base 10 a cualquier base y viceversa en: 30 Abril 2012, 02:28 am
Hola programadores en C la cuestion es la siguiente necesito hacer un programa en C que como dice el asunto del mensaje, teniendo un número en base 10 lo pueda cambiar a cualquier base y viceversa.
Les mostraré lo que he llevado hasta ahora para que me puedan decir porque no ha funcionado;


Código:
#include <stdio.h>
#include <stdlib.h>
void conversion (int num, int base);
int main(int argc, char *argv[])
{
  int num,base,coci,i,residuo,k; 
  printf("Programa que convierte un numero de base 10 a cualquier base");
  printf("Escribe el numero de base 10");
  scanf("%d",&num);
  printf("Escribe a la base que se desea convertir");
  scanf("%d",&base);
  k=conversion(num, base);
  for(i=k-1;i>0;i--){
                     printf("%d",residuo);
                     }
  system("PAUSE");
  return 0;
}
void conversion (int num, int base);
{
     int i;
     for(i=0;coci>0;i++){
                         coci=num/base;
                         residuo[i]=num%base;
     }
Como se han podido dar cuenta dicho programa solo se encuentra a la mitad en cuanto se refiere cambiar de base 10 a cualquier otra base, también podrán ver que se requiere el uso de funciones aparte de main, ya que así me han pedido el programa; la idea general del programa es que con los valores que pido en la función main, los puede utilizar en la nueva función "conversion", para obtener los residuos de las divisiones sucesivas y guardarlos en un arreglo residuos y al obtener y guardar dichos valores de la función "conversion" entonces hacer que los use main para imprimirlos de forma regresiva como se hace para obtener la  base 10 a cualquier base. Como verán esto ha sido solo la mitad del programa pero en serio agradecería que me mencionarán mis errores, espero haberme dado a entender gracias de antemano.
13  Comunicaciones / Redes / Cambiar IP Fija de ISP en Ubuntu 10.10 en: 18 Julio 2011, 21:27 pm
Hola, solicito de nuevo su ayuda por el siguiente inconveniente.
Utilizo un Sistema Operativo Ubuntu 10.10, hace poco lo instalé y no se usarlo muy bien, el problema es que mi ISP (Cablecom), en su servicio de 2GB de ancho de banda, no ofrece el servicio de utilizar una IP pública dinámica, en cambio me da un IP pública estática, la cual me causa problemas al querer descargar de servidores de archivos como: Megaupload, RapidShare, etc. Así como para hacer uso del programa Ares, etc.
Tengo en el mismo disco duro el Sistema Operativo Windows 7, y dicho problema lo pude "solucionar", utilizando el programa HotSpot Shield, el cuál cambiaba mi IP pública, y podía cambiarla cuando yo quisiera. Lamentablemente dicho programa no lo he encontrado disponible para Ubuntu, y quisiera dejar de utlizar Windows 7.
He estado investigando un poco sobre como poder arreglar este problema, sin embargo una de las opciones que encontré; es la de utilizar servidores proxy, cada vez que quiero descargar algo. Y no me parece algo fiable.
Otra opción que encontré; es la de utilizar mi módem(que es mejor dicho un router) con el protocolo DHCP, para que asignara arbitrariamente una dirección IP "pública" a cada equipo conectado a él, cada determinado tiempo. Ya que sí asigna una IP "privada" diferente a cada equipo conectado a él. Lo que no sé, es como hacerlo, ya que existen videotutoriales para hacer dicha acción pero conviritendo una computadora en un servidor para que utilice dicho protocolo.
Les pido su ayuda para resolver este problema ya que al usar el router con el protocolo DHCP, no sabría como podría resultar, ni como se administraría. También no se si pueda ser posible esta solución, o como se podría resolver el problema en general.
Gracias.
14  Sistemas Operativos / GNU/Linux / Problema con Comando netstat en: 12 Julio 2011, 19:44 pm
Pido la ayuda de los expertos por la siguiente situación:
Yo tengo un S.O. Ubuntu 10.10, el problema es que cuando abro una terminal, y escribo netstat debería darme un resultado como éste:



Me aparece un resultado parecido cuando se esta procesando en la terminal de Ubuntu, pero inmediatamente desaparece y me muestra un resultado como éste:



Pido su ayuda, para que me expliquen ¿Porqué sucede esto?, y como puedo solucionarlo par que me entregue un resultado normal.
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines