Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] esercizio metodo di bisezione

    Ciao a tutti, devo presentare un programma che utilizzi il metodo di bisezione per trovar gli zeri nelle funzioni polinomiche di terzo grado.

    Il programma l'avrei aahce fatto ma dopo qualche errore ho dovuto mollare il colpo e tornarmente a casa, il problema è che ora credo di averlo corretto bene ma non ho un pc per testarlo, sto scrivendo da uno non mio su cui non posso installare nulla!!

    So che è una scemenza, ma qualcuno sarebbe così cortese da dargli un'occhiata e dirmi se funziona?

    grazie mille in anticipo!!
    Sara

    codice:
    #include <cmath>
    #include <iostream.h>
    #include <stdlib.h>
    
    main()
    { float precis, y, a, estrinf, estrsup, b, z, e, f, g, h;
      cout<< "il programma restituisce gli zeri di una funzione di terzo grado/n";
      cout<< "inserisci il coefficente di terzo grado della funzione/n";  // assegnazione funzione 3° grado
      cin>> e;
      cout<< "inserisci il coefficente di secondo grado della funzione";
      cin>> f;
      cout<< "inserisci il coefficente di primo grado della funzione";
      cin>> g;
      cout<< "inserisci il termine noto della funzione";
      cin>> h;
      cout << " inserisci l'estremo inferiore"; //assegnazione estremi
      cin>> estrinf;
      cout << " inserisci l'estremo superiore";
      cin>> estrsup;
      if (estrinf*estrsup>0) //controllo validità estremi
      { 
       cout<<"estremi non validi \n";
       system("PAUSE");
       do 
        {  cout << " inserisci l'estremo inferiore";
      cin>> estrinf;
      cout << " inserisci l'estremo superiore";
      cin>> estrsup;
        if (estrinf*estrsup>0)
      { 
       cout<<"estremi non validi \n";
       } 
          } while (estrinf*estrsup>0);
           } 
       
      cout << " inserisci la precisione"; // assegnazione precisione
      cin>> precis;
      a=(estrsup+estrinf)/2;
      b=estrinf;
      y=e*pow(a,3)+f*pow(a,2)+g*pow(a,1)+h; //calcolo funzione
      z=e*pow(b,3)+f*pow(b,2)+g*pow(b,1)+h;
      if (y*z>0) // calcolo zero approssimato tramite bisezione
      { 
      estrinf=a;
      estrsup=estrsup;
      } 
      else
      { 
       estrinf=estrinf;
       estrsup=a;
        };
      do 
        {
      a=(estrsup+estrinf)/2;
      b=estrinf;
      y=e*pow(a,3)+f*pow(a,2)+g*pow(a,1)+h; 
      z=e*pow(b,3)+f*pow(b,2)+g*pow(b,1)+h;
      if (y*z>0)
      { 
      estrinf=a;
      estrsup=estrsup;
      } 
      else
      { 
       estrinf=estrinf;
       estrsup=a;
        };
        
          }     while (y> precis || -y>precis);
          cout<< "lo zero della funzione richiesta e' " << a << "\n"; //output zero della funzione
          cout<<"\n";
           system("PAUSE");
      return (0);
      }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303

    Moderazione

    Benvenuto nel forum.
    Ti invito fin da subito a prendere visione del Regolamento interno, dove sono specificati alcuni punti importanti per l'apertura di nuove discussioni.

    In particolare, l'uso dei tag CODE per il posting del codice (punt 6).

    Correggo io, se il codice è indentato.

    Ad ogni modo, per vedere se funziona o meno, la cosa più semplice e d'obbligo è compilarlo ed eseguirlo, per valutarne gli output.


    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

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se correggi/aggiungi le linee

    #include <iostream>

    using namespace std;

    int main()

    allora il programma viene compilato correttamente.

    Non so se è giusto perchè non ho avuto anche il tempo di provarlo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Programmare senza avere un compilatore con cui provare è davvero difficile; anche se non puoi propriamente installare un compilatore sul tuo PC, puoi sempre usare una versione portable di MinGW.

    [ot]Per caso frequenti il Volta di Milano?[/ot]
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.