Exempel. Rekursion. Iterativ motsvarighet. fakultet.c. fibonacci.c Fibonaccisekvensen definieras som följer ƒ 0 =0, ƒ 1 =1, ƒ i+1 =ƒ i +ƒ i-1, i=1,2,
|
|
- Georg Pettersson
- för 7 år sedan
- Visningar:
Transkript
1 Rekursion En funktion är rekursiv om den anropar sig själv, direkt eller indirekt. Alla funktioner kan anropas rekursivt. I sin enklaste form är rekursion enkel att förstå. printf("the universe is never ending\n"); main(); return 0; /* Kommer aldrig att nås */ Exempel För att summera de fyra första heltalen kan man skriva sum(4) där sum är funktionen nedan int sum(int n) { if (n == 1) return n; else return n + sum(n-1); sum(1) 1 sum(2) 2 + sum(1) eller sum(3) 3 + sum(2) eller sum(4) 4 + sum(3) eller fakultet.c Matematiskt så lyder definitionen av fakultet som följer 0!=1, n!=n (n-1) 2 1 n>0 eller ekvivalent 0!=1, n!=n (n-1)! n>0 I C kan detta skrivas rekursivt som Iterativ motsvarighet Funktionen kan också skrivas iterativt int factorial (int n) { int product = 1; for ( ; n > 1; n-- ) product *= n; return product; int factorial (int n) { return (n == 0? 1 : n * factorial(n-1) ); Effektivitet Många algoritmer har både rekursiva och iterativa lösningar. Normalt så är den rekursiva formuleringen vackrare och använder färre variabler för att göra samma beräkning. Vissa datorspråk använder bara rekursion för att åstadkomma upprepning (dvs. de har inte t.ex. while eller for). Rekursion orsakar att datorn lägger gamla värden av variabler i en stack för att komma ihåg dem. Ofta kan rekursion orsaka många funktionsanrop. fibonacci.c Fibonaccisekvensen definieras som följer ƒ 0 =0, ƒ 1 =1, ƒ i+1 =ƒ i +ƒ i-1, i=1,2, int fibonacci (int n) { return (n <= 1? n : fibonacci(n-1) + fibonacci(n-2); N fibonacci(n) Antalet funktionsanrop
2 Rekursion vs. iteration Vissa programmerare anser att rekursion inte ska användas p.g.a. de många funktionsanropen ineffektivitet. Rekursion har dock många fördelar de är ofta enklare att skriva lättare att förstå lättare att underhålla Därför kan det vara motiverat att använda rekursion trots dess nackdelar. Preprocessorn Preprocessorn evaluerar speciella direktiv i koden innan koden kompileras. Rader med preprocessordirektiv börjar med en #. Preprocessorn utför inkludering av filer, villkorlig kompilering och expansion av makron. Rader med preprocessordirektiv kan förekomma var som helst i koden Filinkludering Inkludering av filer utförs med #include. Standardfiler Standardfiler anges inom < och > varefter preprocessorn söker på ett antal fördefinierade ställen. #include <tcp.h> Användarfiler Användarfiler anges inom " varefter preprocessorn letar i den aktuella katalogen. #include "list.h" #include "matrix.h" Filinkludering Raden med preprocessordirektivet byts ut mot en kopia av filen vilket kan vara av intresse om det finns beroenden mellan filer som inkluderas. Filinkluderingar kan vara nästlade, d.v.s filer som inkluderas kan själv inkludera filer Makron och konstanter Makron kan användas till att definiera konstanter och öka tydligheten och portabiliteten av kod. Ett makro definieras med #define. #define identifier token_string Preprocessorn byter ut alla förekomster av identifier mot token_string i koden. #define MAX_STR_LEN 50 #define EPS e-16 #define EQ == Det finns inga begränsningar i vad som kan definieras som makron. Makron med argument #define identifier(identifier,, identifier) token_string Efter en deklaration #define max(x,y) ((x)>(y)? (x) : (y)) blir uttrycket c = max(a+1,b-1); expanderat av preprocessorn till c = ((a+1)>(b-1)? (a+1) : (b-1));
3 Vanliga fel Utan parenteser #define SQ(x) x*x c = SQ(5 + 1); blir expanderat av preprocessorn till c = * ; /* == 11 och ej 36 */ Semikolon och lika med #define add = + #define A 3; c = b add A-5; blir expanderat av preprocessorn till c = b = + 3; -5; Fler vanliga fel Funktionsargument Vad blir nämligen egentligen detta? #define MAX(x,y) ((x) > (y)? (x) : (y)) int give_next() { static int d = 2; d++; return d;.. MAX(3, give_next()) Makron i stdio.h int getchar(); int putchar(int c); Returnerar: c vid OK, annars EOF getchar läser ett tecken från tangentbordet. putchar skriver ett tecken till skärmen. getchar() och putchar() getchar() returnerar en int och putchar() tar en int som argument. I minnet så lagras en char som 1 byte och en int lagras oftast som 4 byte. Därför kan en int lagra alla värden som en char kan. Vi kan tänka oss char som en liten heltalstyp och int som en stor teckentyp. Vi kan alltså lagra tecken i int lika gärna som i char double_out.c /* i stdio.h finns raden #define EOF (-1) */ int c; while ((c = getchar())!= EOF) { return 0; capitalize.c int c; while ((c = getchar())!= EOF) { if (c >= a && c <= z ) putchar( A + c - a ); else return 0;
4 Makron i ctype.h Makron för teckenhantering. #include <ctype.h> int isalpha(int c); 0 om c är en bokstav int isupper(int c); 0 om c är en stor bokstav int islower(int c); 0 om c är en liten bokstav int isdigit(int c); 0 om c är en siffra int isspace(int c); 0 om c är ett vitt tecken int toupper(int c); motsvarande stora bokstav eller c int tolower(int c); motsvarande lilla bokstav eller c Skriva eller läsa enskilda tecken Motsvarigheten till getchar och putchar heter för filer getc och putc. int putc(int c, FILE *stream); Returnerar: värdet av c. EOF vid filslut eller fel. int getc(file *stream); Returnerar: Nästa tecken från strömmen. EOF vid filslut eller fel. Dessa anrop sker genom makron. Det finns också litet långsammare funktionsvarianter av dessa som heter fputc och fgetc Exempel Observera att dessa två satser är ekvivalenta och att man inte kan öppna eller stänga stdout. fprintf(stdout, "Detta skrivs till skärm\n"): printf("detta skrivs till skärm\n"): Liksom att dessa tre satser är ekvivalenta. putc( a, stdout); fputc( a, stdout); putchar( a ); Villkorlig kompilering #if constant_integer_expression #ifdef identifier #ifndef identifier #elif #else Portabel kod Debug utskrifter Undvika att inkludera filer flera gånger Villkorlig kompilering Debugutskrifter: #define DEBUG 1 #if DEBUG printf("debug: a = %d\n", a); eller #define DEBUG #ifdef DEBUG printf("debug: a = %d\n", a); Bryta upp kod i moduler Hålla samman relaterade funktioner Lättare felsökning Lättare att bygga ut
5 Headerfiler: Filinkluderingar Typdeklarationer Definitioner, makron Funktionsprototyper Källkodsfil: Filinkluderingar Funktioner 226 temp.h #ifndef TEMP_H #define TEMP_H #include <stdlib.h> #define CK_ADJUST #define CF_SCALE 1.8 #define CF_ADJUST 32 typedef double celsius; typedef double kelvin; typedef double farenheit; kelvin celsius_to_kelvin (celsius); farenheit celsius_to_farenheit (celsius); celsius farenheit_to_celsius (farenheit); kelvin farenheit_to_kelvin (farenheit); celsius kelvin_to_celsius (kelvin); farenheit kelvin_to_farenheit (kelvin); 227 temp.c #include temp.h kelvin celsius_to_kelvin(celsius c) { return (kelvin)(c - CK_ADJUST); farenheit celsius_to_farenheit(celsius c) { return (farenheit)((c * CF_SCALE) + CF_ADJUST); celsius farenheit_to_celsius(farenheit f) { return (celsius)((f - CF_ADJUST)/CF_SCALE); 228 Assertions Header-filen assert.h innehåller makrot assert(). Det är bra programmeringsvana att använda sig av assert() för att kontrollera att argumenten till en funktion är korrekta. #include <assert.h> double div (double a, double b) { assert(b!= 0); return a/b; div(2, 0); /* assertion will fail */ 229 Assertions Om ett argument till assert() är falskt, kommer programmet att skriva ut ett felmeddelande, t.ex. Assertion failed on line 23 och programmet kommer att avslutas. Assertions är enkla att skriva och gör källkoden robustare. Andra läsare av källkoden kan dessutom lättare förstå innehållet. Använd assert()!!! 230 5
Innehållsförteckning. Exempel. Åtkomst & användarhandledning
Framsidan Framsidan på din labrapport kan du utforma ganska fritt. Tänk bara på att den ska vara läsbar, och innehålla (minst) följande information: Ditt namn Din e-mail adress här på CS! Kursens namn
Läs merDagens föreläsning. Specialtecken. Mer om printf. Formateringssträngar. Mer om scanf. Programmeringsteknik för Ingenjörer VT05
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 12 Filhantering Funktionsbibliotek Mer om kompilering Lagrinsklasser Makron Programmeringsteknik VT05 2 Mer om printf Utskrifter
Läs merBitvisa operationer. Programmeringsteknik 195
Bitvisa operationer Alla variabler oavsett typ representeras internt i datorn som binära tal med ettor och nollor. Om vi antar att en int representeras med 2 byte (dock vanligare med 4 byte) på systemet.
Läs merTentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013
1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merTentamen i Programmering grundkurs och Programmering C
1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merTentamen i Programmering grundkurs och Programmering C
1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merLösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Denna tenta kommer att vara färdigrättad On 14/1-04 och kan då hämtas på mitt
Läs mer.c och.h filer. Programmeringsteknik 113
.c och.h filer När programmen blir större är det nödvändigt att dela upp det i mindre enheter. Varje enhet definieras oftast som en del i programmet som hanterar en väl avgränsad uppgift. Denna enhet bildar
Läs merSträngar. Strängar (forts.)
Strängar En sträng i C är helt enkelt en array av char: char namn[20]; För att få strängar att bete sig som om de vore av dynamisk längd markeras strängens slut med null-tecknet \0 : J o z e f S w i a
Läs merFöreläsning 5: Rekursion
Föreläsning 5: Rekursion Vi har tidigare sett att man kan dela upp problem i mindre bitar med hjälp av underprogram, vilket är ett utmärkt sätt att lösa problem. Detta är ganska lätt att rita upp för sig
Läs merC-programmering. Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur
C-programmering Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur I Bilting, Skansholm: Vägen till C I Kernighan, Ritchie: The C Programming Language,
Läs merTentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012
1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merDagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i
Läs merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga
Läs merDD1361 Programmeringsparadigm. Carina Edlund
DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp
Läs merFöreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Läs merLösningar till uppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1, 040607.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Denna tenta kommer att vara färdigrättad On 9/6 och kan då hämtas på mitt tjänsterum,
Läs merAlgoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.
Algoritmanalys Analys av algoritmer används för att uppskatta effektivitet. Om vi t. ex. har n stycken tal lagrat i en array och vi vill linjärsöka i denna. Det betyder att vi måste leta i arrayen tills
Läs merGPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner
GPT föreläsning 8 Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner Denna gång Reflektioner kring OU1 Funktioner Reflektioner
Läs merProgrammering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world
Programmering i C Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur Kernighan, Ritchie: The C Programming Language, Second edition, Steve Oualline:
Läs merDagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -
Läs merTentamen i Programmering grundkurs och Programmering C
1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs mer( ostream ) << ( annan datatyp ) : ostream
1 Inmatning och utskrift Inmatning från tangentbord och utskrift till skärm sker i C++ med hjälp av strömmar. Vi har tidigare sett exempel på utskrift. Vi kommer i det här avsnittet även ta upp inmatning
Läs merProcedurer och villkor. Rekursiva procedurer. Exempel: n-fakultet
Procedurer och villkor Rekursiva procedurer (define lessorequal (lambda (x y) (or (< x y) (= x y)))) (define between (lambda (x y z) (and (lessorequal x y) (lessorequal y z)))) > (between 3 4 5) #t > (between
Läs merProcedurer och villkor
Procedurer och villkor (define lessorequal (lambda (x y) (or (< x y) (= x y)))) (define between (lambda (x y z) (and (lessorequal x y) (lessorequal y z)))) > (between 3 4 5) #t > (between 3 2 5) #f DA2001
Läs merSCB :-0. Uno Holmer, Chalmers, höger 2 Ex. Induktiv definition av lista. // Basfall
Rekursiva funktioner Föreläsning 10 (Weiss kap. 7) Induktion och rekursion Rekursiva funktioner och processer Weiss 7.1-3 (7.4, 7.5.3 utgår) Fibonaccital (7.3.4) Exempel: Balansering av mobil (kod se lab
Läs merRekursion: varför? Problem delas upp i mindre bitar algoritm för att lösa problemet erhålls från problemformuleringen
Rekursion: varför Problem delas upp i mindre bitar algoritm för att lösa problemet erhålls från problemformuleringen Exempel på problem som kan lösas med rekursion: Beräkningar, t.ex. upphöjt, Fibonacci-tal,
Läs merProgrammering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world
Programmering i C Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur Kernighan, Ritchie: The C Programming Language, Second edition, Steve Oualline:
Läs merTräning i bevisföring
KTHs Matematiska Cirkel Träning i bevisföring Andreas Enblom Institutionen för matematik, 2005 Finansierat av Marianne och Marcus Wallenbergs Stiftelse 1 Mängdlära Här kommer fyra tips på hur man visar
Läs merAlgoritmer och datastrukturer H I HÅKAN S T R Ö M B E R G N I C K L A S B R A N D E F E L T
Algoritmer och datastrukturer H I 1 0 2 9 HÅKAN S T R Ö M B E R G N I C K L A S B R A N D E F E L T Föreläsning 1 Inledande om algoritmer Rekursion Stacken vid rekursion Rekursion iteration Möjliga vägar
Läs merAtt komma igång. Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program
Att komma igång Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Vad är ett program? En processor kan endast utföra extremet enkla
Läs merFöreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
Läs merFöreläsning 2: Avlusning och antilustekniker
2D1458, Problemlösning och programmering under press Föreläsning 2: Avlusning och antilustekniker Datum: 2007-09-11 Skribent(er): Emil Hesslow, Stefan Pettersson Föreläsare: Per Austrin Föreläsningen handlade
Läs merFunktionens deklaration
Funktioner - 1 Teknik för stora program #include #include......... cout
Läs merAtt koda en magnetremsa i plastkortskrivare med inbyggd magnetkodare.
Att koda en magnetremsa i plastkortskrivare med inbyggd magnetkodare. I plastkortsskrivaren kan man via drivrutinerna både läsa av och koda en magnetremsa. Man kan också göra en kortdesign i emedia där
Läs merC++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen
C++ Funktioner 1 Teori När programmen blir större och mer komplicerade är det bra att kunna dela upp programmet i olika delar som gör specifika saker, vilket kan göra programmet mer lättläst. Ett sätt
Läs merTentamen i. Programmering i språket C
1 of 8 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering i språket C för D1 m fl, även distanskursen torsdag
Läs merDu ska nu skapa ett litet program som skriver ut Hello World.
Tidigare har vi gjort all programmering av ActionScript 3.0 i tidslinjen i Flash. Från och med nu kommer vi dock att ha minst två olika filer för kommande övningar, minst en AS-fil och en FLA-fil. AS Denna
Läs merTentamen i Programmering grundkurs och Programmering C
1 of 6 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merProgrammera en NXT Robot
KUNGLIGA TEKNISKA HÖGSKOLAN Programmera en NXT Robot Med hjälp utav NXC Peyman Torabi 2012-09-03 E-post: peymant@kth.se Introduktionskurs i datateknik (II1310) Sammanfattning Uppgiften var att analysera
Läs merÖvning från förra gången: readword
(9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver
Läs merVad är det och hur definierar vi en Biblioteksfunktioner (math) Top-down-programmering lokala globala variabler Arrays som in-parametrar
Vad är det och hur definierar vi en Biblioteksfunktioner (math) Top-down-programmering lokala globala variabler Arrays som in-parametrar När man skall lösa ett komplicerat problem gör man det lättast genom
Läs merProgramexempel: tärningsspel
Programexempel: tärningsspel Skriv ett program som låter en användare spela detta tärningsspel: Spelaren gör första tärningsslaget och får samma poäng som tärningen visar. Sedan fortsätter spelet enligt
Läs merBINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X
Algoritmer och Datastrukturer Kary FRÄMLING/Göran PULKKIS (v23) Kap. 7, Sid 1 BINÄRA TRÄD Träd används för att representera olika slags hierarkier som ordnats på något sätt. Den mest använda trädstrukturen
Läs merAtt använda pekare i. C-kod
Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare
Läs merHeltal(int) Programmeringsteknik 54
Heltal(int) Datatypen int används tillsammans med char, short int och long int för att lagra heltal i C. Matematisk sett finns det oändligt många heltal. På en dator måste det införas en begränsning på
Läs merFRÅN A TILL Ö LäraMera Ab / www.laramera.se och Allemansdata Ab / www.allemansdata.se FRÅN A TILL Ö
I programmet finns 11 olika aktiviteter för att träna varje bokstav och på att känna igen ord. För varje bokstav kan olika övningsblad skrivas ut: Inledningsvis väljer du vilken bokstav du vill öva på.
Läs merVi skall skriva uppsats
Vi skall skriva uppsats E n vacker dag får du höra att du skall skriva uppsats. I den här texten får du veta vad en uppsats är, vad den skall innehålla och hur den bör se ut. En uppsats är en text som
Läs merTentamen i Programmering grundkurs och Programmering C
1 of 8 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merTentamen i Programmering grundkurs och Programmering C
1 of 6 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merAgenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då
Agenda Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer Övningar nu och då 1 Motivering I de flesta problem ingår att hantera multipla data I de
Läs mer1 Funktioner och procedurell abstraktion
1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår
Läs merDATASAMORDNING NYHETERNA I CHAOS 3 2009-09-15. Utbildning Chaos/Handledning - Nyheterna i Chaos 3/2009-09-15
DATASAMORDNING NYHETERNA I CHAOS 3 2009-09-15 2 (14) Innehåll INLEDNING 3 PRESTANDAFÖRBÄTTRINGAR I CHAOS 3 4 BAKGRUND 4 Kontroll av fönsterinställningar... 4 Vista-kompabilitet.... 4 Kompatibelt med långa
Läs merIdag: Dataabstraktion
Idag: Dataabstraktion Hur använder vi det vi hittills kan om Scheme för att realisera (implementera) sammansatta data? Hur separerar man datastrukturen från resten av ett program så att ändringar i datastrukturen
Läs merDet finns många flaggor till g++,
C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se Inge Frick, inge@nada.kth.se Alexander Baltsatsis hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m.
Läs merTentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)
Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)
Läs merEnkla datatyper minne
Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in
Läs merRekursion och induktion för algoritmkonstruktion
Informationsteknologi Tom Smedsaas, Malin Källén 20 mars 2016 Rekursion och induktion för algoritmkonstruktion Att lösa ett problem rekursivt innebär att man uttrycker lösningen i termer av samma typ av
Läs merJohan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen
Tentamen för teknisk kemi, 10p, moment 1 29 november 1999 Skrivtid 9-15 Hjälpmedel: av följande böcker. - U. Bilting och J. Skansholm: Vägen till C - A. Kelley & I. Pohl: A Book on C Maxpoäng: Gräns för
Läs merProgrammering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
Läs merIndividuellt Mjukvaruutvecklingsprojekt
Individuellt Mjukvaruutvecklingsprojekt RPG-spel med JavaScript Författare Robin Bertram Datum 2013 06 10 1 Abstrakt Den här rapporten är en post mortem -rapport som handlar om utvecklandet av ett RPG-spel
Läs merDatatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Läs merFöreläsning 13 och 14: Binära träd
Föreläsning 13 och 14: Binära träd o Binärträd och allmänna träd o Rekursiva tankar för binärträd o Binära sökträd Binärträd och allmänna träd Stack och kö är två viktiga datastrukturer man kan bygga av
Läs merVåra enkla funktioner eller procedurer
Föreläsning 3 Våra enkla funktioner eller procedurer Programmönster 1. Repetition 2. Högre-ordningens procedurer/programmönster - Procedurer som argument - Procedurer som returnerade värden 3. Scope och
Läs merTentamen i Programmering grundkurs och Programmering C
1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merPROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4
Modul 2 Byggstenar PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Byggstenar 4 Nyckelord 4 Tecken 4 Syntax 5 Standardbibliotek 5 Vårt första program 5 Variabler 6 Konstanter 9 Operatorer 9 Övningar 9 Mer operatorer
Läs merTillämpad UNIX. Laborations-PM Christian von Schultz, 2009. 1 Programpaket och processhantering
Tillämpad UNIX Laborations-PM Christian von Schultz, 2009 1 Programpaket och processhantering 1. Ladda ner survivor.tar.gz från kurshemsidan och packa upp den. Uppackningskommando: 2. Du har just packat
Läs merRekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254
Rekursion Rekursion är en grundläggande programmeringsteknik M h a rekursion kan vissa problem lösas på ett mycket elegant sätt Avsnitt 11 i kursboken: Att tänka rekursivt Att programmera rekursivt i Java
Läs merIntroduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner
Läs merKlasser och objekt i C#
Klasser och objekt i C# Från klassdiagram till C#-klass till objekt initierat av en konstruktor. Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med
Läs merFöreläsning 8: Räkning. Duvhålsprincipen. Kombinatorik
Föreläsning 8: Räkning. Duvhålsprincipen. Kombinatorik Summaregeln Om och B är disjunkta mängder så B = + B, ty innehåller inga upprepningar Produktregeln Om och B är disjunkta mängder så är B = B Exempel:
Läs merLathund, procent med bråk, åk 8
Lathund, procent med bråk, åk 8 Procent betyder hundradel, men man kan också säga en av hundra. Ni ska kunna omvandla mellan bråkform, decimalform och procentform. Nedan kan ni se några omvandlingar. Bråkform
Läs merTänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 Hjälpmedel: Java-bok Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Läs merANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD
ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD I Navigationen hittar du genvägar till funktioner i programmet. För att utnyttja detta på bästa sätt kan du anpassa Navigationen så att det passar ditt sätt att arbeta.
Läs merElektronen och laddning
Detta är en något omarbetad version av Studiehandledningen som användes i tryckta kursen på SSVN. Sidhänvisningar hänför sig till Quanta A 2000, ISBN 91-27-60500-0 Där det har varit möjligt har motsvarande
Läs merFÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION
FÖRELÄSNING 2, TDDC74, VT2018 Begrepp och definitioner (delvis från föreläsning 1) Fallanalys som problemlösningsmetod Rekursivt fallanalys Rekursiva beskrivningar och processer de kan skapa Rekursiva
Läs merProgramsystemkonstruktion med C++: Övning 1. Karl Palmskog september 2010
Programsystemkonstruktion med C++: Övning 1 Karl Palmskog palmskog@kth.se september 2010 Programuppbyggnad Klassens uppbyggnad en C++-klass består av en deklaration och en definition deklaration vanligtvis
Läs merUtveckla arbetsmiljö och verksamhet genom samverkan
DEL 1: Utveckla arbetsmiljö och verksamhet genom samverkan Modulen inleds med det övergripande målet för modul 6 och en innehållsförteckning över utbildningens olika delar. Börja med att sätta ramarna
Läs merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser
Läs merkonstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b
Tentamen i Inledande matematik för V och AT, (TMV25), 20-0-26. Till denna uppgift skulle endast lämnas svar, men här ges kortfattade lösningar. a) Bestäm { konstanterna a och b så att ekvationssystemet
Läs merUppgift 1 ( Betyg 3 uppgift )
2005-06-09.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Ett plustecken kan se ut på många sätt. En variant är den som ses nedan. Skriv ett program som låter användaren mata in storleken på plusset enligt exemplen
Läs merLathund för överföring av rapporter och ljudfiler
Lathund för överföring av rapporter och ljudfiler För handledare I den här lathunden finns detaljerade instruktioner om hur du gör för att ladda ner rapporter och ljudfiler från dina studenter. Först kommer
Läs merTextsträngar från/till skärm eller fil
Textsträngar från/till skärm eller fil Textsträngar [Kapitel 8.1] In- och utmatning till skärm [Kapitel 8.2] Rekursion Gränssnitt Felhantering In- och utmatning till fil Histogram 2010-10-25 Datorlära,
Läs mer6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:
6 Rekursion 6.1 Rekursionens fyra principer Problem löses genom: 1. förenkling med hjälp av "sig själv". 2. att varje rekursionssteg löser ett identiskt men mindre problem. 3. att det finns ett speciellt
Läs merProgrammera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Läs merIntroduktion C-programmering
Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder
Läs merSkizz till en enkel databas
Skizz till en enkel databas Data: Register En vektor Funktioner: Databas Initiera huvudloop Avsluta Poster (struct( struct) val Mata in Skriv ut Spara Hämta Ändra Radera Enligt diskussion 1999-11-23 Bertil
Läs mertentamensdags och lab 3
tentamensdags och lab 3 Större program delas normalt upp i flera filer/moduler vilket har flera fördelar: Programmets logiska struktur när man klumpar ihop funktioner som hör ihop (och ibland också struct-def
Läs merTentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
Läs merPROGRAMMERING A VB6 UTVECKLINGSVERKTYGET VISUAL BASIC
lektion 1 PROGRAMMERING A VB6 UTVECKLINGSVERKTYGET VISUAL BASIC VB är ett applikationsutvecklingsverktyg med programmeringsspråket är basic, gränssnittet är grafiskt och man arbetar hela tiden med grafiska
Läs merHur skapar man formula r
Hur skapar man formula r Gamla jämfört med nya sättet Förord Att skapa olika typer av dokument är styrkan i ett ordbehandlingsprogram, såsom Microsoft Word. Dock är denna flexibilitet även till en nackdel.
Läs merTentamen TEN1 HI1029 2014-05-22
Tentamen TEN1 HI1029 2014-05-22 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha
Läs merKursplan i svenska. Därför tränar vi följande färdigheter under elevens skoltid i ämnet svenska: Tala, lyssna och samtala. År 1
Kursplan i svenska Språket är människans främsta redskap för att tänka, kommunicera och lära. Genom språket kan människor utveckla sin identitet, uttrycka känslor och tankar och förstå hur andra känner
Läs merEkvationssystem, Matriser och Eliminationsmetoden
Matematiska institutionen Göteborgs universitet och Chalmers tekniska högskola Version 359 Ekvationssystem, Matriser och Eliminationsmetoden - En inledning Ekvationssystem - matrisformulering Vi såg att
Läs merHandledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight
Handledning för digitala verktyg Talsyntes och rättstavningsprogram Vital, StavaRex och SpellRight Elevens namn:.. Skola: Datum:.. Varför behövs en handledning? Denna handledning är tänkt att användas
Läs merListor. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 7. Peter Dalenius Institutionen för datavetenskap 2014-09-23
Listor TDDD73 Funktionell och imperativ programmering i Python Föreläsning 7 Peter Dalenius Institutionen för datavetenskap 2014-09-23 Översikt Ytterligare exempel på dubbelrekursion Inbyggda metoder hos
Läs mer1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet
1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken
Läs merDash and Dot. Svårighetsgraden bestämmer du själv genom att välja någon av av de 5 appar som är kopplade till Dash & Dot.
Robotar Dash and Dot Dash & Dot är robotar som kan utföra en mängd olika saker. Alla kommandon programmeras på en läsplatta och överförs sedan till robotarna via Bluetooth. Svårighetsgraden bestämmer du
Läs merSvenska Du kan med flyt läsa texter som handlar om saker du känner till. Du använder metoder som fungerar. Du kan förstå vad du läser.
Svenska Du kan med flyt läsa texter som handlar om saker du känner till. Du använder metoder som fungerar. Du kan förstå vad du läser. Du berättar på ett enkelt sätt om det du tycker är viktigt i texten.
Läs mer