Permalänk
Medlem

C# hjälp upskattas!!

Hej, behöver hjälp med ett program.

Det ska vara en valutaomvandlare, dollars till kronor.

Användaren ska mata in antalet dollars och valutakursen (1 dollar = 6.50 kr).

Programmet ska då göra om det till kronor.

Konsollen ska sedan tömmas och programmet ska fortsätta, alltså starta om från början direkt efter att fönstret tömms. Den ska alltså kunna användas flera gånger.

Hjälp uppskattas!!

Tack på förhand!

Räkna med

Permalänk
Medlem

Detta luktar skoluppgift lång väg, och ingen här kommer göra ditt jobb åt dig. Men du får gärna ställa specifika frågor om du får problem med programmeringen.

Permalänk
Medlem

Nej jag jobbar som systemutvecklare på Forex Bank. Nej men ärligt, det jag inte kan är att programmet ska börja om från början. Hade varit schysst om någon kunde hjälpa mig.

Permalänk
Medlem

Loop ? Borde ju finnas någon form av clear screen också som du kan köra efter varje runda-.- Borde inte va så svårt med C# iaf^^

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Ok, då börjar vi komma någon vart Det låter som att övningen är till för att du ska lära dig hur en while-loop fungerar, så kolla upp det i din kursliteratur eller på nätet (här är ett förslag).

Permalänk
Medlem

Så här ser min kod ut.

string indata;
double dollars;
double valutakurs;
double kronor;
Console.Write("Skriv in antalet dollar: ");
indata = Console.ReadLine();
dollars = double.Parse(indata);
Console.Write("Skriv in aktuell valutakurs: ");
indata = Console.ReadLine();
valutakurs = double.Parse(indata);
kronor = dollars * valutakurs;
Console.WriteLine("Antalet kronor är " + kronor);

Jag behöver hjälp med en while-sats som gör att detta upprepas.

Jag lyckades själv jag gjorde en while loop, "while (true)".

Detta funkar ju i denna uppgiften då den pågår i all evighet precis som jag vill. Hur går jag tillväga om jag t ex vill att den ska upprepas exakt 1o gånger?

Permalänk
Skrivet av Filatov:

Om jag skriver "while (true)" så återupprepas det i all oändlighet precis som jag vill i detta programmet men om jag t ex skulle vilja att det upprepas exakt 5 gånger, hur gör jag det?

kolla första exemplet i länken ovan

Permalänk
Medlem
Skrivet av Filatov:

Detta funkar ju i denna uppgiften då den pågår i all evighet precis som jag vill. Hur går jag tillväga om jag t ex vill att den ska upprepas exakt 1o gånger?

Det går att göra med en while-loop som hermaniii säger, men det är nog mer passande med en for-loop i ett sånt fall.

Permalänk
Medlem
Skrivet av perost:

Det går att göra med en while-loop som hermaniii säger, men det är nog mer passande med en for-loop i ett sånt fall.

Skulle du kunna göra ett kort exempel?

Exempel

string namn;
Console.Write("Skriv in ditt namn ");
namn = Console.ReadLine();

(Här behöver jag en loop som gör att namnet skrivs ut 10 gånger.)

Console.WriteLine(namn);

Permalänk
Medlem

Om du inte vet hur du skall skriva en for loop så är det nog dags att ta fram kursboken :s

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk

Jo känns mest som en björntjänst att hjälpa. För om man vill lära sig programmera så måste man testa, testa och testa lite mer så man har full koll på vad som händer.

Permalänk
Medlem

Hade ju inte frågat om jag hade förstått det som stod i boken, snälla kan någon bara fylla i det som fattas?

Permalänk
Medlem
Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Ingen som bara kan briljera och skriva klart det jag har påbörjat?

string namn;
Console.Write("Skriv in ditt namn ");
namn = Console.ReadLine();

(Här behöver jag en loop som gör att namnet skrivs ut 10 gånger.)

Console.WriteLine(namn);

Jag vet hur det funkar med siffror men inte med text.

Permalänk
Medlem

Du klarade inte av att klicka på länken?
"
for (i = 0; i < 10; i++){
/* loop body */
}
"

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Jo men jag har svårt för att tyda sånt, tack så mycket.

string namn;
Console.Write("Skriv in ditt namn ");
namn = Console.ReadLine();
for (namn = 0; namn < 10; namn++)
{
Console.WriteLine(namn);
}

Detta funkar inte måste jag använda mig av int.Parse?

När jag använder mig av int.Parse så kompileras programmet men när jag skriver in "filatov" och trycker enter så slutar programmet att fungera, behöver hjälp här.

Permalänk
Medlem

......................................................................................................................................................................................................................

loopens body behöver inte ha något med loopens villkor att göra

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Har inte läst igenom allt och använder heller inte c# men jag kan lite python. Det är ganska lätt att läsa och principen är den samma för båda språken.

a = int(raw_input("Skriv nummer här: ") def omvandlare(): print "I denna funktion kan du bygga/skriva din beräkning" while a > 0: # Så länge a är större än 0, kör omvandlare. omvandlare() a = a -1 # Nu har den körts en gång och därför ska den bara köras a - 1 gånger till ;)

Visa signatur
Permalänk
Medlem
Skrivet av Filatov:

Jo men jag har svårt för att tyda sånt, tack så mycket.

string namn;
Console.Write("Skriv in ditt namn ");
namn = Console.ReadLine();
for (namn = 0; namn < 10; namn++)
{
Console.WriteLine(namn);
}

Detta funkar inte måste jag använda mig av int.Parse?

När jag använder mig av int.Parse så kompileras programmet men när jag skriver in "filatov" och trycker enter så slutar programmet att fungera, behöver hjälp här.

du loopar ju över fel variabel

testa
int varv;
for(varv= 0; varv< 10; varv++)

Permalänk
Medlem

det känns som att det är läge att förklara for-loopen.

for ( int i = 0; // sätter upp förutsättningarna för loopen. i < 10; // bestämmer villkoren för loopen. (eller "kör så länge det här är sant") i++ // bestämmer vad som händer efter varje genomförd loop. ) { // här står koden för det man vill skall upprepas. }

om vi går igenom detta steg för steg, så tror jag du förstår.
int i = 0. vi skapar en variabel med namn i och sätter dess värde till 0.
i < 10. 0 är mindre än 10, så vi skall köra loopen.
koden som skall upprepas körs här.
i++ är samma sak som att skriva i = i + 1, dvs i = 0 + 1 vilket leder till att i nu innehåller värdet 1 istället för 0.
nu kollar loopen om i < 10 igen och eftersom 1 är mindre än 10, så kör den loopen ännu en gång.
osv...

Visa signatur

as far as we can tell, the massacre went well...

Permalänk
Medlem
Skrivet av jovnas:

det känns som att det är läge att förklara for-loopen.

for ( int i = 0; // sätter upp förutsättningarna för loopen. i < 10; // bestämmer villkoren för loopen. (eller "kör så länge det här är sant") i++ // bestämmer vad som händer efter varje genomförd loop. ) { // här står koden för det man vill skall upprepas. }

om vi går igenom detta steg för steg, så tror jag du förstår.
int i = 0. vi skapar en variabel med namn i och sätter dess värde till 0.
i < 10. 0 är mindre än 10, så vi skall köra loopen.
koden som skall upprepas körs här.
i++ är samma sak som att skriva i = i + 1, dvs i = 0 + 1 vilket leder till att i nu innehåller värdet 1 istället för 0.
nu kollar loopen om i < 10 igen och eftersom 1 är mindre än 10, så kör den loopen ännu en gång.
osv...

TACK SOM F*N, sjukt bra berättat!!

Permalänk
Medlem

Behöver hjälp med ett nytt problem. Användaren ska skriva in den aktuella valutakursen och värdet får inte vara negativt. Är värdet negativt så ska man komma in i for-loopen som ber användaren att skriva in ett korrekt värde, när värdet är positivt ska användaren komma ur loopen. Mitt problem är att det högst blir 2 varv i loopen, alltså negativt tal, negativt tal, sedan avslutas loopen och programmet fortsätter. Jag antar att felet ligger i "i = i + 2", jag testade att skriva "i = i + 100" men det gör ingen skillnad. Det jag vill är alltså att loopen ska fortsätta tills värdet som matas in är poisitivt.

Tacksam för hjälp.

Console.Write("Skriv in aktuell valutakurs: ");
indata = Console.ReadLine();
valutakurs = double.Parse(indata);

for (double i = valutakurs; i < 0; i = i + 2)
{
Console.Write("Skriv in korrekt valutakurs: ");
indata = Console.ReadLine();
valutakurs = double.Parse(indata);
}

Permalänk
Skrivet av Filatov:

Behöver hjälp med ett nytt problem. Användaren ska skriva in den aktuella valutakursen och värdet får inte vara negativt. Är värdet negativt så ska man komma in i for-loopen som ber användaren att skriva in ett korrekt värde, när värdet är positivt ska användaren komma ur loopen. Mitt problem är att det högst blir 2 varv i loopen, alltså negativt tal, negativt tal, sedan avslutas loopen och programmet fortsätter. Jag antar att felet ligger i "i = i + 2", jag testade att skriva "i = i + 100" men det gör ingen skillnad. Det jag vill är alltså att loopen ska fortsätta tills värdet som matas in är poisitivt.

Tacksam för hjälp.

Console.Write("Skriv in aktuell valutakurs: ");
indata = Console.ReadLine();
valutakurs = double.Parse(indata);

for (double i = valutakurs; i < 0; i = i + 2)
{
Console.Write("Skriv in korrekt valutakurs: ");
indata = Console.ReadLine();
valutakurs = double.Parse(indata);
}

Är lite trött men funkar inte en simpel while-loop?:

while(valutalkurs<0) { Kod som skriver i termimalen, läser input och ändrar därefter variabeln valutakurs }

Visa signatur

i5 2500k@stock ** P67A-GD65 ** AMD 6950 ** 1TB F3 ** Lian-Li PC-FI8

Permalänk
Medlem
Skrivet av Filatov:

TACK SOM F*N, sjukt bra berättat!!

I längden förlora du mkt kunskap som kretsa kring allt dt hela. Om man förslår en länk titta på den, om du inte kan tyda vad som förklaras på den, så googla du upp dt du inte kan tyda, sen kom tillbaka å fråga om hjälp. På så sätt så lära dig du mer å förstår mer åxå om ditt problem samt allt annat som kretsa runt den.

Jag förslår att du läser på de mest viktigaste bygg stenarna om programmering: loop å villkor/statements
Förstår du dem så har du inget problem med att skriva ett program.

Visa signatur

Kan din dator göra det här?

Permalänk
Medlem
Skrivet av Filatov:

Behöver hjälp med ett nytt problem. Användaren ska skriva in den aktuella valutakursen och värdet får inte vara negativt. Är värdet negativt så ska man komma in i for-loopen som ber användaren att skriva in ett korrekt värde, när värdet är positivt ska användaren komma ur loopen. Mitt problem är att det högst blir 2 varv i loopen, alltså negativt tal, negativt tal, sedan avslutas loopen och programmet fortsätter. Jag antar att felet ligger i "i = i + 2", jag testade att skriva "i = i + 100" men det gör ingen skillnad. Det jag vill är alltså att loopen ska fortsätta tills värdet som matas in är poisitivt.

Tacksam för hjälp.

Console.Write("Skriv in aktuell valutakurs: ");
indata = Console.ReadLine();
valutakurs = double.Parse(indata);

for (double i = valutakurs; i < 0; i = i + 2)
{
Console.Write("Skriv in korrekt valutakurs: ");
indata = Console.ReadLine();
valutakurs = double.Parse(indata);
}

Dela upp problemet/programmet i delar som ska utföras.
Vad behöver du veta innan du går in loopen?
Vad gör du med information efter/före?
Vad händer sen när allt detta är utfört?? osv

Visa signatur

Kan din dator göra det här?

Permalänk
Medlem

Du förstår fortfarande inte hur en for-loop fungerar.
Att du saknar förmågan att inhämta och tolka information bådar heller inte gott..

@ Din senaste fråga, använd en while-loop istället.

Följande borde fungera om du måste använda en for-loop:

(double i = valutakurs; valutakurs < 0; i = valutakurs )

Permalänk
Medlem

om de är skoluppgift du håller på med (vilket jag tippar på hur ska du annars hitta på att fråga dessa saker, du kan ifs läsa en guide på nätet eller ur en bok men de förklarar saker först å i slutet så får du uppgifter att göra med de nya sakerna du nu lärt dig)
så ta å använd de skolan är till för, fråga läraren om hjälp, eller någon annan i din klass.
å vill du fixa de hemma så tar man upp boken (eller guide eller vad man nu hittar på nätet ) å läser läser läser.
hade problem själv när jag läste C++, många saker jag inte fattade i början, fan satt nog i 2 lektioner med samma uppgift xD (slutade med typ 100 rader kod för nått som jag skulle göra på typ 20 rader? aja fick till de, bara inte så man skulle göra xD)

Visa signatur

Maximus X Hero - 8700k @5.1GHz - H115i - 32GB LPX@3466MHz - MSI 980Ti Gaming - EVGA SuperNova 750 G2 - Asus vg248qe - FD R5

Permalänk
Medlem

Kanske skolkat från lite för många lektioner eller nåt?:o

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Jag lär mig bäst genom att se andra göra det, alla lär sig olika. Sedan så var det sista ingen skoluppgift.

Tack för hjälpen.

En till fråga....

Hur gör man för att ha flera vilkor i en if-sats?

Exempel: if (indata == "hej".........indata == "Hej")

Permalänk
Medlem

if( vilkor1 && vilkor2 ) //vilkor 1 och 2 är sanna if( vilkor1 || vilkor2 ) //vilkor1 eller vilkor 2 är sant