Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569

    Risolvere equazioni con PHP

    Questo è il codice che uso (trovato sui forum):

    Codice PHP:
    <?php
    function solve($eq) {
    if(
    $eq == null || $eq == "" || $eq == " ") return('ERRORE: Equazione non valida');

    $eq str_replace(' '''$eq);

    // Controllo della sintassi
    $terms explode('='$eq);

    if(
    $terms[0] == null || $terms[1] == null) return("ERRORE: Equazione non valida"); 

    if (
    count($terms) != 2) {
    return(
    'ERRORE: Equazione non valida');
    }


    $eq $terms[0] . '-(' $terms[1] . ')';

    if (
    substr_count($eq'(') != substr_count($eq')')) {
    return(
    'ERRORE: Non tutte le parentesi sono state chiuse nell equazione [' $eq '].');
    }
    if (
    preg_match('/\([^)]*\(/'$eq)) {
    return(
    'Non ho idea di come risolvere questo! ['
    $eq '].');
    }
    if (
    preg_match('/[^x0-9+*\/().=-]/'$eq)) {
    return(
    'ERRORE: Sono ammessi solo i caratteri x, 0-9, +, '
    '*, /, (, ), ., e - in [' $eq ']');
    }
    if (
    preg_match('/[^x0-9\)][-+\/*]/'$eq)) {
    return(
    'ERRORE: Puoi operare solo sui numeri in ['
    $eq ']');
    }
    if (
    preg_match('/[-+\/*][^x0-9\(]/'$eq)) {
    return(
    'ERRORE: Puoi operare solo sui numeri in ['
    $eq ']');
    }

    // Sostituisco x incognita con variabile php per renderla leggibile durante eval()
    $eq str_replace('x''$x'$eq);
    $y0 $y1 0;
    $x 0; @eval('$y0 = ' $eq ';');
    $x 1; @eval('$y1 = ' $eq ';');
    $slope $y1 $y0;
    $intersect $y0;

    $soln = (-($intersect $slope));
    if(
    $soln == 0) return("Impossibile!");

    return (- (
    $intersect $slope));
    }

    $eq $_POST['eq'];
    echo 
    $eq'
    x = '
    solve($eq), '

    '
    ;
    ?>
    Questo è il link alla pagina: http://www.ray97.com/tests/mah/solver.html

    Provate con una qualsiasi operazione e aiutatemi a capire quei strani risultati!!

  2. #2
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Intendo quelli che appaiono quando inserisci due espressioni uguali, tipo x + 1 = x + 1 da impossibile

  3. #3
    x + 1 = x + 1 non è un'equazione, ma un'identità.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    ma secondo te x+1 = x+1, quanto può valere x? c'ha ragione l'algoritmo

    cmq usa matlab
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Giusto
    Comunque cos'è matlab?

  6. #6

  7. #7
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Mai sentito nominare!! Comunque 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.