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

#1031
Programación C/C++ / Re: problema en c
18 Diciembre 2012, 02:14 AM
Solo un detalle, esta condición:
if((valor[i]-x)>0) ...
La puedes reducir a:
if(valor[i] > x) ...

Un saludo
#1032
Programación C/C++ / Re: malloc y free
14 Diciembre 2012, 15:23 PM
Cita de: x64Core en 14 Diciembre 2012, 00:13 AMTu código es incorrecto, estas asignando un nuevo array de X cantidad y almacenas el puntero a tal memoria en la mismo espacio de memoria
Sin animo de ofender pero, honestamente, no entiendo esa explicación.

El problema que se describe en el primer mensaje se debe a que en C todo se pasa por valor, cuando se realiza la llamada:
set_matrix(6,6,matA);
La función recibe los argumentos 6, 6 y el valor almacenado en la variable "matA", ellos son utilizados para inicializar cada uno de los parámetros. Como todas las operaciones en la mentada función se realizan en los parámetros y como estos son variables locales los cambios no afectaran a la variable utilizada en la llamada ("matA" de main).

Para solucionarlo se debe emular el paso por referencia pasando la dirección del objeto que desee modificarse mas los otros cambios necesarios (en el prototipo y definición).

Ya esta solucionado (en otro foro).

Un saludo
#1033
Programación C/C++ / Re: Dos datos mayores [C]
14 Diciembre 2012, 02:51 AM
Cita de: barnix456 en 13 Diciembre 2012, 20:06 PM
"max" es una funcion definidad en una libreria o es una variable, aunque entiendo que es una funcion de libreria, por que mi IDE asi lo reconoce
Si eso pasa debes verificar el lenguaje de programación y las opciones de tu IDE, esto porque:

A) En lenguaje C no hay problema en utilizar "max" como el nombre de una variable, mejor ejemplo el programa de leosansan .
B) En C++ si incluyes el encabezado <algorithm> tienes acceso a la funcion std::max.

Un saludo
#1034
En seudocodigo:

1) Abres el archivo en modo texto y lectura.
2) Asignas al contador de posición el valor cero.
3) Lees un numero del archivo.
4) Si es negativo multiplicas por -1 (o utilizas la función abs/fabs).
5) Comparas, si es igual terminas el bucle.
6) Caso contrario incrementas el contador de posición en una unidad.
7) Regresas al paso 3
N) ...

Por supuesto falta agregar los pasos en caso de que se llegue primero al final del archivo. Puedes empezar revisando la documentación (cortesía de C Plus Plus) de la clase std::ifstream.

Un saludo
#1035
Programación C/C++ / Re: [AYUDA] Con lista en C
13 Diciembre 2012, 17:14 PM
Cita de: agrey en 13 Diciembre 2012, 14:48 PM
la funcion splano hace lo siguiente:la funcion splano del codigo funciona bien lo que no funciona es la parte insertarenlista dentro de la funcion splano, porque la inserccion en la lista se tiene que hacer desde splano no desde el main.
Eso se debe a que, al llamar a la función "ProcesarComando", la variable "inicioLista" se pasa por valor:
int main()
{
   _nodo *inicioLista;
   
   /* ... */
   
   while(1){
      /* ... */
     
      if (0!=ProcesarComando(comando,&n, inicioLista)) /* <== */
         break;
   
   }

Por ello no importa lo que hagas con esta los cambios no se verán reflejados en la función principal (me refiero a main).

Para solucionarlo solo tienes que revisar con cuidado el ejemplo publicado por twins, en el se emula el paso por referencia y los cambios a tu programa son similares.

Un saludo
#1036
Cita de: indict en 11 Diciembre 2012, 19:10 PMHe rectificado las erradas, pero sigue sin compilar bien.
Si no tienes un libro sobre C++ de calidad es hora de conseguir uno. Puedes revisar las recomendaciones mediante el motor de búsqueda de los foros.

En tu programa falta la llave de cierre de la función main y al final de esta tienes, por alguna extraña razón, un par de llaves:
Código (cpp) [Seleccionar]
s=producto_escalar(v1,v2){ // <==
cout<<"el producto escalar es"<<s<<endl;} // <==

Eliminalas y coloca un punto y coma al final de la primera sentencia para marcar el final de esta:
Código (cpp) [Seleccionar]
s=producto_escalar(v1,v2);
cout<<"el producto escalar es"<<s<<endl;


También hay que eliminar la variable "k" en la función main ya que no la utilizas y en la función que calcula el producto el tipo correcto para el contador "i" es "vector<int>::size_type".

Con esos cambios el programa debe compilar y ejecutarse correctamente.

Un saludo
#1037
Cita de: indict en 12 Diciembre 2012, 01:29 AMEs un programa que dice que se indique si hay al menos un elemento negativo al vector [...] no sé donde está el fallo :(
El error en tu caso es lógico: ese programa lo único que hace es verificar si existe por lo menos un numero par. Por cierto en la funcion "parell" los valores de retorno estan al reves.

Un saludo
#1038
Cita de: Ferno en 11 Diciembre 2012, 17:09 PMPor último, dentro de la función "producto_escalar", la condición en el for no es correcta. Esto:

for(i=0;i<v1.size and i<v2.size ();i=i+1)

No compila, porque el compilador no entiende el "and". Las relaciones lógicas, se reemplazan por ciertos caracteres, por ejemplo, para AND y OR:

AND = &&
OR = ||
En C++ las palabras reservadas (para ser exactos "alternative tokens") "and", "or" y "not" tienen el mismo efecto que los operadores "&&", "||" y "!" pero raramente se usan (supongo es una costumbre derivada de C donde, eventualmente, se implementaron como macros).

Un saludo
#1039
Cita de: SonaArtica en 11 Diciembre 2012, 14:36 PMAhora si se me grabo el archivo pero cuando lo abro se grabo cn basura :(
Lo primero que debes hacer es evitar el uso de la biblioteca conio de Borland, la función gets, el uso de "fflush(stdin)" y cambiar la definición de la función main. Mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.

La llamada a "fflush(stdin)" no tiene nada que ver ya que opera sobre la entrada estándar (comportamiento no definido) y no sobre tu archivo. La forma en que se visualiza este en un editor de texto es normal ya que imprimes una estructura, si quieres guardarlo como texto plano debes utilizar la función fprintf.

Un saludo
#1040
No utilizo C++ + .NET pero, si te interesa, la referencia en linea sobre esa clase es MSDN: Convert Class.

Un saludo