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ú

Mensajes - ALONSOQ

#11
Vale, ya lo he entendido, los argumentos al programa se le pasan a traves del compilador dengtro del propio menu ejecutar/parametros ejemplo: 2   hola
argv[1] 2
argv[2] hola

El codigo es este:

int main(int argc, char* argv[])
{
    int i;
   
  printf("Numero de argumentos: %i\n", argc);
  printf("Nombre del programa: %s\n", argv[0]);
  for(i=1;i<(argc); i++)
   {
     
printf("Argumento numero %i: %s\n", i, argv[i]);

printf("prueba");
   }
  system("pause");
}


ahora solo faltaría que el programa verifique que el primer argumento es un numero, y el segundo una cadena ¿ alguna ayuda con esto?

gracias
#12
Cita de: Fire544 en 24 Agosto 2012, 17:11 PM
Hola ALONSOQ . Mira nunca debes pasar argumentos a una funcion con * es recomendable con [] y &, eso depende de los argumentos definidos en las definiciones de las funciones. Si quieres resolver tu problema tendrias que solamente verificar los argumentos pasados a tu codigo y no esperar datos de entradas.

Nota: Aun no se sabe el tipo de verificacion que se quiere, si es que tiene que haber obligatoriamente un argumento numerico o si solo se quiere salida por pantalla del numero de argumentos, bueno esto como quiera te servira !!

Mira te dejo un ejemplo que creo que tambien soluciona tu inquietud:


int main(int argc, char **argv)
{
   //se verifica que en la posicion 1 de tu argumento contenga valores
   //igual pasa con la posicion 2 ya que la posicion 0 no se toca porque es
   //el nombre de tu main.exe y no es lo que se quiere aqui !!!
   if(argv[1]!=0&&argv[2]!=0)
   {
                          printf("Son Correctos !!");
                          }
   else
   {
       printf("No son Correctos");
       }  


Tambien podrias verificar los argc y si son <= a 2 entonces no serian correctos los argumentos y tambien pudieras tener una bunea solucion, pero expongo el codigo de arriba para que tengas una idea de los argv[] pasados a una funcion principal.

Suerte !! ALONSOQ  :xD

Muchas gracias fire 544 por tu respuesta, entiendo tu explicación y te la agradezco; y entiendo que en el bucle se requiere que las posiciones 1 y 2 del vector no estén vacías; pero lo que no se es indicarle al codigo que la primera sea un valor numérico y la segunda una cadena de texto ¿ puedes ayudarme con esto?

gracias
#13
Hola me piden el siguiente programa:Cree un programa en el que la función principal reciba dos parámetros, el primero numérico y el segundo una cadena de texto. Compruebe que son correctos, y si no lo son muestre un mensaje por pantalla indicando la sintaxis del programa.

He hecho esto, pero no se seguir, ¿podeis ayudarme por favor?

#include<stdio.h>

int main(char argc, char * argv[]) {

int i;

printf("Argumentos de la línea de órdenes\n\n");

printf("dime un número");
gets (*argv);
printf("Dime una cadena de texto");
       gets (*argv);

for(i=0; i<argc; i++) {
                   if (argc!=2) printf("error");

                }

return 0;
   }


muchas gracias
#14
Programación C/C++ / Re: suma matrices
21 Agosto 2012, 17:36 PM
Muchísimas gracias de verdad por la explicación tan buena  y detallada que me has dado; realmente me ha servido de mucho.
#15
Programación C/C++ / Re: suma matrices
20 Agosto 2012, 09:38 AM
Cita de: xiruko en 19 Agosto 2012, 23:24 PM
a ver... para sumar 2 matrices tienen que tener la misma dimension. asi que en tu codigo, con pedir 1 vez la dimension es suficiente. y luego, el trozo de codigo para sumar no es mas que recorrer la matriz igual que lo haces para inicializarla con rand(), pero en vez de eso pones un printf() que muestre matriz1[ i][j]+matriz2[ i][j].

todo el resto del codigo de antes es para solucionar varios errores que cometes en toda la otra parte de codigo, tambien para solucionar el desorden y estructurarlo un poco, y para que sea mas entendible al leerlo.

si ya has estudiado funciones y apuntadores, si quieres modifico mi mensaje anterior añadiendo explicaciones en el codigo para que asi puedas seguirlo y entenderlo; si no, no le hagas mucho caso ya que te sonara a chino y primero deberias leerte la teoria antes de dedicarte a la practica.

un saludo!

Hola Xiruco, sí me he estudiado las funciones y apuntadores, de hecho el problema es que no entiendo bien el tema de apuntadores y paso de argumentos por referencia a las matrices; si no te es mucha molestia, a lo mejor añadiendo las explicaciones al código me sirven de ayuda.

un saludo
#16
Programación C/C++ / Re: suma matrices
19 Agosto 2012, 22:52 PM
Muchas gracias por tu ayuda xiruco. La verdad es que me cuesta muchísimo entender lo que has redactado. ¿ sería muy dificil sumar a partir de mi código?

gracias de nuevo
#17
Programación C/C++ / suma matrices
18 Agosto 2012, 11:07 AM
Hola,
como se suman estas dos matrices?

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

int n,d, i, j;

void  generar_matriz1 ();
void generar_matriz2 ();

 
int   main()
{
     
    srand (time(NULL));
   
       printf("dimensi\xA2n de la matriz1:");
    scanf("%d",&n);
   
       int matriz1[n][n];
             
        generar_matriz1 ();
       
        printf("dimensi\xA2n de la matriz2:");
    scanf("%d",&n);
   
       int matriz2[n][n];
             
        generar_matriz2 ();
         
        printf ("Presione una tecla para salir.....");
        getch();
       
}
/*********************************************/

void generar_matriz1 ()
{
   
    int matriz1[d][d];
   
    for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
                {
                    matriz1[i][j]=(rand()%16);
                    printf("%d\t",matriz1[i][j]);
                }
            printf("\n\n");
        }
}

void generar_matriz2 ()
{
   
    int matriz2[d][d];
   
    for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
                {
                    matriz2[i][j]=(rand()%16);
                    printf("%d\t",matriz2[i][j]);
                }
            printf("\n\n");
        }
}


muchas gracias pr vuestra ayuda
#18
Programación C/C++ / Re: palindromo
7 Agosto 2012, 17:34 PM
Muchas gracias por tu respuesta

por cierto que significa memset(Palabra,0,100);?

gracias
#19
Programación C/C++ / Re: palindromo
7 Agosto 2012, 10:11 AM
Hola he retomado este tema y he encontrado este código, que de una manera facil y entendible para los que somos principaiantes, dice si una palabra es o no palindromo. Pero me surge la siguiente duda de principante, en el bucle for termina con ';' ( en los codigos que yo he hecho hasta ahora no se termina con ';') y si se elimina, aunque el programa compila y ejecuta, no funciona correctamente ¿ por que?

muchas gracias

int longitud;
int inicio=0, fin;   
   

void palindromo (char palin[]);
char palin[30];
main()
{
palindromo(palin);
getch();
}

void palindromo (char palin[])
{
   
     printf("dime una palabra:");
     gets (palin);
    longitud = strlen(palin);
   

     for(fin=longitud-1; palin[fin]==palin[inicio] && fin>=0; inicio++,fin--);
     
         if (inicio==longitud)
         {
            printf( "Es palindromo");
         } 
         else
         {
            printf( "no es palindromo"); 
         }   
     
     
}

#20
Programación C/C++ / Re: cadenas y funciones
6 Agosto 2012, 18:57 PM
Muchas gracias por tu ayuda, lo modifico en el programa original añadiendo lo que me dices, pero creo que no te entiendo bien. ¿  es a lo que te refieres? no funciona

gracias