C# program, hjälp med uppgift om frekvensanalys

Permalänk

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.    

Permalänk
Medlem

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

Visa signatur

Gaming :Define R5 | X370-PRO | Ryzen 2600 | RTX2080 | 16GB DDR4 3200MHz 14CL | SSD: 960 EVO M.2 500GB & 850 PRO 500GB
Media: Node 304 | B350m | Ryzen 2700X | 16GB DDR4 | 24TB HDD | 870 EVO NvME 500GB

Permalänk
Medlem

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.

Visa signatur

Rig: Ryzen 7 5800X - Crucial Ballistix Black 3200 Mhz 32 GB - MSI RTX 4060 TI OC 8 GB - Fractal Design Define C
Laptop: Macbook Pro M1 Max - 32GB - 14"
Media/Server: Raspberry PI 4 - 2 GB - Plex Media Server - KODI - PiHole - qBittorrent - HomeAssistant
Media/Server: NUC - i7-7567U - 32GB - Plex Media Server - Uptime Kuma - mineCraft - qBittorrent - 10 TB Storage
NAS: Zyxel 325v2 - 5 TB

Permalänk
Medlem
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.

Visa signatur

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

Permalänk
Legendarisk

@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...

Visa signatur

Abstractions all the way down.

Permalänk
Medlem

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.

Visa signatur

~. Citera så jag hittar tillbaka .~

Permalänk

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

Permalänk
Legendarisk

@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.

Visa signatur

Abstractions all the way down.

Permalänk

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.