Inlägg

Inlägg som kruille har skrivit i forumet
Av kruille
Skrivet av MickeBoy:

Förklara gärna din kommentar i början på koden, alltså vad innebär minuspassagerare?

Tanken är väl att programmet ska motsvara det verkliga livet och räkna passagerare på ett tåg. Hur uppstår situationen när du har negativt antal passagerare på ett tåg?

Enligt denna som vi ska testa programmet emot så accepteras negativa summor av passagerare enligt ex. 2.
Jag hade velat bryta direkt efter den inmatningen och skrivit omöjligt.

Men iom att detta är programmering 1, som är en intro kurs, så tror jag att jag försöker lite för mycket.
Man ska nog bara kunna visa att man förstår det hela med loopar och if samt räkna ut antal passagerare.

Av kruille
Skrivet av Claddcake:

Tack för eran input!
Jag har också valt att ta bort komplicerad uträkning som uppgiften egentligen inte kräver. Det var helt enkelt över min kunskapsnivå just nu.

Här är koden som jag har nu:

using System; class Program { static void Main(string[] args) { Console.WriteLine("Tåget"); Console.Write("Ange tågets kapacitet: "); int capacity = GetValidInput(0, 40); //För att validera att inmatning är mellan 0 och 40 Console.Write("Ange antal stationer: "); int numStations = GetValidInput(0, 10); //För att validera att inmatning är mellan 0 och 10 int passengersOnBoard = 0; // Tåget startar med 0 passagerare for (int i = 0; i < numStations; i++) //stationsloop startas och ökar med 1 { Console.WriteLine($"\nStation {i + 1}"); Console.Write("Antal passagerare som lämnar tåget: "); int leaving = GetValidInput(0, 40); Console.Write("Antal passagerare som kommer in i tåget: "); int boarding = GetValidInput(0, 40); Console.Write("Antal passagerare som stannar kvar på stationen: "); int remaining = GetValidInput(0, 40); passengersOnBoard -= leaving; // Passagerare som kliver av passengersOnBoard += boarding; // Passagerare som kliver på if (passengersOnBoard > capacity) { Console.WriteLine("omöjligt"); return; } if (i == numStations - 1 && remaining > 0) { Console.WriteLine("omöjligt"); return; } if (passengersOnBoard == 0 && leaving == 0) { Console.WriteLine("omöjligt"); return; } } if (passengersOnBoard == 0) // kontroll för om tåget är tomt vid slutstation { Console.WriteLine("möjligt"); } else { Console.WriteLine("omöjligt"); } } static int GetValidInput(int min, int max) //Validerar att användaren matar in tal mellan 0-40 { int input; if (int.TryParse(Console.ReadLine(), out input)) { if (input >= min && input <= max) { return input; } else { Console.WriteLine($"Fel inmatning, ange ett tal mellan {min} och {max}."); return GetValidInput(min, max); // Skriver ut felmeddelande inte värde accepteras } } else { Console.WriteLine("Fel inmatning, ange ett heltal."); return GetValidInput(min, max); // Skriver ut felmeddelande inte värde accepteras } } }

Här kommer min.
Rätt så (Väldigt) lik din med valideringen av värden. Men på hur många sätt kan man skriva det?
Kul att se att man har unika namn på variablarna hehe.
Har nog överarbetat denna uppgiften så man får hoppas på ett bra betyg.
Ska man bara skriva pseudokoden ikväll med innan man lämnar in.

/* Finns ett stort fel med detta programmet. Eftersom man måste kunna räkna med minuspassagerare redan på första stationen vilket borde vara omöjligt så blir utfallet möjligt om 1 kliver av och en kliver på på station 1 och ingen kliver av, på, eller stannar på station 2 */ static void Main(string[] args) { Train train1 = new Train(); //Skapa ett nytt tåg. const int maxInput = 40; //FAST Max värde vad man får mata in. Egentligen ska den vara =Train1.maxCapacity så man inte överstiger antal platser. Går att ändra efter behov const int minInput = 0; //FAST Min värde vad man får mata in //Inmatning och kontroll av inmatning. endast heltal samt inom angivna värden Console.Write($"Vad är max antal passagerare idag? Välj mellan {Train.minCapacity}-{Train.maxCapacity}: "); train1.capacity = IsValid(Train.minCapacity, Train.maxCapacity); //Kallar funktionen IsValid för att kontrollera att inmatningar är korrekta. Lägger in min och max i funktionen Console.Write($"Hur många stationer ska vi färdas idag? Välj mellan {Train.minStations}-{Train.maxStations}: "); train1.stations = IsValid(Train.minStations, Train.maxStations); train1.capacityLeft = train1.capacity;// Sätter platser kvar till max. Räknas uppåt eller neråt beroende på om man går på eller av. train1.stationsLeft = train1.stations - 1; // Så att sista stationen visar 0 stationer kvar for (int i = 1; i <= train1.stations; i++) // Loopa tills antal stationer är uppnått { //Rensar konsolen och skriver ut info om tåget. Console.Clear(); Console.WriteLine($"Stationer kvar {train1.stationsLeft--}"); Console.WriteLine($"Platser kvar: {train1.capacityLeft}"); Console.WriteLine($"Passagerare på tåget: {train1.boarded}"); Console.WriteLine($"Stannade kvar på förra stationen: {train1.denied}"); Console.WriteLine($"\nVälkommen till station {i}"); Console.Write("Hur många passagerare vill stiga AV?: "); train1.leaving = IsValid(minInput, maxInput); //Kallar funktionen IsValid för att kontrollera att inmatningar är korrekta. Lägger in min och max i funktionen Console.Write("Hur många passagerare vill stiga PÅ?: "); train1.boarding = IsValid(minInput, maxInput); //Kallar funktionen IsValid för att kontrollera att inmatningar är korrekta. Lägger in min och max i funktionen Console.Write("Hur många passagerare STANNAR KVAR på perrongen?: "); train1.denied = IsValid(minInput, maxInput); //Kallar funktionen IsValid för att kontrollera att inmatningar är korrekta. Lägger in min och max i funktionen train1.boarded += train1.boarding - train1.leaving; // Hur många passagerare som är på tåget train1.capacityLeft += train1.leaving - train1.boarding; // Hur många platser det finns kvar på tåget } // Kontrollerar så att alla variabler är 0 if (train1.boarded == 0 && train1.denied == 0 && train1.boarding == 0) { // Om alla = 0 Console.Clear(); Console.Write("Möjligt"); } else // Om någon inte är = 0 { Console.Clear(); Console.Write("Omöjligt"); } Console.ReadLine(); Console.WriteLine("Summering:"); Console.WriteLine($"Platser kvar: {train1.capacityLeft}"); //Skriver ut antal platser kvar Console.WriteLine($"Passagerare på tåget: {train1.boarded}"); //Skriver ut antal på tåget Console.WriteLine($"Stannade kvar på förra stationen: {train1.denied}");//Skriver ut hur många som stannade på sista stationen Console.ReadLine(); } public class Train { public int capacity; // Platser på tåget matas in av användare public int capacityLeft; // Platser kvar på tåget public int stations; // Antal stationer matas in av användare public int stationsLeft; // Antal stationer kvar public int boarding; // Antal som går på tåget matas in av användare public int boarded; // Antal som är på tåget public int leaving; // Antal som går av tåget matas in av användare public int denied; // Antal som inte får gå på tåget matas in av användare public const int maxCapacity = 40; // Ändras om man behöver mer eller mindre platser public const int minCapacity = 1; // Ändras om man behöver mer platser public const int maxStations = 10; // Ändras om man vill åka längre eller kortare sträckor public const int minStations = 2; // Ändras om man behöver åka ett annat min antal stationer } //Funktion Isvalid kontrollerar så att inmatning är ett heltal mellan angivna intervaller. //int min och int max får sina värden från inmatningarna i programmet. ex. train1.maxCapacity = 40 static int IsValid(int min, int max) { int input; if (int.TryParse(Console.ReadLine(), out input)) { if (input >= min && input <= max) { return input; } else { Console.Write($"Vänligen skriv in ett tal mellan {min} och {max}: "); return IsValid(min, max); // Skriver ut om man matar in fel heltal inom angivna intervaller } } else { Console.Write("Fel inmatning, ange ett heltal: "); return IsValid(min, max); // Skriver ut felaktig inmatning av heltal, om man ex matat in bokstäver eller decimaltal } } } }

Av kruille

Snyggt. Väldigt lik min lösning. Kan posta den sen när jag kommer hem.
Tänkt på att min kapacitet på tåget ska vara 1.
Och min stationer ska vara 2.

Av kruille
Skrivet av Claddcake:

Hej,

Jag har precis börjat läsa samma kurs och har samma uppgift att lösa, jag tänkte att jag kapar tråden eftersom det redan finns en del info som kanske kan hjälpa någon annan i framtiden. Uppgiften ska lämnas in nu på fredag, måttligt stressad.

Jag upplever att hela uppgiften är jätteluddig och jag har valt att tolka uppgiften på följande sätt.
Användare anger tågets kapacitet och antal stationer.
Tåget åker till station 1 där ingen kan kliva av, då vill jag att programmet skall skriv ut det så länge tåget faktiskt är tomt.

Det som händer är att tåget aldrig får några passagerare då det åker vidare till nästa station innan användaren kan mata in hur många som vill kliva på. Jag tänker att man kan med hjälp av inmatningarna även räkna ut hur många som inte får plats och måste vänta på perrongen.

using System; class Program { static void Main(string[] args) { bool validInput = false; while (!validInput) { Console.WriteLine("Tåget"); Console.Write("Ange tågets kapacitet: "); int capacity; bool validCapacity = int.TryParse(Console.ReadLine(), out capacity); Console.Write("Ange antal stationer: "); int numStations; bool validNumStations = int.TryParse(Console.ReadLine(), out numStations); Console.WriteLine(" "); if (validCapacity && validNumStations && capacity >= 1 && capacity <= 40 && numStations >= 1 && numStations <= 10) { validInput = true; // Alla inmatningar är giltiga, bryt loopen. } else { Console.WriteLine("Felaktig inmatning. Kapaciteten måste vara mellan 1-40 och antal stationer mellan 1-10. Försök igen."); } bool possible = true; // Ifall resan är möjlig int passengers = 0; // Antalet passagerare startas på 0 for (int i = 1; i <= numStations; i++) { Console.WriteLine($"Nu har tåget anlänt till station {i}"); Console.WriteLine("=================================="); Console.WriteLine(" "); if (passengers == 0) { Console.WriteLine("Ingen kan kliva av, tåget är tomt"); } else { Console.Write("Hur många vill stiga av tåget? "); int off = int.Parse(Console.ReadLine()); Console.Write("Hur många vill stiga på tåget? "); int on = int.Parse(Console.ReadLine()); passengers += on - off; // Uppdatera antalet passagerare int canEnter = capacity - passengers; int notOn = canEnter - on; Console.WriteLine(notOn + " stannar på perrongen"); } } } } }

Skrivet av perost:

Problemet är att om tåget är tomt så hoppar du över både att kolla hur många som vill stiga av och stiga på, men hur många som vill stiga på påverkas ju inte av hur många passagerare som redan är på tåget. Så koden för att läsa in hur många som vill stiga på borde inte ligga inne i if-satsen.

Tänk på att man får räkna med negativa passagerare.
Annars kommer inte ex. 2, som de vill att man ska testa med, funka.
Sitter själv med samma uppgift och fick fel när jag matade in det exemplet.
Tog bort allt som har med kontroll av passagerare.
Det enda som gäller är om det är möjligt eller inte.

Jag kommer skicka in båda programmen med referens till exempel 2

Av kruille
Skrivet av MickeBoy:

När du räknar ut sedlar så skulle du kunna ha en lista med olika valörer

[1000, 500, 200, ...] o.s.v. och loopa över den listan. Då försvinner många rader.

Om du dessutom endera lägger till ett sätt att göra uppslag mellan siffra och textrepresentation eller helt enkelt genom att skriva 1000-lapp istället och samtidigt inser att datorn gör beräkningarna snabbt så kan du få in utskriften också direkt efteråt om värdet är större än noll. Då sparar du många flera rader.

Tack för värdefull input.
Listor fick vi inte använda oss av så har inte riktigt satt mig in dem än.
Men har förstått att de skulle gjort det hela mycket enklare.

Det sista med uppslag hänger jag inte riktigt med på. Men kommer googla mig fram till detta. Eller har du tips?
Även om uppgiften är inlämnad så kan man ju fortfarande förbättra och lära sig mer.
Var tvungen att lämna in idag då jag ej kommer ha tid imorgon.
Är även ungdomstränare i innebandy och medgrundare samt syrelsemedlem i ViskaforsBygdens Teknik-, Elektronik- och Spelförening
ViskaforsBygdens Teknik-, Elektronik- och Spelförening
och jobbar 100% så tiden är knapp

Detta var vad jag lämnade in idag. Vet ju med mig om att det är en del onödig kod
Men för att vara första programmet nånsin i C# så är jag nöjd.
Jag eftersträvar att återkomma till detta under utbildningen och skriva om det när jag lär mig nya saker och andra sätt att göra det på.
Det är väl så utvecklare gör

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace växelkassa4 { internal class Program { static void Main(string[] args) { //Välkomsthälsning Console.WriteLine("Välkommen till den bästa kassaapparaten i världen!\nDu kommer få skriva in varans/varornas totalpris och jag räknar ut växel samt valörer åt dig." + "\nTänk på att handla för minst 1 krona. Du kan testa med mindre och se om det funkar.\nVar vänlig och skriv bara in siffor. Gärna ören också om det behövs."); //Deklarerade variabler för att kunna kontrollera inmatning av tal, minsta köp samt att man betalat tillräckligt. double totalCost = 0; double totalPay = 0; bool isValid = true; bool isValid2 = true; bool isValid3 = true; //Vad varorna kostar samt en kontroll så att man bara skriver in siffror. Blir det fel så tar Catch över och man börjar om. do { Console.Write("\nVad kostar varorna du du lagt i din korg idag? "); string cost = Console.ReadLine(); Console.Write("Hur mycket vill du betala? Helst mer än vad de kostar. "); string pay = Console.ReadLine(); try { totalCost = Convert.ToDouble(cost); //Gör om string till double så man kan använda ören totalPay = Convert.ToDouble(pay); //Gör om string till double så man kan använda ören isValid = false; isValid2 = false; isValid3 = false; if (totalCost < 1) //Kontrollerar så man handlat för minst 1 kr annars kommer detta upp och man börjar om { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Du måste handla för minst 1 krona.\nVar vänlig försök igen.\n"); Console.ForegroundColor = ConsoleColor.White; isValid2 = true; } if (totalCost > totalPay) //Kontrollerar så man betala tillräckligt. Är totalCost mer än totalPay kommer detta upp och man börjar om { Console.ForegroundColor = ConsoleColor.Red; Console.Write("Du behöver tyvärr betala minst hela summan det kostar.\nVar vänlig försök igen.\n"); Console.ForegroundColor = ConsoleColor.White; isValid3 = true; } } catch //om konvertering till double ej går igenom på ena eller andra så kommer detta upp och man börjar om { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Tyvärr fungerar endast siffror i denna kassaapparaten.\nVar vänlig försök igen.\n"); Console.ForegroundColor = ConsoleColor.White; } } while (isValid || isValid2 || isValid3); // Räknar ut växeln. 2 variablar för att användas ned i avrundning samt modulus uträkningen double totChangeBack = totalPay-totalCost; double changeBackRound = totalPay - totalCost; //Avrundar total växel till 2 decimaler. totChangeBack=Math.Round(totChangeBack, 2); //Avrundar växel til närmaste hel eller halv. Hittat exemplet online Används i modulus uträkningen changeBackRound = Math.Round(changeBackRound * 2.0d) / 2.0d; //Skriver ut växel att få tillbaks Console.WriteLine("\nVäxel tillbaks \t\t" + totChangeBack + "kr."); //Räknar ut antal sedlar och mynt med hjälp av modulus. Då int automatiskt avrundas uppåt, ifall vår avrundning blev en halv, när man konverterar så använder jag (Math.Floor) för att alltid avrunda neråt till närmaste heltal. int thousand = Convert.ToInt32(Math.Floor(changeBackRound / 1000)); changeBackRound %= 1000; int fiveHundred = Convert.ToInt32(Math.Floor(changeBackRound / 500)); changeBackRound %= 500; int twoHundred = Convert.ToInt32(Math.Floor(changeBackRound / 200)); changeBackRound %= 200; int hundred = Convert.ToInt32(Math.Floor(changeBackRound / 100)); changeBackRound %= 100; int fifty = Convert.ToInt32(Math.Floor(changeBackRound / 50)); changeBackRound %= 50; int twenty = Convert.ToInt32(Math.Floor(changeBackRound / 20)); changeBackRound %= 20; int ten = Convert.ToInt32(Math.Floor(changeBackRound / 10)); changeBackRound %= 10; int five = Convert.ToInt32(Math.Floor(changeBackRound / 5)); changeBackRound %= 5; int one = Convert.ToInt32(Math.Floor(changeBackRound % 5)); //För att få ut decimalen och veta om man ska få tillbaks 50 öre eller ej double fiftyOre = totChangeBack % 1; //Mellanrad Console.WriteLine(); //Skriver ut antal av varje valör om valör > 0 if (thousand > 0) Console.WriteLine("Tusenlapp \t\t" + thousand + "st"); if (fiveHundred > 0) Console.WriteLine("Femhundralapp \t\t" + fiveHundred + "st"); if (twoHundred > 0) Console.WriteLine("Tvåhundralapp \t\t" + twoHundred + "st"); if (hundred > 0) Console.WriteLine("Hundralapp \t\t" + hundred + "st"); if (fifty > 0) Console.WriteLine("Femtiolapp \t\t" + fifty + "st"); if (twenty > 0) Console.WriteLine("Tjugolapp \t\t" + twenty + "st"); if (ten > 0) Console.WriteLine("Tiokrona \t\t" + ten + "st"); if (five > 0) Console.WriteLine("Femkrona \t\t" + five + "st"); if (one > 0) Console.WriteLine("Enkrona \t\t" + one + "st"); if (fiftyOre > 0.24 && fiftyOre < 0.75) Console.WriteLine("Femtiöring \t\t" + "1st"); Console.WriteLine("\nHoppas du är nöjd och Välkommen Åter!"); Console.ReadLine(); } } }

Av kruille
Skrivet av klockish:

ett tips är att fråga chatgpt sånt här

Det är fantastiskt att höra att du är intresserad av att lära dig systemutveckling efter en lång karriär inom byggbranschen! Att gå från bygg till kodning kan vara en stor förändring, men det är definitivt möjligt och kan vara väldigt givande.

När det gäller din kod finns det några saker att ta hänsyn till:

Kommentarer och läsbarhet: Bra jobbat med att kommentera din kod och göra den läsbar. Det är viktigt att andra och du själv kan förstå vad koden gör.

Felhantering: Du har gjort en del felhantering med att kontrollera inmatning av siffror, vilket är bra. Men du kan förbättra det genom att använda try-catch-block för att hantera specifika typer av fel.

Struktur: Din kod är ganska lång och upprepar sig vissa delar, vilket kan göra den svårare att underhålla och förstå. Att bryta ner den i mindre funktioner kan göra den mer läsbar och underhållbar.

Namngivning: Försök att använda mer beskrivande variabelnamn. Exempelvis totalCost och totalPay är bra namn, men inmatning kan vara mer beskrivande, som isValidInput eller liknande.

Kodupprepning: Du upprepar viss kod för att kontrollera inmatning av siffror. Detta kan abstraheras till en separat funktion för att göra koden mer DRY (Don't Repeat Yourself).

Avrundning: I din kod avrundar du växel till närmaste halvkrona, men du kanske vill överväga om det är mer lämpligt att avrunda till närmaste öre istället, eftersom svenska valörer oftast är i ören.

Här är ett förslag på hur du kan förbättra din kod:

Använd try-catch-block för felhantering.
Skapa funktioner för att hantera olika delar av koden, t.ex. en funktion för att kontrollera inmatning av siffror.
Använd mer beskrivande variabel- och funktionsnamn för att göra koden lättare att förstå.
Undvik upprepning av kod genom att abstrahera gemensam funktionalitet till funktioner.
Överväg att använda andra avrundningsmetoder beroende på dina behov.

Tack för ett väldigt bra svar.

Har gjort detta nu för att kontrollera inmatning. Har förkortat ner allt avsevärt.
kommer jobba vidare på denna under morgon dagen.

Avrundningen är bara för att läraren ville ha det avrundat till närmaste hel eller halv krona.
uträkningen på sedlar och mynt stämmer iaf i alla scenarion jag testat.

Och nu är man en bit på vägen med inmatningskontroll oxå.
Funktioner ska jag absolut kolla på, dock ej hunnit dit i boken än.
Roligare med trial and error än läsa, Men kommer komma dit under morgondagen hoppas jag.
Läser så mycket jag hinner på raster på jobbet.

double totalCost = 0; double totalPay = 0; bool isValid = true; do { Console.Write("Vad kostar varorna du handlat idag? "); string cost = Console.ReadLine(); Console.Write("Hur mycket har du betalat för dina varor? "); string pay = Console.ReadLine(); try { totalCost = Convert.ToDouble(cost); totalPay = Convert.ToDouble(pay); isValid = false; if (totalCost>totalPay) { Console.Write("Du behöver tyvärr betala minst hela summan det kostar.\nVar vänlig försök igen."); isValid = true; } } catch { Console.WriteLine("Tyvärr fungerar endast siffror i denna kassaapparaten.\nVar vänlig försök igen."); } } while (isValid); double changeBack=totalPay-totalCost; Console.WriteLine("Växel tillbaka " + changeBack + "kr");

Av kruille

oops

//Ser så man inte betalat för lite inmatning = false; while (totalCost > totalPay || !inmatning) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Du behöver tyvärr betala minst hela summan det kostar.\nVar vänlig försök igen."); Console.WriteLine("Hur mycket har du betalat?"); Console.ForegroundColor = ConsoleColor.White; inmatning = double.TryParse(Console.ReadLine(), out totalPay); }

Märkte direkt ett fel där man kunde få tilbaks mer än man betalat

Av kruille

Rookie på C# Programmering 1

Ja, vart ska man börja.
Fått för mig att äntligen börja plugga igen efter 30 år i byggbranschen.
Systemutvecklare låter skoj, eller?

Skruva isär och sätta ihop datorer och lösa div. mjukvarurelaterade problem funkar ju fint.
Hur svårt kan det vara att lära sig koda?

Antagligen väldigt mycket lättare om man hade en riktig lärare. Läsa programmering på distans var inte som man hade tänkt sig.

Sambon pluggade på högskolan och hade kurser online och inspelade lektioner.
Vad får man på komvux?
Köp 2 böcker och uppgifter att lösa.
Går igenom Microsoft learn kursen samtidigt, både på webben samt youtube. Det får väl vara min lektioner.

Har dock knåpat ihop min första uppgift.
Handlar ju om växelkassan som behandlats här tidigare.
Jag ville inte bara ha "mata in pris, betalning och här får du tillbaks."
Jag ville se så att allt matats korrekt. inga bokstäver så programmet krashar osv.

Extremt mycket onödig kod som jag ska försöka förkorta, men ville se vad ni andra tycker.
Jag vill väldigt gärna lära mig detta riktigt, och inte halvdant från början.
Läste precis om
try
catch
kanske man ska skriva om för detta?
Dock ska uppgiften in på fredag och jag har pseudokod kvar samt flödesschema att göra.

Var inte för snälla utan säg verkligen hur mycket fel jag gjort.

using System; using System.Collections.Generic; using System.Diagnostics.Eventing.Reader; using System.Linq; using System.Text; using System.Threading.Tasks; namespace växelkassa3 { internal class Program { static void Main(string[] args) { //variabler för att kontrollera så att inmatmingarna är korrekta. bool inmatning = false; double totalCost = 0; double totalPay = 0; //Välkomsthälsning Console.WriteLine("Välkommen till den bästa kassaapparaten i världen!\nDu kommer få skriva in varans/varornas totalpris och jag räknar ut växel samt valörer åt dig." + "\nTänk på att handla för minst 1 krona. Du kan testa med mindre och se om det funkar."); //Vad varorna kostar samt en kontroll så att man bara skriver in siffror do { Console.WriteLine("\nVad kostar varorna du handlat? "); inmatning = double.TryParse(Console.ReadLine(), out totalCost); if (!inmatning) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Tyvärr fungerar endast siffror i denna kassaapparaten.\nVar vänlig försök igen."); Console.ForegroundColor = ConsoleColor.White; } } while (!inmatning); //Ser så du handlar för minimibeloppet 1 krona inmatning = false; while (totalCost < 1) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Du måste tyvärr handla för minst 1 krona, annars går vi back."); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Vad kostar varorna du handlat?"); inmatning = double.TryParse(Console.ReadLine(), out totalCost); if (!inmatning) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Tyvärr fungerar endast siffror i denna kassaapparaten.\nVar vänlig försök igen."); Console.ForegroundColor = ConsoleColor.White; } } //Ser hur mycket du betalat samt sifferkontroll inmatning = false; while (!inmatning) { Console.WriteLine("\nHur mycket har du betalat för dina varor? "); inmatning = double.TryParse(Console.ReadLine(), out totalPay); if (!inmatning) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Tyvärr fungerar endast siffror i denna kassaapparaten.\nVar vänlig försök igen."); Console.ForegroundColor = ConsoleColor.White; } } //Ser så man inte betalat för lite inmatning = false; while (totalCost > totalPay && !inmatning) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Du behöver tyvärr betala minst hela summan det kostar.\nVar vänlig försök igen."); Console.WriteLine("Hur mycket har du betalat?"); Console.ForegroundColor = ConsoleColor.White; inmatning = double.TryParse(Console.ReadLine(), out totalPay); } // Räknar ut växeln. 2 variablar för att skriva ut både total samt avrundat till närmaste hel eller halv. double totChangeBack = totalPay - totalCost; double changeBack = totalPay - totalCost; //Avrundar växel til närmaste hel eller halv. Hittat exemplet online changeBack = Math.Round(changeBack * 2.0d) / 2.0d; //Skriver ut växel att få tillbaks Console.WriteLine("\nVäxel tillbaks \t\t" + totChangeBack +" kr.\nAvrundat \t\t" + changeBack + " kr."); //Räknar ut antal sedlar och mynt med hjälp av modulus. Då int automatiskt avrundas när man konverterar från en double så använder jag (Math.Floor) för att alltid avrunda neråt till närmaste heltal. int thousand = Convert.ToInt32(Math.Floor(changeBack / 1000)); changeBack %= 1000; int fiveHundred = Convert.ToInt32(Math.Floor(changeBack / 500)); changeBack %= 500; int twoHundred = Convert.ToInt32(Math.Floor(changeBack / 200)); changeBack %= 200; int hundred = Convert.ToInt32(Math.Floor(changeBack / 100)); changeBack %= 100; int fifty = Convert.ToInt32(Math.Floor(changeBack / 50)); changeBack %= 50; int twenty = Convert.ToInt32(Math.Floor(changeBack / 20)); changeBack %= 20; int ten = Convert.ToInt32(Math.Floor(changeBack / 10)); changeBack %= 10; int five = Convert.ToInt32(Math.Floor(changeBack / 5)); changeBack %= 5; int one = Convert.ToInt32(Math.Floor(changeBack % 5)); //För att få ut decimalen och veta om man ska få tillbaks 50 öre eller ej double fiftyOre = changeBack % 1; //Mellanrad Console.WriteLine(); if (thousand > 0) Console.WriteLine("Tusenlapp \t\t" + thousand + "st"); if (fiveHundred > 0) Console.WriteLine("Femhundralapp \t\t" + fiveHundred + "st"); if (twoHundred > 0) Console.WriteLine("Tvåhundralapp \t\t" + twoHundred + "st"); if (hundred > 0) Console.WriteLine("Hundralapp \t\t" + hundred + "st"); if (fifty > 0) Console.WriteLine("Femtiolapp \t\t" + fifty + "st"); if (twenty > 0) Console.WriteLine("Tjugolapp \t\t" + twenty + "st"); if (ten > 0) Console.WriteLine("Tiokrona \t\t" + ten + "st"); if (five > 0) Console.WriteLine("Femkrona \t\t" + five + "st"); if (one > 0) Console.WriteLine("Enkrona \t\t" + one + "st"); if (fiftyOre > 0.25 && fiftyOre < 0.75) Console.WriteLine("Femtiöring \t\t" + "1st"); Console.WriteLine("\nHoppas du är nöjd och Välkommen Åter!"); Console.ReadLine(); } } }

Av kruille
Nytt bud: 600 kr 600:- hämtar
Gå till annonsen för att lägga ett bud.
Av kruille
Skrivet av livetsgoda:

240 och 360 är inte lika breda som 280 så de kan monteras närmast glaset utan att röra moderkortet.

My bad. Givetvis är det så.
Stand corrected 🤩

Fick för mig att det var en 360 jag själv monterade för något år sen i en dator jag byggde, men det var en 280 såg jag nu när jag tittade på bilderna.

Av kruille
Skrivet av dator1234:

tack för input, ska be dem byta till nån av de två versionerna. var lite besviken att de rekommenderade ett AIO som inte passade, men alla kan ju göra fel. Det viktigaste är att de fixar det.

Spelar ingen roll tyvärr. Alla tre är 63mm tjocka.
Isf får du byta till smalare fläktar.
Det är moderkortet som tar i. Längden spelar ingen roll.
Och det räcker inte med den offset som man kan skjuta moderkortet heller, tyvärr.

Av kruille
Skrivet av dator1234:

Ingen av fan connectorsen är inkopplade, alla sladdar från fläktarna går in bakom moderkortet, ska se vart de tar vägen imorgon. Ja, jag ska kontakta dem. Det är ju just därför man köper färdigbyggd.

Sen en annan fråga, jag köpte en Arctic Liquid Freezer II 280 A-RGB, han på kundservice sa att den kunde/skulle sitta i toppen på chassit, men de har satt den bakom frontfläktarna. För det första lite onödigt att lägga pengar på rgb modellen, men är det bättre så att säga att sätta den där eller är det bara ett missförstånd mellan deras kundtjänst och de som byggde datorn.

En väldigt vanlig miss som många gör (även jag själv 😅)
Lian Li 216 tar bara 55mm total tjocklek i toppen på chassit.
Arcticts är 63mm med fläkt.
Detta borde iof säljaren på inet vetat om.
Fick lära mig detta den hårda vägen när jag lovade att sätta den i toppen när jag byggde åt en vän.

Av kruille

Har du kollat så dina partioner på hårddisken är gpt och inte mbr.
Hade själv det problemet när jag skulle uppdatera grabbens dator.

Av kruille
Nytt bud: 6 000 kr Plus frakt
Gå till annonsen för att lägga ett bud.
Av kruille
Nytt bud: 3 600 kr Kan hämta ikväll 😁
Gå till annonsen för att lägga ett bud.
Av kruille

Telia går just nu runt och knackar dörr med ett tidigt BF2021 erbjudande. Tecknade 500/500 för 299 i 12 månader.
Är väl vad de flesta brukar erbjuda på BF.

Av kruille
Skrivet av Soptunnebarn:

Ja det menar jag
Sen har vi inte köpt det till dator än för han ska få det till sin födelsedag som är snart så tänkte höra hur det var, då han undrade och jag inte har någon aning!

Så länge ni köper bedrock aka Windows 10 versionen, finns till de flesta konsoler och mobiler, så kan du logga in med samma konto. Dock bara spela på en åt gången 😁
Allt du köper på marketplace ”ingame” följer med ditt konto mellan de olika konsolerna/oC

Köper du Java versionen ifrån mojang så kan du bara spela med andra som har Java versionen. Och det blir då ett helt nytt konto.

Blev en dyrköpt historia med barnen innan man lärde sig 😅

Här kan du läsa mer
Minecraft wiki Bedrock edition

Av kruille

Frukost

Dagens frukost.
Kom och tänka på denna tråden och blev sugen på kaviar, ost och tomat 😁

https://i.imgur.com/kAWWAct.jpg

Av kruille
Skrivet av pacc:

Jag tycket inte att man alltid får en perfekt försegling på påsen,
oftast beror det på att någon köttsaft eller liknande sugs ut och lägger sig vid skarven
och jag tror nog att jag vill köra med någon slags marinad för det mesta så det lär få
bli att slabba med maskinen och göra dubbla förseglingar för det mesta.

Torskrygg blev i alla fall väldigt bra - men för att få en trestjärnig måltid krävs nog extra mycket arbete med sås och tillbehör. 47 grader känns också lite fesljummet när det serveras så tror man att sous-viden gör jobbet så blir det rätt tråkigt till slut.

För att undvika detta så vik ett par bitar hushållspapper så de blir ca 5cm och lika bred som påsen du använder. Lägg den några cm innanför där du förseglar så suger den åt sig den vätskan som drar sig utåt.
Funkar för det mesta, men ej mot alldeles för blöta marinader.

Av kruille

Har helt missat denna underbara tråd.
Kaviar plus ost är makalöst gott. Men med tunnskivade tomatskivor ovanpå osten och under kaviaren blir det ännu godare.
Umamin bara smäller till på tungan.