Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Programmazione
 Help procedure e funzioni
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

mrfal
Nuovo Utente



Inserito il - 19/10/2008 : 15:15:15  Mostra Profilo  Visita l'Homepage di mrfal Invia a mrfal un Messaggio Privato  Rispondi Quotando
Ciao,
vorrei ke qualcuno mi aiutasse a capire meglio la differenza tra procedure e funzioni e tra passaggio di parametri per indirizzo e passaggio di parametri per valore.
Inoltre,vorrei capire meglio quando si usano le funzioni e quando le procedure
Sono graditi esempi.

Grazie in anticipo,
ciao

SD83
Utente assiduo


Regione: Puglia
Prov.: Foggia


Inserito il - 19/10/2008 : 15:29:28  Mostra Profilo  Visita l'Homepage di SD83 Invia a SD83 un Messaggio Privato  Rispondi Quotando
funzioni e procedure sono sostanzialmente la stessa cosa..
solo che le funzioni si utilizzano quando si ha bisogno che tale sottoprogramma restituisca un valore ad esempio gli dai in input un numero e vuoi come output il suo quadrato
la procedura la usi per esempio per stampare un messaggio. il tipo restituito è void cioè nessun tipo
Torna all'inizio della Pagina

SD83
Utente assiduo


Regione: Puglia
Prov.: Foggia


Inserito il - 19/10/2008 : 15:31:38  Mostra Profilo  Visita l'Homepage di SD83 Invia a SD83 un Messaggio Privato  Rispondi Quotando
passare parametri per valore significa passare al sottoprogramma il valore della variabile, se il sottoprogramma modifica tale valore la variabile globale non viene modificata
passare parametri per indirizzo vuol dire passare l'indirizzo della variabile, quindi ogni modifica effettuata dal sottoprogramma è una modifica alla variabile globale
Torna all'inizio della Pagina

mrfal
Nuovo Utente



Inserito il - 19/10/2008 : 16:18:57  Mostra Profilo  Visita l'Homepage di mrfal Invia a mrfal un Messaggio Privato  Rispondi Quotando
ma in quali casi conviene utilizzare il passaggio di parametri per valore?
Torna all'inizio della Pagina

SD83
Utente assiduo


Regione: Puglia
Prov.: Foggia


Inserito il - 19/10/2008 : 17:02:36  Mostra Profilo  Visita l'Homepage di SD83 Invia a SD83 un Messaggio Privato  Rispondi Quotando
quando non hai necessità di modificare il dato
Torna all'inizio della Pagina

mrfal
Nuovo Utente



Inserito il - 19/10/2008 : 17:04:19  Mostra Profilo  Visita l'Homepage di mrfal Invia a mrfal un Messaggio Privato  Rispondi Quotando
un esempio concreto?
Torna all'inizio della Pagina

SD83
Utente assiduo


Regione: Puglia
Prov.: Foggia


Inserito il - 19/10/2008 : 17:37:32  Mostra Profilo  Visita l'Homepage di SD83 Invia a SD83 un Messaggio Privato  Rispondi Quotando
te l'ho fatto prima dai in input un numero e vuoi in output il quadrato..

int quadrato(int a)
{
return a*a;
}

se qui passassi l'indirizzo di a modificheresti il valore di a
Torna all'inizio della Pagina

genius
dott. ing. cav. ...FN

Genio


Regione: Puglia
Prov.: Bari
Città: Molfetta - Caput Mundi


Inserito il - 20/10/2008 : 17:01:46  Mostra Profilo  Visita l'Homepage di genius  Clicca per vedere l'indirizzo MSN di genius  Invia a genius un messaggio Yahoo! Invia a genius un Messaggio Privato  Rispondi Quotando
Funzioni e procedure NON sono la stessa cosa. SEMBRANO la stessa cosa in c/c++ perchè in realtà in questo linguaggio NON esistono le procedure ma solo le funzioni.

Funzione: è un sottoprogramma che restituisce un valore
Procedura: è un sottoprogramma che restituisce un "comportamento"

Per quanto riguarda parametri per valore e per indirizzo ti ha risposto correttamente SD83

"...e se non hai morale
e se non hai passione
se nessun dubbio ti assale
perché la sola ragione che ti interessa avere
è una ragione sociale
soprattutto se hai qualche dannata guerra da fare
non farla nel mio nome
non farla nel mio nome
che non hai mai domandato la mia autorizzazione
se ti difenderai non farlo nel mio nome
che non hai mai domandato la mia opinione..."

Un blog farlocco
Torna all'inizio della Pagina

SD83
Utente assiduo


Regione: Puglia
Prov.: Foggia


Inserito il - 20/10/2008 : 21:00:39  Mostra Profilo  Visita l'Homepage di SD83 Invia a SD83 un Messaggio Privato  Rispondi Quotando
una procedura in c è una funzione che non restituisce nessun valore..
tipo restituito void

in sostanza quello volevo dire che le funzioni restituiscono un valore le procedure invece compiono delle azioni ma nn restituiscono niente..
Torna all'inizio della Pagina

genius
dott. ing. cav. ...FN

Genio


Regione: Puglia
Prov.: Bari
Città: Molfetta - Caput Mundi


Inserito il - 21/10/2008 : 10:12:29  Mostra Profilo  Visita l'Homepage di genius  Clicca per vedere l'indirizzo MSN di genius  Invia a genius un messaggio Yahoo! Invia a genius un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da SD83

una procedura in c è una funzione che non restituisce nessun valore..
tipo restituito void

in sostanza quello volevo dire che le funzioni restituiscono un valore le procedure invece compiono delle azioni ma nn restituiscono niente..



non volevo riprenderti, scusa se è sembrato questo. Volevo solo sottolineare che il c è un caso particolare, in cui una procedura è vista come caso particolare delle funzioni. In genere però esiste la differenza ke ho sottolineato precedentemente...

"...e se non hai morale
e se non hai passione
se nessun dubbio ti assale
perché la sola ragione che ti interessa avere
è una ragione sociale
soprattutto se hai qualche dannata guerra da fare
non farla nel mio nome
non farla nel mio nome
che non hai mai domandato la mia autorizzazione
se ti difenderai non farlo nel mio nome
che non hai mai domandato la mia opinione..."

Un blog farlocco
Torna all'inizio della Pagina

SD83
Utente assiduo


Regione: Puglia
Prov.: Foggia


Inserito il - 21/10/2008 : 16:49:45  Mostra Profilo  Visita l'Homepage di SD83 Invia a SD83 un Messaggio Privato  Rispondi Quotando
non ti devi scusare di niente..
Torna all'inizio della Pagina

mrfal
Nuovo Utente



Inserito il - 24/10/2008 : 16:09:59  Mostra Profilo  Visita l'Homepage di mrfal Invia a mrfal un Messaggio Privato  Rispondi Quotando
Quindi:
uso le procedure x inserire, cancellare visualizzare dei dati;
uso le funzioni x effettuare calcoli.

se devo ricercare un dato devo usare una funzione con il passaggio di parametri x valore?

se devo modificare un dato precedentemente inserito (tipo c'è un elenco di nomi di studenti e voglio modificare il nome di uno studente) devo usare una procedura con il passaggio di parametri x riferimento?

grazie
Torna all'inizio della Pagina

mrfal
Nuovo Utente



Inserito il - 26/10/2008 : 15:21:16  Mostra Profilo  Visita l'Homepage di mrfal Invia a mrfal un Messaggio Privato  Rispondi Quotando
E' giusto dire:
- per qualsiasi operazione di lettura si usa la procedura con passaggio x riferimento;
- per qualsiasi operazione di scritturastampa si usa il passaggio x valore?
Torna all'inizio della Pagina

jwein
Utente giovane



Inserito il - 10/01/2009 : 18:21:58  Mostra Profilo  Visita l'Homepage di jwein Invia a jwein un Messaggio Privato  Rispondi Quotando
Non penso che ci siano casi in cui la procedura possa essere vista come un caso particolare di funzione, neanche quando si passano i valori per riferimento. La funzione, a causa della sua conformazione ( ritorno del valore ) può essere inserita all'interno di una espressione.

Citazione:

E' giusto dire:
- per qualsiasi operazione di lettura si usa la procedura con passaggio x riferimento;
- per qualsiasi operazione di scritturastampa si usa il passaggio x valore?



Non mi sembra una conclusione adatta. Anzi, porta ai cosiddetti 'effetti collaterali'. Io direi (per quanto riguarda la procedura): per operazioni di lettura di un singolo valore o di calcolo aritmetico che restituiscano un singolo valore, si usa il passaggio per valore, mentre per operazioni che richiedano il salvataggio e la restituzione di più valori (riferito anche al vettore), si usa il passaggio per riferimento.

Ma non è saggio fare affermazioni assolute, in ogni caso. Dipende dall'esigenza del momento. Se non bisogna lavorare su vettori (con cui viene simulato di default il passaggio per riferimento, dato che è come se venisse passato un puntatore al primo elemento situato in memoria) è bene evitare operazioni con passaggio per riferimento, a meno che non si abbia poca memoria a disposizione (sistemi embedded) o non si abbiano particolari esigenze di velocità...

Modificato da - jwein in data 10/01/2009 18:23:03
Torna all'inizio della Pagina

jwein
Utente giovane



Inserito il - 11/01/2009 : 10:30:17  Mostra Profilo  Visita l'Homepage di jwein Invia a jwein un Messaggio Privato  Rispondi Quotando
Dimenticavo, anche con le struct il passaggio per riferimento è utile. Si può dire che quello esplicito ( uso di puntatori ) sia utile ogni volta che serva modificare direttamente un oggetto o accedere a un oggetto di grosse dimensioni. Ma comunque è difficile trarre conclusioni oggettive...
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,2 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000