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ú

Temas - ERIK546

#1
Hola, necesito de la ayuda de los expertos. Resulta que ocupo ejecutar los siguientes archivos en una laptop de 64 bits (instalador y un controlador).

Se logran instalar en la computadora; sin embargo no es posible ejecutarlos (El programa no responde).

Mi pregunta es la siguiente: ¿Es posible que funcione un controlador y un programa para 32 bits en un computadora de 64 bits en Windows 8.1?

P.D: He ejecutado las soluciones de compatibilidad de Windows y aún así no ha funcionado.

Archivos: https://mega.co.nz/#F!jdkjHYDD!xBVPRS3ROmhyvljxR15tOA

El programa es para controlar un ultrasonido con la computadora.
#2
Hola a todos, hace un tiempo que no he escrito en el foro. Sin embargo requiero la ayuda de los expertos por la siguiente situación.
Resulta que me encuentro programando en C el método de la bisección, podría buscarlo en Internet, sin embargo se trata del método de la bisección para optimizar funciones matemáticas (máximo o mínimo), y no para encontrar raíces.
No explicaré por el momento el algoritmo; ya que podría ser un poco complicado y aburrido. Sin embargo me he atorado en el programa en mi intento de establecer un criterio.
En teoría el número de iteraciones del programa está dado por la expresión

n=[log(10^s)]/[log(2)]

Dado un "s" escogido por el usuario. Les dejo el código que llevo para mayor claridad:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
    int i;
    double p,n,l,s;
    float a,b,c,d,e;
    printf("Programa Metodo de Biseccion\n");
    printf("Define la funcion\n");
   
    printf("Define el primer limite del intervalo\n");
    scanf("%f",&a);
    printf("Define el segundo limite del intervalo\n");
    scanf("%f",&b);
    c=(a+b)/2;
    d=(c+b)/2;
    e=(c+a)/2;
    printf("Defina s\n");
    scanf("%d",s);
    p=Math.Pow(l,s);
    n=log10(p)/log10(2);
    printf("%d",n);
   
   
 
  system("PAUSE");
  return 0;
}

Como podrán haber notado no llevo ni el 50% del programa, sin embargo no he podido avanzar de dicho criterio. Muchísimas gracias de antemano.
#3
Hola a todos, les comento mi situación respecto al intento de instalar la versión de Ubuntu 11.04 en mi notebook. Tengo instalado el sistema operativo Windows 7, y he intentado instalar dicha distribución junto a éste sistema operativo, sin embargo cuando pretendo instalarlo Ubuntu 11.04 no me da esta opción. Les dejo una imagen de la situación que les comento; solo me da las opciones:
1) Reemplazar Windows 7 con Ubuntu.
2) Algo más.




Al no poder instalarlo según la configuración estándar de Ubuntu 11.04 para su instalación junto a Windows 7, en la opción "Algo más" me ha aparecido la tabla de particiones de mi disco duro, sin embargo tampoco me ha dejado modificar dichas particiones como es habitual para añadir a éstas los diferentes puntos de montaje "/" "home" e "intercambio". Les dejo una imagen de lo descrito anteriormente:



Les comento de la imagen anterior;
Tengo 4 particiones al parecer primarias:
1)SYSTEM (100 MB) (Supongo que es el sistema de arranque y ese tipo de cosas que no se deben de modificar).
2) (C:) (626.61 GB) (Posee los datos de mi sistema operativo Windows 7, así como mis documentos personales que tampoco se debe de modificar).
3) (L:) (50 GB) (En ella pensaba guardar todos los archivos correspondientes a Ubuntu 11.04, sin embargo en la tabla de particiones de Ubuntu 11.04 no la he podido identificar y mucho menos modificar, esperando que apareciera como "/espacio libre" en la tabla de particiones).
4) SAMSUNG RECOVERY (21.92 GB) (Supongo que tampoco se debería de modificar ya que la computadora la portaba de fábrica).




Espero que me puedan ayudar con esta problemática ya que no he podido instalar Ubuntu 11.04, y lo extraño es que ya había intentado instalar Ubuntu 11.04 en una ocasión anterior; Y me había dejado hacerlo, la única diferencia era que el disco principal (C:) no lo había modificado. Sin embargo con la partición que he creado en este disco duro ahora no me deja la opción de instalar junto a Windows 7.
He dejado el disco duro como estaba de fábrica, sin embargo la situación es la misma.
Gracias de antemano por toda la ayuda que me puedan proporcionar.
#4
Hola a todos los expertos en programación en C, esta vez me han surgido dudas al hacer un programa que multiplique dos matrices de tamaños "m x n" y "n x p". Sin embargo no subiré tanto código esta vez para explicarles mi duda, ya que la considero un error de concepto acerca de los dobles apuntadores.
Lo que se pretende es dimensionar un doble apuntador, ya que yo considero un doble apuntador como un arreglo de dos dimensiones, sin embargo estas se pueden dimensionar con la función "malloc".
Viéndolo de esta forma la primera matriz sería "a[m][n]", la segunda matriz "b[n][p]" y la matriz resultante "c[m][p]". Sin embargo el doble apuntador; "a", "b" y "c", deben dimensionarse según los diferentes valores de "m", "n" y "p". Agradecería que me explicaran la forma de hacerlo, les dejo la forma en que lo dimensioné el doble apuntador "a" pero solo lo hice para el valor de "m" y para el valor correspondiente a "n" en ese doble apuntador no sabría como hacerlo. De forma que me quede un doble apuntador "a[m][n]". Gracias de antemano.


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int **a;
    a=(int**)malloc(sizeof(int*)*m);


    system("PAUSE");
    return 0;


#5
Hola a todos, necesito su ayuda de nuevo; esta vez es un programa que imprime los primeros "m" números perfectos. Un número perfecto es aquél número "n" en el cual la suma de sus divisores (sin incluir a "n") es igual a ése número "n". Por ejemplo el 6; sus divisores sin incluirlo serían: 3, 2, 1 y su suma es igual a 6. En un mensaje anterior solicite su ayuda para realizar una función que me diera dicha suma de cualquier número, les dejo el código que lo hace:

#include <stdio.h>
#include <stdlib.h>
int suma(int n);
int main(int argc, char *argv[])
{
    int n;

    printf("Programa que devuelve la suma de todos los divisores de un numero n, sin incluirlo\n");
    printf("Introduce el numero\n");
    scanf("%d",&n);
    printf("El resuldado es: %d\n",suma(n));

    system("PAUSE");
    return 0;

   int suma(int n){
       int i;
       int d;
       int c;
       c=0;
       for(i=1;i<n;i++){
                        if(n%i==0){
                                   d=i;
                                   c+=d;
                                   }
                        }
                        return c;
       }

Ahora utilizando esta función necesito hacer un programa que me registre los primeros "m" números perfectos, como se imaginarán tendré que llamar a dicha función dentro de la nueva función. Lo que busca este programa es que si por ejemplo yo ingreso "m" con el valor de 30; me imprima sólo los números perfectos menores o iguales a 30, serían: 6, 28. He avanzado un poco y aunque compila y ejecuta correctamente, no me da ningún resultado como debiera. Les dejo lo que tengo hasta ahora:

#include <stdio.h>
#include <stdlib.h>
int suma(int n);
void perfectos(int m);
int main(int argc, char *argv[])
{
    int n;
    int m;
    printf("Programa que devuelve la suma de todos los divisores de un numero n, sin incluirlo\n");
    printf("Introduce el numero\n");
    scanf("%d",&n);
    printf("El resuldado es: %d\n",suma(n));
    printf("Programa que imprime los primeros m numeros perfectos\n");
    printf("Introduce m\n");
    scanf("%d\n",&m);
    printf("Los numeros perfectos son:\n");
    perfectos(m);
   
   
   
    system("PAUSE");
    return 0;

   int suma(int n){
       int i;
       int d;
       int c;
       c=0;
       for(i=1;i<n;i++){
                        if(n%i==0){
                                   d=i;
                                   c+=d;
                                   }
                        }
                        return c;
       }
       void perfectos(int m){
           int i;
           for(i=0;i<=m;i++){
                             if(suma(i)==i){
                                            printf("%d\n",i);             
                                            }
                             }
           }

Gracias a todos de antemano.
#6
Hola, esta semana he estado haciendo muchos programas y ocupo mucho de la ayuda de esta excelente comunidad; esta vez ocupo hacer una función en un programa(es importante que sea una función) que lo que haga es sumar todos los divisores de un número n, sin incluir al número n en la sumatoria. He desarrollado la función, pero lamentablemente me marca error en la condición de un "if" que se encuentra en la función. Espero que me puedan orientar para arreglar este problema y me dijeran ¿Porqué no se puede hacer lo que intento? ya que considero que no hay errores de sintaxis, y al menos para mí tiene lógica lo que se pretende. Gracias de antemano; les dejo el código:

#include <stdio.h>
#include <stdlib.h>
int suma(int n);
int main(int argc, char *argv[])
{
    int n;
   
    printf("Programa que devuelve la suma de todos los divisores de un numero n, sin incluirlo\n");
    printf("Introduce el numero\n");
    scanf("%d",&n);
    printf("El resuldado es: %d\n",suma(n));
   
    system("PAUSE");
    return 0;

   int suma(int n){
       int i;
       int c;
       int *d;
       for(i=1;i<n;i++){
                        if(n%i=0){
                                   d[i]=i;
                                   }
                        }
       c=0;
       for(i=1;i<n;i++){
                        c+=d[i];
                        }
       return c;
       }
#7
Hola a todos, solicito su ayuda para que me digan la razón por la cual el siguiente programa, aunque compila y se ejecuta correctamente, no arroja los resultados esperados. El siguiente programa tiene por objetivo de un texto introducido, cambiar las vocales por la vocal siguiente e imprimir dicho mensaje. Un ejemplo: Al ingresar la palabra: "vestuario", tendría que regresar la palabra "vistaerou".
Les dejo el código:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int i;
    char t[10];
    printf("Programa que cambia las vocales de un texto por la siguiente vocal\n");
    printf("Introduce el texto\n");
    scanf("%s",t);
    for(i=0;i!='\0';i++){
                      if(t[i]=='a'){
                                    t[i]=='e';
                                    }
                      if(t[i]=='e'){
                                    t[i]=='i';
                                    }
                      if(t[i]=='i'){
                                    t[i]=='o';
                                    }
                      if(t[i]=='o'){
                                    t[i]=='u';
                                    }
                      if(t[i]=='u'){
                                    t[i]=='a';
                                    }
                      }
    printf("%s\n",t);
    system("PAUSE");
    return 0;
}


Gracias a todos de antemano.
#8
Hola, esta vez solicito la ayuda de los expertos por el siguiente problema en C; que debe calcular como dice el título; la moda, mediana, media aritmética y media geométrica de n numeros en C; El ingresar los n números no ha sido problema, ya que los he guardado en un arreglo. Sin embargo se me ha complicado realizar las acciones necesarias. He iniciado por la que considero yo la más sencilla, sería la media aritmética; que como ya saben consiste en sumar los n números del arreglo y dividir el resultado entre n. Sin embargo no logra hacer lo solicitado. Les dejo mi avance y si me podrían dar ideas para realizar las otras acciones se los agradecería mucho.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int n,i,c;
    float ma;
    int *a;
    printf("Programa que calcula la moda, mediana,  media aritmetica y media geometrica de n numeros\n");
    printf("Introduce n\n");
    scanf("%d",&n);
    a=(int*)malloc(sizeof(int)*n);
    printf("Introduce los %d numeros\n",n);
    for(i=0;i<n;i++){
                     scanf("%d",&a[i]);
                     }
    printf("Los %d numeros son:\n",n);
    for(i=0;i<n;i++){
                     printf("%d\n",a[i]);
                     }
    //Media Aritmetica
    for(i=0;i<n-1;i++){
                     c=0;
                     c+=a[i]+a[i+1];
                     }
    ma=c/n;
    printf("La media aritmetica es: %d\n",ma);
                   
  system("PAUSE");
  return 0;
}
#9
Hola a todos, como dice el título no es un programa muy complicado sin embargo no he podido hacer ejecutar de una manera correcta al marcarme error en el ejecutable. Solicito su ayuda les dejo el código, supongo que el problema se encuentra en la dimensión del arreglo. Gracias de antemano.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   
       int i,j, aux;
       int arreglo[5];
       printf("Programa que ordena de menor a mayor 5 numeros e imprime los impares\n");
       printf("Introduce los numeros\n");
       for(i=0;i<=4;i++){
                        scanf("%d",arreglo[i]);
                         }
       for(i=0;i<=4;i++){
                         for(j=i+1;j<=4;j++){
                                             if(arreglo[i]>arreglo[j]){
                                                                       arreglo[i]=aux;
                                                                       arreglo[i]=arreglo[j];
                                                                       arreglo[j]=aux;
                                                                       }
                                             }
                         }
       for(i=0;i<=4;i++){
                         printf("El ordenamiento queda de la siguiente manera: %d\n",arreglo[i]);
                         }
       for(i=0;i<=4;i++){
                         if((arreglo[i]/2)!=0){
                                               printf("Los numeros impares son: %d\n",arreglo[i]);
                                               }
                         }
 
  system("PAUSE");
  return 0;
}
#10
Hola solicito la ayuda de los expertos esta vez para que me ayuden a encontrar el error que se encuentra en éste programa que utiliza una estructura para guardar diferentes datos, en una estructura llamada "alumno". Les solicito que le den un vistazo al programa y se den cuenta que al parecer no posee errores de sintaxis y presiento que es más un error lógico o algo por el estilo. La idea principal del programa es que en una estructura con el nombre "alumno" pueda guardar en las variables de dicha estructura los datos de nombre, calificación y su número de lista de "n" alumnos guardando en dichas variables de la estructura los "n" datos mediante un ciclo y un arreglo para poder mostrarlos en pantalla con otro ciclo. Les dejo el programa para que puedan decirme donde se encuentra el error, ya que el programa es compilado y ejecutado, sin embargo muestra un error en el ejecutable. Gracias a todos de antemano.

#include <stdio.h>
#include <stdlib.h>

struct alumno{
        char nombre;
        int calificacion;
        int lista;
    };

int main(){
struct alumno ALUMNO[100];
int n,l;
printf("Introduce el numero de alumnos que se tomaran los datos\n");
scanf("%d",&n);                                                                                                                   
for(l=0;l<n;l++){
                 printf("Introduce el nombre del alumno\n");
                 scanf("%s",&ALUMNO[l].nombre);
                 printf("Introduce la calificacion del alumno\n");
                 scanf("%d",&ALUMNO[l].calificacion);
                 printf("Introduce el numero de lista del alumno\n");
                 scanf("%d",&ALUMNO[l].lista);
                 }
for(l=0;l<n;l++){
                   printf("El nombre del alumno es: %s\n",ALUMNO[l].nombre);
                   printf("La calificacion del alumno es: %d\n",ALUMNO[l].calificacion);
                   printf("El numero de lista es: %d\n",ALUMNO[l].lista);
                   }

system("PAUSE");

  return 0;
}
#11
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:


#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
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;



#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
Redes / Cambiar IP Fija de ISP en Ubuntu 10.10
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
GNU/Linux / Problema con Comando netstat
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.