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 2 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 ... 37
121  Programación / Java / Re: Condicionales en java (Ayuda) en: 22 Agosto 2011, 12:48 pm
Lo que escribes en gran medida lo entiendo (a pesar de las faltas de ortografía...), sin embargo el código no, así que te responderé lo que creo que podría venirte bien.

Según comentas hay dos tipos de teléfonos en tu aplicación, móvil y fijo. Y según escribes entre paréntesis uno tiene clave uno y el otro tiene clave dos.

Pues sería tan sencillo como hacer:

Código
  1. if(clave == 1){
  2.    tipo = "celular";
  3.    costo = minutos*0.4;
  4. }
  5. else if(clave == 2){
  6.    tipo = "fijo";
  7.    costo = minutos*0.2;
  8. }
  9. else
  10.    System.out.println("Error: tipo de teléfono desconocido");

En este código primero comprobamos de que tipo es el teléfono. Una vez que sepamos cual de los dos es, entonces aplicamos las operaciones pertinentes.

Ahora te toca a ti adaptar la idea a tu código.

Por si vuelves a postear usa las etiquetas de código GeSHi, que lo dejan mucho más vistoso.

Saludos.
122  Programación / Programación C/C++ / Re: Vector POO (Problemas) en: 22 Agosto 2011, 01:56 am
Sí buscas un poco por Google, encuentras el enlace a la documentación de la clase Vector:

http://www.cplusplus.com/reference/stl/vector/

Sí te fijas en los constructores encontrarás el que usas en el código que has posteado.

Y según ese enlace esto es lo que hace:

explicit vector ( size_type n, const T& value= T(), const Allocator& = Allocator() );
Repetitive sequence constructor: Initializes the vector with its content set to a repetition, n times, of copies of value.

Saludos.
123  Programación / Java / Re: Funcion salida al teclado en: 19 Agosto 2011, 15:25 pm
Quizás te pueda servir la clase Robot: http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html

Tiene métodos para presionar teclas, dejar de presionarlas, mover ratón, hacer clic's, etc.

Espero te pueda servir.

Saludos.
124  Programación / Programación General / Re: Programacion Java pra linux en: 19 Agosto 2011, 13:14 pm
Pues primero descargate el JDK y el JRE de java. Busca en google que seguro te llevarán directo a la página de Oracle.

Después ya lo que tú quieras, busca algún IDE que te guste e instalalo. Yo uso Eclipse, va muy bien, pero por gustos... Sí quieres descargarte este que te he dicho desde "Instalar software..." o como se llame esa pestaña en linux puedes hacerlo.

Saludos.
125  Programación / Programación C/C++ / Re: Dudas varias en: 18 Agosto 2011, 21:49 pm
Estás haciendo mal las modificaciones, tú haces esto:

Código
  1. void Juego::modificarEdad (unsigned int edad)
  2. {
  3.                     edad = suEdad;
  4. }

es decir, a la variable que te pasan como parámetro le asignas suEdad, cuando debería ser al contrario, es decir:

Código
  1. void Juego::modificarEdad (unsigned int edad)
  2. {
  3.                     suEdad = edad;
  4. }

De la forma que tú lo hacías es lógico que te diese valores raros, los atributos estaban sin inicializar y por tanto lo que hay en la memoria es Dios sabe qué xD.

Saludos.
126  Programación / Programación C/C++ / Re: Dudas varias en: 18 Agosto 2011, 15:27 pm
Lo primero que he marcado en rojo es el prototipo de la función y como vemos dentro declaro 3 variables (short int x, short int y, int operacion). A continuación a las dos primeras variables les asigno un valor dentro de main (línea en rojo Nº2), sin embargo yo no quiero darle un valor a la tercera variable en main, sino en la definición de la función (línea en rojo Nº3).

Esto se le conoce como "no-inicializar una variable" según las guías que he consultado, pero no he encontrado la forma de hacerlo con una función, si no le asigno un valor a "int operacion" dentro de main, me salta error.

Espero haberme explicado bien. Gracias de nuevo, saludos.

A ver si te he entendido.

Tú lo que quieres es darle un valor a la variable resultado dentro de una función, y que el compilador no lo tome como error. ¿Es a eso a lo que te refieres?.

Sí pruebas este código verás que te da error un Warning porque estás usando la variable sin inicializarla:

Código
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int funcion(int var1, int var2, int operacion);
  5.  
  6. int main(void){
  7. int x, y, resultado;
  8. cin>>x>>y;
  9. resultado = funcion(x, y, resultado);
  10. cout<<resultado;
  11. }
  12.  
  13. int funcion(int var1, int var2, int operacion){
  14. operacion = var1*var2;
  15. return operacion;
  16. }

Y es lógico que lo de, porque aunque tú en la función estás asignandole un valor, el paso que estás haciendo del parametro es por valor (es decir, se realiza una copia) y por tanto, los cambios que realices dentro de la función, no tendrán efecto fuera de ella.

Sin embargo, si en lugar de hacerlo así, lo haces de esta manera:

Código
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int funcion(int var1, int var2, int &operacion);
  5.  
  6. int main(void){
  7. int x, y, resultado;
  8. cin>>x>>y;
  9. resultado = funcion(x, y, resultado);
  10. cout<<resultado;
  11. }
  12.  
  13. int funcion(int var1, int var2, int &operacion){
  14. operacion = var1*var2;
  15. return operacion;
  16. }

Entonces el compilador ya no te mostrará el Warning que sí lo hacía antes puesto que estás inicializando la variable dentro de la función (estás haciendo un paso por referencia, y por tanto las modificaciones en la variable se mantienen).

Espero que fuese eso a lo que te referías. Sí no es así, pues comenta e intentaré ayudarte.

Saludos.
127  Programación / Programación C/C++ / Re: Dudas varias en: 18 Agosto 2011, 03:26 am
1. Un espacio de nombres (namespace) es un mecanismo para agrupar un conjunto de elementos (clases, enumerados, funciones, etc.) relacionados. Evita la colisión de los nombres de identificadores. El orden de declaración de elementos es relevante. Puede estar definido en varios ficheros.

cout, cin y demás están en dicho espacio de nombres y por tanto debes hacer uso de el para no tener que especificar en que espacio de nombres se encuentran.

2. No entiendo qué quieres decir.

3. Supongo que no habrá un número concreto de líneas, dependerá del número de veces que realices llamadas a dicha función principalmente. Por ejemplo, sí llamas a la función 100 veces durante el código, y dicha función tiene 400 líneas de código, sería una burrada (y he puesto un ejemplo con cantidades pequeñas, imaginate con cantidades mayores).

4. No estoy seguro, pero creo que no. Para que sea considerado inline debe especificarse explicitamente.

5. No tienen el mismo tamaño.

int: 4 bytes
long int: 8 bytes
short int: 2 bytes
char: 1 byte
float: 4 bytes
double: 8 bytes

6. Te respondo desde lo que he estudiado en Java de programación orientada a objetos.

Todos los atributos de una clase deben declararse como privados para respetar el principio de ocultación:

Principio: la estructura de datos está sujeta a más variaciones que las operaciones. Los atributos se ocultan aplicando visibilidad privada. Los métodos pueden ofrecerse con distintos niveles de visibilidad.

De esta forma aislamos al cliente de los cambios en la estructura de datos ya que hemos declarado los métodos para acceder a estos atributos y los métodos para modificar estos atributos.

Espero haber solucionado en gran parte tus dudas.

Saludos.

128  Programación / Programación C/C++ / Re: Tengo una duda de como determinar los digitos de un número en: 17 Agosto 2011, 02:00 am
También podrías hacer algo así:

Código
  1. #include<stdio.h>
  2. #include<ctype.h>
  3.  
  4. int main(void){
  5. int a, digitos;
  6. digitos = 0;
  7. a = getchar();
  8. while(isdigit((char)a)){
  9. digitos++;
  10. a = getchar();
  11. }
  12. printf("%d", digitos);
  13. return 0;
  14. }

aunque como dices que no puedes hacer uso de funciones pues podrías hacer también algo así:

Código
  1. #include<stdio.h>
  2.  
  3. int main(void){
  4. int a, digitos;
  5. digitos = 0;
  6. a = getchar();
  7. while((char)a != '\n'){
  8. digitos++;
  9. a = getchar();
  10. }
  11. printf("%d digitos", digitos);
  12. }

pero tendrías que comprobar dentro del bucle While que lo que has leido es un número, si no se colaría xD.

Saludos.
129  Programación / Programación C/C++ / Re: Operaciones con vectores en: 17 Agosto 2011, 01:44 am
Sí, podrías declarar primero tu struct que contuviese la información de los contactos y luego declarar un vector de ese tipo.

Aunque ya que veo que estás usando C++ podrías, en lugar de declarar un struct, crear una clase e ir almacenando objetos de esa clase, pero como no se si habréis visto clases en C++ en tú asignatura pues...me limito a comentarlo tan solo xD.

Saludos.
130  Programación / Programación C/C++ / Re: Operaciones con vectores en: 16 Agosto 2011, 21:57 pm
Efectivamente no es un array, es muy parecido pero no lo es. Un array tú lo declaras de un tamaño y de un tipo, el vector es un contenedor y están parametrizados, es decir, pueden almacenar cualquier tipo de elementos y como bien dices, expanden y comprimen el tamaño según la insercción o la eliminación.

Además, como se puede hacer sobrecarga de los operadores, se puede hacer acceso a los elementos como si fuese un array, lo cual, facilita mucho la comprensión de esta estructura de datos.

Saludos.
Páginas: 1 2 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 ... 37
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines