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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 160
171  Programación / Programación C/C++ / Re: como guardar una palabra de un archivo .txt en: 24 Noviembre 2014, 17:45 pm
Cuando tengas una duda o pregunta debes presentar los avances que lleves de tu programa, si no lo haces lo mas seguro es que tu tema sea cerrado por faltar a las Reglas del subforo.

----

En términos generales la solución es:

1) Declarar un array con la capacidad para almacenar todos los elementos (palabras) o bien reservar un bloque mediante malloc/calloc y reajustarlo (de ser necesario) con realloc.
2) Leer cada par palabra;posición mediante la función fscanf utilizando la cadena de formato " %[^;];%d".

Un saludo
172  Programación / Programación C/C++ / Re: Problema con vectores en una función en: 24 Noviembre 2014, 17:35 pm
Tu programa revienta porque cuando se crea un vector mediante el constructor por defecto este inicia vació, no hay elementos y no puedes acceder a ellos mediante el operador "[]". La forma mas fácil para que no reviente (sin solucionar el problema) es cambiando la declaración del vector en main a:
Código
  1. vector <vector<int> > Entrada(4);

Y para que la función realice la operación correctamente debes verificar en ella el numero de elementos del vector (función miembro size) y la posición donde se desea agregar la fila, si esta ultima es mayor debes incrementar el tamaño del vector mediante la función miembro std::vector::resize.

Un saludo
173  Programación / Programación C/C++ / Re: Ayuda.. problema en C++ no me conpila ni ejecuta.. en: 23 Noviembre 2014, 18:06 pm
Si no tienes un curso o libro de calidad sobre C++ deberías conseguir uno ya que ese programa tiene multitud de errores, algunos ya los menciono engel lex, otros son:

* Hay que evitar el uso de conio y para el caso lo mismo con el encabezado <dos.h>, mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.

* El nombre correcto del encabezado es <cstdio>.

* En la ultima llamada a scanf falta el operador "dirección de" (el '&') antes de la variable "altura".

* Se recomienda indicar el valor de retorno de la función main.

* El error que mencionas se debe a que tienes una llave de apertura cuando debería ser de cierre:
Código
  1. for(y=5;y<=18;y++){
  2.   gotoxy(10,y); printf("*");
  3.   gotoxy(50,y); printf("*");
  4. { // <== Deberia ser '}'

Un saludo
174  Programación / Programación C/C++ / Re: Problema en una clase en C++: en: 23 Noviembre 2014, 17:33 pm
El primer error que debes corregir es lógico y se encuentra en la definición de la función "SucursalGanadora" (faltan llaves para indicar el cuerpo de cada if):
Código
  1. int SucursalGanadora(Ventas sucursal_1,Ventas sucursal_2, Ventas sucursal_3){
  2.   if (sucursal_1.cantidad > sucursal_2.cantidad && sucursal_1.cantidad > sucursal_3.cantidad)
  3.      cantidad_ganadora = sucursal_1.cantidad;
  4.   return 1;
  5.  
  6.   if (sucursal_2.cantidad > sucursal_1.cantidad && sucursal_2.cantidad > sucursal_3.cantidad)
  7.      cantidad_ganadora = sucursal_2.cantidad;
  8.   return 2;
  9.  
  10.   if (sucursal_3.cantidad > sucursal_1.cantidad && sucursal_3.cantidad > sucursal_2.cantidad)
  11.      cantidad_ganadora = sucursal_3.cantidad;
  12.   return 3;
  13. }

Y el error que mencionas se debe a que al final del programa (en la función main) tienes una llave de cierre de mas y te falta un punto y coma para terminar la ultima sentencia:
Código
  1.      }
  2.   }
  3. } // Esta llave termina la funcion main
  4.  
  5.   ganador = sucursal_ganadora.SucursalGanadora(sucursal_1, sucursal_2, sucursal_3);
  6.   cout << "|nLa sucursal que mas productos ha vendido es la " << ganador;
  7.  
  8.   ganador = sucursal_ganadora.CantidadGanadora();
  9.   cout << "\nQue ha vendido " << ganador << "productos." // Falta el ';'
  10.  
  11.   // Se recomienda indicar el valor de retorno de la funcion
  12. }

Un saludo
175  Programación / Programación C/C++ / Re: Consulta sobre declaración de vectores en: 23 Noviembre 2014, 04:07 am
Un string cualquiera de una dimensión puede declararse directamente.
Código:
int a[5] = {-1, 1, 5, 12, -4}

Creo que no es posible (al menos el compilador me regaña), pero ¿existe algún constructor que me permita algo parecido con un vector?
Depende del modo de compilación, como indicar este (si para empezar es posible) depende del compilador utilizado.

A partir del nuevo estándar de C++ (C++11) se puede utilizar una lista de valores para inicializar varios tipos incluido la clase vector, por ejemplo:
Código
  1. vector<int> v = {4, 3, 2, 1, 0};
  2.  
  3. for (auto it = v.begin(); it != v.end(); ++it)
  4.   cout << *it << endl;

Un saludo
176  Programación / Programación C/C++ / Re: C++ Crear variables y objetos en tiempo de ejecución en: 21 Noviembre 2014, 16:39 pm
Se crean tantas variables de tipo  string (o int ..) como elementos existan en el array que se llamarán de acuerdo con el valor del array o combinando un texto con el valor del array.
Eso no es posible en C++, en su lugar puedes crear un objeto de la clase map utilizando como clave el valor (texto, entero, etc.) que deseas.

Un saludo
177  Programación / Programación C/C++ / Re: Matriz principal con secundaria en: 21 Noviembre 2014, 15:37 pm
Lo primero que debes hacer es evitar el uso de la biblioteca conio de Borland, cambiar la definición de la función main a "int main(void) ..." o "int main() ...", mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.

* Debes eliminar la sentencia:
Código
  1. matriz[1][1]=matriz[fila][columna];
Ya que es inutil y puede causar que el programa reviente si se indica una matriz de diez filas y columnas.

* Las llaves de cierre no requieren de un punto después de estas:
Código
  1. for (n=0; n<=10; n++){
  2.   printf("[%d]",matriz[i][n]);
  3. };
Ese punto y coma se procesa como una sentencia nula, esta de mas y hay que eliminarla. Y si el cuerpo del bucle es una sola sentencia no hay necesidad de paréntesis con lo cual el bucle anterior se reduce a:
Código
  1. for (n=0; n<=10; n++)
  2.   printf("[%d]",matriz[i][n]);

* En el ultimo bucle donde imprimes la matriz con las diagonales intercambiadas utilizas 10 como el limite de ambos bucles cuando deberías utilizar fila y columna.

* Por ultimo para intercambiar los valores de las diagonales solo necesitas de un bucle, de esta forma:
Código
  1. for (i = 0; i < fila; i++){
  2.   aux = matriz[i][i];
  3.   matriz[i][i] = matriz[i][columna - 1 - i];
  4.   matriz[i][columna - 1 - i] = aux;
  5. }

Un saludo
178  Programación / Programación C/C++ / Re: SUMA DE VECTORES en: 20 Noviembre 2014, 17:18 pm
Dado dos Vectores A y B de 7 elementos numéricos cada uno realice la siguiente operación [...]
Cuando publiques código fuente por favor utiliza las etiquetas de código. Estas se agregan mediante el cuadro desplegable con el texto "GeSHi" en la pagina de composición de mensajes, solo tienes que seleccionar ahí el lenguaje (C, C++, etc.).

----

El fragmento que publicas tiene varios errores, el mas importante es declarar los arrays con tres elementos cuando el enunciado te pide que sean siete.

También hay que modificar el bucle para utilizar los indices 0 .. 6 y cuando obtienes un numero lo almacenas en la posición "i" del primer vector y "6 - i" del segundo. A continuación restas los vectores, la descripción de esa operación la encuentras en la red en menos de cinco minutos cortesía de cualquier buscador decente.

Un saludo
179  Programación / Programación C/C++ / Re: Ayuda leer cadenas y guardarlas en una sola variable en: 20 Noviembre 2014, 02:34 am
Estoy haciendo un programa con estructuras y a la hora de querer guardar un nombre cuando se ingresar un espacio lo guarda en la siguiente variable
Eso se debe a que el operador ">>" lee y almacena una palabra. Para solucionarlo debes leer la linea de texto completa mediante la función std::istream::getline teniendo cuidado del uso intercalado del operador ">>" y la mentada función, la solución a ello se encuentra en la base de los foros, solo es cuestión de utilizar su motor de búsqueda.

Otros cambios que se deben realizar al programa son:
* No es necesario incluir el encabezado <windows.h>.
* Falta indicar el numero de elementos de los campos "nombre", "domicilio" y "dano".
* Al reservar memoria mediante new los paréntesis están de mas, eliminalos.
* Para conocer si un puntero es nulo lo políticamente correcto en C++ es la comparación contra cero (en lugar de la macro NULL).

Un saludo
180  Programación / Programación C/C++ / Re: Imprimir Hora en un archivo en: 19 Noviembre 2014, 16:40 pm
alguien cononce alguna forma de guardar la hora de ese momento en un archivo, estoy programando c++
Utilizando las funciones declaradas en el encabezado <ctime> de las cuales asctime es la mas sencilla. Otra opción (que debe ser tu primera en casos similares) es utilizar el motor de búsqueda de los foros para encontrar los temas relacionados con tu duda.

Un saludo
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines