Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - chiamare procedura
Forum - C# / VB.NET - chiamare procedura

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 17:41
Mercoledì, 07/10/2009
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
Codice sorgente - presumibilmente C++

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace procedura_vettore
  7. {
  8.     class Program
  9.     {
  10.         static void caricare(int[] v)
  11.         {
  12.             int n = Convert.ToInt32(Console.ReadLine());
  13.             int k;
  14.             v = new int[n];
  15.             for (k = 0; k < n; k++)
  16.             {
  17.                 v[k] = Convert.ToInt32(Console.ReadLine());
  18.             }
  19.  
  20.             for (k = 0; k < n; k++)
  21.             {
  22.                 Console.WriteLine("il valore della cella " + k + " è " + v[k]);
  23.             }
  24.             Console.ReadLine();
  25.         }
  26.  
  27.         static void Main(string[] args)
  28.         {
  29.            
  30.              caricare (int [] vettore);
  31.        
  32.  
  33.         }
  34.     }
  35. }


Ultima modifica effettuata da microprocessore il 07/10/2009 alle 18:19
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1845
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:14
Giovedì, 08/10/2009
Testo quotato


Codice sorgente - presumibilmente C++

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace procedura_vettore
  7. {
  8.     class Program
  9.     {
  10.         static void caricare(int[] v)
  11.         {
  12.             int n = Convert.ToInt32(Console.ReadLine());
  13.             int k;
  14.             v = new int[n];
  15.             for (k = 0; k < n; k++)
  16.             {
  17.                 v[k] = Convert.ToInt32(Console.ReadLine());
  18.             }
  19.  
  20.             for (k = 0; k < n; k++)
  21.             {
  22.                 Console.WriteLine("il valore della cella " + k + " è " + v[k]);
  23.             }
  24.             Console.ReadLine();
  25.         }
  26.  
  27.         static void Main(string[] args)
  28.         {
  29.              
  30.              caricare (int [] vettore);
  31.          
  32.  
  33.         }
  34.     }
  35. }





spiegami una cosa

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

passi qualche argomento al metodo caricare?




PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:28
Giovedì, 08/10/2009
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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 19:37
Giovedì, 08/10/2009
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...

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1845
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 1:22
Venerdì, 09/10/2009

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


Codice sorgente - presumibilmente C++

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace procedura_vettore
  7. {
  8.     class Program
  9.     {
  10.         static void caricare()
  11.         {
  12.             int[] v;
  13.             int n = Convert.ToInt32(Console.ReadLine());
  14.             int k;
  15.             v = new int[n];
  16.             for (k = 0; k < n; k++)
  17.             {
  18.                 v[k] = Convert.ToInt32(Console.ReadLine());
  19.             }
  20.  
  21.             for (k = 0; k < n; k++)
  22.             {
  23.                 Console.WriteLine("il valore della cella " + k + " è " + v[k]);
  24.             }
  25.             Console.ReadLine();
  26.         }
  27.  
  28.         static void Main(string[] args)
  29.         {            
  30.              caricare();
  31.         }
  32.     }
  33. }




PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 13:46
Venerdì, 09/10/2009
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

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 19:50
Venerdì, 09/10/2009
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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 15:06
Sabato, 10/10/2009
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.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:18
Domenica, 11/10/2009
Codice sorgente - presumibilmente Plain Text

  1. caricare(new int[] { 1, 2, 3, ... });



"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo