Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Archivos c++ (if dentro del while) buscar
Autor Mensaje
maximiliano_forlenza Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
UBA - Ingeniería

Mensajes: 22
Agradecimientos dados: 5
Agradecimientos: 0 en 0 posts
Registro en: Nov 2014
Mensaje: #1
Archivos c++ (if dentro del while) buscar Otro Algoritmos y Estructuras de Datos
Buenas tardes tengo una consulta con un algoritmo que estoy desarrollando escribo el algoritmo y abajo la pregunta:


#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int opcion, canpares, canimpares, ambos, opcion2;
char get[1000];
int main(int argc, char *argv[])
{
cout << "1. Numeros Pares" << endl;
cout << "2. Numeros impares" << endl;
cout << "3. Numeros mixtos" << endl;
cout << "4. Buscar Numeros" << endl;
cin >> opcion;


if (opcion == 1)
{
ofstream Numpares;
Numpares.open("pares.xls", ios::app);
cout << "Ingrese la cantidad de numeros pares a cargar" << endl;
cin >> canpares;
cout << "Ingrese los numeros pares" << endl;
int pares[canpares];
for (int i=0; i<=canpares-1; i++)
{
cin >> pares[i];
}
for (int i=0; i<=canpares-1; i++)
{
Numpares << "Numero par: " << pares[i] << ',' << endl;
}
Numpares.close();
}

if (opcion == 2)
{
ofstream Numimpares;
Numimpares.open("Impares.xls", ios::app);
cout << "Ingrese la cantidad de numeros impares" << endl;
cin >> canimpares;
cout << "Ingrese los numeros impares" << endl;
int impares[canimpares];
for (int j=0; j<=canimpares-1; j++)
{
cin >> impares[j];
}
for (int j=0; j<=canimpares-1; j++)
{
Numimpares << impares[j] << '-' << endl;
}
Numimpares.close();
}

if (opcion == 3)
{
ofstream Mixtos;
Mixtos.open("mixtos.xls", ios::app);
cout << "Ingrese la cantidad de numeros impares a cargar" << endl;
cin >> ambos;
cout << "Ingrese los numeros" << endl;
int mix[ambos];
for (int a=0; a<=ambos-1; a++)
{
cin >> mix[a];
}
for (int a=0; a<=ambos-1; a++)
{
Mixtos << mix[a] << '.' << endl;
}
Mixtos.close();
}

if (opcion == 4)
{
cout << "1. Numeros Pares" << endl;
cout << "2. Numeros impares" << endl;
cout << "3. Numeros Mixtos" << endl;
cin >> opcion2;
}
if (opcion2 == 1)
{
ifstream SalidaPares;
SalidaPares.open("pares.xls", ios::in);
while (! SalidaPares.eof())
{
SalidaPares.getline(get, 1000, ',');
cout << get << endl;
}
SalidaPares.close();
}
if (opcion2 == 2)
{
ifstream SalidaImpares;
SalidaImpares.open("Impares.xls", ios::in);
while (! SalidaImpares.eof())
{
SalidaImpares.getline(get, 1000, '-');
cout << get << endl;
}

SalidaImpares.close();
}
if (opcion2 ==3)
{

ifstream SalidaMixtos;
SalidaMixtos.open("mixtos,xls", ios::in);
while (! SalidaMixtos.eof())
{
SalidaMixtos.getline(get, 1000, '.');
cout << get << endl;
}
SalidaMixtos.close();
}



system("PAUSE");
return EXIT_SUCCESS;
}


Bien la pregunta es si necesito buscar si tal numero se encuentra dentro de los pares y que me diga si esta o no (sin que me de toda la lista como en el algoritmo de arriba) tengo que poner un if dentro del while pero como seria? desde ya muchas gracias.
10-12-2014 16:02
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
DobleR Sin conexión
Militante
Fracasa el que no lo intenta
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 84
Agradecimientos dados: 13
Agradecimientos: 76 en 11 posts
Registro en: Dec 2014
Mensaje: #2
RE: Archivos c++ (if dentro del while) buscar
si te entendi bien es asi:


int numeroBuscado;
cin >> numeroBuscado;
bool encontrado = false;
for (int i=0;i<canpares;i++)
{
if (pares[i] == numeroBuscado)
{
encontrado=true;
break; //como lo encontro termina el bucle
}
}


el break si queres no lo pongas, es para optimizar pero creo que en algoritmos no se ve.
(Este mensaje fue modificado por última vez en: 10-12-2014 21:03 por DobleR.)
10-12-2014 20:42
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] DobleR recibio 1 Gracias por este post
maximiliano_forlenza (11-12-2014)
maximiliano_forlenza Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
UBA - Ingeniería

Mensajes: 22
Agradecimientos dados: 5
Agradecimientos: 0 en 0 posts
Registro en: Nov 2014
Mensaje: #3
RE: Archivos c++ (if dentro del while) buscar
Eso va dentro del while y el cin numerobuscado fuera del while? Muchas gracias

Osea seria en vez del salida.getline() y el cout get eso?
(Este mensaje fue modificado por última vez en: 10-12-2014 21:23 por maximiliano_forlenza.)
10-12-2014 21:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
DobleR Sin conexión
Militante
Fracasa el que no lo intenta
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 84
Agradecimientos dados: 13
Agradecimientos: 76 en 11 posts
Registro en: Dec 2014
Mensaje: #4
RE: Archivos c++ (if dentro del while) buscar
claro, es como esta ahi.
Declaras "numeroBuscado", lo ingresan por consola, despues declaras una variable de tipo bool y la inicializas en false (si no encuentra el numero nunca cambia), entra al bucle y empieza a recorrer los numeros pares, si encuentra alguno que coincida con el "numeroBuscado" setea "encontrado" en true y termina el bucle, si no encuentra ninguno "encontrado" queda en false.
10-12-2014 21:27
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] DobleR recibio 1 Gracias por este post
maximiliano_forlenza (11-12-2014)
maximiliano_forlenza Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
UBA - Ingeniería

Mensajes: 22
Agradecimientos dados: 5
Agradecimientos: 0 en 0 posts
Registro en: Nov 2014
Mensaje: #5
RE: Archivos c++ (if dentro del while) buscar
Perdona te vuelvo a insistir porque soy re nuevo en esto y no entiendo casi nada va nada.
Declare numeroBuscado como int y bool encontrado = false; y puse afuera del while. Cout << "ingrese el numero a buscar" << endl;
Cin >> numeroBuscado;
While (! Salidapares.eof())
{
For (int i=0; i<=canpares-1; i++)
{
If (pares[i] == numeroBuscado)
{
Encontrado == true;
}
}
Salidapares.getline(get, 1000, '.');
Cout << get << endl;


}


Y no me lo toma que estoy haciendo mal? Perdon por las molestiaa
10-12-2014 22:12
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
odin Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 38
Agradecimientos dados: 2
Agradecimientos: 11 en 11 posts
Registro en: May 2011
Mensaje: #6
RE: Archivos c++ (if dentro del while) buscar
No se mucho de c, pero por lo que entiendo estas en la opción 4.1
El archivo lo generas con datos numero par: 4,numero par: 8, etc.
Y después estas buscando y comparando con variables no asignadas, en este punto, pares [] y canpares no tienen datos validos
Lo que podrías hacer es leer cada linea hasta la coma y comparar con un char formado por "numero par: "numerobuscado


Esto según lo que entendí que hiciste
11-12-2014 10:29
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] odin recibio 1 Gracias por este post
maximiliano_forlenza (11-12-2014)
maximiliano_forlenza Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
UBA - Ingeniería

Mensajes: 22
Agradecimientos dados: 5
Agradecimientos: 0 en 0 posts
Registro en: Nov 2014
Mensaje: #7
RE: Archivos c++ (if dentro del while) buscar
Claro yo lo que hice fue hacer cada linea hasta la , y despues un get que me muestra todo pero sigo sin entender como compararlo con el numero que el usuario pida sin que me tire toda la lista de los numeros
11-12-2014 10:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
sacros Sin conexión
Profesor del Modulo A
<img src=x onerror="al...
*****

Otra
Facultad Regional Buenos Aires

Mensajes: 242
Agradecimientos dados: 91
Agradecimientos: 64 en 25 posts
Registro en: Nov 2010
Mensaje: #8
RE: Archivos c++ (if dentro del while) buscar
Entiendo que queres usar el algoritmo que ya tenes...pero sino lo haces para cualquier numero usando el operador modulo %

numero % 2 == 0

te da el resto de un numero en la division por 2...si no hay resto es par...
(Este mensaje fue modificado por última vez en: 11-12-2014 11:42 por sacros.)
11-12-2014 11:39
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
odin Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 38
Agradecimientos dados: 2
Agradecimientos: 11 en 11 posts
Registro en: May 2011
Mensaje: #9
RE: Archivos c++ (if dentro del while) buscar
Lo primero seria armar stringbuscado[] como una cadena numerobuscado como un char (no un int)
Y haces
Stringbuscado = "numero par :" + numerobuscado + ",'
Después entras al while mientras no fin de archivo y no encontrado
Lees un registro del archivo
Después comparas, el registro leído con stringbuscado


(Nuevamente, quizá no sea esa la sintaxis de c, pero es la idea)
11-12-2014 12:05
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
maximiliano_forlenza Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
UBA - Ingeniería

Mensajes: 22
Agradecimientos dados: 5
Agradecimientos: 0 en 0 posts
Registro en: Nov 2014
Mensaje: #10
RE: Archivos c++ (if dentro del while) buscar
Si gracias, igual el problema no es que detecte si es par o no eso esta, el tema es lo del buscar jaja
11-12-2014 12:13
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
DobleR Sin conexión
Militante
Fracasa el que no lo intenta
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 84
Agradecimientos dados: 13
Agradecimientos: 76 en 11 posts
Registro en: Dec 2014
Mensaje: #11
RE: Archivos c++ (if dentro del while) buscar
osea, despues de esto:



for (int i=0; i<=canpares-1; i++)
{
cin >> pares[i];
}



tenes que pegar el codigo que te pase, te quedaria asi:



for (int i=0; i<=canpares-1; i++)
{
cin >> pares[i];
}

int numeroBuscado;
cin >> numeroBuscado;
bool encontrado = false;
for (int i=0;i<canpares;i++)
{
if (pares[i] == numeroBuscado)
{
encontrado=true;
break; //como lo encontro termina el bucle
}
}



si no te funciona decime el error que te tira

y si queres mostrar el resultado por pantalla tenes que agregar esto:



if (encontrado=false)
{
cout << El numero buscado no se encuentra en la lista de pares<< endl;
}
else
{
cout << El numero buscado se encuentra en la lista de pares<< endl;
}

(Este mensaje fue modificado por última vez en: 11-12-2014 12:18 por DobleR.)
11-12-2014 12:15
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
odin Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 38
Agradecimientos dados: 2
Agradecimientos: 11 en 11 posts
Registro en: May 2011
Mensaje: #12
RE: Archivos c++ (if dentro del while) buscar
Con eso estas buscando en un vector, no en el archivo, ese vector podría estar vacío, o tener datos inválidos, si no se uso la opción 1, porque el programa te permite ir a la opción 4 y buscar en un archivo ya existente, así que no sería correcto
(Según entendí, debe buscar en el archivo)

(11-12-2014 12:15)DobleR escribió:  osea, despues de esto:



for (int i=0; i<=canpares-1; i++)
{
cin >> pares[i];
}



tenes que pegar el codigo que te pase, te quedaria asi:



for (int i=0; i<=canpares-1; i++)
{
cin >> pares[i];
}

int numeroBuscado;
cin >> numeroBuscado;
bool encontrado = false;
for (int i=0;i<canpares;i++)
{
if (pares[i] == numeroBuscado)
{
encontrado=true;
break; //como lo encontro termina el bucle
}
}



si no te funciona decime el error que te tira

y si queres mostrar el resultado por pantalla tenes que agregar esto:



if (encontrado=false)
{
cout << El numero buscado no se encuentra en la lista de pares<< endl;
}
else
{
cout << El numero buscado se encuentra en la lista de pares<< endl;
}

11-12-2014 12:24
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
DobleR Sin conexión
Militante
Fracasa el que no lo intenta
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 84
Agradecimientos dados: 13
Agradecimientos: 76 en 11 posts
Registro en: Dec 2014
Mensaje: #13
RE: Archivos c++ (if dentro del while) buscar
ah, lo de la opcion 4 no lo vi, bueno lo mio funciona solo para la opcion 1, y como de c++ se lo basico no te puedo ayudar con lo de los archivos.
Con respecto a lo de que el vector puede estar vacio o tener daots invalidos, es discutbile, depende para que tipo de usuario programes.
11-12-2014 12:34
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
maximiliano_forlenza Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
UBA - Ingeniería

Mensajes: 22
Agradecimientos dados: 5
Agradecimientos: 0 en 0 posts
Registro en: Nov 2014
Mensaje: #14
RE: Archivos c++ (if dentro del while) buscar
Muchisimas gracias, el tema esta en la opcion 4 porque como estoy guardando los numeros en el archivo los tengo que traer y comparar. Igual muchas gracias
11-12-2014 13:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
sebainge Sin conexión
Empleado de Fotocopiadora
Sin Estado
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 27
Agradecimientos dados: 2
Agradecimientos: 0 en 0 posts
Registro en: Feb 2013
Mensaje: #15
RE: Archivos c++ (if dentro del while) buscar
(10-12-2014 16:02)maximiliano_forlenza escribió:  ofstream Numpares;
Numpares.open("pares.xls", ios::app);

ya que estamos pregunto, esa manera de abrir archivos no la vi nunca, y el ios::app que hace? maximiliano_forlenza
(Este mensaje fue modificado por última vez en: 19-12-2014 17:46 por sebainge.)
14-12-2014 18:25
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.