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

#961
Cita de: amchacon en  5 Marzo 2013, 20:59 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 enteros[i], 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!. ... :rolleyes:
#962
Cita de: OmarHack en  6 Marzo 2013, 13:52 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 :D


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
Cita de: OmarHack en  6 Marzo 2013, 13:36 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:

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int main (void)
{
    cout << "mostrar frase" << endl ;
    return 0 ;
}


Saluditos!. ...
#964
Cita de: 85 en  6 Marzo 2013, 03:18 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  :P 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:

Código (cpp) [Seleccionar]
#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
Cita de: rir3760 en  6 Marzo 2013, 01:53 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:


Código (cpp) [Seleccionar]
while( fgets(estructura[i].nombre, 20, fichero)!= NULL)
           i++;


Saluditos!. ...
#966
Cita de: 85 en  6 Marzo 2013, 04:29 AM
Por ahí el muchacho quiso poner:


f[0]+=1;


lo cual incrementa en 1.. Pero le faltaba el '='  :rolleyes:



;-) ;-)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.


Código (cpp) [Seleccionar]
int arry[29],f[9];


* Cuando deberían ser. para contener 30 y 10:

Código (cpp) [Seleccionar]
int arry[30],f[10]={0};



* Además el compilador "se queja" con el tipo void asignado a main pide int.

* Falta al menos


Código (cpp) [Seleccionar]

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)"


Código (cpp) [Seleccionar]
srand()%9;

Aunque como los quieres incluyendo el diez y a partir de 1 sería:

Código (cpp) [Seleccionar]
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 :


Código (cpp) [Seleccionar]
f[arry[i]-1]++;

Con todo esto el resultado sería algo como esto:

Código (cpp) [Seleccionar]
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:

Código (cpp) [Seleccionar]
#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 C/C++ / Re: Ayuda con arreglos.
6 Marzo 2013, 01:18 AM
Cita de: acega en  6 Marzo 2013, 00:57 AM

gracias leosansan!! tu código me ayudo mucho pude resolver el problema en el mio  ;D (en lo unico que tengo duda fue en esto:
Código (cpp) [Seleccionar]
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
Cita de: 85 en  5 Marzo 2013, 04:26 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:

Código (cpp) [Seleccionar]
#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
Cita de: do-while1 en  5 Marzo 2013, 22:27 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":

Código (cpp) [Seleccionar]
#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 C/C++ / Re: Ayuda con arreglos.
5 Marzo 2013, 22:44 PM
Cita de: dato000 en  5 Marzo 2013, 22:10 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

Citar
(debe de utilizar dos arreglos uno que arroje la serie y otro el resultado de las sumas)

vamos algo como esto:

Código (cpp) [Seleccionar]
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


Código (cpp) [Seleccionar]
#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!. ...