Inlägg

Inlägg som Uppgiven har skrivit i forumet
Av Uppgiven
Skrivet av SayZk:

Jag tycker det låter som en bra uppgift för enum. t.ex: enum Sodas { Tom, Cola, Fanta, Sprite};
Ovanstående enum skulle alltså likställa Tom med 0, Cola med 1, Fanta med 2 osv.
Sen kan du för att få priset loopa över arrayen och om det inte är en nolla på en position så adderar du 5 till totalpriset.

Och glöm för guds skull inte att en röd läskback har 37 kr pant i Sverige!

Oooh, tack för detta tips! Prövar!

Använder man mitt program slipper man panten serru

Skickades från m.sweclockers.com

Av Uppgiven
Skrivet av Makzter:

@Uppgiven: Din tankegång verkar ju vara på ganska god väg.

Som jag förstår det så är din meny ett "interface" till din läskback "array".
Uppgiften verkar vilja att du ska ge en användare ett interface att lätt hantera en array.

Exempelvis dina metoder (som för övrigt verkar helt vettiga) tolkar jag såhär:

ADD_SODA - Borde lägga till en läsk i en tom plats i backen. Den borde meddela om backen är full och det inte får plats fler läsk.
CALC_TOTAL - Går genom backen och beräknar den totala summan av läsken som finns där i. Returnerar summan.
PRINT_CRATE - Går genom backen och skriver ut hur många använda platser och hur många tomma platser det finns.
AMOUNT_BOTTLES - Ger dig det totala antalet läsk som just nu finns i backen.

Dessa metoder måste ju självklart deklareras och definieras om de inte redan finns.

Ett alternativ till att skapa en string-array är en array av bools. Eftersom du vet den fasta storleken på backen (24) så kan du ju skapa upp en array med 24 platser. Varje plats håller en bool som är TRUE ifall platsen är tagen eller FALSE ifall platsen är tom.
Eftersom alla läsk-typer verkar kosta lika mycket så behöver du inte mycket mer information från varje plats.

När du sen behöver kontrollera platserna i backen så kan du enkelt loopa genom backen och se om en plats är tagen eller tom.

Resten kanske du kan klura ut själv?

Riiiight! Yes! Exakt det du skrev är vad som ska finnas! Bra. Jag testar detta och kör en bool array. Skriker till om jag fastnar nånstans tack som fan!

Skickades från m.sweclockers.com

Av Uppgiven

Hjälp att tänka, C# arrays

Hej på er!

Sitter med en slutprojektuppgift och är mer förvirrad nu än när jag började med detta, tycker det är absurt och abstrakt just nu och jag kanske tänker för mycket.

Behöver hjälp att tänka - vill inte ha en kod men vill veta hur man ska fundera för att komma till en lösning. Uppgiften kort går ut på att jag ska skapa en array med 24 element (en läskback) . Elementen är olika läsk. Jag ska även skapa en meny (gjort) utifrån vilken användaren kan:

lägga till eller ta bort läsk
Kalkylera totalvärdet av läsken (5 kr per läsk) och skriva ut
Skriva ut innehållet i backen (skriva ut ÄVEN om det finns tomma "platser" - har kod för detta)
Avsluta programmet (nog fan det lättaste i uppdraget)

Koden för menyn är gjord.

Jag har ett kodskal och det jag ska klura ut själv är HUR programmet sen ska utföra ovanstående i menyn. Jag har att anropa nedan metoder:
ADD_SODA
CALC_TOTAL
PRINT_CRATE
AMOUNT_BOTTLES

Min fråga är: jag behöver ju skriva en kod som kommer utföras när jag anropar t.ex calc_total. Då måste ju programmet veta att t.ex calc_total = amount_bottles * 5

Eller? T.ex, måste jag deklarera de här olika anropen? Självklart måste jag väl det?

Läsken ska kosta 5 kr/st. Jag tänkte skapa en array som lagrar string. Då kan jag iaf få antalet string i array gånger 5 kr/läsk för att få totalsumman - är min tanke. Är jag ute och cyklar? Jag gör detta så basic det bara går.

Och för att print_crate OM min vektor är string så har jag hittat på nätet hur man skriver ut en stringvektors innehåll. Så jag kommer testa detta OM jag ens kan använda en stringvektor här.

BÖR jag skapa olika klasser och objekt för att få detta att funka bra ELLER kan jag låta bli?

Jag tänkte använda en enkel sökningsmetod och söka med hjälp av en for-loop. Tänker jag rätt väg här?

Mvh Uppgiven DELUX och i ständigt tillstånd av panik.

Av Uppgiven
Skrivet av Alling:

celsius < 73 && celsius > 77 är aldrig sant, men celsius < 73 || celsius > 77 är sant för vissa värden på celsius. Kanske kan det hjälpa dig. Jag hade för övrigt övervägt den mer visuellt symmetriska varianten celsius < 73 || 77 < celsius, som jag tycker är lättare att tolka.

Förvirringen kan för övrigt härstamma från en diskrepans mellan naturliga språk och formella språk. I de förstnämnda är vi vana vid att inte säga exakt det vi menar och förvänta oss att en korrekt tolkning ändå kan göras baserat på kontext, idiomatiska konventioner och andra faktorer. En formulering som "allt under 73 och allt över 77" är begriplig för en människa och kan vara frestande att översätta till x < 73 && x > 77. Egentligen är den dock ganska otydlig; du menar ju snarare "något under 73 eller något över 77".

Right, right, nu förstår jag, it makes sense, haha. Jag ska tänka såhär nästa gång! Nu fick en kompis hjälpa mig hands on så det blev istället ett break och en while (true), så det var mycket snyggare och enklare än det jag hade i huvudet här, haha.

Skickades från m.sweclockers.com

Av Uppgiven

@Snigeln Bert: Hahaha, såklart det inte kan - ser det nu. Försökte få till en loop som ska loopa så länge användare gissar på allt under 73 och allt över 77. allt mellan 73 och 77 är alltså OK, men har snurrat in mig själv så mycket nu att jag knappt vet vad jag själv heter.

Av Uppgiven

@pv2b: Ahh! Såklart. Flyttade ner do under :

int fahrenheit = int.Parse(Console.ReadLine()); int celsius = FahrToCels(fahrenheit);

Problemet är fortfarande att programmet bara kör en rad och sen stänger av. Jag gissar en gång och sen får jag "press any key to continue" varpå programmet stängs av. Kan det ha att göra med att jag använder int istället för double? Enligt uppgiften borde den bara kapa ett decimalvärde utan att försöka avrunda om det är int när den omvandlar och programmet SKA funka även med INT men värdena kan bli lite off. Kör jag en double måste jag konvertera med nåt som heter explicit konvertering and god knows I already have issues with converting så jag avstår helst.

Övervägde om Console.ReadLine(); var problemet någonstans. Men om så vore problemet hade den ju bara stängt ner efter ATT faktiskt ha kör min loop?

Av Uppgiven

Do while i C# bråkar med mig

Hej!

Är superdupernybörjare på programmering så be gentle...

Jag håller på med en kod där man användaren ska ange ett värde i Fahrenheit. Detta ska sen konverteras till Celsius. Användaren ska mata in värden fram till att den träffar följande:
75 grader = optimalt
73 grader är lägsta godtagbara temperatur
77 grader är högsta godtagbara temperatur.

Jag har skrivit nedan kod, men har försökt köra en do while på det. Första problemet var att VB sa ifrån vid while (celsius <73 && celsius >77) och föreslog att jag lägger: bool celsius uppe i public static int celsius { get; private set; }. Den ville sedan inte använda bool och jag gjorde bara om det till int.

Problemet är nu att allting verkar OK MEN när jag kör programmet och ska följa mina egna instruktioner (som användaren då får), så loopas inget utan programmet stängs av trots Console.ReadLine();

Alltså - jag har totalt hjärnsläpp. Känns som att jag har svaret på tungan men ser i kors just nu och lyckades inte läsa mellan (kod)raderna (haha...)

Kan ni finna ett eller fler fel här?

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AmerikaneniBastun { class Program { public static int celsius { get; private set; } public static int FahrToCels(int fahr) { int cel = (fahr - 32) * 5 / 9; return cel; } static void Main(string[] args) { Console.WriteLine("Välkommen till bastun! Skriv in Fahrenheit: "); do { int fahrenheit = int.Parse(Console.ReadLine()); int celsius = FahrToCels(fahrenheit); if (celsius < 73) { Console.WriteLine("Det är för kallt, du kommer inte gilla det! Skriv in ny temperatur. "); } else if (celsius > 77) { Console.WriteLine("Det är för varmt, oj oj oj... Skriv in ny temperatur. "); } else if (celsius == 75) { Console.WriteLine("Temperaturen är optimal för bastubadande! God bless America! "); } else { Console.WriteLine("Det går att basta! Enjoy!"); } } while (celsius < 73 && celsius > 77); Console.ReadLine(); } } }

Av Uppgiven

@Arccai:

Omg vad snyggt!

Av Uppgiven

@Leedow: Hahaha, jag lär bli Uppgiven när jag tar mig an inlämningsuppgift 2 wait and see!

Av Uppgiven

@improwise: I have succeeded! Tusen tack - detta var ju döenkelt!

Av Uppgiven

@pv2b: Aha! Tack som fan! Ska testa med detta - himla tur att man kan skriva här och få hjälp. Återkommer om jag totalmisslyckas

Av Uppgiven

@improwise: Jaaa, såklart! Läste det i boken nu också! Tack tack! Jag ska testa detta!

Av Uppgiven

C# - lite hjälp på traven...

Hej!

Jag har nyss börjat lära mig C# (igår för att vara exakt). Jag har en första inlämningsuppgift, som andra här har skrivit om, men de har alla varit så mycket mer kunniga än jag trots att de var nybörjare.

Jag behöver lite hjälp på traven - hur ska jag tänka?
Uppgiften går ut på att man ska fråga användaren efter namn och ålder och sedan ska programmet räkna ut hur långt det är kvar till pensionen genom att ha värdet 65 minus åldern användaren anger.

Jag har kommit så långt som nedan - men när jag sen ska koda fram 65 minus användarens ålder hen anger så vet jag inte hur jag ska få det som en string. Nån som bara kan slussa mig i rätt riktning?

static void Main(string[] args) { string firstName, lastName, age, fullName; Console.WriteLine("Vänligen ange förnamn."); firstName = Console.ReadLine(); Console.WriteLine("Vänligen ange efternamn"); lastName = Console.ReadLine(); Console.WriteLine("Hur gammal är du?"); age = Console.ReadLine(); fullName = String.Concat(firstName, " ", lastName); Console.WriteLine("Hej " + fullName + "." + "Du har antal år till pensionen.");

Ska jag nånstans skriva (och var i koden lägger jag detta i så fall):

int retirement = 65; int yearstoRetirement = retirement - age;

?

Sen vill jag ju såklart få yearstoRetirement att synas i den sista strängen som "Hej Anders Andersson. Du har x år kvar till pensionen." Där x då är yearstoRetirement på något sätt.

Lägger man då det som följande:

Console.WriteLine("Hej " + fullName + "." + "Du har " + yearstoRetirement + "år till pensionen.");

Tacksam för lite hjälp på traven, känner mig hopplös med detta titt som tätt.

EDIT: jag måste nog nånstans använda Convert.ToInt32 - men vet inte hur i detta fallet.