Inlägg

Inlägg som ZalamanderRelic har skrivit i forumet
Av ZalamanderRelic

@micke_mj: med säkerhet

static void Main(string[] args) { Random rand = new Random(); int randNumber = rand.Next(1, 21); while (true) { Console.WriteLine("Gissa talet mellan 1 och 20"); int userInput; if (!int.TryParse(Console.ReadLine(),out userInput)) { Console.WriteLine("Du måse skriva in siffror"); continue; } if(userInput < randNumber) { Console.WriteLine("Du gissade för lågt"); } else if(userInput > randNumber) { Console.WriteLine("Du gissade för högt"); } else if(userInput == randNumber) { Console.WriteLine("Du gissade rätt"); break; } } Console.ReadKey(); } } }

Av ZalamanderRelic

@micke_mj: så här gjorde jag. jag får gissa flera gånger. Har inte lagt in någon säkerhet på att användaren gissar på siffror men funkar

namespace GuessTheNumber { class Program { static void Main(string[] args) { Random rand = new Random(); int randNumber = rand.Next(1, 20); while (true) { Console.WriteLine("Gissa talet mellan 1 och 20"); int userInput = Convert.ToInt32(Console.ReadLine()); if(userInput < randNumber) { Console.WriteLine("Du gissade för lågt"); } else if(userInput > randNumber) { Console.WriteLine("Du gissade för högt"); } else if(userInput == randNumber) { Console.WriteLine("Du gissade rätt"); break; } } Console.ReadKey(); } } }

Av ZalamanderRelic
Skrivet av micke_mj:

Så här fick ja det till iaf

{ Random slumpat = new Random(); // skapar ett random objekt int speltal = slumpat.Next(1, 20); // Använder Next för att slumpa tal mellan 2 angivna tal bool spela = true; // Variabel för att fortsätta tills rätt siffra skrivits in while (spela) //Tog bort ! <-- { int tal; Console.WriteLine("\n\tGissa på ett tal mellan 1 och 20: "); bool ombokstav = Int32.TryParse(Console.ReadLine(), out tal);//Använder TryParse, om bokstav skrivs in tas det som en nolla if (tal < speltal) { if (ombokstav) { } else { Console.WriteLine("Du måste skriva ett tal"); } } { Console.WriteLine("\tDet inmatade talet " + tal + " är för litet, försök igen."); Console.ReadLine(); } if (tal > speltal) { Console.WriteLine("\tDet inmatade talet " + tal + " är för stort, försök igen.");// + <-- fattades Console.ReadLine(); } if (tal == speltal) // Ett = fattades { Console.WriteLine("\tGrattis, du gissade rätt!"); Console.ReadLine(); // La till ReadLine då programmet avslutades direkt spela = false; } } } // la till } <--

Du behöver inte skapa en variabel bool spela räcker med att skriva while(true) och sen använda break; när tal == speltal

Av ZalamanderRelic

@Roffe: nepp. inte direkt. var mest bara en fundering på om det fanns någon speciell anledning till att det var så men då är det inte det

Av ZalamanderRelic
Skrivet av Roffe:

Ärligt talat, jag reflekterade aldrig över det. Bara kopierade TS kod och klistrade in i Visual Studio. Det är ju rätt onödigt, ja...

En annan onödig grej är att skapa en variabel med " " det går men kanske inte är snyggt en class variabel som enbart innehåller space hm nja

Av ZalamanderRelic
Skrivet av Roffe:

@micke_mj: Jag tycker det där är ganska läsbart men en aning tillkrånglat. Vill du snygga till det lite så kan du göra så här:

static void Main () { Console.WriteLine ("Skriv ett decimaltal: "); string str = Console.ReadLine (); decimal decimaltal = Convert.ToDecimal (str); Console.WriteLine ("Decimaltalet" + " " + decimaltal + " " + "avrudans till heltalet" + " " + Math.Round (decimaltal)); Console.ReadKey (); }

Du behöver i detta fallet inte deklarera variabeln "decimaltal" i förväg utan kan göra det på samma rad som konverteringen sker.

Vill du korta ner ytterligare kan du strunta i att lägga inmatningen i en egen strängvariabel. Kan dock vara lite svårare att läsa för en nybörjare.

decimal decimaltal = Convert.ToDecimal (Console.ReadLine ());

Du kan även göra så här så slipper du att det kraschar om användaren skriver in ogiltiga tecken:

static void Main () { Console.WriteLine ("Skriv ett decimaltal: "); bool success = float.TryParse (Console.ReadLine (), out float decimaltal); if (success == true) Console.WriteLine ("Decimaltalet" + " " + decimaltal + " " + "avrudans till heltalet" + " " + Math.Round (decimaltal)); else Console.WriteLine ("Felaktig inmatning."); Console.ReadKey (); }

Hoppas det inte snurrar för mycket i skallen nu.

En fråga bara. Varför lägger ni in " " är det enbart för att det ska se enkelt ut eller finns det någon speciell anledning? jag brukar bara göra ett extra space framför " på meningen före eller efter. T ex "Decimaltalet " samt " avbrundas till heltalet "

Av ZalamanderRelic

@micke_mj: alla är vi nybörjare

Av ZalamanderRelic

@Patrik93: vad tänkte du få ut med for loopen? vad var din ide? bara så jag kan få ett hum hur du tänkt

Av ZalamanderRelic

@Roffe: ja absolut visst är det så

Av ZalamanderRelic

static void Main(string[] args) { int totalNumber = 0; int totalInput = 0; for(totalNumber = 0; totalInput < 3; totalInput++) { Console.WriteLine("Skriv in ett nummer"); int userInputNumber = int.Parse(Console.ReadLine()); totalNumber += userInputNumber; } Console.WriteLine("Summan blev " + totalNumber); Console.WriteLine("Medelvärdet blev " + totalNumber / totalInput); Console.ReadKey(); }

Detta är ett alternativt. ingen säkerhet direkt på att man skriver in rätt men funkar

Av ZalamanderRelic

Frågan är dessutom hur långt in i kursen är detta @micke_mj ?

Om detta är i början av programmering A så är det troligen bara do while , while och for som har gått igenom och inte try catch eller något sånt. Börja med det du kan finns det tid över kan du börja kika på om det går att säkra koden mot fel inmatning.

Skickades från m.sweclockers.com

Av ZalamanderRelic
Skrivet av Baxtex:

Fuck Java, C# <3

mm c# har mycket bra grejer när det ska implementeras med windows tycker jag iallafall nu när jag också håller på lär mig har kikat en del på c# men av någon anledning så flyter mina fingrar bättre på java

Av ZalamanderRelic
Skrivet av micke_mj:

static void Main(string[] args)
{
Console.WriteLine("Skriv ett heltal: ");
int num = int.Parse(Console.ReadLine());
int avg = 0;
int counter = 0;
while (num != 0)
{
avg += num;
counter++;
Console.WriteLine("Skriv ett till heltal: ");
num = int.Parse(Console.ReadLine());

}
Console.WriteLine("Summan av talen blir:", ? );
Console.WriteLine("Medelvärdet blir : {0}", avg/counter);
Console.ReadLine();
}

Jag skulle nog inte använda while utan kanske fundera på for loop

Jösses vad konstigt det kändes att skriva lite c# efter att ha plöjt java till förbannelse

Av ZalamanderRelic

Det du ska göra är att ta in 3st heltal eller egentligen oändligt många inmatningar när du skapar programmet så blir det:
inmatning + inmatning + inmatning +inmatning detta ska lagras i en variabel eller innehåll i variabel + inmatning

Samtidigt så måste du hålla koll på hur många inmatningar som gjorts vilket är då för varje inmatning så är det variabel + 1

För medelvärdet är det summan av inmatning / antalet inmatningar.

Av ZalamanderRelic

@tcntad: Jo visst är det så men avinstallera allt och sedan deaktivera tysta installationer det gör att du inte kommer få tillbaka dem iallafall

Av ZalamanderRelic
Skrivet av tcntad:

Inte blivit påtvingad Candy Crush eller annat skit som installerar sig vid varje större uppgradering? *spyr..*

Så går man in i regedit och deaktiverar doldainstallationer

Av ZalamanderRelic
Skrivet av Lfnodfs:

Tjaaa!
Hur dumt än det låter så har jag svårt att hitta en utbildning som är fokuserad på programmering. Tittade på Stockholms universitets program, data och systemvetenskap. De har inte mycket programmering alls endast två kurser på 3 år. Sen vet jag inte hur seriöst det är med nackademin och andra yh. Någon som har bättre koll och kan hjälpa mig? Tack på förhand!

Jag gick och gjorde intagningsprov och sånt på nackademin och det är riktigt många som söker till nackademin samt att yh har oftast koll på hur marknaden ser ut och vad företagen letar efter så att jag tror att yh nackademin t ex är att kolla på om man ska in fort i yrket

Av ZalamanderRelic
Skrivet av cheben:

Ubuntu har inga problem alls att leva bredvid Windows om du skulle känna att du behöver det ibland. Har kört dual-boot på min rigg i 2 år nu, och det går utmärkt. Lite jobbigt att uppdatera windows ibland bara, det startas ganska sällan. Se till att installera windows först bara, det har en tendens att installera över grub. Ubuntu lägger till sig snällt och låter dig välja vid uppstart

Jo fast tanken är att jag inte ska använda windows. Och ja det går att köra dual boot men funkar stabilare för mig att bara skifta hårddisk eftersom jag dessutom har 3st hårddiskar i raid för c: på windows. Dock har effekten just nu blivit att jag sitter mer med surface i soffan än sitter vid stationära datorn så den är mer av än på

Skickades från m.sweclockers.com

Av ZalamanderRelic

Har nu installerat ubuntu 16.04 på min speldator men på en egen hårddisk så jag kan byta tillbaka till windows om jag skulle sakna att spela spel(spelar inte så mycket egentligen längre och har ps4 så tveksamt) skulle det vara saker jag behöver windows till så har jag en surface också men ska försöka klara minst 1månad i ubuntu

Av ZalamanderRelic

Vad tycker ni om denna kod? den har iallafall inga buggar vad jag kan se men frågan är om det är någon del som kan förbättras? göras enklare?
Sen är frågan den om uträkningen stämmer med vad uppgiften stämmer. sen får jag iofs minus om jag skriver in lägre input än vad grundavdraget ligger på.

package a_och_b; import javax.swing.JOptionPane; public class A_Uppgift { static boolean running = true; static String inmatningFrånAnvändare; static int inkomst = 0; static double skattAttBeräkna; static final double STATLIG_INKOMSTSKATT = 0.20; static final double VÄRNSKATT = 0.05; static double skatt; static final int GRUNDAVDRAG = 13100; static public int flerBeräkningar; static boolean mataInFler = true; public static void inkomstSkatt(double skattAttBeräkna) { skatt = skattAttBeräkna - GRUNDAVDRAG; } public static void inkomstSkatt(double skattAttBeräkna, double STATLIG_INKOMSTSKATT) { skatt = (skattAttBeräkna - GRUNDAVDRAG) * STATLIG_INKOMSTSKATT; } public static void inkomstSkatt(double skattAttBeräkna, double STATLIG_INKOMSTSKATT, double VÄRNSKATT) { skatt = (skattAttBeräkna - GRUNDAVDRAG) * STATLIG_INKOMSTSKATT * VÄRNSKATT; } public static void start(){ while(mataInFler){ inmatningFrånAnvändare = JOptionPane.showInputDialog(null, "Årsinkomst"); while(running) { if(inmatningFrånAnvändare == null){ System.exit(0); } else if(inmatningFrånAnvändare.contains(" ") || !inmatningFrånAnvändare.matches("[0-9]+")) { JOptionPane.showMessageDialog(null, "Du skrev inte in siffror"); start(); } else if(inmatningFrånAnvändare != null && inmatningFrånAnvändare.length() > 0) { inkomst = Integer.parseInt(inmatningFrånAnvändare); if(inkomst < 430200) { inkomstSkatt(inkomst); break; } else if(inkomst >= 430200 && inkomst < 616100) { inkomstSkatt(inkomst, STATLIG_INKOMSTSKATT); break; } else { inkomstSkatt(inkomst, STATLIG_INKOMSTSKATT, VÄRNSKATT); break; } } } JOptionPane.showMessageDialog(null, "Din skatt är " + skatt); flerBeräkningar = JOptionPane.showConfirmDialog(null, "Vill du mata in fler årsinkomster?"," " , JOptionPane.YES_NO_OPTION); if(flerBeräkningar == JOptionPane.YES_OPTION) { mataInFler = true; } else if(flerBeräkningar == JOptionPane.CLOSED_OPTION || flerBeräkningar == JOptionPane.NO_OPTION) { break; } } } public static void main(String[]args) { start(); System.exit(0); } }