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 - ivancea96

#1681
Programación C/C++ / Re: Duda acerca de macros
27 Octubre 2015, 17:59 PM
Cita de: Kaxperday en 27 Octubre 2015, 17:12 PM
Ya veo, aunque hay que incluit los código fuente o cabeceras en el código fuente que queramos usar la variable
No, no hay que incluir nada. Es la utilidad de extern.
#1682
Programación C/C++ / Re: Duda acerca de macros
27 Octubre 2015, 16:56 PM
Cita de: Kaxperday en 27 Octubre 2015, 11:50 AM
Me he dado cuenta que extern no vale para nada:

En absoluto. Para que solo has visto 1 cara de la moneda.
Extern sirve para coger variables de otros archivos, sí. Pero sin necesidad de ninguna interaccion entre ellos. Extern coge una variable de un código objeto, NO necesita el código fuente. Esa, es una de las funcionalidades de extern:


Código (cpp) [Seleccionar]
//a.cpp
int a = 5;


Código (cpp) [Seleccionar]
//b.cpp
#include <iostream>

extern int a;

int main(){
std::cout << a;
}


Compilas ambos a un fichero objetos, y verás que no da problema al linkear. La salida, es la esperada, "5".
#1683
Debes aprender a encontrar los errores.
Te doy unas pautas:

  • En caso de error en tiempo de ejecución:
    Localiza la línea o función que tira el error. Para ello, puedes colocar salidas por pantalla en varias partes del código. En el momento en que una salida no se represente, significa que el error está entre la última salida, y la que no se vió. Evidente, ¿no?
  • En caso de código "que no hace nada":
    Este caso se suele dar generalmente, en 1 de estas 2 ocasiones: o código que realmente no hace nada, por algún error al escribirlo, o código que no se llega a ejecutar. En el segundo caso, que tal vez sea el tuyo, verifica que las condificones o bucles que haya son correctas (Es posible que una condición sea errónea). La técnica de las salidas por pantalla funciona bien ahí también.

Con esto te quiero decir, que te va a ser más fácil a ti buscar el error, que a los demás. No tires la toalla, y sigue buscando. Analiza el código bloque a bloque, hasta ver exactamente qué falla.
#1684
Programación C/C++ / Re: Duda acerca de macros
26 Octubre 2015, 21:54 PM
Cita de: Kaxperday en 26 Octubre 2015, 17:30 PM
Luego si añado macro.h al main, ¿tendré el valor con las que las inicialice en macro.cpp?, esa es la pregunta.

Piénsalo:
-7 horas desde el inicio del post
-3 archivos y apenas 10 líneas para comprobarlo

http://www.geeksforgeeks.org/understanding-extern-keyword-in-c/
http://stackoverflow.com/questions/1433204/how-do-i-use-extern-to-share-variables-between-source-files-in-c

El ejemplo que ponen en el último link lo dice todo. Colocando extern en la cabecera, logras que, definiendo la avriable en 1 archivo, se pueda acceder a esa misma variable desde otros archivos.
#1685
Cita de: jeff23 en 26 Octubre 2015, 16:40 PM
La cosa es que tengo que hacer una función para buscar datos,ya la hice,pero no me funciona...

¿Qué no funciona? ¿Tira error? ¿No busca bien? Cual es el problema.
#1686
JPE es un formato comprimido, así que no te lo recomiendo para empezar.
BMP es de los más sencillos, pero te recomiendo uno mucho más simple: PBM

PBM tiene 6 formatos: archivo blanco y negro, archivo en escala de grises, y archivos en color RGB. Todos estos en ASCII. Luego, cada uno de estos tienen su homólogo en binario.

Es de los más simples para empezar. Eso sí, no lo abren todos los editores de imagen. Photoshop, por ejemplo, sí.

https://en.wikipedia.org/wiki/Netpbm_format

El problema de los formatos es que tienes que conocerlos. Eso es todo. Una vez sepas como es el formto (o sigas una guía para generarlo), ya solo es crear el código que lo genere.

Con PBM puedes hacerlo hasta a mano.

PBM versión 6 (P6), es RGB en binario. El mejor formato, pues es el menos pesado, y el más rápido de trabajar en programación. Te animo a hacer un programa para él :D!
#1687
Programación C/C++ / Re: Encriptacion en C
25 Octubre 2015, 21:16 PM
gets es una función obsoleta e insegura. Se debe utilizar en su lugar fgets.

https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

En cuanto al problema Akise Aru, ve por partes. Primero el codificador, y una vez este funcione, el decodificador. Recuerda identar el código para mayor legibilidad.

char Letras[27]={ 'A' , 'B' , 'C' , 'D' };
while(getchar()!= '\n' );
while(Mensaje[i]!= '\0' )


Los caracteres se colocan entre comillas simples 'A'. No sé si fue un error al poner el código en el foro, o si en verdad lo tienes así. Solo lo comento.

Tal como lo tienes, ya solo te faltan 2 cosa:
La primera es comprobar si la letra a tratar es una letra o no. Si no es una letra, no la modificas: pasas a la siguiente.
La segunda es comprobar si al sumar o restar, se sale del rango de las letras. Si es así, modificar el valor adecuadamente.

El tema de la Ñ desde luego complica un poco el algoritmo. Pero utilizando un arreglo como el que tienes de letras, jugando con índices, lo lograrás :D!

Ya comentarás.
#1688
Programación C/C++ / Re: Pasar letras a números
25 Octubre 2015, 18:38 PM
Código (cpp) [Seleccionar]
string texto;
cout << "Ingrese el texto:";
cin >> texto[100];
int numeros[100];


Estás pasándole a cin>> 1 caracter (fuera del rango de texto)

texto es una string. Si quieres leer una linea y guardarla en él, pon:

Código (cpp) [Seleccionar]
getline(cin, texto);

Y en caso de que la cadena tenga más de 100 letras, int numeros[100] no serviría. Pon:
Código (cpp) [Seleccionar]
int numeros[texto.size()];
O utiliza un vector.
#1689
Recorres la cadena con un índice, y luego haces las transformaciones necesarias sumando o restando al valor de cada letra (http://www.elcodigoascii.com.ar/)
#1690
De todos modos, en caso de operadores booleanos:

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

bool func(string a, bool t){
cout << a;
return t;
}

int main(){
(func("A", true) || func("B", true));
cout << endl;
(func("A", false) && func("B", true));
}


Si la condición se cumple (o no se cumple) definitivamente, no se llama al resto de funciones.