Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
La seconda generazione della citycar elettrica di Dacia passa alla piattaforma RGEV small di Renault Group, cresce di 15 cm in lunghezza e 18 cm in larghezza, adotta un motore da 80 CV e una batteria LFP da 27,5 kWh per 250 km WLTP. Prezzi da 17.900 euro, produzione a Novo Mesto in Slovenia.
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX ha portato sul mercato Picco, un e-reader da 3,97 pollici che pesa 58 grammi e si aggancia al retro dello smartphone con un anello magnetico. Lo abbiamo usato con Pixel 11 Pro XL e iPhone 18 Pro per capire se un formato così ridotto regga la prova della lettura quotidiana
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
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: 7908
Quesito C++ semplice

Salve

ho questo codice

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

unsigned long fibonacci( unsigned long );

int main()
{
    
unsigned long result, number;
    
unsigned long i;

    
cout << "Enter an integer: ";
    
cin >> number;
    
result = fibonacci( i );
    for (
i = 0 , i++ , i==number )
    {
    
cout << "Fibonacci(" << i << ") = " << result << 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 );
} 

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: 16216
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: 1455
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: 7908
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=0, b=1; 
    
cout << "Fibonacci(0) = " << a << endl;
    if(
number>0) cout << "Fibonacci(1) = " << b << endl;

    
unsigned long swap;
    for (
unsigned long i = 2 ; i <= number ; i++)
    {
       
swap=a;
       
a=b;
       
b+=swap;
       
cout << "Fibonacci(" << i << ") = " << b << 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: 7908
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: 7908
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: 7908
good
supermario è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa Nuova Dacia Spring, del modello precedente resta...
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone BOOX Picco: l'ebook reader minuscolo è un...
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
La soluzione di Google per i nuovi occhi...
Il futuro di XBOX passa per l'intelligen...
Amazon, le 13 offerte da non perdere ogg...
Svendita TV su MediaWorld: OLED LG e Sam...
AMD si ricorda dei gamer, ma il messaggi...
Fate in fretta: su Mediaworld c'è...
Ho usato ArtCraft per trasformare un mio...
SSD e hard disk su AliExpress: 4TB a sol...
Due Mac agli antipodi in forte sconto su...
Quick Spectral Super Resolution (QSSR): ...
AMD Ryzen, prezzi interessanti su AliExp...
Zenbook S è un MacBook Air che co...
Motorola moto g56 5G a soli 233€ su Amaz...
Aerei a terra negli USA? Nessun attacco,...
Amazon, pioggia di offerte sulle bici el...
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: 12:53.


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