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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ... 160
331  Programación / Programación C/C++ / Re: dudas a la hora de programar en: 10 Mayo 2014, 15:44 pm
entonces el operador solo se puede usar con estructuras.
entonces es o mismo poner
Código
  1. cad2 = cad1;
  2. que esto
  3. cad2 -> cad1;
No, no es lo mismo.

El operador de asignación lo puedes utilizar con estructuras pero no con arrays. Una soluciona a medias a la copia de arrays es colocar estas dentro de estructuras, de esa forma al copiar la estructura se copia el array (que se utilice el operador "->" es tema aparte).

Por ejemplo:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct aux {
  5.   char nombre[100];
  6. };
  7.  
  8. int main(void)
  9. {
  10.   struct aux a = {"Hugo"};
  11.   struct aux b = {"Paco"};
  12.  
  13.   printf("%s, %s\n", a.nombre, b.nombre); /* Hugo, Paco */
  14.   a = b;
  15.   printf("%s, %s\n", a.nombre, b.nombre); /* Paco, Paco */
  16.  
  17.   return EXIT_SUCCESS;
  18. }

----

por que en este codigo no escribe la segunta linea ya intente varias formas pero no logro escribir una lineas mas.
Algo habrás hecho con el programa ya que si bien tiene deficiencias el contenido de los dos bloques de memoria se envía al archivo.

Un saludo
332  Programación / Programación C/C++ / Re: A que equivale... en: 10 Mayo 2014, 03:05 am
Es que por ejemplo cuando tengo una función que recibe un parámetro que es por ejemplo
Código
  1. const char *nombre[]
y lo cambio por
Código
  1. const char **nombre
no me dice nada
En C todo se pasa por valor, cuando llamas a una función antes que el cuerpo de esta se ejecute cada uno de los parámetros (variables locales a la función) se inicializa con el argumento correspondiente (valores utilizados en la llamada).

La única excepción son los arrays, con estos cuando se llama a una función el valor que se pasa es la dirección en memoria del primer elemento, un array de tipo "T [N]" genera un valor de tipo "T *" donde T es el tipo de los elementos.

Si tu declaras una función de esta forma:
Código
  1. int fn(char *mat[100]);
Por lo anterior (N es 100, T es "char *") la declaración en realidad es:
Código
  1. int fn(char **mat);

Un saludo
333  Programación / Programación C/C++ / Re: A que equivale... en: 9 Mayo 2014, 04:28 am
Para acceder a un elemento j de ese miembro en una estructura i uso
Código
  1. (jugador + i) -> cadena[j];

Mi pregunta es, ¿Cómo represento lo anterior como notación completa de punteros?
Utilizas:
Código
  1. *((jugador + i)->cadena + j)

Un saludo
334  Programación / Programación C/C++ / Re: dudas con el ciclo for en: 8 Mayo 2014, 16:25 pm
estamos aún en el uso de ciclos for y me pusieron un programa el cual no entiendo. les quiero pedir el favor de explicarme
Te piden desarrollar un programa cuya parte principal es un bucle for que itera (se repite) cinco veces, en cada iteración debes presentar el menú junto con el saldo actualizado, pedir la opción al usuario, procesarla y pasar a la siguiente iteración.

Un saludo
335  Programación / Programación C/C++ / Re: Cuales temas debo aprender(en orden)para dominar Lenguaje C? en: 8 Mayo 2014, 02:12 am
no hagas doble post
As vece pasa de que el navegador envía 2 mensaje en vez de uno no es que haga a propósito.
Es a propósito y no son dos, son tres, el primero fue publicado el 4 de Mayo: Lenguaje C temas (en orden) que debo aprender para dominar este Lenguaje?.

Si alguien desea responder a la pregunta lo mejor en este caso es utilizar el tema que mencione, ello mientras el moderador decide que hacer con los dos temas del 7 de Mayo (cerrarlos o borrarlos).

Un saludo
336  Programación / Programación C/C++ / Re: C++ argumentos en el main. en: 7 Mayo 2014, 16:20 pm
Pero no entiendo:
Código
  1.  max = argc - 1;
Por qué el numero de argumentos -1?
Porque argc es el numero de argumentos incluyendo el nombre del programa, como este no lo vas a procesar se resta uno.

y referente a lo que me cuentas rir3760, el código tiene punteros? lo digo por el *p aún no estudié eso.
El problema es que argv es de tipo "char **", utilices el operador "*" o "[]" ya están trabajando con punteros.

Me vuelvo a perder en lo de argv[argc - 1], por qué no seguir la lógica y argv[ 2 ]
Porque no puedes saber de antemano el numero de argumentos que se pasaran al programa.

Un saludo
337  Programación / Programación C/C++ / Re: C++ argumentos en el main. en: 7 Mayo 2014, 14:55 pm
El problema se encuentra en la linea 23, básicamente, antes usaba Getline para así leer toda la linea, y que el string no se parase al leer el espacio, ahora el problema está en que al ejecutarlo por consola,  únicamente lee hasta el espacio y no encuentro forma de usar el getline como argumento.
Cuando se llama a tu programa con, por ejemplo:
Código:
nombre_del_programa arg_1 arg_2 arg_3
El nombre de este se almacena en argv[0] y los argumentos de la linea de comandos son las palabras que siguen y se acceden con argv[ 1 ] .. argv[argc - 1] (argv[argc] es NULL).

La solución fuera de tu programa es indicar que se pasa un solo argumento, para esto los delimitas con comillas dobles:
Código:
nombre_del_programa "arg_1 arg_2 arg_3"

La solución dentro del programa (no hay forma de recuperar el espacio blanco) es crear la cadena manualmente, solo tienes que concatenar todos los argumentos pasados mediante la linea de comandos, una forma es:
Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4.  
  5. #include <string>
  6. using std::string;
  7.  
  8. int main(int argc, char *argv[])
  9. {
  10.   if (argc > 1){
  11.      string linea = argv[1];
  12.  
  13.      for (char **p = argv + 2; *p; p++)
  14.         linea = linea + ' ' + *p;
  15.  
  16.      cout << linea << endl;
  17.   }
  18.  
  19.   return 0;
  20. }

Un saludo
338  Programación / Programación C/C++ / Re: [SOLUCIONADO][C++] Programa: Dev C++ | Asunto: Error de compilación y ejecución. en: 7 Mayo 2014, 14:23 pm
Otras partes que se deben cambiar:

* Las variables "x" y "y" deben ser locales a la función main, tienes la declaración de estas duplicadas al inicio del programa y en la sentencia switch.

* Faltan los nombres de los parámetros de las funciones.

* Todos los casos inician con:
Código
  1. cout << "\n\n  Introduzca el valor 'x': " << endl;
  2. cin >> x;
  3. cout << "\n\n  Introduzca el valor 'y': " << endl;
  4. cin >> y;
Hay que sacar ese bloque y colocarlo dentro de un condicional, de esta forma:
Código
  1. bool mala_opcion = false;
  2. while (!mala_opcion){
  3.   cin >> eleccion;
  4.  
  5.   if (eleccion >= 1 && eleccion <= 4){
  6.      cout << "\n\n  Introduzca el valor 'x': " << endl;
  7.      cin >> x;
  8.      cout << "\n\n  Introduzca el valor 'y': " << endl;
  9.      cin >> y;
  10.      mala_opcion = true;
  11.   }
  12.   switch (eleccion) {
  13.   case 1:
  14.      sumar (x, y);
  15.      break;
  16.   case 2:
  17.      restar (x, y);
  18.      break;
  19.   case 3:
  20.      multiplicar (x, y);
  21.      break;
  22.   case 4:
  23.      dividir (x, y);
  24.      break;
  25.   default:
  26.      cout << "\n  Has introducido un comando incorrecto, vuelva a repetir." << endl;
  27.      break;
  28.   }
  29. }

Un saludo
339  Programación / Programación C/C++ / Re: Lenguaje C temas (en orden) que debo aprender para dominar este Lenguaje? en: 5 Mayo 2014, 18:09 pm
estoy aprendiendo lenguaje C  por mi cuenta, a traves de Youtube y otros videotutoriales de la web, pero tengo una duda inmensa, cuales temas estudiar y en que orden?
En lugar de videos te recomiendo un buen libro como "The C Programming Language" o "Pointers on C", en el caso del primero este empieza con un minitutorial para conocer lo básico de ciertos temas y desarrollar los primeros programas. Después de ello van capítulos para los temas a detalle:

Tipos, operadores y expresiones
Control de flujo
Funciones y programación modular
Punteros y arrays
Estructuras
Entrada y salida

El libro termina con una descripción abreviada del lenguaje (mas corta pero mas fácil de leer que el estándar).

Un saludo
340  Programación / Programación C/C++ / Re: [AYUDA] Programa Sencillo: Representación de un Array en: 5 Mayo 2014, 17:49 pm
Por eficiencia deberías sacar la comprobación fuera del bucle, de esta forma:
Código
  1. for (i = 0; i < n - 1; i++)
  2.   printf("%lf, ", v[i]);
  3. printf("%lf]\n", v[i]);
En el raro caso de que el numero de elementos pueda ser menor o igual a cero debes verificar eso antes de imprimir el ultimo elemento

¿el funcionamiento de '\b' consiste en suprrimir el último caracter? Por ejemplo con la cadena s = "Hola me gustan los Lakers.\n'' podría eliminar el salto de línea concatenándole '\b' a la cadena?
No. El efecto de '\b' solo aplica si envías la cadena a la salida estándar, no funcionara si la cadena la almacenas en otro array o la envías a un archivo.

Un saludo
Páginas: 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ... 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines