Rafael Skrevet 12. juni 2005 Del Skrevet 12. juni 2005 Hei! Jeg har lenge hatt lyst til å lære meg å programmere, og har da allerede anskaffet meg bok og trolig det jeg trenger. Nå som jeg tilsynelatende har tid til overs, så tenkte jeg at jeg muligens kanskje kunne prøve meg på nytt. Jeg leser en bok, og det er veldig greit med tanke på forklaringer, eksempler og oppgaver i slutten av hvert kapittel, men jeg savner noen reelle oppgaver. Altså, det å svare på spørsmål om innholdet til det forgående kapitlet og forklare hvorfor noen kudesnutter ikke fungerer og den slags er greit, men jeg savner oppgaver der jeg skal lage et praktisk program. Det er kanskje krevende, ettersom det å lage praktiske programmer med omtrent nær null kjennskap til programmering(sspråket) virker vanskelig, men synes fortsatt det muligens kunne ha vært gode øvelser for dem som lærer seg å programmere. Så det jeg lurer på, er om noen kjenner til en internettside e.l. som har lagt opp programmeringsoppgaver (gjerne i forskjellige språk) til nybegynner, som de kan henvende seg til og prøve å utføre? - rafael Lenke til kommentar
GenericName Skrevet 12. juni 2005 Del Skrevet 12. juni 2005 (endret) ... Endret 11. januar 2011 av Token Lenke til kommentar
GeirGrusom Skrevet 12. juni 2005 Del Skrevet 12. juni 2005 (endret) Først og fremst er det enklest å lage console programmer, som f.eks. utfører matte oppgaver, sorterer en tekstfil, regner gjennomsnittet av en liste med tall, linked list teori osv. Ikke tenk på GUI med en gang, for det er veldig innviklet i C++ En oppgave jeg fikk (I vanlig C) var at jeg fikk en liste med koordinater og linjer, og lage et program som fant den korteste veien til et gitt punkt med et annet utgangspunkt. Endret 12. juni 2005 av GeirGrusom Lenke til kommentar
Rafael Skrevet 12. juni 2005 Forfatter Del Skrevet 12. juni 2005 (endret) Hvilken bok leser du? Fant ingen sider, leita litt dårlig. Jeg prøver å lære meg C med hjelp av "Sam's Teach Yourself: C for Linux Programming". Og takk forat du tok deg tiden til å lete. Jeg er egentlig ganske lat som ikke har gjort det selv. Håpet (og håper fortsatt) på at noen på forumet allerede har noen forslag. Først og fremst er det enklest å lage console programmer, som f.eks. utfører matte oppgaver, sorterer en tekstfil, regner gjennomsnittet av en liste med tall, linked list teori osv.Ikke tenk på GUI med en gang, for det er veldig innviklet i C++ En oppgave jeg fikk (I vanlig C) var at jeg fikk en liste med koordinater og linjer, og lage et program som fant den korteste veien til et gitt punkt med et annet utgangspunkt. Det er forsåvidt det jeg også har hatt i tankene. Å lage GUI medmine kunnskaper i programmering ville være å strekke seg altfor langt. Det er bare det at jeg ønsker å prøve å programmere litt mer, der jeg tar i bruk det jeg har lært meg så langt. Det var f.eks. et eksempel i boken som skulle vise hvordan man tok i bruk egendefinerte funksjoner. Som et praktisk eksempel for en nybegynner, så skulle funksjonen regne ut 'volumet' for en kube (den gitte variablen opphøyet i tredje). Her er eksempelet fra boken: /* Demonstrates a simple function */ #include <stdio.h> long cube(long x); long input, answer; int main(void) { printf("Enter an integer value: "); scanf("%ld", &input); answer = cube(input); /* Note: %ld is the conversion specifier for */ /* a long integer */ printf("\nThe cube of %ld is %ld.\n", input, answer); return 0; } /* Function: cube() - Calcs the cubed value of a variable */ long cube(long x) { long x_cubed; x_cubed = x * x * x; return x_cubed; } Siden jeg hadde lyst til å ta i bruk det jeg så langt hadde lest, så tenkte jeg at jeg kunne prøve å forbedre kodesnutten. To kapitler tidligere hadde jeg lest litt om hvordan C setter av minne til de forskjellige variablene og hvor store verdier de kan holde, så tenkte jeg meg at det muligens er en grense for hvor stor input kan være dersom programmet skal kjøre feilfritt. Kort fortalt så prøvde jeg å sette en grense for hvor stor (og liten) input-verdien kunne være, og resultatet ble følgende: #include <stdio.h> #define MAX_CUBE 1625 /* The third square of the maximal unsigned long value. If the computer exceeds this value, it will probably err. */ int input, cube(int x); unsigned long answer; int main(void) { printf("Enter an integer value: "); scanf("%d", &input); if (input < MAX_CUBE && input > 0) answer = cube(input); else { printf("The chosen value is either too big or too small, please try again.\n"); return 0; } printf("\nThe cube of %d is %ld.\n", input, answer); return 0; } int cube(int x) { unsigned long x_cubed; x_cubed = x * x * x; return x_cubed; } Maksimalverdien som er definert i begynnelsen av programmet er for 32-bit prosessorer, og er tatt fra et eksempel i boken. - rafael Endret 12. juni 2005 av Rafael Lenke til kommentar
Mammuten Skrevet 26. juni 2005 Del Skrevet 26. juni 2005 Og hva gjør den coden? Så heelt greskt ut Lenke til kommentar
Rafael Skrevet 26. juni 2005 Forfatter Del Skrevet 26. juni 2005 Si det. Et godt eksempel på at jeg burde ha fulgt retningslinjene til boken om å skrive kommentarer! Det kan også nevnes at det er noen feil i koden. Jeg tror koden opprinnelig skulle ta imot et tall fra brukeren og opphøye det i tredje. Resultatet som blir gitt tilbake har en begrensning for hvor stort det kan være (ut ifra hva slags arkitektur man kjører programmet på), og derfor skulle jeg prøve å ta hensyn til at man ikke kunne gi et for stort tall til at det gikk uttover begresningene til 32-bit- arkitekturen. Er litt usikker på hvordan jeg skal forklare det med korrekt terminologi, men håper du forstår. Det var dessuten bare et forsøk på å utelukke feil i programmet, og jeg vet ikke om det ble gjort korrekt. - rafael Lenke til kommentar
GenericName Skrevet 26. juni 2005 Del Skrevet 26. juni 2005 (endret) ... Endret 11. januar 2011 av Token Lenke til kommentar
prebenl Skrevet 26. juni 2005 Del Skrevet 26. juni 2005 Syns programmet ditt så helt fint ut ved en rask gjennomlesning. Du finner mange oppgaver i problemløsning i arkivet på følgende side: http://www.nio.ntnu.no (jeg er forsåvidt han fyren i rød genser på bildet til høyre) Disse oppgavene går mer på algoritmer og matematikk, men det er absolutt noe som er nødvendig å øve på for å bli en god programmerer. De er ikke praktisk rettet i den forstand at de er realistiske oppgavetekster, men det bør ikke være vanskelig å tenke seg til situasjoner i den virkelige verden samme problem kunne oppstått. Om du har lite kunnskaper om algoritmer og datastrukturer, kan det være greit å finne en bok om temaet ved siden av. Mange av oppgavene er godt forklart med løsning, og det bør gå an å lære en del av å lese løsningsforslagene. Håper du finner noe nytte i det! Lenke til kommentar
Rafael Skrevet 27. juni 2005 Forfatter Del Skrevet 27. juni 2005 (endret) Aha! Jeg viste ikke at det fantes noe slikt engang! Kjempekult! Takker meget for lenken. Spesielt synes jeg det var utrolig kult at NTNU hadde satt i gang et initiativ for informatikkinteresserte ungdommer på videregående skole. Hvorfor har ikke jeg hørt om dette før? Kunne nok ikke ha vært med selv uansett, men ... Setter stor pris på lenken. Takker meget! - rafael Endret 27. juni 2005 av Rafael Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå