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

#351
Mientras que la cadena en la posición i no sea igual que el final de línea (carácter nulo) , sustituye cadena en la posición i por 0.

char cadena[] = "Texto que desees";
int i;
for( i = 0 ; cadena [i] != '\0' ; i++ )
{
 cadena[i] = 0;
}

También puedes hacer esto ( sustituye strlen -1 carácteres de cadena por  0's ):

#include <string.h>
#include <stdio.h>

int main ( int argc, char *argv[] )
{
 char cadena[]="Texto que desees";
 memset ( cadena , 0 , strlen ( cadena ) - 1 );
 return 0;
}


¡Un saludo!
#352
Programación C/C++ / Re: Necesito una ayuda
4 Febrero 2013, 01:25 AM
Si tienes razón es verdad, de todas maneras el código que he puesto en el post de arriba me parece que funciona.

¡Un saludo!
#353
Programación C/C++ / Re: Necesito una ayuda
4 Febrero 2013, 01:07 AM
La parte matemática está mal. Esto sería lo que está bien:
sqrt(a) * sqrt (b) = sqrt(a * b)
sqrt(a) + sqrt(b) = sqrt(a) + sqrt(b)
(sqrt(a) +sqrt(b))² = a + b + 2*sqrt(a*b)
Esto último es el cuadrado de una suma: cuadrado del primero más el cuadrado del segundo mas el doble del producto del primero por el segundo...

Este código que acabo de hacer creo que cumple con eso:
Código (cpp) [Seleccionar]
#include <iostream>
#include <cmath>

using namespace std;
//Definición de funciones.
bool esValido(int N, int M);

int main(int argc, char *argv[])
{
   //Declaración de variables.
   int N = 0;
   int M = 0;
   int contadorN = 1;
   int contadorM = 1;
   //Entrada de datos.
   cout << "Introduce N:" << endl;
   cin >> N;
   cout << endl << "Introduce M:" << endl;
   cin >> M;
   //Mientras contadorN no llege a N.
   while(contadorN <= N)
   {
       //Comprobamos si la raiz de a más la raiz de b al cuadrado es un número entero.
       if(esValido(contadorN,contadorM))
       {
           //Si es un número entero desplegamos a y b.
           cout<<"N: "<< contadorN << endl;
           cout<<"M: "<< contadorM << endl << endl;
       }
       //Si contadorM llega a M aumentamos contadorN para probar con otros valores de N y volvemos a poner contadorM a 1.
       if(contadorM == M)
       {
           contadorN++;
           contadorM = 1;
       }
       else
       {
           ++contadorM;
       }
   }
   return   0;
}
bool esValido( int N,int M )
{
   float numero = powf(sqrt(N)+sqrt(M),2);
   if(numero == (int)numero)
       return true;
   else
       return false;
}
#354
Programación C/C++ / Re: [DUDA] DEV C++
3 Febrero 2013, 12:17 PM
Cita de: amchacon en  3 Febrero 2013, 12:13 PM
Eso significa que te has descargado la versión sin compilador... Bajate la versión que incluye el MingW

Por cierto, el C/C++ es un lenguaje bastante avanzado... La mayoría de los programas que ejecutes (incluso windows!) están programados en C.
El link que le puse es el de la versión con compilador. Se ponen en rojo los compiladores que no tienes que yo sepa, no todos. Me da a mí la impresión de que tiene instalado el Dev-Cpp y Codeblocks se está liando como un trompo con la variable de entorno.

¡Un saludo!
#355
Programación C/C++ / Re: [DUDA] DEV C++
3 Febrero 2013, 03:06 AM
Que raro, en la ventana esa que te salia todo rojo no había nada que dijese algo diferente a los demás ?

PD: mira tus mensajes privados , arriba a la derecha donde pone hola + tu usuario en negrita
#356
Programación C/C++ / Re: [DUDA] DEV C++
3 Febrero 2013, 02:45 AM
Visual Basic es otro lenguaje de programación que nada tiene que ver con C++. Las extensiones del archivo ejecutable las determina el Sistema Operativo así que dependiendo del este te saldrá una aplicación:

Intenta haciendo esto: En el programa vete a la pestaña Settings, luego a Compiler... . Te saldrá una ventana , busca la pestaña ToolChain Executables y pulsa el botón donde dice Auto-Detect. Supongo que tienes Windows claro.
#357
Programación C/C++ / Re: [DUDA] DEV C++
3 Febrero 2013, 02:20 AM
Vamos a ver programar es indicarle los pasos a un ordenador para hacer algo. Sin embargo como para hacer los pasos directamente para que los entienda el ordenador es muy tedioso, se crearon los lenguajes de programación. Compilar es TRADUCIR un lenguaje de alto nivel, a uno que entienda el ordenador. Así en vez de hacer en un lenguaje de bajo nivel esto(es para calcular el largo de una cadena):
Código (asm) [Seleccionar]
   strlena:
      pop edx
      pop ecx
      xor eax, eax
   bucle:
      inc eax
      cmp byte ptr [ecx+eax],0
      jne bucle
      jmp edx
   

El anterior código es el lenguaje ASM , que es el lenguaje anterior al código máquina(el que entiende el ordenador) que son ceros y unos.En C++ sería así (facilitando al programador las cosas):
Código (cpp) [Seleccionar]
std::string str ("Test string");
int largo =  str.length();

Compilar es convertir el código anterior a:
010101010101010101110110110101110101010101010101101010101010111110101101010101010101010...
Es solo un ejemplo no es real.
Para comenzar a programar tienes que aprender el lenguaje de programación, luego escribir algo con ese lenguaje en archivo, y después compilarlo(traducirlo a ceros y unos para que lo entienda el ordenador). Y ahí tendrías tu programa.

Entiende que esto está explicado a muy grosso modo aunque es lo que hay que hacer.Hacer códigos complejos de manera simple es imposible, para que me vayas entendiendo es muy difícil que hagas un juego como Call of Duty solo, o un sistema operativo.
#358
Programación C/C++ / Re: [DUDA] DEV C++
3 Febrero 2013, 01:08 AM
Hola 2.0 , el lenguaje C++ no es un programa , es simplemente un lenguaje. Lenguajes hay muchos, y los hay de alto y de bajo nivel, según el nivel de cercanía al lenguaje natural humano. Los procesadores entienden un lenguaje que utiliza un conjunto de instrucciones limitadas (lenguaje de muy bajo nivel). C++ es un lenguaje que abstrae(simplifica) el lenguaje de bajo nivel. Cuando programas en C++ utilizas un lenguaje que posteriormente será traducido a lenguaje de muy bajo nivel para que el procesador lo entienda y ese trabajo lo realiza el compilador. Para el sistema operativo Windows tienes el compilador MinGW que lleva gcc(este es para el lenguaje C) y g++(para el lenguaje C++) pero para Windows, para linux pues g++ como dice Stakewinner00.


Cita de: Stakewinner00 en  2 Febrero 2013, 23:30 PM
Que yo sepa el Dev C++ es simplemente un compilador, si comienzas en c++ esto te puede servir.

http://www.cplusplus.com/doc/tutorial/

Un power point de DEV C++: http://www.slideshare.net/mariconachacha/manual-del-dev-c
El Dev-Cpp no es un compilador , sacado de su página oficial:
CitarBloodshed Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. It uses Mingw port of GCC (GNU Compiler Collection) as it's compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler.
Para empezar puedes bajarte Codeblocks con el compilador integrado y programar con la ayuda de un libro(aquí hay muchos http://foro.elhacker.net/programacion_cc/librospapers_cc-t296234.0.html es una chincheta de este subforo). Ya más adelante cuando vayas soltándote puedes compilar cosas por consola que no es muy difícil pero bueno. Para que no te comas el coco buscando te dejo el link:
http://sourceforge.net/projects/codeblocks/files/Binaries/12.11/Windows/codeblocks-12.11mingw-setup_user.exe/download

Para empezar a programar, vete a la pestaña file, posteriormente a new y elige Project. Ahí selecciona console application. Después se te abrirá una ventana , sin hacer nada dale a Next. Ahora verás que te pregunta en que lenguaje quieres que sea el proyecto, elige C++. Después te pregunta el título del proyecto, ponle el título que quieras y dale al botón de los tres puntos para elegir donde se ubicará el proyecto. Después dale a Next, y posteriormente a finish. Una vez hecho eso a la izquierda te aparecerá como un árbolo donde pone el nombre de tu proyecto y debajo una carpeta llamada sources (fuente) , pincha sobre la carpeta y elige el archivo main.cpp . Para compilar el archivo solo debes pulsar F9 o darle a la pestaña Build y posteriormente a Build and Run o si solo quieres compilarlo y no ejecutarlo darle a Build solamente.

¡Un saludo!
#359
Ingeniería Inversa / Re: Se podria.....?
30 Enero 2013, 20:51 PM
Winrar lo que hace es cifrar el archivo con la pass que le pones así solo lo podrá descifrar quien tenga la pass ya que al dar una pass incorrecta , el archivo descomprimido no es el mismo. Con respecto a lo que dices no hace falta tanto, básicamente ponte en el lugar de la empresa, ¿cuántas versiones de tu exe inservible vas a crear? , y aunque las crees ¿no habría nadie que pudiese subir tu programa ya modificado para que corra bien? En resumen, poder puedes hacerlo pero desde mi humilde punto de vista  es un poco inútil ya que una vez "reparado" pueden subirlo.

¡Un saludo!
#360
Cita de: rir3760 en 30 Enero 2013, 18:40 PM
Por partes ...
Te recomendaría buscar otro libro, para sugerencias sobre alguno bueno nada mejor que el motor de búsqueda de los foros.

El programa que publicas tiene deficiencias como: el tipo de retorno de getchar es int, no se vacía explícitamente la salida estándar, vaciar el bufer de la entrada estándar como se indica no es valido, si se va a imprimir una literal es mejor utilizar puts y por ultimo "return(0);" no es una llamada a función y por ende los paréntesis están de mas.

----
En C estándar tampoco vale como solución ya que la llamada a setbuf termina como una llamada a setvbuf y esta ultima debe ser llamada antes de cualquier uso del stream (salvo su apertura).

----
Primero la pedantería: el tipo de retorno de la función getchar es int y faltan paréntesis para obtener el resultado esperado:
int ch;

/* ... */

while ((ch = getchar()) != EOF && ch != '\n')
  ;

No puede decirse que la solución en base a un bucle sea un parche cuando, si se piensa un poco, garantiza el descarte de la linea sin importar su longitud, algo que no sucede al utilizar fgets. Por ejemplo si en tu programa la primera linea tiene mas de 79 caracteres su salida no es la correcta.

Opciones hay varias: fgets + sscanf, el mentado bucle o bien scanf mas algunos especificadores de formato. Cual elegir lo decide el contexto.

Un saludo
Hola rir3760 no sé donde notas la actitud de pedantería si es por lo de "hacerlo bien no mata a nadie", solo me remito a lo que ya se ha hablado en el foro.Si que es cierto  eso de que está mal el bucle  :-\ .

¡Un saludo!