Suggerimento 1: Passare un array a una funzione

Suggerimento 1: Passare un array a una funzione

Gli array sono uno dei più intensiviforme utilizzate di archiviazione strutturata dei dati nei programmi per computer. La loro elaborazione può essere eseguita da vari algoritmi implementati in metodi e funzioni di classe. Di conseguenza, è spesso necessario passare una matrice a una funzione. Una grande quantità di libertà nella scelta dei metodi per eseguire questa azione è offerta dai linguaggi C e C ++.

Come passare un array a una funzione

Avrete bisogno

  • - Compilatori di linguaggio C e C ++.

istruzione

1

Passa una serie di dimensioni fisse alla funzione. Il cambiamento prototipo di funzione in modo da contenere il tipo di argomento corrispondente. Ad esempio, una dichiarazione di funzione questo, come una matrice di parametri di valori interi numerici dei tre elementi può contenere la seguente: ArrayFunction void (int aNumbers [3]); chiamate questa funzione viene eseguita trasmettendo direttamente alla matrice come argomento: SomeFunction vuoto () { int aNumbers [] = {1, 2, 3}; ArrayFunction (aNumbers);} I dati trasmessi viene copiato nella pila. Modifica della matrice nella funzione chiamata non porta a cambiare sorgente.

2

Passa array di lunghezza variabile alla funzione. Per fare questo semplicemente non specifica la dimensione del parametro corrispondente: ArrayFunction void (int aNumbers []); Array multidimensionali possono anche simile trasmettere modo (variabile può essere solo il primo "misura»): ArrayFunction void (int aNumbers [] [3] [2]) ; Chiamata funzioni analoghe effettuate nello stesso modo come nel primo ordine shage.Dlya poter elaborare correttamente campi di lunghezza variabile in funzione, è necessario sia trasmettere esplicitamente il numero di elementi tramite parametro aggiuntivo o accordo uso imponendo restrizioni elementi Achen stessi (valore determinato deve essere un'indicazione della fine della matrice).

3

Passa la matrice sul puntatore. L'argomento della funzione deve essere un puntatore a un valore con un tipo corrispondente agli elementi dell'array. Ad esempio: ArrayFunction vuoto (pNumbers int *); Accesso ai dati nella funzione può essere eseguita nella notazione con gli elementi della matrice, e per mezzo di indirizzo aritmetica: ArrayFunction vuoto (pNumbers int *) {pNumbers [0] = 10; // accesso all'elemento 0 * (pNumbers + 1) = 20; // accesso all'elemento 1} Attenzione! Poiché la funzione non è viene trasmessa una copia dei dati, e un puntatore di loro, sarà sottoposto ad massiv.Preimuschestvom modifiche sorgente questo metodo è la velocità, risparmio di risorse computazionali e di una certa flessibilità. Pertanto, è possibile causare la funzione target, passando il puntatore a un elemento di matrice arbitraria: SomeFunction vuoto () {int aNumbers [] = {1, 2, 3}; ArrayFunction (aNumbers); // l'intero array ArrayFunction (& aNumbers [1]); // partire dal secondo elemento} Il metodo inoltre in genere comporta il trasferimento del numero di elementi disponibili nel parametro funzione aggiuntiva o utilizzare fine dell'array.

4

Trasferisci dati con una funzione conparametro, che è l'oggetto o un riferimento a un oggetto di classe che implementa la funzionalità della matrice. Queste classi o modelli di classe di solito sono inclusi nelle biblioteche popolari e dei quadri (QVector in Qt, CArray in MFC, std :: vector in STL, ecc). La maggior parte delle classi di dati attuare la strategia di condivisione dei dati implicita (la condivisione dei dati impliciti) con il conteggio dei riferimenti, eseguendo una copia profonda solo quando i dati sono modificati (copia su scrittura). Ciò minimizza il consumo di risorse computazionali anche nel caso di matrici di oggetti mediante trasmissione valore attraverso gli argomenti di funzioni e metodi: ArrayFunction vuoto (QVector oArray) {int = nItemCount oArray.count (); int = nItem oArray [0];} SomeFunction vuoto () {QVector oArray (10); per (int i = 0; i

Suggerimento 2: come restituire un array da una funzione

Una raccolta nominata dello stesso tipo di dati,chiamato array, è ampiamente usato in vari linguaggi di programmazione. Con l'aiuto di un array, è molto più facile lavorare con i dati, viene fornito il codice strutturato. Le funzioni nelle lingue sono anche di grande importanza, consentendo di eseguire un'attività specifica in qualsiasi parte del codice, senza reimplementarla. In questo caso, è spesso necessario utilizzare i dati di una matrice in una funzione, nonché in altri blocchi di codice. Il ritorno di un array da una funzione può essere implementato in diversi modi.

Come restituire un array da una funzione

istruzione

1

Nel linguaggio di programmazione C ++, il direttoil ritorno di una matrice dalla funzione non ha esito positivo, questa attività può essere risolta passando un puntatore a una matrice di dati. Per fare ciò, quando si dichiara la funzione utilizzata, scrivere su di esso come valore di ritorno un puntatore al tipo di dati il ​​cui array deve essere trasferito. Un esempio di codice di programma C ++ che restituisce i dati dell'array in base al puntatore: class CHelp {private: int m_data [4]; public: fDebit () {m_data [0] = 42; m_data [1] = 56; } int * returnArray () // dichiarazione e descrizione della funzione {return m_data; }}; void main () {int * m_dataA; Сhelp * ohelp = new Сhelp (); m_dataA = ohelp-> returnArray (); // restituisce un array di classe} Tuttavia, dovresti tenere presente che un tale ritorno è possibile solo all'interno della stessa classe. Se si desidera utilizzare una funzione normale nel codice del programma, un trasferimento di dati simile attraverso il puntatore sarà errato e potrebbe essere eseguito con un errore. Ciò è dovuto alla portata delle variabili. Quando si crea un array nella funzione stessa, non sarà visibile al di fuori di esso.

2

Se è necessario trasferire un array dafunzione locale, dovresti usare la seguente opzione. Forma la matrice nel codice del programma principale. Dichiarare una funzione con parametri, il primo dei quali è un puntatore costante al tipo di dati dell'array, il secondo è un puntatore normale dello stesso tipo. Quando si chiama una funzione, passare il primo e il secondo parametro lo stesso indirizzo dell'array creato. Lavorare con i dati nella funzione con il primo puntatore ricevuto e scrivere tutte le modifiche in base al puntatore del secondo. Quindi, alla fine della funzione, otterrete i risultati del suo lavoro nell'array dal secondo puntatore. Un esempio di dichiarazione di una funzione di questo tipo: void my_funk_1 (const double * in, doble * out);

3

Utilizza la classe implementata std ::auto_ptr, un indicatore cruciale del trasferimento della funzione compito senza scopo errore di variabili. Un esempio di codice di programma: comprendono includere int [] Arr_f2 (int count) // descrizione della funzione {return new int [count];} void main () {std :: auto_ptr PTR (Arr_f2 (20)); // chiama la funzione e restituisce la sua matrice cout

4

Nel linguaggio di programmazione FoxPro, il ritorno di una funzionePuò essere implementato in un modo simile, facendo riferimento al codice massivu.Primer creato in precedenza sul linguaggio FoxPro: mas locale (2) = func_2 (@ F3) mas (15) Mas (20) FUNZIONE func_2 (mas) esteriore masmas Array (1) =? 1mas (2) = 2RETURNENDFUNC

5

Il linguaggio di scripting AutoIt ti consente di restituire un arraydella funzione, utilizzando i disegni standard e Return.Primer operatore codice nel AutoIt lingua: # include $ Rez = func_3 () $ aRezultat = StringSplit ($ Rez, "|") Func func_3 () $ Aret = 15 & "|" & 40 $ ritorno Aret // Restituisce un array di ARET funktsiiEndFunc

Suggerimento 3: come restituire un array

array sono una delle forme più sempliciarchiviazione strutturata dei dati. Poiché gli array unidimensionali sono allocati in aree di memoria indivisibili e la maggior parte dei linguaggi di programmazione hanno costruzioni sintattiche per la loro dichiarazione, sono intensivamente utilizzati come buffer per il trasferimento di grandi quantità di informazioni a varie funzioni (inclusa la libreria). A loro volta, a volte le funzioni devono restituire un array.

Come restituire un array

Avrete bisogno

  • - editor di testo;
  • - il compilatore e il linker C o C ++.

istruzione

1

Restituisci i dati da una funzione o metodo posizionandoliin un array di lunghezza fissa, distribuito dalla parte chiamante e trasmesso per riferimento. Fare una determinazione del corrispondente tipo di dati, come ad esempio: typedef int t_array10 [10] utilizzarlo nella dichiarazione e implementazione della funzione desiderata, o un metodo: void ReturnArray (t_array10 & Raout) {Raout [0] = 10;}, a seconda dei casi, chiamare: int aNumbers [10 ]; ReturnArray (aNumbers); Lo svantaggio di questo metodo è che la lunghezza dell'array è fissa.

2

Restituisce i dati dell'array, mettendoli nell'outputbuffer è allocato dal chiamante e passava puntatore. Il prototipo di funzione o il metodo può comprendere un parametro dichiarato nella notazione array senza specificazione dimensioni: void ReturnArray (int anArray [], int nSize), nonché un puntatore: void ReturnArray (int * pnArray, int nSize); In entrambi i casi identificatore parametro può essere utilizzato in notazione matrice: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // aNumbers vyzovint [10]; ReturnArray ( aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Seleziona il metodo di trasmissione in funzione e restituiscono set di dati sono nella maggior parte dei casi utilizzati per sviluppare programmi in C. si noti t sulle funzioni e metodi e dati di ritorno ricevente in questo modo, di solito, si dovrebbe avere un parametro aggiuntivo, che viene trasmessa attraverso la dimensione del buffer reale.

3

Restituisce una matrice creata in una funzione o un metodo. Formalmente, in questo caso, non dovrebbe essere restituito un array, ma un puntatore al suo primo elemento: int * ReturnArray () {int * pnArray = new int [10]; // funziona con pnArray return pnArray;} // ottiene un puntatore all'array creato * pnNumbers = ReturnArray (); // usedelete [] pnNumbers; // disabilitato Ci sono alcune limitazioni nell'utilizzo di questo metodo. Quindi, la matrice deve essere posizionata nella memoria allocata dinamicamente. Inoltre, deve essere cancellato usando il metodo corrispondente alla creazione (cancella in caso di utilizzo di new, free per malloc, ecc.).

4

Utilizzare le classi contenitore percomodo per ritornare array nello sviluppo di un programma C ++. Esempio di creare e restituire una matrice, che è la classe template oggetto vettoriale della Standard Template Library C ++, per l'int specificato, potrebbe essere simile a questo: #include <vector> std :: vector <int> ReturnArray () {std :: vector <int> oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; tornare oArray;} std :: vector <int> oArray = ReturnArray (); Si prega di notare che i quadri più popolari fornisce classi potenti o di classe modelli array. Spesso implementano il concetto di condivisione dei dati impliciti con il conteggio di riferimento e copy-on-write. Pertanto, il rendimento del valore di tali matrici di funzioni svolte in modo molto efficace ed è associato con la minor quantità di risorse di calcolo.

Suggerimento 4: come trasferire il modulo php

L'elaborazione di queste forme è una delle più importantiimportanti funzioni del linguaggio di programmazione (PHP) PHP. Gli strumenti disponibili consentono di recuperare i dati immessi dall'utente e memorizzarli in variabili speciali, quindi convertire e scrivere in vari database (database) o file.

Come inviare un modulo php

istruzione

1

Crea il modulo richiesto usando HTML,scegliere il metodo più conveniente per la trasmissione dei dati. Per inserire, usa il descrittore <form> </ form>. Per il corretto trattamento dei dati utente tramite PHP, è importante specificare il metodo e l'attributo di azione. Ad esempio: <form action = "process.php" method = "POST">

2

Questo codice HTML indica che i dati del modulo sarannovengono passati a uno script scritto nel file process.php, utilizzando il metodo POST, che consente di passare le variabili necessarie in modo nascosto per l'utente. Un'alternativa al metodo è il GET, che trasmette i dati desiderati attraverso la barra degli indirizzi. Pertanto, dopo aver fatto clic sul pulsante, i dati inseriti verranno visualizzati nella parte superiore della finestra del browser.

3

Crea gli elementi del modulo richiesti usandoattributi aggiuntivi valore, nome e tipo. Ad esempio, per creare due campi in cui l'utente può inserire il proprio nome e cognome, è possibile scrivere il seguente codice: Nome: <input type = "text" name = "username"> <br> Cognome <input type = "text" name = "Nome famiglia"> <br> <input type = "submit"> </ form> Questo segmento consente di creare due campi di testo per specificare il nome utente e il cognome con username e familyname, che verranno utilizzati per elaborare i dati in un secondo momento.

4

Crea un nuovo file chiamato processo.php in una directory con documento HTML, in cui la forma di dati. Per creare un file, fate clic destro su un'area vuota della finestra di visualizzare il contenuto della directory e selezionare "Nuovo" - "File di testo" e selezionare il nome e l'estensione appropriata. Inserire il seguente codice: <? Php $ username = htmlspecialchars ($ _ POST [ 'usersname']); $ second_name = htmlspecialchars ($ _ POST [ 'FamilyName']); echo "Il tuo nome e cognome $ username $ second_name" ;? ?>

5

Questo codice ti consente di estrarre i dati necessari,che l'utente ha inserito nel modulo. $ username viene assegnato il nome inserito nel campo di testo del nome utente, che è stato passato attraverso l'array $ _POST globale. Utilizzando la funzione htmlspecialchars (); si eliminano i caratteri non necessari che l'utente potrebbe erroneamente o scrivere appositamente durante la digitazione con la tastiera. Dopo aver estratto i dati necessari dal modulo in variabili, è possibile generare le informazioni ottenute mediante l'istruzione echo. Prima della conclusione, possono anche essere eseguite le azioni necessarie, che potrebbero essere necessarie per eseguire un compito particolare. I valori ricevuti possono essere elaborati da tutte le funzioni disponibili in PHP, quindi il programmatore non è limitato nei mezzi per lavorare con i dati in formato HTML.