pähkinä purtavaksi

//Kääntäjäni sanoo että tässä ei ole
//mitaan virheitä, muttei siltä voi kääntää sitä.
//Joten tässä kykymys: MIKSEI VOI?



//Tämä ohjelma ratkaisee toisen asteen yhtälön
   
#include
#include
using namespace std;

int main()
{
   cost int diskriminantti=b*b-4*a*c;
   int a,b,c;
   float x1=(b (sqrt(diskriminantti))/2*a;
   float x2=(b-(sqrt(diskriminantti))/2*a;

   coutc;

   if(diskriminantti
162925
Äänestä

Muut lukivat myös

Vastaukset 16

Vanhimmat

// muuta järjestystä?

int a,b,c;

// ja kaippa noihin muuttujiin tulisi jotain sijoittaakin ennen seuraavaa?

cost int diskriminantti=b*b-4*a*c;

Äänestä

Jos kääntähäsi sanoo että tuossa ei ole virheitä vaihda kääntäjää :)

Et voi alustaa diskriminanttia käyttäen muuttujie abc jos niitä ei ole vielä edes esitelty, saati alustettu.

Ohjelmassasi on lukuisia kirjoitusvirheitä. (0:n tilalla o:ta, sulut puuttuvat, reaturn etc)

include rivit voisivat olla ilman tuota .h päätettä

Äänestä
  • //olenko korjanut kaiken?
    //se ei toimi vieläkään


    //VERSION 1.0
    //Tämä ohjelma ratkaisee toisen asteen yhtälön
       
    #include
    #include
    using namespace std;

    int main()
    {
       int diskriminantti=b*b-4*a*c;
       int a,b,c;
       float x1=(b (sqrt(diskriminantti))/2*a);
       float x2=(b-(sqrt(diskriminantti))/2*a);

       coutc;

       if(diskriminantti

    Äänestä

  • aWW kirjoitti:

    //olenko korjanut kaiken?
    //se ei toimi vieläkään


    //VERSION 1.0
    //Tämä ohjelma ratkaisee toisen asteen yhtälön
       
    #include
    #include
    using namespace std;

    int main()
    {
       int diskriminantti=b*b-4*a*c;
       int a,b,c;
       float x1=(b (sqrt(diskriminantti))/2*a);
       float x2=(b-(sqrt(diskriminantti))/2*a);

       coutc;

       if(diskriminantti

    tarkkana..

    Äänestä

  • minä kirjoitti:

    tarkkana..

    ...mutta ota huomioon että olen opeskellut c :tä vain kuukauden,
    Saisinko jotain vinkkejä?

    Äänestä

  • aWW kirjoitti:

    ...mutta ota huomioon että olen opeskellut c :tä vain kuukauden,
    Saisinko jotain vinkkejä?

    Mitä kääntäjäsi sanoo kun koitat kääntää tuon ohjelman?

    Äänestä

  • aWW kirjoitti:

    ...mutta ota huomioon että olen opeskellut c :tä vain kuukauden,
    Saisinko jotain vinkkejä?

    ...mikäli vaivautuisit copypastettamaan sen virheilmoituksen, ja kuvailisit ongelman paremmin. "Tässä on jokin virhe" ei ole oikein järkevä kuvaus.

    Äänestä

  • Koodari kirjoitti:

    ...mikäli vaivautuisit copypastettamaan sen virheilmoituksen, ja kuvailisit ongelman paremmin. "Tässä on jokin virhe" ei ole oikein järkevä kuvaus.

    //Tässä on parannettu versio
    //kääntäjä tulostaa:
    // Error executing cl.exe.

    ToisenAsteenYhtälö.obj - 1 error(s), 0 warning(s)



    //VERSION 1.2
    //Tämä ohjelma ratkaisee toisen asteen yhtälön
       
    #include
    #include
    using namespace std;

    int main()
    {
       int diskriminantti;
       int a,b,c;
       float x1;
       float x2;


       coutc;

       diskriminantti=b*b-4*a*c;
       x1=(b (sqrt(diskriminantti))/2*a);
       x2=(b-(sqrt(diskriminantti))/2*a);

       if(diskriminantti

    Äänestä

  • aWW kirjoitti:

    //Tässä on parannettu versio
    //kääntäjä tulostaa:
    // Error executing cl.exe.

    ToisenAsteenYhtälö.obj - 1 error(s), 0 warning(s)



    //VERSION 1.2
    //Tämä ohjelma ratkaisee toisen asteen yhtälön
       
    #include
    #include
    using namespace std;

    int main()
    {
       int diskriminantti;
       int a,b,c;
       float x1;
       float x2;


       coutc;

       diskriminantti=b*b-4*a*c;
       x1=(b (sqrt(diskriminantti))/2*a);
       x2=(b-(sqrt(diskriminantti))/2*a);

       if(diskriminantti

    Kyllähän tuon jo luulis kääntyvän.. pientä viilattavaa tosin on.

    Esim tarkastat diskriminantin arvon neliöjuurilausekkeiden jälkeen ja negatiivisesta luvustahan ei neliöjuurta voi laskea. Toiseksi, jos en väärin muista toisen asteen lauseketta tuossa lausekkeessa on vielä vikaa.

    Äänestä

  • aWW kirjoitti:

    //Tässä on parannettu versio
    //kääntäjä tulostaa:
    // Error executing cl.exe.

    ToisenAsteenYhtälö.obj - 1 error(s), 0 warning(s)



    //VERSION 1.2
    //Tämä ohjelma ratkaisee toisen asteen yhtälön
       
    #include
    #include
    using namespace std;

    int main()
    {
       int diskriminantti;
       int a,b,c;
       float x1;
       float x2;


       coutc;

       diskriminantti=b*b-4*a*c;
       x1=(b (sqrt(diskriminantti))/2*a);
       x2=(b-(sqrt(diskriminantti))/2*a);

       if(diskriminantti

    ..ei pelaa oikein. Unohda tuo esimerkki ja yritä alkuun saada tämä:

    void main()
    {

    }

    kääntymään. Sitten alat lisäämään tuosta esimerkistäsi palasia paikalleen ja katsot koska se lakkaa toimimasta.

    Äänestä

  • Koodari kirjoitti:

    ..ei pelaa oikein. Unohda tuo esimerkki ja yritä alkuun saada tämä:

    void main()
    {

    }

    kääntymään. Sitten alat lisäämään tuosta esimerkistäsi palasia paikalleen ja katsot koska se lakkaa toimimasta.

    //ongelma johtui siita
    // että laitoin .h
    //riittä pelkkä ja
    //ilman h:ta


    //VERSION 1.3
    //Tämä ohjelma ratkaisee toisen asteen yhtälön
       
    #include
    #include
    using namespace std;

    int main()
    {
       int diskriminantti;
       int a,b,c;
       float x1;
       float x2;


       coutc;

       diskriminantti=b*b-4*a*c;
       x1=(-b (sqrt(diskriminantti))/(2*a));
       x2=(-b-(sqrt(diskriminantti))/(2*a));

       if(diskriminantti

    Äänestä

  • Koodari kirjoitti:

    ..ei pelaa oikein. Unohda tuo esimerkki ja yritä alkuun saada tämä:

    void main()
    {

    }

    kääntymään. Sitten alat lisäämään tuosta esimerkistäsi palasia paikalleen ja katsot koska se lakkaa toimimasta.

    voisiko joku selittää miksei .h:ta tarvita?

    Äänestä

  • joku kirjoitti:

    voisiko joku selittää miksei .h:ta tarvita?

    Se on määritelty uudessa Standardissa, että .h:ta ei kirjoteta esim. iostreamia lisätessä, mutta omiin H tiedoistoihin tulee edelleen normaalisti #include "oma.h".

    Äänestä

  • aWW kirjoitti:

    //ongelma johtui siita
    // että laitoin .h
    //riittä pelkkä ja
    //ilman h:ta


    //VERSION 1.3
    //Tämä ohjelma ratkaisee toisen asteen yhtälön
       
    #include
    #include
    using namespace std;

    int main()
    {
       int diskriminantti;
       int a,b,c;
       float x1;
       float x2;


       coutc;

       diskriminantti=b*b-4*a*c;
       x1=(-b (sqrt(diskriminantti))/(2*a));
       x2=(-b-(sqrt(diskriminantti))/(2*a));

       if(diskriminantti

    Jos haluaa oikeita tuloksia, niin pikkusen pitää viilata vielä sulkeita. Eli näin:
    x1=(-b (sqrt(diskriminantti)))/(2*a);
    ja x2:lle samoin.

    Tietysti hyviin tapoihin kuuluu ennen a:lla jakamista tutkia ettei se ole nolla. Samoin ennen neliöjuuren ottoa katsoa ettei diskriminantti ole negatiivinen.

    Äänestä

  • joku kirjoitti:

    voisiko joku selittää miksei .h:ta tarvita?

    Stanussa on määritelty, jotta .h:ta ei käytetä.

    Eli

    #include

    esitetään

    #include
    using namespace std;

    Mutta näistä ei kannata huolestua ennenkuin käyttää omia nimiavaruuksia.

    Äänestä

  • aWW kirjoitti:

    //ongelma johtui siita
    // että laitoin .h
    //riittä pelkkä ja
    //ilman h:ta


    //VERSION 1.3
    //Tämä ohjelma ratkaisee toisen asteen yhtälön
       
    #include
    #include
    using namespace std;

    int main()
    {
       int diskriminantti;
       int a,b,c;
       float x1;
       float x2;


       coutc;

       diskriminantti=b*b-4*a*c;
       x1=(-b (sqrt(diskriminantti))/(2*a));
       x2=(-b-(sqrt(diskriminantti))/(2*a));

       if(diskriminantti

    int a,b.c;
    float increment;

    Ylläolevan kaltainen ja käyttämäsi määrittely ei tunnista desimaalilukua kertoimena, vaikka se toisen asteen yhtälön kannalta on täysin hyväksyttävää.

    Neliöjuuri sqrt() vaatii (?) riittävän tarkkuuden saavuttamiseksi double tyypin. Voi olla, että uudet kääntäjät osaavat tehdä tyyppimuunnoksen automaattisesti, oma vanha Borland C 4.552 ei kuitenkaan osaa. Kuten se ei myöskään tunne namespace_a eikä #include_a ilman .h päätettä.
    Ohjelmasi hermostuu siitä, jos yhtälöllä on imaginääriset juuret. Pitää tehdä lopetus tällaista tapausta varten ennen x1:n ja x2:n laskentaa.(lopettava return if-silmukkaan;tästä oli täällä huomautus jo aikaisemmin)

    Imaginäärisiä juuria varten headereihin pitää lisätä #include ja koodi siltä osin pitää kirjoittaa uusiksi. Mutta se on jo toinen juttu.

    Äänestä

Kommentoi aloitusta


aWW kirjoitti:

//Kääntäjäni sanoo että tässä ei ole
//mitaan virheitä, muttei siltä voi kääntää sitä.
//Joten tässä kykymys: MIKSEI VOI?



//Tämä ohjelma ratkaisee toisen asteen yhtälön
   
#include
#include
using namespace std;

int main()
{
   cost int diskriminantti=b*b-4*a*c;
   int a,b,c;
   float x1=(b (sqrt(diskriminantti))/2*a;
   float x2=(b-(sqrt(diskriminantti))/2*a;

   coutc;

   if(diskriminantti

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu