C# program, hjälp med uppgift om frekvensanalys

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

C# program, hjälp med uppgift om frekvensanalys

Hej! Jag går programmering och har fått massa uppgifter att klara. Jag har klarat alla uppgifter utom en, som jag nästan helt gett upp på. Att skriva här är mitt sista hopp att få någon som helst hjälp. Jag har fått uppgiften förklarad, men mitt problem är hur jag ska skriva en kod. Jag förstår allt när jag ser koden, inte bara genom vanliga förklaringar. Sedan ska detta redovisas, så jag ska inte skicka in koden någonstans, ska bara förklara den. Så om någon skulle vara jättejättegullig att skriva koden. Jag har försökt skriva flera gånger, men inget jag gör verkar fungera så har nästan gett upp.

Tacksam för svar :'(

Här är uppgiften:

Låt användaren mata in ett ​ valfritt antal​  heltal efter varandra. Talen ska ligga inom  intervallet 0 – 1000 och max 100 tal får matas in. Inmatningen avslutas genom att mata in  ett negativt tal.    Funktionen i programmet ska beräkna vilket av de inmatade heltalen som förekommer  flest gånger samt hur många gånger detta tal finns med i arrayen. Eftersom funktionen  ska berkäkna ​ två​  resultat så behöver variablerna där resultatet ska sparas skickas in som  pekare till funktionen.   

Den kluriga delen är att komma på hur man håller reda på hur många gånger alla möjliga  tal mellan 0 – 1000 förekommer.    

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Maj 2013

Är det inte emot Sweclockers regler att be folk göra skoluppgifter åt en?

Gaming :Define R5 | X370-PRO | Ryzen 1600X | MSI GTX 1080 | 16GB DDR4 | SSD: 960 EVO M.2 500GB & 850 PRO 500GB
Media: Node 304 | B350m | Ryzen 2200G | 16GB DDR4 | 24TB HDD | 850 PRO 500GB
Labb: HP Proliant 350ML G6 | 2st X5650 | 144GB DDR3 ECC | 1TB SSD

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Nov 2002

Använd length när du vill se hur många poster som finns i din array - på så sätt vet du hur många olika tal användaren har skrivit in.

Main Rig Dell XPS 9570 - 8750H i7 6 Core - 12 Threads @ 4.1ghz - 32GB DDR4 - Nvidia 1050Ti 4GB - 4K Screen
Dev Rig: Xeon E3-1225 v5 - 64GB DDR3 - Quadro K620
Server: Delided 4670k @ 4.6ghz - 16GB Corsair Vengence @ 1600mhz - GTX 970 @ 1552mhz / 8012mhz - H80i
Laptop: Dell Studio 1555 - Kingston HyperX 3k 120Gb
MediaPlayer: Raspberry PI 2 - OCMC

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003
Skrivet av opa12345:

Hej! Jag går programmering och har fått massa uppgifter att klara. Jag har klarat alla uppgifter utom en, som jag nästan helt gett upp på. Att skriva här är mitt sista hopp att få någon som helst hjälp. Jag har fått uppgiften förklarad, men mitt problem är hur jag ska skriva en kod. Jag förstår allt när jag ser koden, inte bara genom vanliga förklaringar. Sedan ska detta redovisas, så jag ska inte skicka in koden någonstans, ska bara förklara den. Så om någon skulle vara jättejättegullig att skriva koden. Jag har försökt skriva flera gånger, men inget jag gör verkar fungera så har nästan gett upp.

Tacksam för svar :'(

Här är uppgiften:

Låt användaren mata in ett ​ valfritt antal​  heltal efter varandra. Talen ska ligga inom  intervallet 0 – 1000 och max 100 tal får matas in. Inmatningen avslutas genom att mata in  ett negativt tal.    Funktionen i programmet ska beräkna vilket av de inmatade heltalen som förekommer  flest gånger samt hur många gånger detta tal finns med i arrayen. Eftersom funktionen  ska berkäkna ​ två​  resultat så behöver variablerna där resultatet ska sparas skickas in som  pekare till funktionen.   

Den kluriga delen är att komma på hur man håller reda på hur många gånger alla möjliga  tal mellan 0 – 1000 förekommer.    

Kanske kommer någon att posta svaret åt dig men risken är nog snarare att både fråga och svar tas bort av moderator och att tråden stängs av. Du kommer tyvärr inte lära dig så mycket av att förklara befintlig kod. Jag rekommenderar att du tar tag i uppgiften.

Det var en ganska luddigt skriven specifikation av uppgiften måste jag säga.

Posta din kod som du har just nu så kan vi säkert hjälpa dig att fylla på med funktionalitet.

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

@opa12345: Vad är det du fastnar på och vad har du försökt hittills? Hur skulle algoritmen se ut om du försökte uttrycka den på vanlig svenska och förklara för en annan människa? Går det att beskriva vilka steg som måste tas för att lösa uppgiften då, eller är problemet att "översätta" till C#? Är problemet det förstnämnda så kan det hjälpa att först försöka skriva lösningen med pseudokod.

Skrivet av Ohdear:

Är det inte emot Sweclockers regler att be folk göra skoluppgifter åt en?

Det är inget problem att be om vägledning eller hjälpa till att förklara så att någon annan lär sig, men man bör ju varken be om färdiga lösningar eller svara med sådana eftersom att frågeställaren då knappast förstått problematiken på rätt sätt, och det är inget som hjälper i längden. Däremot finns det en regel om att påpeka regelbrott...

Abstractions all the way down.

Trädvy Permalänk
Medlem
Plats
Bålsta
Registrerad
Nov 2010

Som @Leedow nämner. Posta din kod så kan vi hjälpas åt att pusha dig i rätt riktning.
Jag skulle kunna göra uppgiften åt dig - men du kommer inte lära dig något och du kommer förmodligen inte förstå min lösning.

Du ska alltså läsa input (Console.ReadLine()) ifrån användaren och spara i en lista i en for-loop. Om värdet som matas in är negativt så hoppar du ur loopen (m.h.a. break;) (som max kan gå till 99)

Hämta ut den int som förekommer flest gånger i din array. Skriv till STDOUT (Console.WriteLine(...))
Hämta antalet förekomster av den här int:en och skriv till STDOUT.

~. Citera så jag hittar tillbaka .~

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

Jaha okej, visste inte att man ej fick be om svar på skoluppgifter. men då postar jag min kod i en ny tråd och ber om hjälp istället för att be någon göra uppgiften. tackar för alla era svar

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

@opa12345: Du behöver inte skapa nya trådar för frågan (korstpostning — flera trådar om samma fråga — ÄR emot trivselreglerna). Läs vad andra har frågat dig och fortsätt i den här tråden nu när folk lyssnar och är beredda att hjälpa till istället.

Abstractions all the way down.

Trädvy Permalänk
Medlem
Registrerad
Jun 2012

Jag kan inte C#, men skulle väl kunna ge dig en hint om hur du kan lösa uppgiften iaf..

int minTalArray[1000]; // Glöm inte att initiera vektorn int tal; int antalTal=0; do{ tal=getNumner(); //Läs in gissningen if (tal>=0){ minTalArray[tal]++; // Räkna upp ett steg på aktuellt tal i arrayen antalTal++; //Räknar antal inmatade tal; } }while (tal>=0 && antalTal<100) // Fortsätt att mata in tal så länge villkoren är uppfyllda

Sen kan du köra en for-loop som räknar igenom din array, börja å leta igenom arrayen efter ett element som innehåller talet 100 (dvs, du har matat in talet hundra gånger på raken), finns de ingen sån, så letar du efter 99.. å sen hela vägen ner.