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 - rir3760

#1511
Programación C/C++ / Re: Ayuda en C
10 Septiembre 2011, 02:50 AM
Si estas utilizando gcc deberías llamarlo mediante la linea de comandos:
gcc -c -ansi -pedantic -Wall -O entrada -o salida
Donde "entrada" es el archivo de código fuente y "salida" es el nombre de la aplicación resultante. Si lo haces así el compilador se ejecutara en su modo mas estricto y esa es la forma mas fácil de detectar (una buena parte de) los errores en el programa.

En tu caso las llamadas a scanf sin incluir el encabezado <stdio.h>" funciona" ya que todas las llamadas son similares pero si existieran variaciones se generaría "comportamiento no definido", en español cualquier cosa puede pasar desde el programa funcionando correctamente hasta el (usual) el programa reventando.

Un saludo
#1512
Programación C/C++ / Re: duda con un ejercicio
10 Septiembre 2011, 02:41 AM
Honestamente y, aun si eres un principiante, no veo cual sea el problema. Peor todavía, las probabilidades de que uno de los moderadores cierre el tema son altas ya que no haz demostrado esfuerzo alguno de tu parte.

No es difícil, basta con un bucle donde compares cada uno de los elementos (siguiendo tu ejemplo cada elemento "A(i)" con su correspondiente "-B(i)") verificando si son iguales o no.

Un saludo
#1513
Supongo es un desafió para los principiantes, ¿Correcto?

Pero hay detalles. El primero es, dependiendo de la implementación, el valor 389438 puede ser de tipo "long". Y el segundo la aproximación con un "for" funciona pero no podría manejar el caso especial del valor cero (si se debe tener este en cuenta hay que cambiar el bucle "for" por un "do ... while").

Un saludo
#1514
El modo "r+" permite operaciones de lectura y escritura. Antes de realizar la operación "secundaria" (escritura) debes indicar explícitamente la posición en el archivo mediante "rewind" o "fseek".

Un detalle por lo que comentas es que estas tratando con un archivo de texto, utilizando funciones como fgets/fprintf, ¿Eso es correcto?

Un saludo
#1515
La funcion "fflush" solo debes utilizarla con flujos de salida, "stdin" es uno de entrada y como extension (la forma "fflush(stdin)") usualmente solo disponible en compiladores para MS Windows. Tambien debes comparar contra 0 ya que el valor de retorno de scanf es de tipo "int".

Para evitar el comportamiento que mencionas basta con eliminar el resto de la linea despues de cada llamada a scanf. Por ejemplo:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   double a;
   int ch;
   
   puts("Ahora imprimiremos el mensaje");
   
   while (scanf("%lf", &a) != 1){
      puts("Por favor ingrese el numero nuevamente:");
      while ((ch = getchar()) != EOF && ch != '\n')
         ;
   }
   printf("Numero: %f\n", a);
   
   return EXIT_SUCCESS;
}


Un saludo
#1516
Revisa con cuidado cuando se imprime el evance de linea en tu programa con:
printf("\n");

Despues piensa por un momento donde debes colocar esa sentencia para que el avance de linea se imprima despues de cada fila.

Un saludo
#1517
En el primer programa la llamada a "memset" es correcta, el problema como ya te indicaron se debe a la forma en que tratas de acceder al bloque de memoria.

Si reservas un solo bloque por supuesto basta con una sola llamada a "memset", si reservas varios pues, varias llamadas.

Pero si, como sugiere el programa, lo primero que haces es asignarles un valor a cada elemento del bloque no es necesaria la llamada (o llamadas, según el caso) a esa función.

Un saludo
#1518
Solo tienes que utilizar un acumulador y un bucle for, antes de este colocas el acumulador a cero. El bucle debe iterar desde 1 hasta N, en cada iteracion ("i" es el contador):

1) Calculas el valor de "i / (N - (i - 1))"
2) Si el contador es impar el resultado del paso 1 lo sumas al acumulador, caso contrario lo restas.

Inténtalo, no es difícil.

Un saludo
#1519
Para la forma dos que indica LearningSpanishProgrammer debes utilizar la forma usual:
m2[i][j] = 69; // Solo por poner un ejemplo
Donde el indice "i" debe estar en el rango 0 .. lineas-1 y el indice "j" en el rango 0 .. columnas-1.

Pero si estas utilizando C++ tal vez sea mejor utilizar la clase "vector" a menos que, por ejemplo, sea un ejercicio de clase. Deberías explicar en detalle exactamente la intencion del programa.

Un saludo
#1520
Programación C/C++ / Re: Inicio en programación
1 Septiembre 2011, 03:29 AM
Cita de: DickGumshoe en 31 Agosto 2011, 16:04 PMMe gustaría aprender a programar. Por lo que he visto por el foro, recomendáis empezar con C y C++.

De momento no tengo ni idea de programación en ningún lenguaje (tengo 13 años).
Lo primero que debes aprender a manejar bien es el SO que estas utilizando asi como sus aplicaciones de utileria como administrador de archivos, editor de texto e interprete de comandos.


Cita de: DickGumshoe en 31 Agosto 2011, 16:04 PM
¿Me podríais aconsejar cómo empezar, con cuál de los dos (c o c++), etc.?
Si no tienes bases en algun otro lenguaje empezar con C o C++ no es una buena idea. En su lugar deberias empezar con otro enfocado en principiantes. Debo aclarar que nunca lo he utilizado pero uno que tiene "buena pinta" es PSeInt.

Un saludo