Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c]funzione e parentesi

    ciao.
    Ho una funzione ricorsiva parsa con una variabile da parsare chiamata pFunc.
    questa funzione viene richiamata fino a che le parentesi aperte contenute in pFunc sono piu' di una;e ad ogni chiamata elimina dalla variabile pFunc la parentesi aperta piu' esterna:

    bool parsa(string pFunc)
    {
    .
    .
    .

    }

    pFunc="(((2)))"

    1)chiamataFunc="((2))"
    2)chiamataFunc="(2))"
    3)chiamataFunc="2))"


    devo controllare che il numero di parentesi aperte dalla prima chiamata sia identico al numero di parentesi chiuse solo che non posso aggiungere parametri alla funzione e non posso togliere parentesi chiuse da pFunc.

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    156
    prima della chiamata recursiva incrementi una variabile globale (o locale statica alla funzione)
    dopo la chiamata recursiva la decrementi. alla fine controlli che sia uguale al valore iniziale

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    grazie,ma non posso usare variabili globali.

  4. #4
    Originariamente inviato da giuseppe500
    grazie,ma non posso usare variabili globali.
    bhe, come suggerito da zucchino, usa una variabile locale static

    bool parsa(string pFunc)
    {
    static int Numero_Parentesi;



    }


  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [c]funzione e parentesi

    Originariamente inviato da giuseppe500
    ciao.
    Ho una funzione ricorsiva parsa con una variabile da parsare chiamata pFunc.
    questa funzione viene richiamata fino a che le parentesi aperte contenute in pFunc sono piu' di una;e ad ogni chiamata elimina dalla variabile pFunc la parentesi aperta piu' esterna:

    bool parsa(string pFunc)
    {
    .
    .
    .

    }

    pFunc="(((2)))"
    Abbastanza semplice: quando entri nella funzione devi verificare, come prima cosa, se la stringa inizia con un '(' e se finisce con un ')'. Hai quindi 4 possibilità:
    a) inizia con '(' e finisce con ')'
    b) inizia con '(' ma non finisce con ')'
    c) non inizia con '(' ma finisce con ')'
    d) non inizia con '(' e non finisce con ')'

    Nel caso a) devi chiamare in modo ricorsivo la funzione passando la stringa modificata dopo aver tolto ( e ) più esterni (hai testato infatti che inizia per '(' e finisce per ')'). In questo caso devi fare il return del valore ritornato dalla funzione chiamata ricorsivamente.
    Altrimenti se non è il caso a), ti basta mettere un return che ritorni 'true' solo se si è nel caso d), altrimenti 'false'.

    Credimi, è più semplice di quanto credi ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ok , è una funzione per calcolare funzioni matematiche , e non posso modificare i ) perche vengono usati dal calcolo , è proprio questo il problema in effetti.
    grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.