Torna indietro   Hardware Upgrade Forum > Software > Programmazione

FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Da Las Vegas, la visione di Larry Ellison e la concretezza di Clay Magouyrk definiscono la nuova traiettoria di Oracle: portare l’intelligenza artificiale ai dati, non i dati all’intelligenza, costruendo un’infrastruttura cloud e applicativa in cui gli agenti IA diventano parte integrante dei processi aziendali, fino al cuore delle imprese europee
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Dalla precisione estrema dei componenti alla gestione digitale dei processi: come la piattaforma ServiceNow consente ad Aston Martin Aramco Formula One Team di ottimizzare risorse IT e flussi operativi in un ambiente dove ogni millesimo di secondo conta
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-01-2005, 19:22   #1
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906
Quesito C++ semplice

Salve

ho questo codice

Codice PHP:
using std::cout;
using std::cin;
using std::endl;

unsigned long fibonacciunsigned long );

int main()
{
    
unsigned long resultnumber;
    
unsigned long i;

    
cout << "Enter an integer: ";
    
cin >> number;
    
result fibonacci);
    for (
i++ , i==number )
    {
    
cout << "Fibonacci(" << << ") = " << result << endl;
    }
    return 
0;
}

// Recursive definition of function fibonacci
unsigned long fibonacciunsigned long n )
{
   if ( 
== || == )  // base case
      
return n;
   else                     
// recursive case
      
return fibonacci) + fibonacci);


dove sbaglio??commetto un errore logico?

per chi nn l'avesse capito voglio che il programma mi scriva la successione di fibonacci fino al numero che imposto io

grazie
supermario è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 19:32   #2
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16211
Di errori ne commetti almeno tre.

Primo: la sintassi che usi per il for, non è quella del C++.
Prendi il libro e studia quella corretta.

Secondo: chiami fibonacci una volta sola, all'esterno del ciclo for anziché all'interno, e per di più su una variabile non inizializzata.
Fa' più attenzione quando scrivi il tuo codice.

Terzo: implementi fibonacci ricorsivamente, quando esiste un algoritmo iterativo immediatamente applicabile.
Le implementazioni ricorsive sono dispendiose dal punto di vista dell'occupazione della memoria: se puoi usare un'implementazione iterativa, fàllo.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 19:52   #3
beppegrillo
Senior Member
 
L'Avatar di beppegrillo
 
Iscritto dal: Mar 2004
Messaggi: 1451
Quote:
Originariamente inviato da Ziosilvio

Terzo: implementi fibonacci ricorsivamente, quando esiste un algoritmo iterativo immediatamente applicabile.
Le implementazioni ricorsive sono dispendiose dal punto di vista dell'occupazione della memoria: se puoi usare un'implementazione iterativa, fàllo.
L'esempio dell'individuazione del numero di fibonacci è il classico che i prof fanno per far capire la ricorsione ai propri studenti, quindi penso sia quello il motivo principale dello sviluppo di tale programma
E' vero che la ricorsione è generalmente più dispendiosa dell'approccio iterativo, ma in molti casi è più immediata e la perdita di memoria non è tale da preferire l'iterazione.
__________________
Ciao ~ZeRO sTrEsS~
beppegrillo è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 20:24   #4
chetidolanimale
Senior Member
 
Iscritto dal: Mar 2002
Messaggi: 939
nel momento in cui chiama fibonacci(i) la variabile i non è ancora inizializzata o sbaglio?
[edit]ops,già detto
chetidolanimale è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 20:41   #5
chetidolanimale
Senior Member
 
Iscritto dal: Mar 2002
Messaggi: 939
prova con questo:

#include<iostream>
using namespace std;

unsigned long fibonacci( unsigned long );

int main()
{
unsigned long number;

cout << "Enter an integer: ";
cin >> number;
for (unsigned long i = 0 ; i <= number ; i++)
{
cout << "Fibonacci(" << i << ") = " << fibonacci(i) << endl;
}
return 0;
}

// Recursive definition of function fibonacci
unsigned long fibonacci( unsigned long n )
{
if ( n == 0 || n == 1 ) // base case
return n;
else // recursive case
return fibonacci( n - 1 ) + fibonacci( n - 2 );
}

"dovrebbe" andare meglio,però consuma davvero un sacco di risorse, avevo provato a inserire 1000 ,ma arrivato a fibonacci(40) ho chiuso il programma per la disperazione...
chetidolanimale è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 20:43   #6
chetidolanimale
Senior Member
 
Iscritto dal: Mar 2002
Messaggi: 939
2 domandine
1) qual'è la necessità di dichiarare "number" come unsigned long?
2) se nel ciclo for dichiaro i come int, cosa cambia in pratica?
chetidolanimale è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 20:49   #7
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906
come mi comporto con l'iteratività?


grazie x l'aiuto
supermario è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 21:14   #8
chetidolanimale
Senior Member
 
Iscritto dal: Mar 2002
Messaggi: 939
forse questa può andare:
Codice PHP:
#include<iostream>
using namespace std;

int main()
{
    
unsigned long number;

    
cout << "Enter an integer: ";
    
cin >> number;

    
unsigned long a=0b=1
    
cout << "Fibonacci(0) = " << << endl;
    if(
number>0cout << "Fibonacci(1) = " << << endl;

    
unsigned long swap;
    for (
unsigned long i <= number i++)
    {
       
swap=a;
       
a=b;
       
b+=swap;
       
cout << "Fibonacci(" << << ") = " << << endl;
    }
    return 
0;

a me funziona,però sono abbastanza niubbo in c++, quindi magari senti pure cosa dice qualcun'altro con + esperienza

Ultima modifica di chetidolanimale : 10-01-2005 alle 22:41.
chetidolanimale è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 21:28   #9
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906
che palle nn posso eseguire il .exe che subito winxp me lo chiude
supermario è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 21:31   #10
chetidolanimale
Senior Member
 
Iscritto dal: Mar 2002
Messaggi: 939
è normale...
prova ad aprire il prompt dei comandi e ad eseguire il programma da lì
chetidolanimale è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 21:44   #11
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906
sisi col pront so farlo ma mi rompe farlo sempre


su win me va senza problemi invece....no??
supermario è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 21:58   #12
chetidolanimale
Senior Member
 
Iscritto dal: Mar 2002
Messaggi: 939
ho letto giusto ieri sul forum che una delle soluzioni per ovviare al problema è includere il file <stdlib.h> e aggiungere giusto prima del return 0 finale questa riga: system("PAUSE");
chetidolanimale è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 22:19   #13
chetidolanimale
Senior Member
 
Iscritto dal: Mar 2002
Messaggi: 939
forse in c++ sarebbe più corretto fare una

#include<cstdlib>
using namespace std;

senza l'h finale nel nome della libreria
chetidolanimale è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 22:24   #14
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906
good
supermario è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme ASUS GeForce RTX 5080 Noctua OC Edition: una cus...
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Von der Leyen spiega RESourceEU: l'Europ...
YouTube, smantellata la “Ghost Network...
Ferrari F76: la prima hypercar NFT segna...
Am9080, sono passati 50 anni dal primo p...
Inquinamento record a Nuova Delhi: il go...
Il Giappone e il 'fetish' per i dischi o...
AMD presenterà il Ryzen 5 7500X3D...
Un aspirapolvere intelligente diventa un...
Il nuovo M5 fa la differenza anche nel g...
Le AirPods ora sono in grado di rilevare...
Oggi su Amazon succede di tutto: sconti ...
'Copilot Gaming mi spiava!': le accuse d...
Mova P50 Pro Ultra, robot aspirapolvere ...
Speciale action cam: doppio sconto solo ...
Eureka J15 Ultra conquista Amazon: aspir...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v