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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 ... 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 34 35 ... 160
191  Programación / Programación C/C++ / Re: Dos programas (Manual y Automático) que no se cierren? [C/C++] en: 15 Noviembre 2014, 02:15 am
Con el System puedo hacer que me abra el editpad. Pero Cómo le puedo decir que se cierre y me abra el otro y empieze el loop infinito?
Puedes utilizar el comando start con la opción /wait para que este espere hasta que la aplicación se cierre, un ejemplo:
Código
  1. #include <stdlib.h>
  2.  
  3. int main(void)
  4. {
  5.   while (1){
  6.      system("start /wait notepad.exe");
  7.      system("start /wait calc.exe");
  8.   }
  9.  
  10.   return EXIT_SUCCESS;
  11. }

Un saludo
192  Programación / Programación C/C++ / Re: Re: Aprendiendo c++,una ayudita please :) en: 14 Noviembre 2014, 16:18 pm
pero sigo con alguna dudilla...pongo la linea y luego la comento

Enum(tipo de variable) color(identificador de enum) { red, yellow=20} (declaracion de variable) ¿<identificador>?

El ultimo identificador qe significado tendria?
El mismo comentario lo indica, es una declara una variable. Por ejemplo:
Código
  1. enum color {ROJO, VERDE, AZUL} una_variable;
  2.  
  3. /* ... */
  4.  
  5. una_variable = AZUL;
  6. printf("%d\n", una_variable); /* imprime 2 */

En buen plan: si no tienes un curso o libro de calidad consigue uno ya que en ellos se responde a la gran mayoría de preguntas que haz hecho. Puedes revisar las recomendaciones utilizando el motor de búsqueda de los foros.

Un saludo
193  Programación / Programación C/C++ / Re: Problema cambio de hexadecimal y octal a decimal en: 13 Noviembre 2014, 16:42 pm
Tengo que leer de una entrada estandar y convertir los numeros hexadecimal y octal que encuentre a decimal, pero volviendo a ponerlos en la entrada.
Deberías colocar el enunciado completo del ejercicio así como indicar que partes puedes realizar y en cuales tienes dificultades siempre entendiendo que las reglas de los foros prohíben hacer tareas ajenas.

La obtención de los números en base 8 o 16 la puedes realizar utilizando la función scanf con los especificadores de formato que ya indico eferion o bien la lectura debe ser de forma manual, eso lo debes aclarar tu.

En cuanto a regresarlos a la entrada estándar supongo es un error y la intención es enviarlos a la salida estándar, para ello basta con la función printf y el especificador "%d".

En todo caso ejemplos de todo ello hay a montones en la base de datos de los foros, solo es cuestión de utilizar el motor de búsqueda.

Un saludo
194  Programación / Programación C/C++ / Re: Ayuda: cada ves que imprimo mi variable Float, cambia el contenido e.e en: 13 Noviembre 2014, 04:18 am
Tengo esta parte del codigo y todas las variables estan declaradas tipo float y forman parte de una estructura-matriz.
Ese programa tiene varios errores algunos relacionados con el lenguaje y otros de concepto.

* Para empezar no es necesario utilizar un array de arrays (mal y mejor conocido como "matriz", tal cosa en el lenguaje C no existe), mas todavía: no utilizas todos los campos de cada elemento.

* Declaras el array indicando su numero de elementos mediante una variable:
Código
  1. struct infrac m[r1][Y];
Eso no es valido en C90, valido en C99 y opcional en C11 así que vas a tener que revisar la documentación de tu compilador para conocer cual es su caso (mejor utilizar malloc ya que es soportado en los tres estándares).

* En C los indices validos inician en 0 y terminan en N-1 donde N es el numero de elementos del array, tu utilizas uno invalido en las lineas:
Código
  1. printf("%f\n", m[z][5].multa);
  2. printf("%f\n", m[z][5].multa);
  3. printf("%f\n", m[z][5].multa);

* Por ultimo declaras una variable "m" antes de la función main la cual no utilizas y por ende deberías eliminar. Y si deseas imprimir una cadena literal terminada con '\n' en lugar de printf es mejor utilizar puts.

Un saludo
195  Programación / Programación C/C++ / Re: [C] Limpiando la stdin correctamente... en: 12 Noviembre 2014, 16:52 pm
he creado una función personalizada de la función getline() que aparece en el libro de K&R (en su primer capítulo)
Algunos comentarios:

* Quien llama a tu función es responsable de pasar argumentos validos, si revienta es su problema. Por ello en mi opinión deberías quitar la validación de los argumentos y si piensas dejarla debes retornar 0 (NULL es usualmente un puntero de tipo "void *").

* En caso de una linea vacía, error y fin de archivo tu función retorna cero, para discriminar los casos habrá que llamar a feof y ferror (mejor deja el avance de linea y ya tienes un indicador).

* El ultimo if + while se puede sustituir por un bucle while con la lectura del siguiente carácter como su cuerpo.

Un saludo
196  Programación / Programación C/C++ / Re: Necesito una ayuda en C++, muchas gracias de antemano. en: 11 Noviembre 2014, 02:41 am
Necesito añadirle al programa que se pueda imprimir en pantalla o en un archivo indicando el número de columnas
Lo primero: 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.).

----

Para imprimir un numero determinado de números por linea lo único que debes hacer es pedir este al usuario mediante scanf, de forma similar a como pides el limite superior a verificar. A continuación dentro del bucle verificas si la variable "D" (evita los nombres en mayúsculas) es igual a ese valor (en este momento comparas contra la literal 10 con lo cual imprimes 10 columnas por linea). Mas o menos así:
Código
  1. puts("Columnas por linea:");
  2. int num_cols;
  3. scanf("%d", &num_cols);
  4.  
  5. // ...
  6.  
  7. if (D == num_cols){
  8.   putchar('\n');
  9.   D = 0;
  10. }

Otros comentarios: el programa se supone que es C++ pero en realidad es C, en el caso de C++ falta incluir el encabezado <cstdio> y hay que cambiar <math.h> por <cmath> y la primera expresión en el bucle "for(B;B<=E;B++) ..." hay que eliminarla ya que no tiene efecto (el valor inicial de esa variable es dos y esta dado en su declaración).

Un saludo
197  Programación / Programación C/C++ / Re: Bucle controlado por bandera en: 2 Noviembre 2014, 16:37 pm
El programa que muestras no imprime números, los lee mientras el numero introducido sea mayor que el anterior, el primer error es no darle un valor inicial a la variable "a" con lo cual esta inicia con un valor no definido, mejor conocido como "basura". El segundo es colocar la sentencia que resguarda el valor anterior "k = a;" fuera del bucle.

La solución mas sencilla es leer el primer valor fuera del bucle y los demás dentro de el:
Código
  1. puts("Escribe numeros en orden ascendente");
  2. scanf("%d", &a);
  3.  
  4. do {
  5.   k = a;
  6.   scanf("%d", &a);
  7. }while (a > k);

En cuanto a la impresión de los números el enunciado es vago ya que no indica si simplemente deben imprimirse de inmediato o almacenarse en un array.

Un saludo
198  Programación / Programación C/C++ / Re: Manejo de Archivoc en C++ en: 1 Noviembre 2014, 03:31 am
ahora me interesaria poner las palabras en la lista seguida de la categoria a la que corresponden. Por ejemplo : en la lista tendriamos "argentina" y al lado la categoria a la que corresponde que en este caso seria "paises".
En ese caso lo primero que debes hacer es declarar la estructura o tipo de dato para manejar el par palabra, categoría como una unidad, la forma mas sencilla (pero no la mejor) es indicando directamente la categoría de cada palabra:
Código
  1. struct Registro {
  2.   string palabra;
  3.   string categoria;
  4. };

A continuación declaras un vector para almacenar cada uno de los registros:
Código
  1. vector<Registro> reg; // Cada uno de los registros (par palabra, categoria)

Las operaciones de lectura y escritura son similares al ejemplo anterior, cada registro se escribe/lee como un par de lineas. El orden no importa, puedes imprimir primero la palabra y después la categoría (o al revés) pero debes ser consistente: el orden que se utilice para la lectura debe ser el mismo utilizado en la escritura.

Por ejemplo la lectura de los datos seria mas o menos así:
Código
  1. ifstream in("Nombre_del_archivo");
  2. vector<Registro> reg;
  3.  
  4. if (in.fail()){
  5.   // Manejo de error
  6. }else {
  7.   Registro aux;
  8.   while (getline(in, aux.palabra) && getline(in, aux.categoria))
  9.      reg.push_back(aux);
  10.  
  11.   in.close();
  12. }

Un saludo
199  Programación / Ejercicios / Re: ayuda en un programa que encuentre el día anterior, el dìa y día siguiente,en C en: 31 Octubre 2014, 17:24 pm
Se te podría ayudar pero se corre el riesgo que, una vez obtengas lo que buscas, simplemente elimines el contenido de tus mensajes como fue el caso con tu otro tema: Hacer.

Solo decir que no es ético ese comportamiento. Si lo que deseas es ayuda sin dejar ningún rastro utiliza un medio privado como el correo electrónico de algún conocido y no un medio publico como son los foros.

Un saludo y suerte con el ejercicio (lo digo en buen plan)
200  Programación / Programación C/C++ / Re: Ver si un vector es un monte en: 31 Octubre 2014, 17:08 pm
Tengo que hacer una función recursiva en c, para saber si un vector de tamaño n es un monte (siempre n siendo par)
Un vector es un monte, si hasta la mitad es creciente, y la otra mitad es decreciente.
Como ya te comento leosansan la solución es mas sencilla.

Ya que tienes una lista "a" con un numero par de elementos si utilizamos "i" y "j" como indices para la parte izquierda y derecha (con valores iniciales primero y ultimo respectivamente) la condición limite (todos los elementos procesados formando un monte) es "i + 1 == j".

Si esa condición no se da ello indica que faltan elementos por procesar y lo primero que se debe hacer es verificar que sean mayores:
1) El elemento siguiente de la parte izquierda: "a[ i ] < a[i + 1]".
2) El elemento anterior de la parte derecha: "a[j - 1] > a[ j ]".

Si eso se da hasta el momento tienes un monte, la palabra final la tiene el proceso recursivo (la llamada a función) de los elementos "i + 1" y "j - 1".

Tal vez suene complicado pero no lo es, la función termina como una sola sentencia con tres operadores y cuatro operandos, inténtalo tu solo, presenta los avances y te ayudamos con los problemas que resulten.

Un saludo
Páginas: 1 ... 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 34 35 ... 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines