Oppure

Loading
07/10/09 15:41
microprocessore
ciao... sto sviluppando un codice con c#
devo caricare e visualizzare un vettore esclusivamente usando una procedura... avevo fatto già un altro esercizio sulle procedure sviluppando un applicazione windows... adesso devo però usare un applicazione console... nessun problema nel creare la procedura... il problema è che quando imposto la chiamata si presentano i seguenti errori:
Errore    1    È previsto il segno }
Errore    2    Il metodo deve avere un tipo restituito
Errore    3    È prevista la definizione del tipo o dello spazio dei nomi oppure la fine del file



dove sbaglio?
ecco il mio codice
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace procedura_vettore
{
    class Program
    {
        static void caricare(int[] v)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            int k;
            v = new int[n];
            for (k = 0; k < n; k++)
            {
                v[k] = Convert.ToInt32(Console.ReadLine());
            }

            for (k = 0; k < n; k++)
            {
                Console.WriteLine("il valore della cella " + k + " è " + v[k]);
            }
            Console.ReadLine();
        }

        static void Main(string[] args)
        {
            
             caricare (int [] vettore);
        

        }
    }
}
Ultima modifica effettuata da microprocessore 07/10/09 16:19
aaa
08/10/09 13:14
Thejuster
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace procedura_vettore 
{ 
    class Program 
    { 
        static void caricare(int[] v) 
        { 
            int n = Convert.ToInt32(Console.ReadLine()); 
            int k; 
            v = new int[n]; 
            for (k = 0; k < n; k++) 
            { 
                v[k] = Convert.ToInt32(Console.ReadLine()); 
            } 

            for (k = 0; k < n; k++) 
            { 
                Console.WriteLine("il valore della cella " + k + " è " + v[k]); 
            } 
            Console.ReadLine(); 
        } 

        static void Main(string[] args) 
        { 
             
             caricare (int [] vettore); 
         

        } 
    } 
} 



spiegami una cosa

caricare (int [] vettore);
static void caricare(int[] v)

passi qualche argomento al metodo caricare?


mire.forumfree.it/ - Mire Engine
C# UI Designer
08/10/09 14:28
Il Totem
Non capisco se stai cercando di inizializzare una variabile nello stesso momento in cui la passi come argomento al metodo... In ogni caso, prima si dichiara una variabile di tipo int[], e poi la si passa al metodo.
aaa
08/10/09 17:37
microprocessore
non so cosa siano un argomento e un metodo... cosa vuol dire passare un argomento al metodo?
so che vi sembrerò un ignorante... ma io so solo quello che mi insegnano a scuola...
aaa
08/10/09 23:22
Thejuster

cioè tu dal metodo Main,procedura ingresso del programma
gli passi un array al void caricare che non esiste, o meglio
nemmeno dichiarato.

e in piu, non servirebbe a nulla.

ti basterebbe spostare int[] v
sotto al void caricare.
e non tentare di inviare un valore al void che nemmeno esiste,

credo che il motivo che ti dia errore e questo.

prova così non dovrebbe darti errori



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace procedura_vettore
{
    class Program
    {
        static void caricare()
        {
            int[] v;
            int n = Convert.ToInt32(Console.ReadLine());
            int k;
            v = new int[n];
            for (k = 0; k < n; k++)
            {
                v[k] = Convert.ToInt32(Console.ReadLine());
            }

            for (k = 0; k < n; k++)
            {
                Console.WriteLine("il valore della cella " + k + " è " + v[k]);
            }
            Console.ReadLine();
        }

        static void Main(string[] args)
        {            
             caricare();
        }
    }
} 


mire.forumfree.it/ - Mire Engine
C# UI Designer
09/10/09 11:46
microprocessore
grazie ora funziona... pensavo che mentre chiamavo la procedura dovevo mettere tra parentesi il parametro (normalmente per le procedure si fa così;)... non sapevo si potesse fare come hai detto tu...
ho ritoccato il codice aggiungendo dei Console.WriteLine... uno che dice di specificare la lunghezza del vettore e uno che dice di inserire il valore della cella k... comunque il tuo codice per il resto è il tuo... grazie ancora
aaa
09/10/09 17:50
Il Totem
C'è un preciso motivo per cui non ti ho suggerito una soluzione così ovvia.

Dato che nel primo post hai parlato di esercizi, ho pensato che si trattasse anche questo di un esercizio, ed in genere, tra le altre finalità delle esercitazioni di questo tipo, c'è anche l'obiettivo di rendere il codice riusabile o comunque il più generale possibile. Andava bene il codice com'era prima, perchè la procedura poteva essere usata per caricare un vettore qualsiasi e poteva essere richiamata più volte. Secondo me avresti dovuto portare avanti la soluzione con cui avevi iniziato.

P.S.: metodo = procedura o funzione;
argomento = parametro = ciò che specifichi come segnaposto tra le parantesi.
Dovresti comunque sapere la terminologia dato che ti stai studiando le procedure.
aaa
10/10/09 13:06
microprocessore
anche io preferirei proseguire come avevo iniziato... ma mi trovo gli errori che ho specificato nel primo post... comnunque sì voglio inizializzare una variabile (in questo caso un vettore) nello stesso momento in cui la passo come argomento al metodo.
aaa