|
961
|
Programación / Programación C/C++ / Re: Ayuda: con sustitución de funciones
|
en: 6 Marzo 2013, 17:47 pm
|
Otra forma de implementarlo sin vectores. Gracias a la magia de los punteros:
Bueno, bueno ahí podríamos hablar de arrays asignados estáticamente o dinámicamente. Si declaro un puntero como *enteros puedo luego acceder a sus posiciones como , que es la forma clásica de un array.
Por cierto, el valor cero para salir de la introducción de los datos impide que se pueda entrar ese valor.Saluditos!. ...
|
|
|
962
|
Programación / Programación C/C++ / Re: ¿Por qué no me compila este código con Dev-c++?
|
en: 6 Marzo 2013, 17:32 pm
|
......................................... ¿ Por qué el programa al ejecutarse dura medio segundo? No me da tiempo ni a ver lo que pone. Un saludo y muchas gracias Eso depende del compilador o en que esté basado éste. En concreto CodeBlocks, PellesC y otros introducen de forma automáticamente una parada antes de cerrarse, cosa que no sucede en otros como el vetusto y poco actualizado Dev.C++. En este último hay que poner una función al final para "pararlo". Mejor pasa de él.
Saluditos!. ....
|
|
|
963
|
Programación / Programación C/C++ / Re: ¿Por qué no me compila este código con Dev-c++?
|
en: 6 Marzo 2013, 13:42 pm
|
Vaya estrés '-- llevo media mañana intentando un simple imprimir pantalla, tiene que ser algún error de Dev, pero nunca me ha pasado y lo uso en otro ordenador. El código es el siguiente: #include <iostream.h> int main (void) { cout << “mostrar frase” << endl ; return 0 ; }
Para empezar, iostream no lleva .h, las comillas las tienes mal y te falto using namespace std para el cout:#include <iostream> using namespace std; int main (void) { cout << "mostrar frase" << endl ; return 0 ; }
Saluditos!. ...
|
|
|
964
|
Programación / Programación C/C++ / Re: Flotantes aleatorios
|
en: 6 Marzo 2013, 11:08 am
|
............................................................... En realidad [bs]e necesitan 4 valores aleatorios[/b] .........................................., esto sirve para generar números aleatorios (de punto flotante), por eso el título..
No sé dónde me he perdido pero por lo que entiendo tratas de generar números aleatorios en coma flotante y punto. ¿O es algo más?. Porque si sólo es eso con esto tiras bien:#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 4 int main() { int i,n; float n1[N],sig; srand((unsigned) time(NULL)); for (i = 0; i < N; i++){ n = rand(); n1[i]=n/32767.; sig = rand()%2; if (sig==0) n1[i]*=-1.; printf("n1[%d]= %f\n",i, n1[i]); } return 0; }
Saluditos!, y ya me diras si la intención era otra. ...P.D: Se me ha" escapado" en C, espero que no te importe.
|
|
|
965
|
Programación / Programación C/C++ / Re: Guardar cada línea de un fichero en una estructura
|
en: 6 Marzo 2013, 10:14 am
|
............................................................... La segunda donde se utiliza el valor de retorno de fgets:Es la correcta. Para seguirte pegando (por supuesto en buen plan): tienes un punto y coma cuando debería ser el paréntesis de cierre.
Pues se cierra:
while( fgets(estructura[i].nombre, 20, fichero)!= NULL) i++;
Saluditos!. ...
|
|
|
966
|
Programación / Programación C/C++ / Re: Frecuencia en una serie numeria aleatoria
|
en: 6 Marzo 2013, 09:31 am
|
Por ahí el muchacho quiso poner:lo cual incrementa en 1.. Pero le faltaba el '=' ;-)Eso mismo me parece a mí en principio, aunque viendo el resto de los mensajes del compilador:
|5|error: ':[b]:main' must return 'int'|[/b] |In function 'int main()':| |8|error: 'randomize' was not declared in this scope| |13|error: 'random' was not declared in this scope| |56|error: 'cout' was not declared in this scope| |60|error: 'cout' was not declared in this scope|
* Los include está puestos tipo C, es decir ".h " , y no habría mayor problema ... salvo el iostream, que no lo lleva y hace que el programa ni compile.
int arry[29],f[9];
* Cuando deberían ser. para contener 30 y 10: int arry[30],f[10]={0};
* Además el compilador "se queja" con el tipo void asignado a main pide int.
* Falta al menos using namespace std;
* "Canta" con la función randomize, que si es de conio.h deberías cambiarla por la versión estandar del C: srand, así como random por rand y random(9) generaría números hasta 9 no incluido con lo que +1 daría nueve y no se llegaría nunca la case 10. Aunque supongo que el error está en que los quieres desde cero a nueve, ya que así están las condenaciones de los for.
* rand, en C al menos o se especificaría como "rand(9)" srand()%9;
Aunque como los quieres incluyendo el diez y a partir de 1 sería: 1+srand()%10
* getch() pertenece a la librería no estandar conio, que podría sustittuirse por otra estandar, como getchar () o cin.get().* Los resultados de frecuencia serían" basura", ya que no están inicializados.
* Como comento rir el switch se puede sustituir y sequedaríaría :f[arry[i]-1]++;
Con todo esto el resultado sería algo como esto:5 7 1 5 9 4 6 10 4 6 7 8 6 10 8 4 9 3 7 8 6 3 8 3 2 3 3 8 6 3 Frecuencia del 1 es 1 Frecuencia del 2 es 1 Frecuencia del 3 es 6 Frecuencia del 4 es 3 Frecuencia del 5 es 2 Frecuencia del 6 es 5 Frecuencia del 7 es 3 Frecuencia del 8 es 5 Frecuencia del 9 es 2 Frecuencia del 10 es 2
Y casi me olvido, el código:#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main (void){ int arry[30],f[10]={0}; srand((unsigned) time(NULL)); for (int i=0;i<30;i++) { arry[i]=1+rand()%10; f[arry[i]-1]++; } for (int j=0;j<30;j++) cout<<arry[j]<<" "; for(int k=0;k<10;k++) cout<<"\n Frecuencia del "<< k+1 << " es " <<f[k]; cin.get(); return 0; }
Saluditos!. ...
|
|
|
967
|
Programación / Programación C/C++ / Re: Ayuda con arreglos.
|
en: 6 Marzo 2013, 01:18 am
|
gracias leosansan!! tu código me ayudo mucho pude resolver el problema en el mio (en lo unico que tengo duda fue en esto: int arryc[99],arryS[99]={0},spar=0,simp=0;
en arryS el cero entre llaves es una forma de declararlo o la sintaxis correcta?)............................................... Siempre que una varaible se va a usar de "sumador" combiene inicializar a cero para que no contenga previamente valore impredecibles asignados por el compilador o valores basura. Es lo mismo que haces inicializando spar=0,simp=0.Saluditos!. ...
|
|
|
968
|
Programación / Programación C/C++ / Re: Problema con el uso de la libreria time
|
en: 6 Marzo 2013, 00:02 am
|
..................................................
aparte los rangos son de 0 a 60 minutos? o qué rangos estás hablando?
Tal como tiene el código las 12:030 no se corresponde ni con el primer caso (>12) ni con el segundo (<12 ), por lo que le faltaría considerar los " = " y los minutos:#include <iostream> #include <ctime> using namespace std; int main() { char nya[60]; time_t t = time(0); struct tm * now = localtime( & t ); cout << (now->tm_hour ) << ':' << (now->tm_min) << ':' << now->tm_sec << endl; cout << "Ingrese su Nombre y Apellido: "; cin.getline(nya,60); if ((now->tm_hour >= 12 && now->tm_min>=0 ) && (now->tm_hour<=17 && now->tm_min<60)) cout << "Buenas tardes: " << nya; else if (now->tm_hour >= 0 && now->tm_min>=0 && now->tm_hour <= 11 && now->tm_min<60) cout << "Buenos D"<<"\xA1"<<"as: " << nya; else cout << "Buenas Noches: " << nya; cin.get(); return 0; }
Saluditos!, ....
|
|
|
969
|
Programación / Programación C/C++ / Re: Ayuda: con sustitución de funciones
|
en: 5 Marzo 2013, 22:53 pm
|
Sí funciona de maravilla. Lo que mencionaba es que los imprime en el orden que ingresaste el número y no de menor a mayor. Ahorita le moveré un poco a ver que pasa xD
Para eso está "San Burbuja":#include<stdio.h> int main(){ int n,i,j,temp; float ma=0; printf("Introduce total de numeros: "); scanf("%d",&n); float num[n]; for(i=0;i<n;i++){ printf("Digita el numero %d: ",i+1); scanf("%f",&num[i]); ma+=num[i]; } printf("La media de: "); for (j=1; j <= n; j++) for (i=0; i< n-1; i++) if (num[i] > num[i+1]){ temp = num[i]; num[i] = num[i+1]; num[i+1] = temp; } for(i=0;i<n;i++) printf("%g,",num[i]); printf("\b es: %g",ma/n); getch(); return 0; }
Saluditos campeón!....
|
|
|
970
|
Programación / Programación C/C++ / Re: Ayuda con arreglos.
|
en: 5 Marzo 2013, 22:44 pm
|
Pues viejo, no veo el porque debes usar otro arreglo ....................
Porque además de los números se le pide que guarde en "otro" arreglo las sumas parciales (debe de utilizar dos arreglos uno que arroje la serie y otro el resultado de las sumas)
vamos algo como esto:Serie: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 15 3 171 190 210 231 253 276 300 325 351 378 406 435 465 496 528 56 1 595 630 666 703 741 780 820 861 903 946 990 1035 1081 1128 1176 12 25 1275 1326 1378 1431 1485 1540 1596 1653 1711 1770 1830 1891 1953 2016 2080 21 45 2211 2278 2346 2415 2485 2556 2628 2701 2775 2850 2926 3003 3081 3160 3240 33 21 3403 3486 3570 3655 3741 3828 3916 4005 4095 4186 4278 4371 4465 4560 4656 47 53 4851 4950 5051 Suma pares: 5100 Suma impares: 7550
#include <iostream> using namespace std; int main (void){ int arryc[100],arryS[100]={0},spar=0,simp=0; //sleep()=[500]; cout<<"Serie: "<<endl; cout<<"\n"; arryS[0]=1; for(int i=0;i<=99;i++){ arryc[i]=i+1; if (i>0) arryS[i]+=i+1+arryS[i-1]; cout<<arryc[i]<<"\t"; } cout<<endl<<endl; for(int i=0;i<=99;i++) cout<<arryS[i]<<"\t"; for (int i=0; i<=99;i++) { if ( arryc[i] % 2 == 0) spar=spar+arryc[i]; else simp=simp+arryc[i]; } cout<<endl<<"\nSuma pares: "; cout<<spar<<endl; cout<<endl<<"\nSuma impares: "; cout<<simp<<endl; cin.get(); return 0; }
Saluditos!. ...
|
|
|
|
|
|
|