Gå til innhold

Anbefalte innlegg

Noen her som kan se hva som er galt med denne koden. Jeg får komplikert kodene men får opp en feilmelding når jeg skal kjøre programmet.

 

using System;

 

class sample

{

public static void Main()

{

// Deklarere variabler

 

int radius = 4;

const double PI = 3.14159;

double area;

 

// Foreta beregning

 

area = PI * radius * radius;

 

// Skriv ut resiltatet

 

Console.WriteLine("Radius = { 0} , PI = { 1} ", radius , PI );

Console.WriteLine("Arealet er { 0} ", area );

}

}

Lenke til kommentar
Videoannonse
Annonse

Jeg kan engentlig ingenting om C# jeg da, men siden det er en del språk som har forholdsvis lik syntaks så tengte jeg at jeg kunne prøve alike vel. Så her kommer mitt forslag(sikkert feil da men :p ):

Skal ikke class ende med semikolon?

slik at koden (tar bare den nederste biten) vil bli sånn:

// Foreta beregning

area = PI * radius * radius;

// Skriv ut resiltatet

Console.WriteLine("Radius = { 0} , PI = { 1} ", radius , PI );
Console.WriteLine("Arealet er { 0} ", area );
}
};

 

?

Lenke til kommentar

Du har noen mellomrom i klammeparantesene i WriteLine-funksjonene, fjern disse. Gjør dem om til koden nedenfor:

Console.WriteLine("Radius = {0} , PI = {1} ", radius , PI );
Console.WriteLine("Arealet er {0} ", area );

 

zirener: i C# skal ikke klassene avsluttes med semikolon. Du tenker vel kanskje på klasse-definisjoner i C++?

Lenke til kommentar

de mellomrommene har da ingenting å si?

zirener: class skal ikke avsluttes med et ;

 

så langt jeg veit, så skal main-funksjonen defineres

static void Main()
{
...
}

og ikke

 

public static void Main()
{
...
}

Dette er java-måten å definere det på...

 

Jeg har også alltid en namespace rundt hele filen, men er litt usikker på om dette er påkrevd...

 

edit: kompilere (kom-pi-lere), ikke komplikere :lol:

Endret av Manfred
Lenke til kommentar

Feilen du fikk var

Unhandled Exception: System.FormatException: Input string was not in a correct f

ormat.

at System.Text.StringBuilder.FormatError()

at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String fo

rmat, Object[] args)

at System.String.Format(IFormatProvider provider, String format, Object[] arg

s)

at System.IO.TextWriter.WriteLine(String format, Object arg0, Object arg1)

at System.IO.SyncTextWriter.WriteLine(String format, Object arg0, Object arg1

)

at System.Console.WriteLine(String format, Object arg0, Object arg1)

at sample.Main() in d:\projects\test11\class1.cs:line 19

 

Dette var på grunn av mellomrom mellom tegnene i {0} , osv...

 

Fjern mellomrommene så får man:

Radius = 4 , PI = 3,14159

Arealet er 50,26544

 

- jørn

Lenke til kommentar

Jeg har problemer med en annen kode. Fikk beskjed om: "(47,22): error CS1009: Unrecognized escape sequence"

 

40: catch (System.IO.FileNotFoundException)

41: {

42: Console.WriteLine ("ListIT could not find the file{0} ", args[0]);

43: }

44:

45: catch (Exceotion e)

46: {

47: Console.WriteLine("Exception: {0} \ n\ n", e);

48: }

Lenke til kommentar
47:  Console.WriteLine("Exception: {0} \ n\ n", e);

Et mellomrom for mye i linje 47; det skal ikke være mellomrom mellom \ og n. Og det er også det feilmeldingen sier; det er en feil i linje 47 - og det er escape sequence (mao '\') som er synderen.

 

Forøvrig er det bedre å bruke Environment.Newline, men det er en annen sak.

 

- grå -

Lenke til kommentar
  • 4 uker senere...
  • 3 uker senere...

Jeg har gjort noe feil igjen i ett lite program. Kan dere forklare meg hva feilen jeg har gjort er så ville det være veldig hyggelig.

 

Jeg har en logisk feil i denne koden, men vet ikke hva det er. Når jeg kjører programmet skal den spørre først etter Watten så skal jeg skrive verdien inn, og når jeg da trykker på enter skal den spørre etter Volten. Men i stede spør den bare etter watten og når jeg trykker enter etter å ha skrevet watt verdien, skriver den bare ut at jeg skal skrive verdien på volten og amp'en. :no:

 

Kan du forklare meg hva som jeg gjør galt?

 

using System;

class EasyEffekt
{
public static void Main()
{
 // opprette variablene
 int watt;
 int volt;
 int amp;
 
 // tilføre verdiene til variablene
 System.Console.WriteLine("\nSkriv Watt verdien her:");
 watt = System.Console.Read();
 
 System.Console.WriteLine("\nSkriv Volt verdien her:");
 volt = System.Console.Read();
 
 System.Console.WriteLine("\nSkriv Apere verdien her:");
 amp = System.Console.Read();
 
 // starte utregning
 if (watt == 0)
 {
 	watt = volt * amp;
 	System.Console.WriteLine("\nEffekten er {0}", watt);
 }
 else if (volt == 0)
 {
 	volt = watt / amp;
 	System.Console.WriteLine("\nVolten er {0}", watt);
 }
 else if (amp == 0)
 {
 	amp = watt / volt;
 	System.Console.WriteLine("\nAmperen er {0}", amp);
 }
 else
 {
 	System.Console.WriteLine("Du har skrevet en annen verdi på det alternativet du vil ha svar på enn '0'!");
 }
}
}

Lenke til kommentar

Grunnen til at jeg fortsatt bruker den tråden er vel at jeg ikke er kommet langt nok i boka til å ha lært å gjøre det annerledes :whistle:

 

Når jeg bruker ReadLine fikk jeg kompilerings feil. Får i linjene med "ReadLine" at "Cannot implicitly convert type 'string' to 'int'. Vet du hvordan jeg kan løse det?

 

Men hva er egentlig forskjellen på "Read" og "ReadLine". Og hva er forskjellen på "WriteLine" og "Write"

Lenke til kommentar
Grunnen til at jeg fortsatt bruker den tråden er vel at jeg ikke er kommet langt nok i boka til å ha lært å gjøre det annerledes :whistle:

 

Når jeg bruker ReadLine fikk jeg kompilerings feil. Får i linjene med "ReadLine" at "Cannot implicitly convert type 'string' to 'int'. Vet du hvordan jeg kan løse det?

 

Men hva er egentlig forskjellen på "Read" og "ReadLine". Og hva er forskjellen på "WriteLine" og "Write"

string str = Console.ReadLine();

Du har antageligvis prøvd med:

int i = Console.ReadLine();

 

Prøv

int i = Convert.ToInt32(Console.ReadLine());

 

Forskjellen på read og readline er at read bare leser et tegn mens readline leser til neste linjeskift. Forskjellen på write og writeline er at writeline legger til en linjeskift.

Lenke til kommentar

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å
×
×
  • Opprett ny...