Premiär! Fyndchans i SweClockers Månadens Drop

Behöver hjälp med c# programmering, uppskattar alla hjälpmedel (Enkelt)

Permalänk
Avstängd

Behöver hjälp med c# programmering, uppskattar alla hjälpmedel (Enkelt)

Hej! Finns det någon som kan förklara dessa frågor för mig? Allt skrivs i ApplicationConsole och det är 4 frågor/uppgifter jag inte klarar av, har betat av allt jag kan men dessa förstår jag mig inte på.

Detta är uppgifterna https://imgur.com/a/8lRKw

Tack i förhand!

.
Permalänk
Medlem

1. switch case
2. switch case
3. jämförelseoperatorer
4. modulus

Detta är vad du bör kunna för att lösa dessa uppgifter.

Permalänk
Avstängd

@Zedong: Jag har försökt googla mig fram men inte fått svar på frågan, det beror säkert på att jag formulerar mina sökord dåligt så det är därför jag ber om hjälp här. Även om jag skulle studera dom punkterna du precis skrivit så kommer min hjärna bara fortsätta snurra. Ber om någon som kan hjälpa mig och förklara.

Permalänk
Permalänk
Medlem

Om du har noll koll på hur C# fungerar öht kanske det är intressant att kika in här för att se hur ett väldigt enkelt program fungerar: https://www.tutorialspoint.com/csharp/csharp_program_structur...

Visa signatur

:(){ :|:& };:

🏊🏻‍♂️   🚴🏻‍♂️   🏃🏻‍♂️   ☕

Permalänk
Medlem

Som @Zedong säger så får du nog allt visa att du har försökt lösa uppgifterna efter bästa förmåga först. Ingen är intresserad av att göra dina läxor åt dig. Du har fått verktygen, nu är det bara att använda dom för att lösa problemen.

Strukturera upp vad det är du behöver göra, bryt ner problemet i mindre delar och lös dessa enskilt.
Exempel på #1:
* Läs in användarens input
* Välj svar baserat på input
* Skriv ut svar

Visa signatur

AMD Ryzen 7 1700X 3.8 GHz 20MB | ASUS PRIME X370-PRO | MSI GeForce GTX 1080 Gaming X 8GB | G.Skill 16GB DDR4 3200 MHz CL14 Flare X | Corsair RM650x 650W

Permalänk
Avstängd

Okej förstår det! Tack!

Permalänk
Avstängd

Detta är en kod jag tidigare gjort, den kollar om två tal är lika, vilket variabel ska jag använda för att se vilket tal som är störst och om dom är lika? Behöver jag göra en if else och lägga till brackets? Hjälp

namespace Uppgift1
{
class Program
{
static void Main(string[] args)
{

double int1, int2;
Console.Write("Kollar vilket tal som är störst eller om talen är lika:\n");
Console.Write("\n\n");
Console.Write("Mata in tal 1: ");
int1 = Convert.ToDouble(Console.ReadLine());
Console.Write("Mata in tal 2: ");
int2 = Convert.ToDouble(Console.ReadLine());

if (int1 == int2)
Console.WriteLine("{0} och {1} är lika.\n", int1, int2);
else
Console.WriteLine("{0} är störst.\n", int1, int2);

Console.WriteLine("tryck på valfri knapp för att stänga programmet");
Console.ReadKey();

}
}
}

Permalänk
Medlem

@KronanW:
1. Använd [code]-taggar, så blir din kod läsligare.
2. Man kontrollerar "mindre än" och "större än" med < och >.
Ex:

2 < 5 == True

Visa signatur

:(){ :|:& };:

🏊🏻‍♂️   🚴🏻‍♂️   🏃🏻‍♂️   ☕

Permalänk
Avstängd

@KronanW:

Bästa sidan för att lära sig man behöver inte kunna Engelska.

https://www.dotnetperls.com/switch

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Avstängd

@GLaDER: Tack men nu visar int2; (error) Varför? vad ska jag ändra?

namespace Uppgift1
{
class Program
{
static void Main(string[] args)
{

double int1, int2;
Console.Write("Kollar vilket tal som är störst eller om talen är lika:\n");
Console.Write("\n\n");
Console.Write("Mata in tal 1: ");
int1 = Convert.ToDouble(Console.ReadLine());
Console.Write("Mata in tal 2: ");
int2 = Convert.ToDouble(Console.ReadLine());

if (int1 > int2)
Console.WriteLine("{0} är störst.\n", int1, int2);
else
Console.WriteLine("{1} är störst.\n", int1, int2);

else if (int1 == int2)
Console.WriteLine("{0} och {1} är lika \n", int1, int2);

Console.WriteLine("tryck på valfri knapp för att stänga programmet");
Console.ReadKey();

}
}
}

Permalänk
Avstängd

@KronanW: Löste det

Byte bara plats på

else och if else

namespace Uppgift1
{
class Program
{
static void Main(string[] args)
{

double int1, int2;
Console.Write("Kollar vilket tal som är störst eller om talen är lika:\n");
Console.Write("\n\n");
Console.Write("Mata in tal 1: ");
int1 = Convert.ToDouble(Console.ReadLine());
Console.Write("Mata in tal 2: ");
int2 = Convert.ToDouble(Console.ReadLine());

if (int1 > int2)
Console.WriteLine("{0} är störst.\n", int1, int2);

else if (int1 == int2)
Console.WriteLine("{0} och {1} är lika \n", int1, int2);
else
Console.WriteLine("{1} är störst.\n", int1, int2);

Console.WriteLine("tryck på valfri knapp för att stänga programmet");
Console.ReadKey();

}
}
}

Permalänk
Medlem

@KronanW: När jag pluggade så brukade lärarna förespråka att man försöker lösa problemen med hjälp av pseudo-kod, d.v.s. kod som bara beskriver programflödet och vad som händer utan att gå in i programmatiska detaljer. Många suckade och tänkte "varför ska jag skriva meta-kod när jag kan skriva riktig kod?". Det är nu när jag ser den här typen av trådar som jag inser vikten av att veta vad man vill/ska göra innan man börjar skriva koden.

Det är ungefär som att en snickare skulle börja snickra på ditt nya staket utan att först ha gjort några mätningar eller kollat hur långa bräder han behöver, utan han börjar bara sätta ner en påle i marken och tar det därifrån. Det tar inte så lång tid att få det snett, hamna utanför tomtgränsen och lite andra problem som skulle kunnat lösts genom att tänka till innan.

Så mitt råd till dig är att på ren och skär svenska försöka beskriva din problemlösning. Skriv ner den framför dig på ett sätt som är förståeligt för dig. Det är ingen annan som behöver läsa texten. När du känner att "det här känns som en bra lösning på uppgiften" öppnar du en ny fil och börjar skriva ett program som efterliknar din text.

Gör en testkörning av programmet. Fungerar det inte som förväntat? Kolla om ditt program faktiskt följer din egen beskrivning. Eller är det kanske rent av beskrivningen det är fel på? Korrigera i så fall den och därefter koden och testa igen.

Men om du vill nyttja kompetensen i den här tråden (och forumet) kan du för all del dela med dig av din beskrivande text, så kommer du säkert få feedback på din tolkning. Om du sedan även har problem med koden kan du säkert få hjälp med att reda ut varför din kod inte gör som din beskrivning. Folk drar sig generellt för att lösa andras läxor, men att hjälpa dig lösa din egen problembeskrivning garanterar jag att ingen har problem med.

Permalänk
Avstängd

@Sebbepojken: Tack så hemskt mycket ska verkligen ta till mig det!

Permalänk
Medlem

@KronanW: Du kan till och med gå så långt som att infoga din beskrivande text som kommentarer i koden. Sedan kan du bryta ut dina "rubriker" till egna metoder och anropa dem en efter en. Då kommer du till slut få ett program som du kan läsa ungefär lika enkelt som din ursprunliga text.

Som exempel har jag gjort det baklänges på din kod.

Här har jag bara numrerat och skrivit beskrivande kommentarer. Jag föreställer mig att texterna skulle kommit från ditt dokument istället.

namespace Uppgift1 { class Program { static void Main(string[] args) { double int1, int2; //1. Skriv ut instruktion till användaren Console.Write("Kollar vilket tal som är störst eller om talen är lika:\n"); Console.Write("\n\n"); //2. Läs indata från användaren Console.Write("Mata in tal 1: "); int1 = Convert.ToDouble(Console.ReadLine()); //3. Läs indata från användaren Console.Write("Mata in tal 2: "); int2 = Convert.ToDouble(Console.ReadLine()); //4a. Jämför de inmatade värdena och skriv ut resultatet if (int1 > int2) Console.WriteLine("{0} är störst.\n", int1, int2); //4b. Jämför de inmatade värdena och skriv ut resultatet else if (int1 == int2) Console.WriteLine("{0} och {1} är lika \n", int1, int2); //4c. Jämför de inmatade värdena och skriv ut resultatet else Console.WriteLine("{1} är störst.\n", int1, int2); //5. Läs indata från användaren Console.WriteLine("tryck på valfri knapp för att stänga programmet"); Console.ReadKey(); } } }

Här har jag brutit ut "rubrikerna" till egna metoder och anropar dem från ett och samma ställe. De tidigare kommentarerna har jag flyttat med, bara för att visa var koden har landat. Jag har inte ändrat på någonting öht, utan bara flyttat saker. Se om du tycker att din main-metod blev mer lättläst än tidigare.

class Program { static void Main(string[] args) { double int1, int2; DisplayInstructions(); Console.Write("Mata in tal 1: "); int1 = GetUserInput(); Console.Write("Mata in tal 2: "); int2 = GetUserInput(); CompareInputAndDisplayResult(int1, int2); ExitProgram(); } //1. Skriv ut instruktion till användaren private static void DisplayInstructions() { Console.Write("Kollar vilket tal som är störst eller om talen är lika:\n"); Console.Write("\n\n"); } //2. Läs indata från användaren //3. Läs indata från användaren private static double GetUserInput() { return Convert.ToDouble(Console.ReadLine()); } private static void CompareInputAndDisplayResult(double int1, double int2) { //4a. Jämför de inmatade värdena och skriv ut resultatet if (int1 > int2) Console.WriteLine("{0} är störst.\n", int1, int2); //4b. Jämför de inmatade värdena och skriv ut resultatet else if (int1 == int2) Console.WriteLine("{0} och {1} är lika \n", int1, int2); //4c. Jämför de inmatade värdena och skriv ut resultatet else Console.WriteLine("{1} är störst.\n", int1, int2); } //5. Avsluta programmet private static void ExitProgram() { Console.WriteLine("tryck på valfri knapp för att stänga programmet"); Console.ReadKey(); } }

Koden gör exakt samma sak som tidigare, jag har bara försökt göra den mer lättläst. För att ha någon riktlinje nästa gång kan du tänka så här: ha som mål att din beskrivande text (som du skriver i ett vanligt dokument) ska läsas ungefär likadant som metodanropen gör i den slutliga koden. Då behöver du egentligen inte ha några kommentarer, för metoderna är så tydligt namngivna att de berättar själva vad de gör, och då blir koden nästan lika lättläst som din ursprungliga text

Det kan framstå som löjligt och onödigt krångligt. Men jag lovar dig, när din kod är så enkel som det bara går kommer du märka att du har full förståelse för vad du gör och då är det ju faktiskt enklare att åtgärda felen!

Permalänk
Avstängd

@Sebbepojken: Tack, det ser betydligt mycket bättre än min egna kod och tack så mycket för responsen, bara en fråga,

På den andra uppgiften så ska jag ju dela ett tal med 7 och se om det går att dela med 7, går det så ska den skriva ut svaret men om det inte går så ska den skriva ut resten

Jag tittade vad variabeln hette och den heter % som betyder rest

Hur ska jag skriva koden? Jag tänkte ( int1 / 7 = %); men detta funkar ju självklart inte

Int1 = talet vi skriver in
/ = Delat med
% = rest

Vad är det jag gör fel?

Permalänk
Medlem
Skrivet av KronanW:

@Sebbepojken: Tack, det ser betydligt mycket bättre än min egna kod och tack så mycket för responsen, bara en fråga,

På den andra uppgiften så ska jag ju dela ett tal med 7 och se om det går att dela med 7, går det så ska den skriva ut svaret men om det inte går så ska den skriva ut resten

Jag tittade vad variabeln hette och den heter % som betyder rest

Hur ska jag skriva koden? Jag tänkte ( int1 / 7 = %); men detta funkar ju självklart inte

Int1 = talet vi skriver in
/ = Delat med
% = rest

Vad är det jag gör fel?

Om det är skoluppgifter så har du garanterat något material du ska läsa genom. Där finns säkert beskrivet hur du använder koden.
Du kommer inte lära dig att programmera ifall andra ska skriva koden åt dig. Finns inga bra genvägar om du vill blir bra på det. Skillnad ifall du bara vill bli godkänd på kursen.

Dividera

Modulo

Permalänk
Avstängd

@Pake: Jag har ju inte bett något skriva koden åt mig? Jag ber bara om svar på enkla frågor eftersom google har inte kommit till nytta då mina sökord förmodligen är skit. Vet inte hur jag ska formulera meningarna med alla olika nyckeltal... Läraren har dessutom givit väldigt oklar information kring uppgiften.

Permalänk
Medlem

@KronanW: Som sagt borde det finns någon kurslitteratur som tar upp alla aritmetiska operatorer Om inte, så fick du två länkar som innehåller den informationen och det borde räcka för att komma vidare!

Permalänk
Medlem

Ändra inte titel eller test med endast LÖST, gör det bra mycket svårare för folk att se vad som är löst om de har liknande problem

Visa signatur

GPU: RTX 2080TI CPU: Ryzen 9 3900X. PSU: Corsair 1000W. RAM: 32GB (16x2).

Permalänk
Hedersmedlem

*Trådstart återställd och låst*

Att redigera bort trådstarten är respektlöst mot övriga tråddeltagarna och gör att andra inte kan dra nytta av tråden i framtiden.

Visa signatur

Danskjävel så krattar som en skrivare...