Hjälp med denna övning [hemläxa i C - Mod]

Permalänk
Medlem

Hjälp med denna övning [hemläxa i C - Mod]

Hej!
jag undrar om någon kunde göra denna övning till mig, skulle verkligen uppskatta det, jag har själv försökt att göra den men det går inte bra.! Lär mig av era metoder!
tack!

https://www.kth.se/social/upload/504e0b0bf276544394000005/Lab...

Klarare rubrik. Inkluderade programmeringsspråk.
Permalänk
Inaktiv

Det är inte meningen att vi ska göra dina uppgifter. Posta istället specifika problem du har svårt för så kan vi hjälpa dig. Är inte en så värst avancerad uppgift heller, du kan säkert googla fram något med.

Permalänk
Medlem

Brukar inte sånt där kallas fusk?

Läraren i mig säger också att du lär dig väl inget av uppgiften om någon annan löser den åt dig?

(Ber om ursäkt om inlägget låter uppfostrande)

Visa signatur

Chassi: Cooler Master NR400, Mobo: Gigabyte Aorus Pro-P, CPU: Amd ryzen 5 3600, RAM: 16 GB Corsair Vengeance Pro 3600 mhz, GPU: Sapphire RX6800 Nitro +, PSU: Corsair TX 650M

Permalänk
Hedersmedlem

Som sagt så är inte forumet till för att göra andras läxa däremot går det bra att fråga om tips.

MVH Moderator Shimonu

Permalänk
Medlem

Att fråga någon att bara göra uppgifter åt en ger ingenting, uppgifterna är inte för lärarnas skull, utan för din skull.

Vet inte vilket språk ni kör men har precis gjort samma uppgift, fast på LiU (Linköping Universitet) i Python.
Om du scrollar ner till botten utav http://www.ida.liu.se/~TDDC66/python/la/la1.shtml ser du samma uppgift, kanske att det blir lite klarare då.

Edit: Frågar du om någonting mer riktakt hjälper jag såklart, men kommer aldrig att bara göra andras arbeten åt dem (för allas skull).

Visa signatur

NZXT Phantom 410 (Vit) | i5 3570k@4.2GHz | Asus P8Z77-V LE | Corsair Vengeance LP 1600MHz 16GB | Gigabyte GTX 670 Windforce OC @1GHz | Seagate 600 480GB | Corsair HX750 | Cooler Master 212 Evo

Permalänk
Medlem

Du har inte en kopia på ett matematik problem där man ska lösa en variabel för att räkna ut längen av max last för en kran arm. Kommer inte riktigt ihåg uppgiften, men det var från KTH ingenjör, eller liknande..:D

edit: Tror att jag kanske har en lösning på c++ med samma uppgift som jag gjorde i någon prog kurs..:)

Visa signatur

"As they fall asleep,
Will robots dream of electric sheep?"

Permalänk
Medlem

Hej, du skriver att du har försökt själv men att det inte går något vidare bra.

Länka din kod och förklara vad det är som du behöver hjälp med, då lovar jag dig att det finns många här som är villiga att hjälpa dig.

Om det är c++/java du arbetar med så har jag uppgiften klara för dessa språk, men känner att du bör försöka lite till själv.

Dessutom finns det massor av tutorials på nätet hur man gör denna uppgift, så hade du velat göra den själv så hade du nog lyckats.

Istället tänkte jag ge dig några tips till att börja med.

1. Börja med att göra en utskrift där användaren skriver in ett personnummer.
2. Spara undan personnummret som användaren skrev in, i nån lämplig variabel. (array, string?)
3. Gör de valideringar som du känner behövs (Rätt längd på personnummret?, innerhåller inga bokstäver etc etc)
4. Deklarera dina arrayer som du behöver. (Tips gör en array för personnummret och en för multipliceringen (2, 1, 2, 1, 2...)
5. Loopa dina arrayer. (Där du multiplicerar och spara undan det du behöver)
6. Spara undan resultatet och kollar så det stämmer. (Använd if-sats, bool variabler kanske?)
7. När du är klar bryt ut din kod till metoder/funktioner och annat.
8. Testkör för att hitta bugga och annat, upprepa tills det är buggfritt och du känner dig färdig med uppgfiten.

Hoppas du förstår att vi inte gör din uppgift åt dig för att vara jobbiga, utan vi tänker faktiskt på ditt eget bästa.

Som sagt skulle du fortfarande ha problem, länka din kod och förklara vad du behöver hjälp med.

MVH NP^

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Medlem

Övningen

Hej igeen!
jag tackar för all support och feedback ni har gett mig. Jag vill lära mig programmering , tycker faktiskt det är väldigt intressant. I skolan håller vi på med vanlig C programmering. Jag har försökt lite på denna övning men jag har fastnat och så här såg min kod ut:

#include <stdio.h> #include <stdlib.h> #define LANGD 10 int main() { int a[LANGD]; int i, mm, cc, yyyy; printf("Var god och skriv ditt personnummer: "); scanf("%d %d %d", &mm, &cc, &yyyy); for (i=0;i<LANGD;i++) { scanf("%d", &a[LANGD]); } return 0; }

som ni ser så är jag inte klar med , men vet inte faktiskt hur man ska börja sen, några tips?

Permalänk
Medlem

Läs det NoPain skrev och försök igen^^
Eftersom du ska använda dig av varje siffra för sig så lämpar sig t.ex. inte yyyy speciellt bra.
Det står även i uppgiften att man kan låta användaren mata in pnr med mellanslag(mellan varje siffra menar han då antagligen) då lämpar sig en loop bra och du kan nog skippa skiten innan-.-

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Du kan ju fundera hur du skulle räkna ut det hela på papper. Och sedan replikera dessa steg i ett program.
"Jag börjar att multiplicera med 2 och första siffran från vänster, skriver ner resultatet tillfälligt (om resultatet var större än 9 så skriver jag ner siffersumman (tips: siffersumman kan du räkna ut som talet minus 9, dvs 12-9=3=1+2 osv.))"
Att multiplicera med 2 och 1 om vart annat kan du lösa genom att ha följande i loopen:

multiplicator = 1; for(i=LANGD-1;i>=0;i--) { multiplicator = 3-multiplicator; current_result = multiplicator*a[i]; ... }

alltså du får först: 3-1=2, sedan 3-2=1, sedan 3-1=2 och så vidare...

Lycka till

def validate_num(number): return int(number[-1]) == 10-sum([int(x)*y if int(x)*y<10 else int(x)*y-9 for x,y in zip(number[:-1],[2,1,2,1,2,1,2,1,2])])%10 In [23]: validate_num("4502127071") Out[23]: True

Visa signatur

weeeee

Permalänk
Medlem

övningen

Tack så hemskt mycket för hjälpen, men jag vill inte känna mig taskig ,men det ni har gett mig är för avancerat programmering.Vi har inte kommit så långt, vi har gjort ''if, else'' satserna och just nu har vi kommit till ''loopar'' och ''for'' satser och "arrays". Kanske räknas som fusk ifall man skriver koder som vi inte har gått igenom än?
Tack iaff grabbar!

Permalänk
Hedersmedlem
Skrivet av lonomis:

Tack så hemskt mycket för hjälpen, men jag vill inte känna mig taskig ,men det ni har gett mig är för avancerat programmering.Vi har inte kommit så långt, vi har gjort ''if, else'' satserna och just nu har vi kommit till ''loopar'' och ''for'' satser och "arrays". Kanske räknas som fusk ifall man skriver koder som vi inte har gått igenom än?
Tack iaff grabbar!

Förstår att det kan vara svårt att läsa förklaringarna som vissa ger. Se om du kan hitta vad i deras texter som du tycker är förvirrande eller svårt och be om ytterligare förklaring.

Det är nog bättre att ta det steg för steg istället för att skriva en uppsats med alla ens tankar.

Permalänk
Medlem

övningen

Jag ska försöka göra om skitet, börja allt om, för mitt eget bästa! Annars om ni har fler tips eller något så är det bara att posta det. Jag har en vecka på mig innan jag lämnar in labbet :).

Permalänk
Medlem

Hej ser att du kommit en bra bit, bra jobbat

Försök alltid ha som regel att deklarera dina variabel till lämpliga namn, för att underlätta för felsökning och annat.
Kan ju vara så att det är andra personer som skall läsa din kod i framtiden, försök med engelska och blanda inte.
Skadar aldrig att vara övertydlig och använda kommentarer i koden, nu är det dock en liten uppgift men har det alltid som en regel som du följer.
Nu över tilll ite tips för att bryta ut din kod lite.

Förstår inte varför du vill ha utskrifter separat, tycker i detta fallet det fungerar att ha utskrifter i dina funktioner.

1. Kör en funktion som hanterar första delen, dvs. utskrift och inmatning av personnr som antingen tar en referens eller returnerar en array/pekare?
2. En som gör hanteringen för arrayer och beräkningarna. Kanske tar in en ref av din array, returnerar sum?
3. En som hanterar om personnr är korrekt med if-satser och utskrift. In två tal som du kollar.
4. Sen tycker jag du ska trycka in lite validering av inmatningar och annat, om användaren skriver in korrekt osv.

Vet inte hur pass långt ni lärt er ännu med pekare, referenser osv., men tror du förstår vad jag är ute efter.

Sen är det bara ändra lite variabelnamn och lägga till lite kommentarer och annat, så blir din lärare glad

Lycka till och hojta till om det är nåt.

MVH NP^

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Medlem

Tack NoPain för snabba svar!

Jag raderade inlägget för att andra i min skola inte ska kopiera och skicka in den till läraren.