Gå til innhold

Program for å gjøre om fra tommer til cm?


Anbefalte innlegg

Skrevet (endret)

har et problem jeg er en skjikkelig nuub.så her er det. jeg leser en bok om c++.og i en oppgave står dte at du skal lage et program som gjør om fra tommer til cm. her er koden hva er feil

#include <iostream>
#include <stdlib.h>

using namespace std;

int main(int argc, char *argv[])
{
double tommer

cout << "hvor mange tommer";//den sier at feilen er her
cin>>tommer;

double cm
cm=tommer*2.54
cout << "det blir"<<cm;

 system("PAUSE");	
 return 0;
}

 

 

EDIT : Du burde lære deg å kode bedre emnefelt først :-) Har endret det for deg.

Endret av Afseth
Videoannonse
Annonse
Skrevet (endret)

...eller tre.

 

Det heter dessuten <cstdlib> (ikke <stdlib.h>)

 

Dessuten er cin.get(); er bedre enn system("pause"); (For å bruke cin.get(); må du ha cin.ignore(); over når du tar imot input i løpet av programmet, slik du gjør.)

 

 

De to siste tingene jeg nevnte har med "good programming practice" å gjøre. Du bør gjøre noe med det og, men for å få kompilert må du nok legge til noen semikolon

 

Edit: Post 200 :)

Endret av Myubi
Skrevet (endret)

jeg satte in cin.get() det virker.men hele programe forsvinner før jeg får sett svaret :scared: .takk for all hjelp Myubi :thumbs: .kan noen hjelpe meg her. :hmm: kan du kanskje legge til et eksempel på cin.ignor.

Endret av Fredrik90
Skrevet

Du må bruke cin.ignore() først, slik:

 

#include <iostream>

int main()
{
    std::cout << "Enter value: "; 
    int x;
    std::cin >> x;  // Her blir det "hengende igjen" en \n, som gjør at
                    // cin.get() returnerer øyeblikkelig
    std::cout << "You entered: " << x << std::endl;

    std::cin.ignore();  // Ignorerer \n'en
    std::cin.get();     // Nå funker den :)
 return 0;
}

Skrevet (endret)

std::'ene blir det samme som å ha using namespace std;

 

 

Altså, alle eksemplene er ekvivalente:

 

 

#include <iostream>

int main()
{
    using namespace std;
    cout << "Hello World!\n";
    cin.get();
 return 0;
}

 

#include <iostream>

int main()
{
    using std::cout;
    using std::cin;
    cout << "Hello World!\n";
    cin.get();
 return 0;
}

 

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
    std::cin.get();
 return 0;
}

 

 

Merk: Hvis du bruker cin >> ..., må du ha med cin.ignore();Hvis ikke er det nok med cin.get();

 

Edit: La til cin.get()

Endret av Myubi
Skrevet

nok en gang har jeg problemer. hva er feil her.

#include <iostream>
#include <stdlib.h>
using namespace std;
int beregnsvar(double tall1,double tall2,char regneart);

int main(int argc, char *argv[])
{
double tall1;
double tall2;
char regneart;
double svar

cout << "skriv regnestykket.";
cin >>tall1>>regneart>>tall2  
int svar=beregnsvar(tall1,tall2,regneart);
cout <<tall1<<" "<<regneart<<" "<<tall2;
cout << "="<<svar<<endl;

cin.ignor
cin.get
}//slutt main
//
//------------------------------------------------------------------------------
//funksjonen beregnsvar
//
double beregnsvar(
double tall1,     //inn
double tall,      //inn
char rgneart)  //inn
{
int svar;
if (regneart=='+') svar=tall1+tall2;
if (regneart=='-') svar=tall1-tall2;
if (regneart=='*') svar=tall1*tall2;
if (regneart=='/') svar=tall1/tall2;
return svar;
//slutt funskjon beregnsvar

jeg trenger virkelig hjelp her. :scared:

Skrevet

Jeg tror du skal se på hva kompilatoren din sier deg, og se litt nøyere på syntaksen din (se på f.eks. semikolon, parenteser, kommaer, { og }, osv).

Skrevet (endret)

double beregnsvar(

double tall1,     //inn

double tall,      //inn

char rgneart)  //inn

{

int svar;

if (regneart=='+') svar=tall1+tall2;

if (regneart=='-') svar=tall1-tall2;

if (regneart=='*') svar=tall1*tall2;

if (regneart=='/') svar=tall1/tall2;

} // blant annet denne glemte du :p

return svar;

//slutt funskjon beregnsvar[/code]

jeg trenger virkelig hjelp her. :scared:

Tror koden ville blitt mer ryddig hvis du kansje hadde brukt switch isteden for if, slik:

double beregnsvar(
double tall1,     //inn
double tall,      //inn
char rgneart)  //inn
{
int svar;
switch (svar)
 {
 case '+': svar = tall1+tall2;
               break;
 case '-': svar = tall1-tall2;
              break;
 case '*': svar = tall1*tall2;
              break;
 case '/': svar = tall1/tall2;
              break;
 }

 

EDIT:Og noe er selfølgelig skrevet litt dumt :p, og må rettes på.

Endret av zirener
Skrevet (endret)

hva betyr den switch greia for noe. :hmm: jeg har bare programert en uke,så jeg er en skikkelig nuub. :blush: mer problemer.

#include <iostream>
#include <stdlib.h>
using namespace std;
int beregnsvar(double tall1,double tall2,char regneart);

int main(int argc, char *argv[])
{
double tall1;
double tall2;
char regneart;
double svar

cout << "skriv regnestykket.";//den sier at feilen er her
cin >>tall1>>regneart>>tall2  
int svar=beregnsvar(tall1,tall2,regneart);
cout <<tall1<<" "<<regneart<<" "<<tall2;
cout << "="<<svar<<endl;

cin.ignor
cin.get
}//slutt main
//
//------------------------------------------------------------------------------
//funksjonen beregnsvar
//
double beregnsvar(
double tall1,     //inn
double tall,      //inn
char rgneart)  //inn
{
int svar;
switch (svar)
{
case '+': svar = tall1+tall2;
              break;
case '-': svar = tall1-tall2;
             break;
case '*': svar = tall1*tall2;
             break;
case '/': svar = tall1/tall2;
             break;
}
//slutt funskjon beregnsvar

Endret av Fredrik90
Skrevet (endret)

ok her er mitt problem.ser noen en feil her.

cout <<"skriv regnestykket";

kompilatoren min sier at det er noe feil her.jeg bruker "dev-c++"version 4.9.8.7

 

og vis noen lurer på hele koden er den her.

#include <iostream>
#include <stdlib.h>
using namespace std;
int beregnsvar(double tall1,double tall2,char regneart);

int main(int argc, char *argv[])
{
double tall1;
double tall2;
char regneart;
double svar

cout <<"skriv regnestykket";
cin >>tall1>>regneart>>tall2  
double svar=beregnsvar(tall1,tall2,regneart);
cout <<tall1<<" "<<regneart<<" "<<tall2;
cout << "="<<svar<<endl;

cin.ignor
cin.get
}//slutt main
//
//------------------------------------------------------------------------------
//funksjonen beregnsvar
//
double beregnsvar(
double tall1,     //inn
double tall2,      //inn
char rgneart)  //inn
{
int svar;
switch (regneart)
{
case '+': svar = tall1+tall2;
              break;
case '-': svar = tall1-tall2;
             break;
case '*': svar = tall1*tall2;
             break;
case '/': svar = tall1/tall2;
             break;
}
//slutt funskjon beregnsvar

Endret av Fredrik90
Skrevet

Da har du lært (det var en ordre, ikke en anmodning ;)) at når du har glemt et semikolon får du ofte feilmelding fra linja ovenfor (den som mangler semikolon). Du har dessuten lært at du har en tendens til å ha syntaksfeil, så du bør ta en titt etter det før du spør. Slike feil bør du dessuten egentlig klare å rette opp i selv.

 

Jeg trodde dessuten de fleste kompilatorer var smarte nok til å si ifra ganske klart om mangel på semikolon?

Skrevet (endret)

ok fiksa det nå er det en ny feil.den gir bare ikkem mening lengre før lagde jeg programer uten noe kluss og nå er det veldig mye.

double svar=beregnsvar(tall1,tall2,regneart);

den sier det er feil her. ok problem løst jeg og Myubi

posta svar samtitig.

Endret av Fredrik90
Skrevet

som sagt,nå har jeg en feil igjen. kan noen si hva som er feil her

#include <iostream>
#include <cstdlib>
using namespace std;
int beregnsvar(int tall1,int tall2,char regneart);

int main(int argc, char *argv[])
{
int tall1;
int tall2;
char regneart;
int svar;

cout <<"skriv regnestykket";
cin >>tall1>>regneart>>tall2;  
svar=beregnsvar(tall1,tall2,regneart);
cout <<tall1<<" "<<regneart<<" "<<tall2;
cout << "="<<svar<<endl;
 
cin.ignore();
cin.get();
}
//
//------------------------------------------------------------------------------
//funksjonen beregnsvar
//

int beregnsvar(int tall1,int tall2,char regneart);  

switch(regneart) { /* ... */ }//den sier:parse error before `switch'

{
case '+': svar = tall1+tall2;
              break;
case '-': svar = tall1-tall2;
             break;
case '*': svar = tall1*tall2;
             break;
case '/': svar = tall1/tall2;
             break;
             
return svar
}//slutt funskjon beregnsvar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...