Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-04-2010, 15:57   #1
gabriel_cz
Junior Member
 
Iscritto dal: Apr 2010
Messaggi: 3
[c++] problema funzione

Ciao a tutti sono nuovo del forum e anche alla programmazione.non capisco perche' la funzione che ho scritto mi restituisce dei valori che non sono quelli che vorrei cioe' la tabellina di un numero che gli passo.Grazie e scusate la mia ignoranza.
#include <cstdlib>
#include <iostream>
//funzione che riceve un numero e ne restituisce la tabellina
using namespace std;
int tabelline(int num)
{
int v[10];//vettore per contenere la tabellina
int ris=0;
int i=1;
int numero;
for(i=1;i<=10;i++)
{
ris=numero*i;//ris=il numero per il contatore e passo il risultato al vettore
v[ris];
}
return v[ris];//restituisce il vettore con la tabellina del numero

}
int main(int argc, char *argv[])
{
int numero;
cout<<"scrivi un numero "<<endl;
cin>>numero;
cout<<"la tabellina di "<<numero<<" e' "<<endl<<tabelline(numero);//chiamo la funzione e gli passo numero


system("PAUSE");
return EXIT_SUCCESS;
}
gabriel_cz è offline   Rispondi citando il messaggio o parte di esso
Old 20-04-2010, 16:08   #2
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
Semplicemente perché invece di moltiplicare num per i, moltiplichi numero per i.
numero tra l'altro è una variabile (inutile) che non hai inizializzato.
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 20-04-2010, 16:10   #3
lupoxxx87
Senior Member
 
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
ehm....ci sono un paio di errori ovunque nella struttura della funzione


Codice:
int tabelline(int num) { //qui la funzione restituisce solo un intero...non una tabellina..e non usi la variabile "num"
   int v[10];                      
   int ris=0;
   int i=1;
   int numero;
   for(i=1;i<=10;i++) { //gli indici devono andare da 0 a 9
      ris=numero*i;
      v[ris];           //questa operazione non fa nulla
   } 
   return v[ris];       //restituisce un elemento che è al di fuori del vettore
}
una versione corretta potrebbe essere

Codice:
int[] tabelline(int num) {
   int v[10];                      
   for(int i=0;i<10;i++) 
      v[i]=num*(i+1);
   return v;       
}

Ultima modifica di lupoxxx87 : 20-04-2010 alle 16:17.
lupoxxx87 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2010, 19:37   #4
gabriel_cz
Junior Member
 
Iscritto dal: Apr 2010
Messaggi: 3
#include <cstdlib>
#include <iostream>

using namespace std;
//funzione che dato un numero ne stampa la tabellina
int tabellina(int num)
{
int v[10];//vettore per contenere la tabellina
int risultato=0,i=0;
for(i=1;i<=10;i++)
{
risultato=num*i;
v[risultato];

}
return v[risultato];
}

int main(int argc, char *argv[])
{
int risposta;
cout<<"inserisci numero"<<endl;
cin>>risposta;
cout<<"la tabellina del "<<risposta<<" e' "<<tabellina(risposta)<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}
questo e' cio' che ho scritto dopo alcune modifiche grazie ai vostri suggerimenti

purtroppo continua a restituire valori strani.Io penso che il problema sia che la funzione deve restituire un vettore.Forse vanno usati i puntatori.Spero che qualcuno me lo spieghi.grazie

Ultima modifica di gabriel_cz : 30-04-2010 alle 19:42.
gabriel_cz è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2010, 21:18   #5
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
Usa il tag code per favore...
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2010, 01:02   #6
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Quote:
Originariamente inviato da gabriel_cz Guarda i messaggi
Codice PHP:
#include <cstdlib>
#include <iostream>

using namespace std;
//funzione che dato un numero ne stampa la tabellina
int tabellina(int num)
{
    
int v[10];//vettore per contenere la tabellina
  
int risultato=0,i=0;
    for(
i=1;i<=10;i++)
    {
         
risultato=num*i;
        
v[risultato];
                     
     }                  
        return 
v[risultato];
}

int main(int argcchar *argv[])
{
int risposta;
cout<<"inserisci numero"<<endl;
cin>>risposta;
cout<<"la tabellina del "<<risposta<<" e' "<<tabellina(risposta)<<endl;

    
system("PAUSE");
    return 
EXIT_SUCCESS;

questo e' cio' che ho scritto dopo alcune modifiche grazie ai vostri suggerimenti

purtroppo continua a restituire valori strani.Io penso che il problema sia che la funzione deve restituire un vettore.Forse vanno usati i puntatori.Spero che qualcuno me lo spieghi.grazie
Forse non hai ben chiaro come funziona la cosa...
Se vuoi che restituisca una tabellina, la funzione dovrà restituire un array di interi, e non un intero. Ma tu, l'array, non lo costruisci, anzi rischi che ti dia parecchi problemi.
Vediamo nel dettaglio.
int risultato=0,i=0;
Qui, l'inizializzatione di i è inutile, perché subito dopo (nel for) lo poni ad 1. Fai così: lo inizializzi subito ad 1, ed elimini l'assegnazione nel primo pezzo del for, così: for(;i<=10;i++)
v[risultato];
Questa riga non fa assolutamente nulla: non assegni, insomma, il risultato alla corrispondente posizione nell'array. Quello che fai è richiamare il valore dell'array v nella posizione risultato (che quindi può valere anche 90, ben oltre i limiti dell'array)... e basta, perché non ci fai nulla: non lo assegni a niente.
Allora, ricapitoliamo: tu vuoi che l'array contenga la tabellina. Cioè, nel primo posto ci vuoi num*1, nel secondo num*2 e così via. Allora, quello che devi fare è questo:
v[i-1]=risultato;
La variabile i contiene i valori da 1 a 10 e c'è utile per indicare la posizione all'interno dell'array. Il -1 serve perché la prima posizione dell'array è indicata con 0 e non con 1. Quindi fai l'assegnazione dovuta.
return v[risultato];
Per l'appunto, questo è l'errore di prima. Se immetto 5 come num, allora verrà restituito v[50], che è un valore numerico ben oltre il range dell'array.
Inoltre, così tu restituisci un intero, e non un array.
Allora devi restituire v, e non v[qualcosa]. Contemporaneamente, devi modificare la dichiarazione della funzione in modo che restituisca un array, o più generalmente un puntatore ad una variabile di tipo intero. Così:
int* tabellina(int num)
Tutto il trucco sta in quel piccolo asterisco, per farti entrare nel magico mondo dei puntatori (non ne sai molto, vero? Preparati psicologicamente, per chi non li ha mai visti sono un po' un trauma... E col C ne vedrai fino al voltastomaco).

Infine c'è la questione della stampa a video. Non puoi stampare direttamente un array, questo è poco ma sicuro. Ti produrrebbe risultati incomprensibili...
Ti consiglio di cambiare l'ultima parte così:
Codice PHP:
inttabell tabellina(risposta),i=0;
cout<<"la tabellina del "<<risposta<<" e' ";
for (;
i<10;i++) {
   
cout << *(tabell+i) << " ";
}
cout << endl
Se hai delle domande chiedi pure.
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2010, 12:38   #7
deadlyomen17
Senior Member
 
L'Avatar di deadlyomen17
 
Iscritto dal: Sep 2004
Città: Cosenza
Messaggi: 2971
Codice PHP:
#include <iostream>

using namespace std;

intottieniTabellinaint numero );

int main (int argcchar const* argv[])
{
    
int numero;
    
// lettura del numero
    
cout << "Inserisci un numero: ";
    
cin >> numero;
    
    
// ottengo l'array di interi che contiene la tabellina
    
inttabellina ottieniTabellinanumero );
    
    
// ciclo l'array e stampo ogni suo elemento
    
for( inttabellina; *ii++ )
    {
        
cout << *<< " ";
    } 
    
cout << endl;
    
    
delete [] tabellina;
    
    return 
0;
}

intottieniTabellinaint numero 
{
    
// dichiaro e inizializzo l'array di interi in cui metterò il risultato
    
inttabellina = new int[10];
    
    for( 
int i 1<= 10i++ ) 
    {
        
// i-1 perchè per fare la tabellina facciamo partire i da 1, mentre 
        // un array parte sempre da 0
        
tabellina[i-1] = numero i;
    }
    
    return 
tabellina;

deadlyomen17 è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2010, 18:21   #8
gabriel_cz
Junior Member
 
Iscritto dal: Apr 2010
Messaggi: 3
grazie ragazzi.erano giorni che ci pensavo ma non riuscivo ad uscirne.
Max se mi spiegassi nel dettaglio ,come hai fatto nella prima parte,il codice per la stampa,te ne sarei grato.
deadly adesso mi studio quello che hai scritto tu e casomai ti chiedo chiarimenti.
Pensavo fosse piu' facile,voleva essere un esercizio per imparare ma si e' rivelato piu' ostico di quello che pensavo...
gabriel_cz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Volkswagen richiama 94.000 auto elettric...
Le nuove LaserJet di HP portano la critt...
FSR 4 gira sulla GPU di PS5 Pro, ma non ...
Intel rinnova l'offerta professionale: C...
Galaxy A57 5G e A37 5G ufficiali: l'IA d...
Outlook Classic e Gmail: Microsoft pubbl...
HONOR MagicPad 4 porta OpenClaw su Andro...
Android Automotive diventa open source e...
Offerte Amazon di oggi: il meglio tra te...
Xbox Game Pass verso una rivoluzione: ab...
Nuovo DualSense dedicato a Marathon: des...
Lo smartphone XIAOMI 17 12/512GB con ott...
iPhone, iPad e Mac si aggiornano: le nov...
MOUSE: P.I. For Hire si prepara al debut...
Razer Viper V4 Pro: più leggero, ...
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: 15:56.


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