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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 ... 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 [136] 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 ... 160
1351  Programación / Programación C/C++ / Re: Problema con este programa, me aparece un mensaje de error. en: 21 Enero 2012, 01:56 am
Porque en C las constantes numéricas enteras que inician con un cero se toman como base 8 y en esta base solo son validos los dígitos 0 a 7. Para eliminar ese error basta con eliminar el cero inicial.

Aparte de eso deberías eliminar el uso de la biblioteca conio de Borland. El porque de ello es explica en el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

Por ultimo en tu programa los casos son exclusivos (no se puede ser de un signo y otro a la vez) y todas las sentencias de selección "if" terminan con:
Código
  1. return 0;
Eso lo debes colocar solo una vez, justo antes del final de la función principal.

Un saludo
1352  Programación / Programación C/C++ / Re: Como se hace para poner colores de fondo en los programas, cambiar la letra,etc. en: 21 Enero 2012, 01:42 am
No aplica solo si estas ejecutando Dev-C++ en Linux mediante un emulador como Wine ...

Cuando indique "menú inicio" me refería al menú principal en MS Windows, el IDE que se utilice no importa.

Un saludo
1353  Programación / Programación C/C++ / Re: Como se hace para poner colores de fondo en los programas, cambiar la letra,etc. en: 20 Enero 2012, 19:50 pm
No es necesario, al menos no en MS Windows XP.

Con este en el menú "Inicio" seleccionas la entrada "Ayuda y soporte técnico". En el cuadro de búsqueda tecleas "Interprete de comandos" y uno de los resultados es "Referencia A-Z de la línea de comandos". Ahí esta la descripción de todos lo comandos internos y externos.

Un saludo
1354  Programación / Programación C/C++ / Re: Tengo un problema en un programa simple, no entiendo cual es. en: 20 Enero 2012, 19:46 pm
Código:
i = 0;
while(i < algo) {
    /* codigo */
    ++i;
}

para que es el ++i?
Para incrementar el contador (la variable "i") en una unidad.

Un saludo
1355  Programación / Programación C/C++ / Re: Estado de Variables de retorno en: 20 Enero 2012, 14:00 pm
En mi opinión con solo la información que dio Xandrete ya debería estar solucionado el tema, a menos que busques algo mas y (en buen plan) no estés explicando de forma clara y precisa el problema.

Recopilando y extendiendo un poco:

* Puedes devolver la dirección en memoria de una variable local pero su uso (vía indirección) no sera valido ya que esas variables tienen el tipo de almacenamiento automático: se crean al inicio del bloque y se destruyen al finalizar este.

* Como indicas para solucionar esto puedes utilizar una variable "global" ya que su tipo de almacenamiento es estático: a partir de su definición la variable se crea y solo se destruye al finalizar el programa.

* Una mejor opción es seguir la recomendación de Xandrete: dependiendo del lenguaje utilizar malloc+free o new+delete ya que el objeto apuntado (como en el caso de las variables "globales") tiene el tipo de almacenamiento estático.

Un saludo
1356  Programación / Programación C/C++ / Re: Como se hace para poner colores de fondo en los programas, cambiar la letra,etc. en: 20 Enero 2012, 13:41 pm
En C estándar CREO que no se puede, que alguien me corrija si me equivoco.

Si usas Windows puedes usar su API, para cambiar el color del texto la función que se utiliza es SetConsoleTextAttribute
Correcto, en C estandar no es posible. En este la salida estandar (stdout) se trata como un stream en modo "wt" (modo texto, escritura) con algunas limitaciones.

Un saludo
1357  Programación / Programación C/C++ / Re: Variables globales en ficheros .h en: 20 Enero 2012, 04:04 am
El problema se debe a la diferencia entre declaraciones y definiciones. Si necesitas de una variable "global" (técnicamente estas no existen en C, son una combinación de "file scope" y "external linkage") debes declarar la variable en el archivo de inclusión utilizando la palabra reservada "extern", por ejemplo:
Código
  1. /* Declaracion de la interfaz */
  2.  
  3. extern int x;

Esa variable la debes definir en una sola unidad (sin utilizar "extern") y, por supuesto, fuera de toda función:
Código
  1. int x;

De esa forma tienes la declaración de la variable en varias unidades (al incluir el encabezado) y sola una definición (en la unidad que lo requiera).

Un saludo
1358  Programación / Programación C/C++ / Re: [C] Conceptos básicos en: 19 Enero 2012, 03:43 am
Un detalle a considerar es, en el lenguaje C, los valores máximos de los tipos están definidos con un mínimo garantizado pero nada impide que sean mayores (depende de la implementación).

Por ejemplo el tipo "signed int" consta de por lo menos 16 bits y puede almacenar como mínimo el rango de valores -32,767 a 32767.

Pero lo usual en sistema operativos como MS Windows y Linux es tener al tipo "signed int" constituido por 32 bits. Para conocer los máximos permitidos se pueden utilizar las macros definidas en los encabezados <limits.h> y <float.h> pero eso mejor déjalo para después.

Por el momento lo mejor (en mi opinión) no es memorizar esos limites, con la practica eso sucederá de forma natural.

Edito: lo siento, no vi el mensaje de Xandrete. Sorry.

Un saludo
1359  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 17 Enero 2012, 17:28 pm
Solo agregar que, si lo permite el enunciado, se puede agregar un borde de centinelas para así evitar los casos especiales (con su costo, por supuesto).

Por ejemplo en el caso de la matriz 5x5:
Código:
0 0 0 0 0 0 0
0 X X X X X 0
0 X X X X X 0
0 X X X X X 0
0 X X X X X 0
0 X X X X X 0
0 0 0 0 0 0 0
Donde las Xs son los valores de matriz y los 0s los centinelas. De esa forma se puede desarrollar una función que, dada una coordenada, verifique si esta es mayor que cualquiera de sus ocho vecinos retornando verdadero o falso (según corresponda).

Un saludo
1360  Programación / Programación C/C++ / Re: validar texto y numero!! Turbo c++ en: 16 Enero 2012, 15:35 pm
El programa tal como esta no funcionara correctamente por varios errores críticos.

No quiero sonar como un [CENSORED] de lo mas pedante pero creo que acabas de romper todas (o casi todas) las recomendaciones del tema |Lo que no hay que hacer en C/C++. Nivel basico|. Espero no lo tomes a mal (solo es un comentario con humor).

Lo primero (si es posible) es cambiar de compilador por uno mas reciente y actualizado, recomendaciones hay muchas, solo tienes que usar el motor de búsqueda de los foros.

En cuanto al programa los errores mas importantes son utilizar las variables "nom" y "num" sin antes asignarles un valor (la dirección en memoria retornada por malloc, calloc o realloc). Al no hacerlo el valor inicial de ambas variables es NULL.

En cuanto a los bucles una forma mejor es verificar cada carácter. Aquí tienes el problema del espacio blanco antes y después de un numero así como el espacio intercalado en nombres compuestos como "Jose Maria".

Bueno, comparas cada carácter y si es valido continuas. Con ello al terminar el bucle basta con revisar si el ultimo carácter procesado es el '\0'. Si es así la cadena es valida.

Poco mas o poco menos (para el nombre):
Código
  1. for (i = 0; isalpha(nom[i]) || isspace(nom[i]); i++)
  2.   ;
  3. if (nom[i] == '\0'){
  4.   /* La cadena es valida */
  5. }else {
  6.   /* No lo es */
  7. }

Un saludo
Páginas: 1 ... 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 [136] 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 ... 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines