Permalänk

Fråga om variabler (C#)

Tja!
Skulle behöva hjälp med att programmera ett litet program i C#

Det är så att jag skulle vilja skriva in ett ord, ett flyttal och ett heltal och sen en så ska summan + ihop med ordet tex:

Skriv ett ord:
Hej

Skriv ett Flyttal:
3.14

Skriv ett Heltal:
10

Sen en knapp "Skriv ut"

Och då ska det stå ungefär:

"Du skrev: Hej och summan blir 13.14"

Behöver verkligen hjälp med denna då det är en viktig uppgift i programmering.
Tack på förhand!

Permalänk

Tänk på att om du ska slå ihop flera strängar är en StringBuilder mer effektiv då den inte omallokerar utrymme för varje sträng, utan tar höjd för det direkt. Du kan även använda string.Format, som under huven gör samma sak.

string.Format("Du skrev: {0} och summan blir {1}", textbox1.Text, Float1+Float2);

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk

Så man behöver egentligen inte mer kod än så?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KatalogeN
Så man behöver egentligen inte mer kod än så?

Jo men det är ju ingen avancerad uppgift så har du bara grundläggande kunskap så ska det gå snabbt.
Deklarera 3-4 etiketter, 3 textboxar och en knapp. Skapa dessa. Gör en eventhandler för knappen som först "Parse:ar" innehållet i de två textboxarna som innehåller tal, och sedan formaterar ett fint svar som du kan skriva ut i en etikett eller en textbox eller nåt.

Permalänk
Citat:

Ursprungligen inskrivet av KatalogeN
Så man behöver egentligen inte mer kod än så?

Den koden formaterar din input till en output, jag utgick ifrån att du kunde ta emot input annars får du nog ta och läsa lite mer. Kör du en consolapp eller windows forms-app?

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Citat:

Ursprungligen inskrivet av Antimon
Jo men det är ju ingen avancerad uppgift så har du bara grundläggande kunskap så ska det gå snabbt.
Deklarera 3-4 etiketter, 3 textboxar och en knapp. Skapa dessa. Gör en eventhandler för knappen som först "Parse:ar" innehållet i de två textboxarna som innehåller tal, och sedan formaterar ett fint svar som du kan skriva ut i en etikett eller en textbox eller nåt.

Jag är väldigt mycket nybörjare med C# så kan inte så många saker än, men jag lär mig!

Citat:

Ursprungligen inskrivet av KurreKula
Den koden formaterar din input till en output, jag utgick ifrån att du kunde ta emot input annars får du nog ta och läsa lite mer. Kör du en consolapp eller windows forms-app?

Jag kör i windows forms-app ;o Mjo. Jag försöker lära mig så mycket som möjligt men ingen vill visa mig hur man gör dom första koderna, du har inte någon bra sida man kan läsa om C#?

Permalänk

http://www.csharpskolan.se

Hört den rekommenderad men vet inte riktigt hur bra den är, aldrig ens vart inne på den. Du bör börja med att dra ut 3 st textboxar på din form och sätta labels ovanför dem. Döp dem till något bra och beskrivande. Dubbelklicka sen på din knapp så skapas automatiskt en click-eventhandler.
string msg = första textboxens värde;

float Float1 = Convert.ToFloat(första floatboxens värde); float Float2 = Convert.ToFloat(andra floatboxens värde); MessageBox.Show(string.Format("Du skrev: {0} och summan blir {1}", msg, Float1+Float2));

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk

Hmm, jag får en massa error's när jag använder den där.
Jag satt o nötte och fick fram

int tal = 0;
double tal2 = 0;
double tal3 = tal+tal2;

string rasta = "du har skrivit: " + textBox1.Text + " och summan är " + tal3;

textBox4.Text = rasta;

Men summan blir 0, vilket är förvirrande

Permalänk
Medlem

0 + 0 = 0

double tal1 = double.Parse(txtTal1.Text);
double tal2 = double.Parse(txtTal2.Text);
double totalt = tal1 + tal2;

Visa signatur

...

Permalänk

Det var ju bara exempelkod, hade inte kört den.

Fanns visst ingen convert.tofloat utan du behövde ändra till double.

Kan du ingen programmering över huvud taget? Hur ska du klara den här kursen om du inte klarar uppgiften ens om folk ger dig svaret? Förlåt att jag är lite brysk men jag får inte känslan av att du tänker själv.

Som sagt också så bör du inte INTE plussa ihop strängar utan bör använda dig av string.Format p.g.a. prestandaimplikationerna det innebär att plussa ihop strängar. Visst, spelar nog ingen roll i den här fasen men man ska lära sig rätt från början.

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KurreKula
Som sagt också så bör du inte INTE plussa ihop strängar utan bör använda dig av string.Format p.g.a. prestandaimplikationerna det innebär att plussa ihop strängar. Visst, spelar nog ingen roll i den här fasen men man ska lära sig rätt från början. [/B]

Mjae, String.Format använder man inte för prestandavinterna, det är ingen skillnad mot att plussa ihop strängar.

Är det prestanda man ska ha så är det en stringbuilder man ska använda.

Men så länge man inte loopar över en större datamängd så spelar det inte särskilt stor roll. Troligtvis långsammare att deklarera en StringBuilder för att bara använda den en gång.

Permalänk
Citat:

Ursprungligen inskrivet av rbu
Mjae, String.Format använder man inte för prestandavinterna, det är ingen skillnad mot att plussa ihop strängar.

Är det prestanda man ska ha så är det en stringbuilder man ska använda.

Men så länge man inte loopar över en större datamängd så spelar det inte särskilt stor roll. Troligtvis långsammare att deklarera en StringBuilder för att bara använda den en gång.

Vad har du för källa på det där egentligen? Du är nog den enda som jag har hört som har sagt det. Läste på om detta igår i en bok där de jämförde vilken kod som det blev i slutändan kompilerat till och string.Format använder i grund och botten en stringbuilder. Om du googlar lite kommer du komma fram till det också. Kolla t.ex. på denna länk:

http://stackoverflow.com/questions/282468/string-operation-op...

en bit ner står det:

Citat:

The way strings work in C# is that they are allocated as fixed-length, and cannot be changed. This means that any time you try to change the length of the string, an entire new string is created and the old string is copied in up to the proper length. This is obviously a slow process. When you use String.Format it internally uses a StringBuilder to create the string.

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KurreKula
Vad har du för källa på det där egentligen? Du är nog den enda som jag har hört som har sagt det. Läste på om detta igår i en bok där de jämförde vilken kod som det blev i slutändan kompilerat till och string.Format använder i grund och botten en stringbuilder. Om du googlar lite kommer du komma fram till det också. Kolla t.ex. på denna länk:

http://stackoverflow.com/questions/282468/string-operation-op...

en bit ner står det:

Om du läser länken ordentligt så kommer du komma fram till samma slutsats som mig.

"Also, on a related topic, I've heard it said that you should never use the + operator with strings, in favour of string.Format(), is this true?

No, like all absolute statements it's nonsense. However, it is true that using Format usually makes formatting code more readable and it's often slightly faster than concatenation – but speed isn't the deciding factor here.
"

Permalänk
Citat:

Ursprungligen inskrivet av rbu
Om du läser länken ordentligt så kommer du komma fram till samma slutsats som mig.

"Also, on a related topic, I've heard it said that you should never use the + operator with strings, in favour of string.Format(), is this true?

No, like all absolute statements it's nonsense. However, it is true that using Format usually makes formatting code more readable and it's often slightly faster than concatenation – but speed isn't the deciding factor here.
"

Dock så skrev du att det inte fanns prestandavinster gentemot att plussa ihop strängar vilket inte stämmer alls. Håller med om att det kanske inte är den beslutande faktorn här men texten blir mycket mer lättläst så jag ser ingen anledning till att inte string.format

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Re: Fråga om variabler (C#)

Citat:

Ursprungligen inskrivet av KatalogeN
Tja!
Skulle behöva hjälp med att programmera ett litet program i C#

Det är så att jag skulle vilja skriva in ett ord, ett flyttal och ett heltal och sen en så ska summan + ihop med ordet tex:

Skriv ett ord:
Hej

Skriv ett Flyttal:
3.14

Skriv ett Heltal:
10

Sen en knapp "Skriv ut"

Och då ska det stå ungefär:

"Du skrev: Hej och summan blir 13.14"

Behöver verkligen hjälp med denna då det är en viktig uppgift i programmering.
Tack på förhand!

Hej Victor!

Jättebra att du använder internet på ett produktivt sätt. Men det kanske inte är så lämpligt att använda det under ett prov, inte på detta viset iallafall.

Mvh
Mentor Bogg

Visa signatur

Kör väl en klassisk signatur:
9900K @ 5GHz/128GB 3200MHz DDR4/3x1TB NVME/6800XT på Aorus Z390 Elite
Samsung C34F791, Svive 34C801, Xiaomi 34", Logitech MX Master 3 + G512...
Behöver för jobb, ej gamer.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KurreKula
Dock så skrev du att det inte fanns prestandavinster gentemot att plussa ihop strängar vilket inte stämmer alls. Håller med om att det kanske inte är den beslutande faktorn här men texten blir mycket mer lättläst så jag ser ingen anledning till att inte string.format

Jag håller helt med om att man bör använda String.Format, men det är viktigt att förstå att det inte ersätter en StringBuilder då det är milsvid skillnad i prestanda mellan dem. (I rätt situation)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av bogg
Hej Victor!

Jättebra att du använder internet på ett produktivt sätt. Men det kanske inte är så lämpligt att använda det under ett prov, inte på detta viset iallafall.

Mvh
Mentor Bogg

Truly awesome

Permalänk
Citat:

Ursprungligen inskrivet av rbu
Jag håller helt med om att man bör använda String.Format, men det är viktigt att förstå att det inte ersätter en StringBuilder då det är milsvid skillnad i prestanda mellan dem. (I rätt situation)

Nä det håller jag helt med dig om. De har helt olika användningsområden och att en upprepad string.format kan ge prestandamissar håller jag med om. Men om du vet antalet strängar som ska ihop från början kommer string.format och stringbuilder göra samma kod i bakgrunden. Fast för att bygga upp en längre sträng utan att veta antalet från början eller att det är så stort antal att en string.format blir oläslig är stringbuilder mer passande.

Citat:

Ursprungligen inskrivet av bogg
Hej Victor!

Jättebra att du använder internet på ett produktivt sätt. Men det kanske inte är så lämpligt att använda det under ett prov, inte på detta viset iallafall.

Mvh
Mentor Bogg

Haha, sjukt bra

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk

Re: Re: Fråga om variabler (C#)

Citat:

Ursprungligen inskrivet av bogg
Hej Victor!

Jättebra att du använder internet på ett produktivt sätt. Men det kanske inte är så lämpligt att använda det under ett prov, inte på detta viset iallafall.

Mvh
Mentor Bogg

Haha

Visa signatur

Anything that can go wrong will go wrong.

Permalänk
Medlem

Så sjukt kul =D

Visa signatur

Dator:Bitfenix Outlaw||ASRock Z77 EXTREME4||Intel i5-3570K 3.4GHz||Corsair 8GB Dominator 1833Mhz+Corsair 4GB CL9 1333Mhz||Nvidia Geforce GTX 670 Gainward Phantom ||SSD: 60GB Intel 330 & Samsung 840 Basic 256gb||2.2 TB lagring||Corsair CX 500W V2 80+||
Utrustning:Qpad MK-80 ||Steelseries Sensei Pro||Astro A50||2x BenQ 2420t 120Hz

Permalänk
Medlem

Men iaf, är det inte smartare att spara heltalsvariabeln i en integer, ni flesta här kör den till flyttal, då om man pular in decimal tal på heltals raden så kommer programmet att räkna med flyttalet, inte heltal vilket bör avrundas/kapas.

Permalänk
Citat:

Ursprungligen inskrivet av Dalton Sleeper
Men iaf, är det inte smartare att spara heltalsvariabeln i en integer, ni flesta här kör den till flyttal, då om man pular in decimal tal på heltals raden så kommer programmet att räkna med flyttalet, inte heltal vilket bör avrundas/kapas.

Jo, sant... Missade att han skrev det. trodde han ville ha två flyttal

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av bogg
Hej Victor!

Jättebra att du använder internet på ett produktivt sätt. Men det kanske inte är så lämpligt att använda det under ett prov, inte på detta viset iallafall.

Mvh
Mentor Bogg

Haha, man ska inte fuska på prov!

Visa signatur

Tack till SAiKoU för avataren!
Stationär: i5-8400 | MSI Z370-A PRO | 24 GB DDR4 | 850EVO 500GB | Corsair VX450 | 1060 6GB Windforce