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

#171
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
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 (cpp) [Seleccionar]
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
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 (cpp) [Seleccionar]
for(y=5;y<=18;y++){
   gotoxy(10,y); printf("*");
   gotoxy(50,y); printf("*");
{ // <== Deberia ser '}'


Un saludo
#174
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 (cpp) [Seleccionar]
int SucursalGanadora(Ventas sucursal_1,Ventas sucursal_2, Ventas sucursal_3){
   if (sucursal_1.cantidad > sucursal_2.cantidad && sucursal_1.cantidad > sucursal_3.cantidad)
      cantidad_ganadora = sucursal_1.cantidad;
   return 1;
   
   if (sucursal_2.cantidad > sucursal_1.cantidad && sucursal_2.cantidad > sucursal_3.cantidad)
      cantidad_ganadora = sucursal_2.cantidad;
   return 2;
   
   if (sucursal_3.cantidad > sucursal_1.cantidad && sucursal_3.cantidad > sucursal_2.cantidad)
      cantidad_ganadora = sucursal_3.cantidad;
   return 3;
}


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 (cpp) [Seleccionar]
      }
   }
} // Esta llave termina la funcion main

   ganador = sucursal_ganadora.SucursalGanadora(sucursal_1, sucursal_2, sucursal_3);
   cout << "|nLa sucursal que mas productos ha vendido es la " << ganador;
   
   ganador = sucursal_ganadora.CantidadGanadora();
   cout << "\nQue ha vendido " << ganador << "productos." // Falta el ';'
   
   // Se recomienda indicar el valor de retorno de la funcion
}


Un saludo
#175
Cita de: Orubatosu en 22 Noviembre 2014, 21:51 PMUn string cualquiera de una dimensión puede declararse directamente.
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 (cpp) [Seleccionar]
vector<int> v = {4, 3, 2, 1, 0};

for (auto it = v.begin(); it != v.end(); ++it)
   cout << *it << endl;


Un saludo
#176
Cita de: ljma en 21 Noviembre 2014, 13:11 PMSe 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
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:
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:
for (n=0; n<=10; n++){
   printf("[%d]",matriz[i][n]);
};

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:
for (n=0; n<=10; n++)
   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:
for (i = 0; i < fila; i++){
   aux = matriz[i][i];
   matriz[i][i] = matriz[i][columna - 1 - i];
   matriz[i][columna - 1 - i] = aux;
}


Un saludo
#178
Programación C/C++ / Re: SUMA DE VECTORES
20 Noviembre 2014, 17:18 PM
Cita de: JHONALEJOO en 20 Noviembre 2014, 16:14 PMDado 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
Cita de: rulax01 en 20 Noviembre 2014, 01:54 AMEstoy 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
Cita de: Algorithmer en 18 Noviembre 2014, 04:08 AMalguien 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