Gå til innhold

Anbefalte innlegg

Skrevet

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 );

}

}

Videoannonse
Annonse
Skrevet

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 );
}
};

 

?

Skrevet

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++?

Skrevet (endret)

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
Skrevet

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

Skrevet

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: }

Skrevet

catch (System.Exception e)

{

}

 

45: catch (Exceotion e) //Du bomma litt Exception

46: {

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

48: }

Skrevet
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å -

  • 4 uker senere...
  • 3 uker senere...
Skrevet

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'!");
 }
}
}

Skrevet

Hmm, hvorfor bruker du fortsatt denne tråden istedenfor å starte en ny? :no:

 

 

 

Tilbake til spørsmålet... prøv å bruke ReadLine for å lese verdier isteden...

Skrevet

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"

Skrevet
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.

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...