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

#221
CitarAsumi erroneamente por tu pregunta (Dobles apuntadores) que ya sabias lo que es un apunador.

Citarentiendo que una variable puntero apunta a la dirección de memoria donde está alojada una variable del mismo tipo, o sea su valor es la dirección de memoria de una variable común.-

#222
Mi nivel de aprendizaje no me da todavía para siquiera intentar hacerte preguntas por lo que no entiendo, igual muchas gracias por tu tiempo.-

Daniel
#223
Hola, a todos.
Desearía  que alguien me ayude a entender la utilidad práctica de los punteros dobles, entiendo que una variable puntero apunta a la dirección de memoria donde está alojada una variable del mismo tipo, o sea su valor es la dirección de memoria de una variable común.-
Un puntero doble apunta a otro puntero, si bien mi descripción no es para escribir un libro pero es lo que hay.-
Por ahí leí que los punteros dobles se asemejan a los array de 2 dimensiones, es esto cierto y porque?.-
El manual con el que estoy estudiando punteros pone este ejemplo pero no tengo claro el beneficio en utilizar punteros dobles, el autor en este caso no da demasiadas explicaciones sobre el tema, no me cabe dudas que más adelante profundizara  sobre el particular pero me gustaría aprenderlo de Uds. El libro tiene más de 200 páginas dedicadas exclusivamente a punteros y de paso está en inglés.-

#include <stdio.h>

int main( void ){
char *titles[] = {"A Tale of Two Cities",
"Wuthering Heights","Don Quixote",
"Odyssey","Moby-Dick","Hamlet",
"Gulliver's Travels"};

char **bestBooks[3];
char **englishBooks[4];

bestBooks[0] = &titles[0];
bestBooks[1] = &titles[3];
bestBooks[2] = &titles[5];
englishBooks[0] = &titles[0];
englishBooks[1] = &titles[1];
englishBooks[2] = &titles[5];
englishBooks[3] = &titles[6];

printf("%s\n\n",*englishBooks[1]); /*Wuthering Heights*/

return 0;
}
   

Bueno es todo por el momento y desde ya muchas gracias.-
Daniel
#224
Hola, meaf75. -
No tengo todavía mucha autoridad para responderte pero fíjate si este código te soluciona en parte tu problema, el único error es que si ingresas 12a te toma como válido el 12, tú dirás. -

#include <stdio.h>
#include <limits.h>

int main( void ){
int numero = 0, ch, ok;

do{
printf("\n Ingresa un numero entero (maximo %u)....: ", UINT_MAX);
ok = scanf("%d", &numero) == 1 && numero >= 1 && numero <= UINT_MAX;

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

printf( "\n Ingreso...: %d", numero );

return 0;
}


Saludos.
Daniel


#225
Hola.
MAFUS, te dejo una captura para que me digas que es lo que estoy leyendo, segundos, milesegundos. -



crack81, muchas pero muchas gracias por esas sugerencias no tenes una idea como se agradece de este lado, no obstante (como lo aclare al principio) lo hice con punteros porque estoy estudiando justamente punteros y estaba practicando. -

Un abrazo y muchas gracias por el tiempo que le dedicaron al tema. -
Daniel
#226
Hola, amigo.
Te dejo la manera que lo hice, no tarda tanto en aparecer los 100 números, Parece ser lo que me propones.

void llenar( size_t *ptrNumeros ){
size_t hora = time(NULL), i, tmp, ok = 0;
srand(hora);

for(i = 0; i < TAM; i++){
do{
tmp = rand()% 999 + 1 ;
ok = verifica( ptrNumeros, tmp );
}while(ok);
*( ptrNumeros + i ) = tmp;
}
}

int verifica( size_t *ptrNumeros, size_t tmp ){
size_t i, stop = 0;

for( i = 0; i < TAM; i++ ){
if( *( ptrNumeros + i) == tmp )
stop = 1;
}

return stop;
}


Saludos.
#227
Hola.
Bueno a pesar de no lograr el cometido porque realmente todas las pruebas que hice no me dieron resultdo, encontré una aplicación utilizando la librería windows.h  que funciona muy bien, me gustaría colgarla aquí, pero como no conozco si es legal esto de sacar programas de una página y copiarlo en otra mejor lo dejamos ahí. -
Lo que quiero consultarles concretamente es ¿es posible generar números aleatorios sin que se repitan?  o la única manera es por cada número generado verificar si ya se encuentra en el arreglo. -

#include<stdio.h>
#include<stdlib.h>
#include<time.h>


void llenar( size_t *ptrNumeros );
void ordenar( size_t *ptrNumeros );
void mostrar( size_t *ptrNumeros );
#define TAM 102

int main( int argc, char *argv[] ){
size_t numeros[TAM], *ptrNumeros = numeros;

llenar( ptrNumeros );
ordenar( ptrNumeros );
mostrar( ptrNumeros );

return 0;
}

void llenar( size_t *ptrNumeros ){
size_t hora = time(NULL), i;
srand(hora);

for(i = 0; i < TAM; i++){
*(ptrNumeros + i) = rand()% 100 + 200;
}
}

void ordenar( size_t *ptrNumeros ){
size_t i = 0, tmp = 0;

while(1){
if( *( ptrNumeros+i) >  *(ptrNumeros+(i+1)) ){
tmp = *(ptrNumeros+i);
*(ptrNumeros+i) = *(ptrNumeros+(i+1));
*(ptrNumeros+(i+1)) = tmp;
}
if( i+1 == TAM ){
if( tmp == 0) break;
else{tmp = 0; i = -1;}
}
i++;
}
}

void mostrar(size_t *ptrNumeros){
size_t i;

for( i = 0; i < TAM; i++ ){
if( i%10 == 0 ) printf( "\n" );
printf( " %u", *(ptrNumeros+i) );
}
}


Saludos.
Daniel
#228
Hola a todos.
Voy a exponer el código y como lo implemente para que me digan si es correcto porque me quedan dudas con el resultado, por Ej. 4294967199, ¿estos son milisegundos y 4.30.... segundos?.-

En cuanto a Linux, se puede poner esta línea para que la salida vaya a un archivo de texto. -
>> (time ls) 2> salida.txt

int main( void ){
size_t vector[] = {99, 8, 13, 6, 10, 40, 7, 2, 1,74}, *ptrV = vector;
static size_t elementos = sizeof (vector) / sizeof (size_t);
clock_t cl = clock();

ordenar(ptrV, elementos);
mostrar(ptrV, elementos);

cl = clock() - cl;

printf("\n\n %lu", (cl*1000)/CLOCKS_PER_SEC);

return 0;
}

Saludos.
Daniel
#229
Hola,  class_OpenGL.
Efectivamente, esa variable era la causante del error, cuando cambie el bucle for por el while no lo tube en cuenta. -
En la función printf efectué 2 cambios y quedo así (de lo contrario me daba errores):

printf("\n\n Milesegundos transcurridos.....:%f", (cl*1000)/(double)CLOCKS_PER_SEC);

%f y (double)

Por último ¿es coherente que me de el resultado con el signo menos?
-98.000000
-95.000000

Saludos.
Daniel
#230
Hola.
Citar¿Cuál es el código que te falla?
Cuando le agrego las líneas que me sugeriste.
Citar¿qué código de error lanza?
Al compilar ninguno, al ejecutar no muestra nada y aparece el mensaje que postee anteriormente. -
Cuando decís que te funciona correctamente, te referís a que ¿lo estás corriendo dentro del programa mío o con algún código diferente?. -

Saludos.