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

#1261
Cita de: RHL en  8 Marzo 2012, 01:36 AMY lo que dices de C/C++ solo es multiplataforma compilando un binario para cada plataforma parece contradictoria :S
No lo es.

C/C++ es portable a nivel de código fuente, cuando se sigue el estándar en cuestión este puede ser compilado (sin importar la implementación) y tendrá un comportamiento bien definido.

Un saludo
#1262
Cita de: petrusqui en  5 Marzo 2012, 22:08 PM2. ¿Si declaro int main (void) puede provocar algun error?
No.

Si defines la función principal como "int main(void) ..." o "int main(int argc, char *argv[]) ..." el compilador debe aceptarla si o si. Con otras definiciones no hay (y ese es el problema) garantías.

Algunos compiladores se quejan mediante un mensaje de advertencia si defines la función principal en la segunda forma sin utilizar, después, los argumentos en el programa (lo cual es correcto en el sentido de tener variables declaradas pero sin uso).

Un saludo
#1263
Cualquiera que no lleve "Borland" en su nombre esta bien. Una lista de compiladores se encuentra en tema Temas importantes de programación C/C++.

Un saludo
#1264
Programación C/C++ / Re: ayuda porfa
6 Marzo 2012, 02:16 AM
Cita de: Mr.Brooks en  6 Marzo 2012, 01:57 AM1- Los nombres de las variables no deben llevar símbolos tal como - o otros que ahora no me acuerdo todos pero hay siertas reglas a la hora de los nombres de variables.

En C al declarar una variable su nombre solo puede consistir de caracteres alfabéticos, numéricos y el carácter '_'. El nombre debe tener como carácter inicial uno alfabético o '_'.

Sin embargo no se recomienda iniciar el nombre con '_' ya que estos pueden ser utilizados por la implementación (traducción al buen cristiano: existe la posibilidad de un conflicto y si eso sucede es, como usuarios, nuestra culpa).

Un saludo
#1265
Una discusion reciente donde se describe como verificar si un numero es primo utilizando un bucle y con ciertas mejoras (en relacion al publicado en este tema) es quien me ayuda con este programa!!!!numeros!!!.

Un saludo
#1266
Eso se debe a que algunos de los compiladores mas viejos de esa compañía no soportan esa sentencia.

Lo mejor es utilizar uno moderno y actualizado. Recomendaciones en el foro hay bastantes, solo debes utilizar el motor de búsqueda.

Un saludo
#1267
Ese programa tiene varias deficiencias como el nombre de los encabezados y la definición de la función principal. Por favor lee el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

En C++ no puedes declarar un array indicando su numero de elementos mediante una variable, debe ser una constante. Y no necesitas de un array ya que una vez impreso el carácter no hay mas nada que hacer con el.

En uno de los temas del día cortesía de Xandrete se explica como reconocer la diagonal secundaria: Guardar la segunda diagonal de una matriz

Revisalo, seguro te da una idea de los cambios a realizar en tu programa.

Un saludo
#1268
El uso de la función "foo" en el fragmento de Xandrete es solo ilustrativo, el ya lo indica así al final de su mensaje:
Cita de: XandreteDonde foo() es una función o código arbitrario.

Un saludo
#1269
Programación C/C++ / Re: listas
5 Marzo 2012, 00:35 AM
Primero: debes ayudarnos, facilitarnos la tarea de revisar tu programa y para ello debes utilizar las etiquetas de código y utilizar indentacion ya que así se facilita su lectura. Por favor revisa los temas fijos del foro.

El error en el programa se debe a que estas intercalando llamadas a scanf y gets. El problema con ello es que la primera usualmente ignora el espacio blanco mientras que la segunda no. Y debes evitar el uso de gets, por favor lee |Lo que no hay que hacer en C/C++. Nivel basico|.

Para solucionarlo hay que eliminar el resto de la linea después de las llamadas a scanf utilizando "%d" dentro del bucle. También se deben cambiar los dos "if" por un "if ... else ..." ya que tal como esta se esta pidiendo un registro de mas.

Los cambios al bucle son:
int main()
{
   struct nodo *inicio = NULL, *aux, *aux2;
   int opcion, n, a = 4;
   int ch;
   
   /* ... */
   
   if (opcion == 1) {
      printf ("¿cuantos nombres y montos va a agregar? : \n");
      scanf ("%d", &n);
      while ((ch = getchar()) != EOF && ch != '\n')
         ;
     
      while (n > 0) {
         if (inicio == NULL) {
            inicio = malloc (sizeof (struct nodo) );
            gets (inicio->nombre);
            scanf ("%d", &inicio->monto);
            inicio->sgte = NULL;
         }else {
            aux = malloc (sizeof (struct nodo) );
            gets (aux->nombre);
            scanf ("%d", &aux->monto);
            aux->sgte = inicio;
            inicio = aux;
         }
         
         while ((ch = getchar()) != EOF && ch != '\n')
            ;
         
         n--;
      }
   }
   
   /* ... */


Un saludo
#1270
Cita de: petrusqui en  4 Marzo 2012, 22:22 PMY el otro problema que tengo es que no se me ocurre ninguna idea como poder cerrar la aplicación, porque el ultimo trozo del codigo no funciona o no lo he escrito bien =P
Es por lo ultimo.

Lo primero que debes hacer es evitar el uso de extensiones como la biblioteca conio de Borland, mas todavía cuando en tu programa su uso no es necesario.

Con "el ultimo trozo del codigo no funciona" supongo te refieres a que el bucle (y por ende la aplicación) no finaliza aun cuando teclees un carácter distinto de 'S' y 's'. Ello se debe a que al utilizar el especificador "%c" este no ignora el espacio blanco y por ello (caso usual) se "traga" el avance de linea introducido después del segundo operando.

Para solucionarlo solo tienes que agregar un espacio antes del especificador "%c", de esta forma:
printf("\nQuieres realizar otra operacion (S/N): ");
scanf(" %c", &cerrar_ventana);


También se puede reducir de forma significativa el programa ya que todas las operaciones son comunes (petición de los operandos, solo varia la operación).

Un saludo