Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [C++]Espressioni algebriche

    Come posso far parserare e risolvere expressioni alebriche come:

    5 * (3a + 4a) + 4a * (x+1)(x-1)

    Tnk
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  2. #2
    up
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  3. #3
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Cosa significa il nuovo verbo "parserare"?

    una espressione come:
    codice:
    5 * (3a + 4a) + 4a * (x+1)(x-1)
    non puoi risolverla!

  4. #4
    Originariamente inviato da iguana13

    non puoi risolverla!
    invece pare proprio di si
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  5. #5
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Invece no!

    Questa non la puoi risolvere:
    codice:
    x + 3 * (7 + 5x) - x / 5
    Questa invece sì!
    codice:
    x + 3 * (7 + 5x) - x / 5 = 0
    Come vedi basta aggiungere = 0!

    poi se hai 2 incognite devi avere almeno un sistema di equazioni!

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da iguana13
    Invece no!

    Questa non la puoi risolvere:
    codice:
    x + 3 * (7 + 5x) - x / 5
    Questa invece sì!
    codice:
    x + 3 * (7 + 5x) - x / 5 = 0
    Come vedi basta aggiungere = 0!

    poi se hai 2 incognite devi avere almeno un sistema di equazioni!
    Attenzione: Luc@s stà parlando di ESPRESSIONI, tu stai parlando di EQUAZIONI. Sono due cose differenti. Un'espressione è nu VALORE (una volta istanziate tutte le variabili in gioco, la scrittura ha un valore); un'equazione è un'uguaglianza fra due termini.

    A luc@s non credo che interessi risolvere un'equazione, quanto più PARSARE un'espressione, ossia avere una funzione o un programma che legga un'espressione e dica se è un'espressione valida (ossia che rispetta, in questo caso, le regole matematiche) oppure se è stata scritta una schifezza :gren: .


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Siccome ha scritto usando anche le incognite ho pensato che volesse trovare abche i valori!

    Probabilmente invece intende memorizzare in una struttura ad albero tutta l'espressione.

  8. #8
    la mia idea, per il momento, era "incapsularle" in un BST.
    Poi passere a risolvere quelle che dice iguana
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  9. #9
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Il problema che trovo nella struttura del tree è che come termini di una operazione posso avere:

    - Un' espressione
    - Un numero

    Ad esempio in:
    codice:
    3 + (5 * 7)
    il primo termine di "+" è un numero (3) ed il secondo è (5 * 7), un espressione quindi un puntatore a struct albero!

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    La tua struttura ad albero dovrebbe prevedere un metodo per capire se ciò che stai considerando (nella sua visita) è un albero oppure una foglia: nelle foglie, infatti, ci sono i valori numerici, mentre nei nodi interni (le radici dei sottoalberi) ci sono i simboli di operazione.

    Non è una cosa difficilissima.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.