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

    c++ il programma per risolvere qualsiasi equazione

    questo programma serve a calcolare le radici di una qualsiasi equazione ma ogni volta devo sempre modificare la funzione alla fine, quindi se non avrei visual c++ non lo potrei farlo, la stessa cosa vale per un altra persona, magari un'ignorante che deve solo utilizzare questo programma, come posso modificare la funzione tramite il prompt comandi, quando il programma è già avviato?

    /* programma per la ricerca delle radici di equazioni.
    occorre che il primo membro dell'equazione eguagliata a zero sia una funzione continua.
    Procedimento adottato: divisioni per due dell'intervallo.
    */

    #include <stdafx.h>
    #include <iostream>
    #include <math.h>
    using namespace std;

    //prototipo della funzione
    double Funzione(double);
    //input:valore di x;output:valore di y
    //la funzione è dichiarata con i suoi coefficienti fissi

    void main ()
    {
    double a; // estremo sinistro dell'intervallo
    double b; // estremo destro dell'intervallo
    double c; // passo
    double d; // incremento
    double e; //precisione
    double x;
    double p, q;
    double i;
    double val_abs;
    int u; // flag: 0 non ci sono soluzioni nell'intervallo;1 ci sono soluzioni

    int sp = 0; // numero di segni positivi
    int sn = 0; // numero di segni negativi

    double f; // valore della funzione
    double z; // valore della funzione

    do
    {
    cout << "\n Inserisci estremo sinistro dell'intervallo";
    cin >> a;
    cout << "\n Inserisci estremo destro dell'intervallo";
    cin >> b;
    } while ( a >= b);

    do
    {
    cout << "\n Inserisici l'incremento ";
    cin >> d;
    } while ( d <= 0);

    do
    {
    cout << "\n Inserisici precisione ";
    cin >> e;
    } while ( e < 1 || e > 6);

    e = pow(10, -e);

    c = (b-a)/10000;

    for (i = 1; i <= 10000; i++)
    {
    x = a + i * c;
    f = Funzione(x);
    if (f > 0)
    sp++;
    if (f < 0)
    sn++;
    }
    cout << "\n sp = " << sp;
    cout << "\n sn = " << sn;
    cout << "\n i = " << i;

    if (sp ==0 || sn ==0)
    cout << "\n Non e' possibile applicare questo metodo risolutivo !!!";

    else
    {
    u = 0;
    for ( i = a; i < b-d; i=i+d)
    {
    x = i;
    f = Funzione(x);
    if ( f == 0)
    {
    cout << "\n Una radice ------------ = " << x;
    u = 1;
    continue;
    }
    else
    {
    z = f;
    x = i + d;
    f = Funzione(x);
    if ( x == b && f == 0)
    {
    cout << "\n Una radice *********** = " << x;
    u = 1;
    continue;
    }
    else
    {
    if ( f ==0 )
    continue;
    else
    {
    if ( z * f > 0)
    continue;
    else
    {
    p = i;
    q = i + d;

    ciclo:
    x = (p + q )/2;
    //val_abs = ((q-p) < 0) ? -(q-p) : q-p;
    val_abs = fabs(q-p);
    if ( val_abs < e )
    {
    cout << "\n Una radice °°°°°°°°°°° = " << x;
    u = 1;
    continue;
    }
    f = Funzione(x);
    if (f == 0)
    {
    cout << "\n Una radice /////////// = " << x;
    u = 1;
    continue;
    }
    if (f*z > 0)
    p = x;
    else
    q = x;
    goto ciclo;

    }
    }
    }
    }
    } // fine for

    if ( u == 0)
    cout << "\n Non ci sono soluzioni nell'intervallo scelto !!";
    } // end else
    } // end main

    // sviluppo della funzione
    double Funzione(double x)
    {
    double y;
    y= pow(x,2)-1;
    return y;
    }
    ALLA GUERRA!!!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non puoi ...

    P.S. "Se non avessi visual c++ ..."

  3. #3
    non c'è nessun modo? azz quindi ogni volta devo modificare per forza il file sorgenze, ne siamo sicuri che non c'è nessun modo, volevo darglielo ad un amico questo programma però lui non è un programmatore
    ALLA GUERRA!!!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    C'e' un modo molto complesso ... dovresti scrivere tu un parser di espressioni (comprese le funzioni) ma, ti assicuro, va ben oltre le capacita' di chi inizia a programmare ... a volte, anche di esperti programmatori.

    Con una semplice sostituzione nel file "sorgente", non puoi ...

  5. #5
    azz, avevo intenzione di metterlo in giro così tutti potevano usufruire del mio programma ma non è possibile a tutti allora peccato
    ALLA GUERRA!!!

  6. #6
    Se cambi compilatore non la vedo difficile (scusatemi ma non la vedo mai difficile)...
    Ad esempio (visto che siamo in tema) il gcc è gratuito...
    Se il problema però non sta sul costo del compilatore ...
    Che so creare un'altro prog per eseguire un cambiamento nel codice (o anche tutto nello stesso programma)
    Experience is what you get when you don’t get what you want

  7. #7
    Io uso VIM e non ho problemi, quindi ...
    E poi ti prego TOGLI QUEL GOTO CICLO !

  8. #8
    perchè dovrei toglierlo, senò come faccio a farlo ritornare in alto? Sono interessato a quel programma che modifichi il codice di questo programma, oppure direttamente tutto nel mio programma, come si fà, ho cominciato a ottobre a programmare, aiutatemi voi!
    ALLA GUERRA!!!

  9. #9
    Originariamente inviato da Bellerofonte90
    perchè dovrei toglierlo, senò come faccio a farlo ritornare in alto?
    Usando un vero ciclo, tipo un do o un while.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Ecco, questa è la programmazione strutturata:
    http://it.wikipedia.org/wiki/Programmazione_strutturata
    Experience is what you get when you don’t get what you want

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.