Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    funzione vettore

    ciao a tutti,

    sto facendo un programma che necessita l'uso di funzioni che ammettano come argomento vettori e che diano come risultato vettori. dato che continuo ad avere errori in compilazione ho cominciato a fare programmi di prova sempre più semplici per capire cosa mi sfuggiva.
    ma evidentemente c'è qualcosa a cui proprio non arrivano le mie rudimentali conoscenze del C++, perchè non riesco a far girare neanche un semplice programma come questo (moltiplicazione di un vettore per uno scalare):

    #include<iostream>
    #include<math.h>

    using namespace std;

    double multivector (double x, double vector[3]){

    double result[3];

    result[0] = x*vector[0];
    result[1] = x*vector[1];
    result[2] = x*vector[2];

    return(result[3]);
    }

    int main()
    {
    double x;
    double vector[3], risultato[3];

    cout << "Questo programma calcola le componenti di un dato vettore moltiplicato per un dato scalare.\n";
    cout << "Inserire la prima componente del vettore: ";
    cin >> vector[0];
    cout << "\nInserire la seconda componente del vettore: ";
    cin >> vector[1];
    cout << "\nInserire la terza componente del vettore: ";
    cin >> vector[2];
    cout << "\nInserire lo scalare: ";
    cin >> x;

    risultato[3] = multivector(x, vector[3]);

    cout << "\nLe componenti del vettore risultante sono: " << risultato [0] << "\n" << risultato[1] << "\n" << risultato[2];
    return(0);
    }

    sicuramente sarà una boiata, ma portate pazienza, ci ho perso ore e penso proprio di aver bisogno di una mano...

    grazie!

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: funzione vettore

    Usa il tag CODE per postare del codice...

    Originariamente inviato da foraccio
    codice:
    double multivector (double x, double vector[3]){
        
        double result[3];
        
        result[0] = x*vector[0];
        result[1] = x*vector[1];
        result[2] = x*vector[2];
        
        return(result[3]);
    }
    multivector per come è dichiarata restituisce un double, non un vettore di double. Inoltre return (result[3]) restituirà un singolo elemento (il quarto), non tutto l'array.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    ma allora come si fa? così?

    codice:
    double multivector[3](double x, double vector[3]){
    double result[3];
    result[0] = x*vector[0];
    result[1] = x*vector[1];
    result[2] = x*vector[2];
    return(result); }
    a me non compila in ogni caso...

    grazie

  4. #4
    la funzione deve restituire un double* (dualità puntatore-vettore)
    quello che hai scritto tu come tipo di ritorno non ha alcun senso sintattico (leggiti un manuale di c/c++ e capirai perché)

    nel main ovviamente devi mettere
    risultato = funzioneblabla
    non
    risultato[3] = funzioneblabla

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.