Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [Borland]Raffinamento passaggio dei parametri
Forum - C/C++ - [Borland]Raffinamento passaggio dei parametri

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Afa (Normal User)
Rookie


Messaggi: 29
Iscritto: 17/06/2013

Segnala al moderatore
Postato alle 14:54
Lunedì, 17/06/2013
Codice sorgente - presumibilmente C/C++

  1. void input(lista &l){
  2.         for (int i=0; i < l.n; i++){
  3.                 cout << "Inserire il valore di x1" << endl;
  4.                 cin >> l.segmenti[i].x1;
  5.                 cout << "Inserire il valore di y1" << endl;
  6.                 cin >> l.segmenti[i].y1;
  7.                 cout << "Inserire il valore di x2" << endl;
  8.                 cin >> l.segmenti[i].x2;
  9.                 cout << "Inserire il valore di y2" << endl;
  10.                 cin >> l.segmenti[i].y2;
  11.         }
  12.         return;
  13. }



Il programma deve elaborare dei segmenti sapendo  le coordinate, il problema e' che vorrei realizzare una funzione che permetta di fare le operazioni qui sopra passando di volta in volta la variabile che serve.

In pratica deve fare  le operazioni di stampa e di lettura da consolle, scrivendo un'unica funzione che esegua queste operazioni a seconda delle variabili

Una volta lo feci ma mi sfugge la regola:D Gradirei un vostro aiuto

P.s. scusate se ho fatto qualche errore, o se l'argomento era già presente(ho usato il tasto cerca ma non l'ho trovato) gradirei il link:)

Ultima modifica effettuata da Afa il 18/06/2013 alle 8:58
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 21:44
Lunedì, 17/06/2013
Le soluzioni sono molteplici; utilizzare un puntatore a funzione, richiamare un sottoprogramma...

:ot: Perché hai messo il sottotitolo Borland ? :ot:

PM Quote
Avatar
Afa (Normal User)
Rookie


Messaggi: 29
Iscritto: 17/06/2013

Segnala al moderatore
Postato alle 8:51
Martedì, 18/06/2013
Mi servirebbe la soluzione con i sottoprogrammi

:ot:Ho letto che si poteva mettere come sottotitolo il compilatore:ot:

Edit: forse non riesco a esssere chiaro, voglio una cosa del genere
Codice sorgente - presumibilmente C++

  1. #include<iostream.h>
  2.  
  3. int ciao(int &x);
  4.  
  5. void main(){
  6.         int x1, x2;
  7.         ciao(x1);
  8.         ciao(x2);
  9.         return;
  10. }
  11.  
  12. int ciao(int &x){
  13.         cout << " Inserire il valore" << endl;
  14.         cin >> x;
  15.         cout << x << endl;
  16.         return x;
  17. }


però con le liste non la riesco a fare e non capisco perchè! C'è qualche regola che mi sfugge?

Ultima modifica effettuata da Afa il 18/06/2013 alle 9:42
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:26
Martedì, 18/06/2013
Con le liste, devi definire i metodi per aggiungere, togliere, ricercare elementi nella stessa.
Li hai definiti? Dove trovi difficoltà?

PM Quote
Avatar
Afa (Normal User)
Rookie


Messaggi: 29
Iscritto: 17/06/2013

Segnala al moderatore
Postato alle 8:54
Mercoledì, 19/06/2013
Si è soltanto un problema di passaggio di parametri
Ho buttato giù il codice e non va
Codice sorgente - presumibilmente C++

  1. #include <iostream.h>
  2.  
  3. struct dati{
  4.         float x1;
  5.         float x2;
  6.         float y1;
  7.         float y2;
  8.         float lunghezza[MAXDIM];
  9. };
  10.  
  11. struct lista{
  12.         int n;
  13.         dati segmenti[MAXDIM];
  14. };
  15.  
  16. void input(lista &l);
  17. lista valore(lista &l.segmenti[].z);
  18.  
  19. void main(){
  20.         input(l);
  21.         return;
  22. }
  23.  
  24. void input(lista &l){
  25.         for (int i=0; i < l.n; i++){
  26.                 cout << "Inserire il valore di x1" << endl;
  27.                 valore(l.segmenti[i].x1);
  28.                 cout << "Inserire il valore di y1" << endl;
  29.                 valore(l.segmenti[i].y1);
  30.                 cout << "Inserire il valore di x2" << endl;
  31.                 valore(l.segmenti[i].x2);
  32.                 cout << "Inserire il valore di y2" << endl;
  33.                 valore(l.segmenti[i].y2);
  34.         }
  35.         return;
  36. }
  37.  
  38. lista valore(lista &l.segmenti[].z){
  39.         cin >> l.segmenti[].z;
  40.         return l.segmenti[].z;
  41. }



N.b. so che è solo codice in più ma devo capire come funziona anche per le liste che mi serve per altri programmi!

PM Quote
Avatar
Afa (Normal User)
Rookie


Messaggi: 29
Iscritto: 17/06/2013

Segnala al moderatore
Postato alle 20:06
Giovedì, 20/06/2013
Up

PM Quote
Avatar
Afa (Normal User)
Rookie


Messaggi: 29
Iscritto: 17/06/2013

Segnala al moderatore
Postato alle 12:27
Venerdì, 21/06/2013
Ho risolto alcuni problemi quindi cerco di fare il punto:
Codice sorgente - presumibilmente C/C++

  1. void input(lista &l){
  2.         for (int i=0; i < l.n; i++){
  3.                 cout << "Inserire il valore di x1" << endl;
  4.                 valore(l.segmenti[i].x1);
  5.                 cout << "Inserire il valore di y1" << endl;
  6.                 valore(l.segmenti[i].y1);
  7.                 cout << "Inserire il valore di x2" << endl;
  8.                 valore(l.segmenti[i].x2);
  9.                 cout << "Inserire il valore di y2" << endl;
  10.                 valore(l.segmenti[i].y2);
  11.         }
  12.         return;
  13. }
  14.  
  15. lista valore(lista &l.segmenti[].z){// QUI IL PROBLEMA
  16.         cin >> l.segmenti[].z;
  17.         return l.segmenti[].z;
  18. }



Non funziona dove ho messo "QUI IL PROBLEMA"

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:36
Venerdì, 21/06/2013
Prova con
Codice sorgente - presumibilmente C/C++

  1. lista valore(lista &l, int indice)
  2. {
  3.   cin >> l.segmenti[ indice].z;        
  4.   return l;
  5. }


( non ti funziona perchè il campo l.segmenti [ ] .z non è di tipo lista )

Ultima modifica effettuata da Poggi Marco il 21/06/2013 alle 14:38
PM Quote
Avatar
Afa (Normal User)
Rookie


Messaggi: 29
Iscritto: 17/06/2013

Segnala al moderatore
Postato alle 17:44
Venerdì, 21/06/2013
Ma indice lo devo assegnare nel modulo chiamante?

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo