Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    20

    [C++]Somma,Prodotto, radice quadrata degli elementi di un array!

    Salve!
    Il programma ha in input un vettore e in output la somma, il prodotto e la radice quadrata degli elmenti del vettore!
    N.B.= la somma e il prodotto non devono essere effettuati con i banali comandi "som +=" e "prod *="..(perchè non sono stati minimamente accennati nel corso)
    Per quanto riguarda la radice, stesso discorso: niente uso della funzione sqrt.. bensì basarsi su questo programma(radice quadrata visto come limite di successione-FORMULA DI NEWTON):

    codice:
    /*Programma radq3(radice quadrata di un numero reale)
      Costrutto ciclico: do..while*/
      
      #include<iostream>
      using namespace std;
      #include <stdlib.h>
      
      int main()
      { 
          double X,Y;  // X variabile di input, Y variabile di output
          double E;   //variabile di input
          
          cout<<"Assegna valore al radicando X \n";
          cin>>X;
          cout<<"Assegna valore alla precisione richiesta E\n";
          cin>>E;
          
          Y=1; //Y di partenza fissato
          do
          {
              Y=(Y + X/Y)/2;
          }while(fabs((Y*Y-X)/X)>E);
          
          cout<<"Il valore della radice e\' "<<Y<<"\n";
          
         system("PAUSE");
         return 0;
         
    }
    Sono grato a tutti quelli che avranno la voglia di rispondermi...
    sono disperato ormai!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ma hai iniziato a scrivere qualcosa da proporre e discutere o vuoi fatto il compito?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    20
    Originariamente inviato da oregon
    Ma hai iniziato a scrivere qualcosa da proporre e discutere o vuoi fatto il compito?
    Ahahah me lo sarei dovuto aspettare da te?...No, perchè rispondi sempre con una certa ostilità, soprattutto con i "newbie"...ad ogni modo la risposta è facoltativa e a chiunque mi tenda una mano qui.. non posso che essergli riconoscente(senza tirarsela troppo però)..
    Poi secondo te... che senso ha farsi svolgersi un compito..senza sapere nulla?!?boh mi pare un controsenso!
    Cmq grazie per il tuo interessamento...
    Dopo questa piccola premessa..

    Devo dire che le prime domande relative alla somma e al prodotto.. senza i comandi som + e prod + ne sono venuto a capo da solo in queste ore:

    codice:
    int main()
    ....
    
    for(i=0;i<n;i++)    //Somma degli elementi di un vettore
    { som=0;
       som = som + v[i];
    }
    
    ....
    for(i=0;i<n;i++)
    {prod=1;
      prod = prod * v[i];
      .....
    Non ho avuto modo di compilarlo al calcolatore, ma penso dovrebbe andare bene.

    Per quanto riguarda la radice..io avevo provato, senza risultato questo pezzo di codice..(probabilmente molto sbagliato..sono ancora alle prime armi)

    codice:
    .....
    for(i=0;i<n;i++)
    {
       RQ[0]=1; 
       do
       {RQ[i]=(RQ[i]+v[i]/RQ[i])/2
       }while(fabs((RQ[i]*RQ[i]-v[i])/v[i])>E);
    ....
    Grazie a chiunque voglia aiutarmi!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da f4t4l1ty
    Ahahah me lo sarei dovuto aspettare da te?...No, perchè rispondi sempre con una certa ostilità, soprattutto con i "newbie"...
    Per avere scritto un paio di messaggi, vedo che hai studiato le mie abitudini ... ma sbagli, io rispondo "costruttivamente", specialmente ai "newbie" che dimostrano voglia di imparare ...

    In ogni caso, la mia risposta e' servita a farti scrivere e postare del codice, cosa che avresti potuto fare sin dall'inizio di questo thread ...

    Devo dire che le prime domande relative alla somma e al prodotto.. senza i comandi som + e prod + ne sono venuto a capo da solo in queste ore:
    E questo e' stato MOLTO piu' costruttivo che avere una risposta IMMEDIATA al tuo problema nel forum ...

    L'unico problema e' che la variabile che conterra' il risultato della somma non va all'interno del ciclo, altrimenti la azzeri ad ogni giro ... dovrai quindi scrivere

    codice:
    int main()
    ....
    
    som = 0;
    for(i=0;i<n;i++)    //Somma degli elementi di un vettore
       som = som + v[i];
    e lo stesso vale per il prodotto ...

    codice:
    prod = 1;
    for(i=0;i<n;i++)
       prod = prod * v[i];
    Per la radice, devi prima trasformare il programma che hai mostrato all'inizio, in una

    funzione

    da poter richiamare dall'interno di un ciclo, passandole come parametro i vari valori del vettore, per ottenere i risultati da memorizzare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    20
    Grazie per la risposta...
    per la funzione, non ho capito bene cosa intendi:

    da poter richiamare dall'interno di un ciclo, passandole come parametro i vari valori del vettore, per ottenere i risultati da memorizzare ..."
    Se potresti postarmi qualche esempio te ne sarei davvero grato..
    Ciao!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Se parti dal programma della radice e lo trasformi in una funzione (come ti dicevo)

    codice:
    double radq(double x)
    {
          double y;  // y variabile di output
          double e = 0.01; // Qui assegna tu una precisione richiesta costante ... ad es. 0.01
          
          y=1; // y di partenza fissato
          do
          {
              y=(y + x/y)/2;
          }while(fabs((y*y-x)/x)>e);
    
          return(y);
    }
    allora la potrai richiamare nel main dove vuoi e per tutti i valori che vuoi ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    20
    Originariamente inviato da oregon
    Se parti dal programma della radice e lo trasformi in una funzione (come ti dicevo)

    codice:
    double radq(double x)
    {
          double y;  // y variabile di output
          double e = 0.01; // Qui assegna tu una precisione richiesta costante ... ad es. 0.01
          
          y=1; // y di partenza fissato
          do
          {
              y=(y + x/y)/2;
          }while(fabs((y*y-x)/x)>e);
    
          return(y);
    }
    allora la potrai richiamare nel main dove vuoi e per tutti i valori che vuoi ...
    Esattamente...la funzione restituisce il valore y...
    Purtroppo il corso non prevede l'uso di funzione, bensì della "procedura" void...
    ergo...ci sono delle possibili soluzioni con il tipo void? :berto:

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Puoi usare un puntatore per passare il risultato

    codice:
    void radq(double x, double *y)
    {
          double e = 0.01; // Qui assegna tu una precisione richiesta costante ... ad es. 0.01
          
          *y=1;
          do
          {
              *y = ((*y) + x/(*y))/2;
          }while(fabs(((*y)*(*y)-x)/x)>e);
    }
    oppure puoi dichiarare la variabile y "globale" prima del main ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.