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

#141
Cita de: DanielC# en  6 Enero 2015, 18:31 PM¿qué diferencia hay en hacer las funciones con prototipo y sin prototipo?
Las ventajas del uso de prototipos superan con mucho a las desventajas que no hay razón (de peso) para no utilizarlos.

Aun así si se quiere desarrollar un programa sin prototipos es posible siempre y cuando se cumpla con varios requerimientos: para empezar toda función debe definirse antes de cualquier uso de esta.

Si eso no es posible (por ejemplo en el caso de dos funciones donde una llame a la otra) todavía hay la posibilidad de terminar con un programa funcional pero se deben cubrir dos requisitos: 1) El numero y tipo de parámetros de la función debe coincidir con la llamada (no es posible con funciones con un numero variable de argumentos como printf) y 2) El valor de retorno de la función debe ser de tipo int. Si no se cumplen ambos ya no hay garantías sobre el resultado del programa (comportamiento no definido o UB).

Lo anterior es la razón por la que, de vez en cuando, algunos usuarios comentan que pueden utilizar una función de la biblioteca estándar de C sin incluir el encabezado correspondiente. Un caso común es system:
#include <stdio.h>

int main(void)
{
   puts("Hola, mundo");
   system("pause");
   
   return 0;
}

Como ahí la llamada coincide con la declaración no hay problema.

Pero en otros casos no es así, por ejemplo con atof:
#include <stdio.h>

int main(void)
{
   double d = atof("3.0");
   
   printf("%.2f\n", d);
   
   return 0;
}

Ya que el valor de retorno se asume como int cuando en realidad es double ello resulta en UB (puede funcionar correctamente o no, en mi caso no lo hace e imprime como salida 0.00).

En resumen mejor utilizar prototipos y te olvidas de los dolores de cabeza.

Un saludo
#142
Cita de: chihue en  7 Enero 2015, 16:57 PMTengo un vecor
No es un vector, es un array, ahí empieza el problema.

Cita de: chihue en  7 Enero 2015, 16:57 PMEl problema que me da error en la función clear me sale: [Error] request for member 'clear' in 'v', which is of pointer type 'cliente*' (maybe you meant to use '->' ?)
Ese mensaje se genera porque cuando utilizas el nombre de un array como argumento de una función esta recibe la dirección en memoria de (un puntero a) su primer elemento. Antes de utilizar el mentado puntero debes aplicar indireccion, a eso se refiere la parte del mensaje "maybe you meant to use '->' ?". Pero aun cuando se aplicara indireccion no se resolverá el problema de fondo: estas tratando de utilizar un array como un objeto de la clase vector (llamando a su función miembro clear) y eso no es posible.

Cita de: chihue en  7 Enero 2015, 16:57 PMComo seria para eliminar el vector?
Las operaciones sobre tu array deben realizarse de forma manual, en el caso de tu función basta con colocar el contador de numero de elementos (el parámetro por referencia "tam") a cero y eso ya esta implementado.

Si quieres utilizar un vector en lugar de un array una referencia en linea cortesía del sitio C Plus Plus es std::vector.

Un saludo
#143
Cita de: mort en  7 Enero 2015, 09:46 AMEscriba un programa en C que imprima los enteros equivalentes a algunas letras mayúsculas, minúsculas, dígitos y símbolos especiales.
En C los caracteres son enteros. Para realizar el programa solo tienes que utilizar la funcion printf con los especificadores de formato "%c" para imprimir el caracter y "%d" para el entero correspondiente. Por ejemplo:
printf("%d ==> %c\n", 'A', 'A');

Un saludo
#144
Cita de: DanielC# en  5 Enero 2015, 23:52 PMComo debo hacer con sizeof para saber cuántos punteros tengo declarado en el array de punteros provincias, me funciona con char, int, pero no con array de punteros.
Para conocer el numero de elementos en un array sin importar su tipo basta con utilizar:
size_t num_elem = sizeof a / sizeof a[0];
Donde "a" es el identificador del array.

Un saludo
#145
Cita de: mort en  4 Enero 2015, 04:17 AMme lanza un mensaje de advertencia y me dice "codigo fuente no compilado"
En ese caso por favor publica el mensaje de advertencia completo.

Un saludo
#146
Programación C/C++ / Re: Fallo y no se cual
4 Enero 2015, 16:05 PM
El mensaje de error se genera porque no indicas el valor de retorno si el numero a verificar no es múltiplo de ninguno de los números en el intervalo [min, max):
int multiplos(int min,int max,int num)
{
   int i;
   
   for (i = min; i < max; i++){
      if (num % i == 0){
         return i; /* Valor de retorno si se cumple la condicion */
      }
   }
   
   /* Aqui se debe indicar el valor de retorno en caso de no terminar la funcion en el bucle */
}


Un saludo
#147
Depende donde vivas. En México lo puedes comprar en la librería El Sotano o si buscas la versión en ingles la puedes conseguir en sitios como Amazon o Barnes & Noble.

Un saludo
#148
Cita de: mort en  4 Enero 2015, 01:39 AM¿ es error de mi computadora o del compilador?
Del compilador ya que imprimir mediante una sola llamada a printf o varias no debe generar ningún error. De todos modos y solo para estar seguros deberías publicar el código fuente completo.

Un saludo
#149
Cita de: chihue en  2 Enero 2015, 17:11 PMComo se pueden eliminar todos los elementos guardados en un vecor
Mediante la función miembro clear

En cuanto a la función "FncLeerClientesFich" falta la definición de la clase "VecClientes" y deberías evitar el uso de la función feof, en su lugar verifica directamente el estado del stream.

Un saludo
#150
Si estas utilizando un IDE (en tu caso Code Lite) debes buscar en el donde indicar directamente el estándar a utilizar o por lo menos la forma que permita pasarle a gcc (el compilador) la opción (mediante linea de comandos) indicando el estándar a utilizar.

Las opciones de linea de comandos de gcc se describen (en ingles) en la pagina 3.4 Options Controlling C Dialect.

Un saludo