UNITY OG KODE. Manipuler objekter via C# kode

Størrelse: px
Starte visningen fra side:

Download "UNITY OG KODE. Manipuler objekter via C# kode"

Transkript

1 UNITY OG KODE Manipuler objekter via C# kode 1

2 FRAKTAL Et projekt der danner 3D fraktaler automatisk 2

3 LAV ET NYT 3D PROJEKT 3

4 LAV ET TOMT GAMEOBJECT 4

5 5

6 LAV ET NYT C# SCRIPT 6

7 7

8 FØJ SCRIPTET TIL OBJEKTET 8

9 9

10 LAV EN SCENE OG ET MATERIALE 10

11 11

12 FØJ FØLGENDE TIL SCRIPTET 12

13 13

14 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvad er et mesh? Et mesh er et construct, der anvendes af den grafiske hardware til at tegne komplekse ting. Det er et 3D-objekt, der er enten er importeret til Unity, en af Unitys standard figurer eller genereret af kode. Et mesh indeholder mindst en samling af punkter i 3D-rum plus et sæt trekanter - de mest basale 2D figurer - defineret af disse punkter. Trekanterne udgør overfladen af uanset hvad mesh et forestiller. Ofte vil du ikke tænke over at man kigger på en gruppe trekanter i stedet for et reelt objekt Hvad er et material? Materialer anvendes til at definere de visuelle egenskaber for objekter. De kan variere fra meget enkle, ligesom en konstant farve, til meget komplekse. Materialer består af en shader og den data som shaderen måtte have behov for. Shaders er grundlæggende scripts der fortæller grafikkortet hvordan objektets polygoner bør udarbejdes. Standard diffuse shader bruger en enkelt farve og en tekstur sammen lyskilderne i den scene til at bestemme udseendet af polygoner. Den lidt mere komplicerede specular shader simulerer også highlights. 14

15 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvornår bliver start kaldt (invoked) Start metoden kaldes af Unity efter komponenten er oprettet, når den er aktiv, lige før den første gang dens Update metode ville blive kaldt, hvis den har en. Den kaldes kun én gang. Hvordan fungerer AddComponent? AddComponent metoden laver en ny komponent af en bestemt type, fastgjort til spil objektet, og returnerer en reference til det. Derved kan vi straks få adgang til komponentens værdier. Man kan også benytte en mellemliggende variabel. 15

16 FØJ VORES MATERIALE TIL FRACTAL KOMPONENTEN OG GIV DEN ET STANDARD CUBE MESH 16

17 17

18 TJEK DET VI HAR LAVET I PLAYMODE Jeg har sat playmode for mig til at have en overlay farve så jeg kan se når jeg er i playmode. Dette gøres under Edit > Preferences > Colors > Playmode tint 18

19 LAV BØRN AF FRACTAL MED DEN NY KODE PÅ LINJE 14 19

20 20

21 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvad gør new? new nøgleordet bruges til at konstruere en ny forekomst af et objekt eller en struct. Det efterfølges af at kalde en speciel constructor metode, som har samme navn som den klasse eller struct det tilhører. Vi har dog et problem! Hver ny fraktal instans ønsker at skabe endnu en yderligere. Dette sker hver frame, uden ende. Lad det køre i et stykke tid, og din computer vil komme i problemer, da den løber tør for hukommelse. Typisk vil rekursive algoritmer der ikke stopper forbruge maskinens ressourcer næsten øjeblikkeligt og resultere i enten en stak overflow undtagelser eller et nedbrud. I dette tilfælde er det en temmelig godartet eksplosion, fordi det sker langsomt. 21

22 GENNEMGANG AF SCRIPTET INDTIL VIDERE Vi har dog et problem! fortsat For at forhindre dette i at ske introducerer vi begrebet maksimal dybde. Vores indledende fraktal instans vil have en dybde på nul. Dets barn vil have en dybde på én. Barnet af dette barn vil have en dybde på 2. Og så videre, indtil den maksimale dybde er nået. For at gøre dette tilføjer vi en offentlig maxdepth heltalsvariabel og sætter den til 4 i inspektøren. Derefter tilføjer vi et privat heltal depth Derved kan der kun oprette et nyt barn, hvis vi er under den maksimale dybde. 22

23 MAX DEPTH FØJES TIL SCRIPTET Føj linje til og erstat den gamle linje 14 (nu 18) med de ny linjer

24 24

25 SÆT MAX DEPTH TIL 4 25

26 26

27 27

28 SKER DER NOGET? Præcis ét barn blev skabt da vi aldrig gav en dybde værdi. Derfor er den altid nul. Fordi nul er mindre end 4 har vores rod fraktal objekt skabt et barn. Barnets dybde værdi er derfor nul. Vi har ligeledes aldrig sat barnets maxdepth, så den er derfor nul. Derfor har barnet ligeledes ikke dannet yderligere. Vi kan heller ikke se barnet, da det mangler bade material og mesh. Vi er nødt til at kopiere disse referencer fra sit forældreren. Derfor tilføjer vi en ny metode der tager sig af alle de nødvendige initieringer. 28

29 VI FØJER DET TIL SCRIPTET Føj linje til og erstat de gamle linjer med de ny linjer 29

30 30

31 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvad gør this? initialize kaldes før start this nøgleordet henviser til det aktuelle Først opretter vi det nye spil objekt. objekt eller struct hvis metode bliver Så vil en ny Fractal komponent bliver kaldt. oprettet og føjet til det. Det bliver brugt implicit hele tiden når der På dette tidspunkt ville dens Awake og henvises til ting fra den samme klasse. OnEnable metoder påberåbes, hvis de For eksempel, når vi har adgang depth havde eksisteret. kan vi gøre det via this.depth. Så gøres AddComponent metoden Man bruger det typisk når man skal sende færdig. en reference til objektet selv, ligesom vi gør med initialize. Umiddelbart efter påberåber vi initialize. Vi kalder nemlig initialize metoden i det Kaldet til at starte begynder ikke før nye efterkommer objekt, ikke fra næste frame. forælder objektet. 31

32 SKER DER NOGET? Når vi nu går ind i playmode vil fire børn blive oprettet, som forventet. De er dog ikke rigtig børn, da de alle vises i hierarkiet rod. Forældre-barn forholdet mellem spil objekter er defineret ved deres transformations hierarki. Så et barn er nødt til at gøre således at forælderen af den transformerede komponent svarer til den fraktale forælders transform. 32

33 NY KODE DER ORDNER HIERAKIET Føj linje 29 til 33

34 34

35 MEN HVOR ER BØRNENE? Indtil videre er børnene superimposed oven på deres forældre, hvilket betyder, at vi stadig kun se en enkelt kasse. Vi er nødt til at flytte dem ind i deres lokale rum, så de bliver synlige. Fordi de skal være mindre end deres forældre er vi nødt til at skalere dem også. Glem ikke at videregive denne værdi fra forælder til barn også. Så brug den til at sætte barnets lokale skala. Børnene skal som sagt flyttes så de kan ses, så lad os lægge dem lige op, så de rører deres Vi gør skaleringen konfigurerbar med en ny forældre. Vi antager, at forældrene har en variabel med navnet childscale og tildeler den en størrelse på én i alle retninger, hvilket er tilfældet værdi på 0,5 i inspektøren efter vi har føjet koden for den kube, som vi bruger. Flytning op af en til. halv sætter os på det punkt, hvor forældre og barn skal røre. Så vi er nødt til at flytte et yderligere værdi svarende til halvdelen af størrelsen af barnet. 35

36 NY KODE DER FLYTTER OG SKALERER Erstat linje med linje

37 37

38 38

39 FLERE BØRN I ANDRE RETNINGER Hvad vi laver nu ligner et tårn, men ikke rigtig en fraktal. Vi skal have det til at forgrene sig. Det gør vi ved at oprette flere børn per forælder. Det er nemt at bare oprette en anden genstand, men den skal også vokse i en anden retning. Derfor tilføjer vi en retnings parameter til vores Initialize metode og benytter den til at placere det andet barn til højre i stedet for op. 39

40 FLERE BØRN I ANDRE RETNINGER Erstat linje 20 med linje og føj det ny til linje 26 og 34 (28 og 36 hvis du har sat de første linjer ind) 40

41 41

42 LAD OS SÆNKE TEMPOET SÅ VI KAN SE FRAKTALEN GRO Da alle figurerne er skabt inden for et par frames går det for hurtigt til at vi kan se det vokse. Lad os bremse denne proces ned, så vi kan se det ske. Vi kan gøre dette ved at lade en coroutine skabe børnene. Tænk på coroutines som metoder, hvor du kan indsætte pause udsagn. Mens metodeaktiveringen er sat på pause fortsætter resten af programmet. Selvom dette synspunkt meget forenklet, er det hvad vi har brug for at gøre brug af lige nu. Vi flytter derfor de to linjer, der skaber børn, ind i en ny metode, CreateChildren. Denne metode er nødt til at have IEnumerator som en return type, hvilket stammer fra System.Collections namespace. Det er derfor Unity inkluderer det I deres standard script template og vi har bibeholdt det. I stedet for bare at kalde denne metode i Start, er vi nødt til at kalde det som et argument for Unitys StartCoroutine metode. Derefter føjes et pause direktiv inden vi opretter hvert barn. Vi gør dette ved at skabe et nyt WaitForSeconds objekt i et halvt sekund eller deromkring, hvorefter det gives tilbage til Unity. 42

43 LAD OS SÆNKE TEMPOET SÅ VI KAN SE FRAKTALEN GRO Erstat linje 18 og frem med den ny kode 43

44 44

45 45

46 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvad er en enumerator? Optælling (enumeration) er begrebet når man går gennem en samling (collection) ét element ad gangen, ligesom looping igennem alle elementer i et array. En optæller (enumerator) - eller iteratoren - er et objekt, der giver en grænseflade til denne funktion. System.Collections.IEnumerator beskriver en sådan grænseflade. Coroutines benytte dette, hvilket også er grunden til Unity har System.Collections i deres standard script skabelon, og derfor vi har den med. Hvad gør return? Du bruger return nøgleordet til at indikere, at en metode er færdig og hvad dens resultat er. Hvad du sender tilbage, skal passe til metodens type. Hvis det er en void metode skal man blot returnere noget. Det er ikke nødvendigt at have en returnsætning i slutningen af en void eller en special constructor metode, for alle andre metoder er det påkrævet. Det er muligt at have flere return-sætninger inde i en metode. I så fald er der flere mulige udgangspunkter. Man bruger typisk if statements til at afgøre, hvilken return der bliver brugt. 46

47 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvad gør yield? Et yield statement bruges af iterators. For at gøre enumeration mulig er man nødt til at holde styr på ens fremskridt. Dette indebærer noget standardtekst (boilerplate) kode, der stort set altid er den samme. Det vi gerne vil er reelt bare at kunne skrive return firstitem; return seconditem; indtil vi er færdige. Dette tillader yield statementet. Når man benytter yield bliver et enumerator objekt skabt bag kulissen. Derfor har vores CreateChildren metode IEnumerator som dens return type. Man kan også yield e en anden iterator. I så fald vil denne anden iterator blive behandlet fuldstændigt, så du kan kombinere dem på kreative måder. Hvordan virker coroutines? Når man opretter en coroutine i Unity laver man reelt en iterator. Når man sender den til StartCoroutine metoden bliver den opbevaret og bliver bedt om sin næste punkt hver frame, indtil den er færdig. Yield statements producerer elementerne. Statements i mellem - de ting, man ønsker skal ske - er bivirkninger af iteratoren der gør sit arbejde. Du kan give yield særlige ting som WaitForSeconds for at have mere kontrol over, hvornår din egen kode fortsætter, men den overordnede tilgang er blot en iterator. 47

48 48

49 LAD OS FØJE ET BARN TIL DEN ANDEN SIDE OGSÅ Føj linje til efter linje 29 49

50 50

51 BØRNENES RETNING RETTES TIL Det er et problem at børnene har samme retning som deres forældre. Det betyder, at et venstre barn, hvis forælder selv er et højre barn, vil befinde sig inde i sin bedsteforælder og vice versa. For at løse dette, vi nødt til at rotere børnene, så deres opadgående retning vil pege væk fra deres forældre. Dette løses ved at tilføje en orientering parameter til Initialize. Det er en quaternion der bruges til at indstille den lokale rotation af det nye barn. Det opadgående barn behøver ingen rotation, det højre barn har brug for at rotere 90 grader med uret, og venstre barn har brug for at rotere i den modsatte retning. 51

52 BØRNENES RETNING RETTES TIL Føj rettelserne til linje og linje 37 og føj linje 46 til 52

53 53

54 OPTIMERING AF KODEN GENNEM ARRAYS Koden er blevet lidt uhåndterlig. Lad os generalisere ved at flytte data retning og orientering til statiske arrays. Derved kan vi reducere CreateChildren til et kort loop og bruge barnet indeks som parameter for Initialize. 54

55 OPTIMERING AF KODEN GENNEM ARRAYS Erstat linje med linjerne 29-41, linje 37 (nu 45 efter ovenstående føjet til) rettes til og linje (nu 53-54) ændres 55

56 56

57 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvordan virker arrays? Arrays er objekter på en fast længde, som indeholder en lineær sekvens af variabler. Når man erklærer en variabel, angiver man ved at sætte kantede parenteser bag dens type at man ønsker et array af denne type. Så int myvariable; giver et heltal medens int [] myvariable; giver et array af heltal. Adgang til en af posterne inde i en array fås ved at angive dens array indeks - ikke dets position - i firkantet parentes bag variablen. Ved myvariable [0] får du den første post i arrayet, ved myvariable [1] får du den anden, og så videre. Det at lave et array og tildele det til variablen gøres med myvariable = new int [10]; Her laves der et nyt array med plads til ti poster. Alternativt kan du oprette det implicit ved angive dets oprindelige værdier mellem krøllede parenteser, hvilket myvariable = {1, 2, 3}; gør. 57

58 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvordan virker et for loop? En for-løkke er en kompakt måde at skrive en løkke, der gentager noget. for(int i = 0; i < 10; i++) { DoStuff(i); } I dette tilfælde bruger vi et heltal ved navn i som iteratoren. Den første del erklærer iterator heltal, den anden del kontrollerer løkkens tilstand, og den tredje del inkrementerer iteratoren. Du kan bruge en while-løkke til at få det nøjagtigt samme resultat, men det grupperer ikke iterator koden så pænt. Således er koden herefter det same som linjen ovenfor. int i = 0; while(i < 10) { DoStuff(i); i++; } i++ er en forkortelse for i+=1, som er en forkortelse for i = i + 1. Lad os nu indføre to børn med ved simpelt at tilføje deres data til arrays. En fremadrettet, den anden går baglæns. 58

59 TO BØRN MERE GENNEM ARRAYS Sæt linje ind efter linje 26 og linje efter linje 34 (32 uden de andre ny linjer) 59

60 60

61 61

62 EKSPLOSIV VÆKST Hvor mange kuber laver vi reelt? Da vi opretter fem børn per forælder vil det samlede antal kuber afhænge af den maksimale dybde. En maksimal dybde på nul frembringer kun en terning, den oprindelige rod. En maksimal dybde på en frembringer fem yderligere børn, for i alt seks kuber. Da det er en fraktal vil dette mønster gentages, og vi kan skrive det som funktionen f (0) = 1, f (n) = 5 f (n - 1) + 1. Ovenstående funktion frembringer sekvensen 1, 6, 31, 156, 781, 3906, 19531, , og så videre. Du vil se disse tal vise sig som mængden af draw opkald i game view statistics i Unity. Hvis du har dynamic batching aktiveret, vil det være summen af Draw opkald og Saved by batching. Pas på en en for høj maksimal dybe, da en for høj vil resultere i en elendig framerate. Udover mængde er varighed er også et problem. Lige nu holder vi pause et halvt sekund, før der oprettes et nyt barn. Dette frembringer synkroniserede byger af vækst i et par sekunder. Vi kan distribuere væksten mere jævnt ved randomisering af forsinkelserne. Dette resulterer også i et mere uforudsigeligt og organisk mønster. 62

63 ERSTAT DEN FASTE FORSINKELSE MED ET TILFÆLDIGT INTERVAL MELLEM 0,1 OG 0,5 OG ØG DEN MAKSIMALE DYBDE TIL 5 Erstat indholdet i parentesen på linje 41 63

64 64

65 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvordan virker random.range? Random er en hjælpeprogram klasse, som indeholder ting til at skabe tilfældige værdier. Dens Range metode kan bruges til at generere en tilfældig værdi inden for en rækkevidde. Der er to versioner af Range metoden. Man kan kalde den med to floats, i hvilket tilfælde den returnerer en float mellem minimum og maksimum værdi, begge inklusive. Alternativt kan man kalde range med to heltal, i hvilket tilfælde det returnerer et heltal mellem den mindste, inklusive, og maksimum, eksklusiv. Det typiske eksempel på brug af denne version er at vælge et indeks tilfældigt, somearray[random.range(0, somearray.length)]. 65

66 66

67 LAD OS FØJE FARVE TIL Føj koden på linje 18 til 67

68 68

69 LAD OS FØJE FARVE TIL Vi føjer farve til ved at interpolere fra hvid ved roden til gul på de mindste børn. Den statiske Color.Lerp metode er en praktisk måde at gøre dette på. Interpolatoren går fra nul til én, som vi gør ved at dividere vores aktuelle dybde med den maksimale dybde. Da vi ikke ønsker en heltal division konverterer vi dybde til en float først. Hvad gør lerp? Lerp er en forkortelse for lineær interpolation. Dens typiske signatur er Lerp (a, b, t) og den beregner a + (b - a) * t, med t fastspændt til 0-1 intervallet. Flere versioner findes med forskellige former, herunder float, vektorer og farver. 69

70 LAD OS OPTIMERE LIDT Lad os nøjes med at oprette ét materiale kopi per dybde i stedet for per terning. Vi tilføjer et nyt aray felt til at holde materialerne. Derefter kontrollerer vi om en matrix findes i Start, og hvis ikke kaldes en ny InitializeMaterials metode. I denne metode vil vi eksplicit kopiere vores materiale og ændre dens farve per dybde. I stedet for at videresende materiale henvisning fra forældre til barn, videresendes materiale arrray henvisningen i stedet. Hvis vi ikke gør det vil hvert barn blive tvunget til at skabe sit eget materialer array og vi ville ikke have løst problemet. 70

71 LAD OS OPTIMERE LIDT Føj koden linje og til, ret slutningen af linje 31 og fjern linje

72 72

73 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvad er null? Standardværdien af en variabel, der er ikke en simpel værdi, er null. Det betyder, at den variable ikke refererer noget. Forsøger at påberåbe sig eller få adgang til alt fra en variabel, der er null resulterer i en fejl. Du kan teste for denne værdi for at sikre, at det ikke sker. Du kan også indstille en sådan variabel til null selv, hvis du ikke længere har brug for, hvad det var refererer. Bemærk, at objekter ikke automatisk ophøre med at eksistere, når du indstiller en henvisning til dem til null. Kun når der er ingen tilbage med en henvisning til dem, vil de blive kandidater til fjernelse af affaldsindsamling. 73

74 GENNEMGANG AF SCRIPTET INDTIL VIDERE Hvorfor er materials ikke static? Vi gør ikke materiale array et statisk, fordi det afhænger af den maksimale dybde, som kan være forskellig fra fraktal til fraktal. På den måde sikrer vi at der kan være flere fraktaler på samme tid og selvfølgelig kan de have forskellige maksimale dybder. Lad os ændre den sidste farve til magenta bageftervi retter også interpolatoren, så vi stadig kan se den fulde overgang til gul. Vi sørger også lige for at det resulterer i en lidt pænere transition. 74

75 VI ÆNDRER FARVEN TIL MAGENTA Føj koden linje 19-20, ret slutningen af linje 22 (sæt 22 og 23 sammen og ret) og føj linje 24 til 75

76 76

77 FLERE FARVER Vi tilføjer en anden farve progression, fra hvid til cyan med røde spidser. Vi bruger et enkelt todimensional array til at holde dem begge, og vælger derefter et tilfældigt, når vi har brug for et materiale På den måde vil vores fraktal se anderledes ud hver gang går vi afspilningstilstand. Hvordan virker to-dimensionelle arrays? Man kan tilføje en anden dimension til et array ved at indsætte et komma inde i dets parentes. Man er derefter også nødt til at give to indekser, når man vil have adgang til et af array-elementerne. Denne fremgangsmåde omfatter også højere dimensioner. 77

78 FLERE FARVER Føj, til [] i linje 14, føj, 2 til linje 17, ret linje og føj ændringerne til slutningen af linje 36 78

79 79

80 80

81 FRAKTAL Koden indtil videre ryddet en smule op 81

82 82

83 83

84 84

85 FORSKELLIGE MESHES FOR MERE VARIATION Føj ændringerne på linje 22, linje 49 og linje 66 85

86 86

87 87

88 88

89 89

90 MERE IRREGULÆR OG ORGANISK Selvom vores fraktal virker nu ser den ikke specielt organisk ud, da alle arme er lige lange. Lad os gøre noget ved det! Til det formål introducerer vi en ny public spawnprobability variabel. Vi sender den med rundt og lader den tilfældigt bestemme om der skal dannes et barn eller om det skal hoppes over. En sandsynlighed på 0 betyder at der ikke vil dannes nogle børn overhovedet medens en på 1 betyder at alle børn vil dannes. Den statiske Random.value skaber en værdi mellem nul og et. Den sammenlignes med spawnprobability lader os bestemme om der skal dannes et nyt barn eller ej. 90

91 MERE IRREGULÆR OG ORGANISK Føj ændringerne på linje 26, linje 60 og linje 72 91

92 92

93 93

94 94

95 ROTERING AF FRAKTALEN Indtil videre er vores fraktal ubevægelig, lad os gøre den mere interessant ved at lade den bevæge sig. Vi gør dette ved at tilføje en simpel update metode der roterer y-aksen med en hastighed på 3o grader i sekundet. 95

96 ROTERING AF FRAKTALEN Føj koden på linje til 96

97 97

98 98

99 ROTERING AF FRAKTALEN Nu roterer fraktalen, men med et fast tempo hvor alt andet er tilfældigt genereret. Det kan vi ikke have, men vi skal også have en maksimum hastighed så man kan nå at se rotationerne. Bemærk, at vi er nødt til at initialisere vores rotationshastighed i Start - ikke i Initialize - fordi rod elementet også skal rotere. 99

100 ROTERING AF FRAKTALEN Føj koden linje på 45-47, linje 50 og linje 78 til og ret linje

101 101

102 102

103 103

104 LAD OS SLUTTE AF MED EN SMULE MERE KAOS Vi kan gøre fraktalen endnu mere skæv på mange måder, men lad os slutte af med at skubbe dens elementer en smule med en twist rotation. I kan gøre meget, meget mere ved at pille ved de forskellige parametre! Prøv jer frem! 104

105 ROTERING AF FRAKTALEN Føj koden linje på 48, linje 53 og linje 82 til 105

106 106

107 107

108 TAK FORDI I FULGTE MED! Lad os lave noget andet sammen en anden gang 108

UNITY OG KODE. Simpelt FPS

UNITY OG KODE. Simpelt FPS UNITY OG KODE Simpelt FPS LAV ET NYT UNITY 3D PROJEKT IMPORTER PARTICLESYSTEMS PAKKEN STANDARD INDSTILLINGER IMPORTER CHARACTERS PAKKEN STANDARD INDSTILLINGER GEM SCENEN SOM SCENE_MAIN FØJ ET PLANE TIL

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

Læs mere

Lektion 6. Grundlæggende programmering i VR

Lektion 6. Grundlæggende programmering i VR Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Villa 2. maj 202 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Nasser 9. april 20 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

Læs mere

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1. Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:

Læs mere

Kom godt i gang med Fable-robotten

Kom godt i gang med Fable-robotten Kom godt i gang med Fable-robotten 1. Først skal du installere programmet på din computer. Gå ind på shaperobotics.com og under support vælger du download: Her vælger du, under PC App om du kører Windows

Læs mere

Fable Kom godt i gang

Fable Kom godt i gang Fable Kom godt i gang Opdateret: 26-03-2018 Indholdsfortegnelse 1. Først skal du installere programmet på din computer 3 2. Når programmet er installeret er du klar til at pakke robotten ud 4 3. Nu er

Læs mere

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere

Mircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)

Mircobit Kursus Lektion 4   (Du skal her vælge Lets Code Og herefter Block Editor.) Mircobit Kursus Lektion 4 http://microbit.org/ (Du skal her vælge Lets Code Og herefter Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. I skulle lave et stop ur man kunne

Læs mere

Hvad er Objekter - Programmering

Hvad er Objekter - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som

Læs mere

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af

Læs mere

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden. Programmering 1999 Forelæsning 5, tirsdag 14. september 1999 Oversigt Mere om klasser og objekter Klassefelter: static Konstante felter: final Indkapsling og synlighed: private og public Overlæsning af

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Hukommelsesspil. Introduktion. Scratch

Hukommelsesspil. Introduktion. Scratch Scratch 2 Hukommelsesspil All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code. You can

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%

Læs mere

Fang Prikkerne. Introduktion. Scratch

Fang Prikkerne. Introduktion. Scratch Scratch 2 Fang Prikkerne All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Lektion 3. Grundlæggende programmering i VR

Lektion 3. Grundlæggende programmering i VR Lektion 3 Grundlæggende programmering i VR Plan for i dag UML Usecase diagrammer Aktivitets diagrammer Klasse diagrammer Udforskning af forskelligt VR og andre måder at udvide virkeligheden på Cardboard

Læs mere

DRONNINGER (QUEENS) Opgave 1

DRONNINGER (QUEENS) Opgave 1 DRONNINGER (QUEENS) I denne opgave vil vi beskæftige os med det såkaldte 8-dronningeproblem, hvor man skal placerede 8 dronninger på et 8 x 8 skakbræt, således at ingen af dronningerne kan slå hinanden.

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

METODER ARV KLASSER. Grundlæggende programmering Lektion 5 METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen

Læs mere

Fable Kom godt i gang

Fable Kom godt i gang Fable Kom godt i gang Vers. 1.3.1 Opdateret: 29-08-2018 Indholdsfortegnelse 1. Installer programmet 3 2. Pak robotten ud 5 3. I gang med at programmere 6 4. Programmér Fable til at køre fra 90 til -90

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering 1 / 36 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Lektion 4. Grundlæggende programmering i VR

Lektion 4. Grundlæggende programmering i VR Lektion 4 Grundlæggende programmering i VR Plan for i dag Simpelt FPS C# og objekt orienteret programmering Metoder Loops / løkker Random Vi koder 3D uden modeller Simpelt FPS Træk kuglen fra hierarkiet

Læs mere

Funktionalligninger. Anders Schack-Nielsen. 25. februar 2007

Funktionalligninger. Anders Schack-Nielsen. 25. februar 2007 Funktionalligninger Anders Schack-Nielsen 5. februar 007 Disse noter er en introduktion til funktionalligninger. En funktionalligning er en ligning (eller et ligningssystem) hvor den ubekendte er en funktion.

Læs mere

Unity Guide 1 CONTENTS

Unity Guide 1 CONTENTS Unity Guide 1 CONTENTS Unity interface... 2 Components... 4 Materials... 7 Scripts opbygning... 8 Terrain... 8 Animations... 9 Particle system... 11 Audio... 11 Sprites... 12 GUI... 14 UNITY INTERFACE

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

Klasser og objekter. (Afsnit i manualen)

Klasser og objekter. (Afsnit i manualen) Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser

Læs mere

Import af rekursivt (parent-child) hierarki i Palo

Import af rekursivt (parent-child) hierarki i Palo Import af rekursivt (parent-child) hierarki i Palo Dette dokument beskriver hvordan et simpelt rekursivt (parent-child) hierarki kan importeres ind i Palo på forskellige måder via SQL og samtidig bibeholde

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN 5. OPSÆTNING DOKUMENTSKABELONER Under fanen Dok. skabeloner kan du arbejde med de skabeloner som du har i systemet, eller du kan oprette nye. I denne vejledning kigger vi på hvordan du kan tilrette selve

Læs mere

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen

Læs mere

Michael Jokil 11-05-2012

Michael Jokil 11-05-2012 HTX, RTG Det skrå kast Informationsteknologi B Michael Jokil 11-05-2012 Indholdsfortegnelse Indledning... 3 Teori... 3 Kravspecifikationer... 4 Design... 4 Funktionalitet... 4 Brugerflade... 4 Implementering...

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Løsning af møntproblemet

Løsning af møntproblemet Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet

Læs mere

Daniel Kaasing 2012.3 Roskilde Tekniske Gymnasium 13-05-2015. Programmeringsjournal. Lavet af Daniel Kaasing. Lærer: Karl G Bjarnason

Daniel Kaasing 2012.3 Roskilde Tekniske Gymnasium 13-05-2015. Programmeringsjournal. Lavet af Daniel Kaasing. Lærer: Karl G Bjarnason Programmeringsjournal Lavet af Daniel Kaasing Lærer: Karl G Bjarnason 1 "Jeg bekræfter herved med min underskrift, at opgavebesvarelsen er udarbejdet af mig. Jeg har ikke anvendt tidligere bedømt arbejde

Læs mere

Vinkelrette linjer. Frank Villa. 4. november 2014

Vinkelrette linjer. Frank Villa. 4. november 2014 Vinkelrette linjer Frank Villa 4. november 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Mircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)

Mircobit Kursus Lektion 3   (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.) Mircobit Kursus Lektion 3 http://microbit.org/ (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. Man skulle lave et tabel

Læs mere

Dit eventyr med robotter Der er dig, der bygger

Dit eventyr med robotter Der er dig, der bygger Dit eventyr med robotter Der er dig, der bygger Indhold Introduktion... 3 Edison og LEGO-kompatibilitet... 4 Eventyr 1 EdGravemaskine... 5 Eventyr 2 EdPrinteren... 17 Side 2 Introduktion EdBog3 Det er

Læs mere

Matricer og lineære ligningssystemer

Matricer og lineære ligningssystemer Matricer og lineære ligningssystemer Grete Ridder Ebbesen Virum Gymnasium Indhold 1 Matricer 11 Grundlæggende begreber 1 Regning med matricer 3 13 Kvadratiske matricer og determinant 9 14 Invers matrix

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

fortsætte høj retning mellem mindre over større

fortsætte høj retning mellem mindre over større cirka (ca) omtrent overslag fortsætte stoppe gentage gentage det samme igen mønster glat ru kantet høj lav bakke lav høj regel formel lov retning højre nedad finde rundt rod orden nøjagtig præcis cirka

Læs mere

Mircobit Kursus Lektion 2

Mircobit Kursus Lektion 2 Mircobit Kursus Lektion 2 I denne lektie skal vi arbejde videre med lille mini computer kaldt microbit. Du kan finde Simulatoren & Programmet til micobit her: http://microbit.org/ (Du skal her vælge Lets

Læs mere

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere

Nyheder i MagiCAD 2010.5 til AutoCAD Generelle nyheder VIGTIGT!

Nyheder i MagiCAD 2010.5 til AutoCAD Generelle nyheder VIGTIGT! Nyheder i MagiCAD 2010.5 til AutoCAD Den nye version af MagiCAD til AutoCAD 2011 er frigivet. Kunder med subskription aftale har allerede fået en mail med oplysninger om hvordan den nye version kan downloades.

Læs mere

Høvdingebold. Introduktion. Scratch

Høvdingebold. Introduktion. Scratch Scratch 2 Høvdingebold All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code. You can register

Læs mere

Dokumentation af programmering i Python 2.75

Dokumentation af programmering i Python 2.75 Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt

Læs mere

Vektorfunktioner. (Parameterkurver) x-klasserne Gammel Hellerup Gymnasium

Vektorfunktioner. (Parameterkurver) x-klasserne Gammel Hellerup Gymnasium Vektorfunktioner (Parameterkurver) x-klasserne Gammel Hellerup Gymnasium Indholdsfortegnelse VEKTORFUNKTIONER... Centrale begreber... Cirkler... 5 Epicykler... 7 Snurretoppen... 9 Ellipser... 1 Parabler...

Læs mere

Navn. Efternavn. Øvelsens formål: Forstå hvordan positive og negative magnetiske poler kan demonstrere skubbekræfter og trækkræfter.

Navn. Efternavn. Øvelsens formål: Forstå hvordan positive og negative magnetiske poler kan demonstrere skubbekræfter og trækkræfter. Magnetiske poler Øvelsens formål: Forstå hvordan positive og negative magnetiske poler kan demonstrere skubbekræfter og trækkræfter. 1 1. Angiv fem genstande, som en magnet tiltrækker. 2. Hvad kalder man

Læs mere

Udarbejdet af CFU Absalon

Udarbejdet af CFU Absalon Chatbots i Scratch Introduktion: En chatbot er et lille program, der kan chatte. De bruges mange steder på internettet, enten for at kunne hjælpe i nogle bestemte situationer eller for at underholde. De

Læs mere

Arbejde med 3D track motion

Arbejde med 3D track motion Arbejde med 3D track motion Gary Rebholz I sidste måneds Tech Tip artikel gennemgik jeg det grundlæggende i track motion. Selv om vi ikke gennemgår alle værktøjer i Track Motion dialog box vil du alligevel

Læs mere

i tredje brøkstreg efter lukket tiendedele primtal time

i tredje brøkstreg efter lukket tiendedele primtal time ægte 1 i tredje 3 i anden rumfang år 12 måle kalender lagt sammen resultat streg adskille led adskilt udtrk minus (-) overslag afrunde præcis skøn efter bagved foran placering kvart fjerdedel lagkage rationale

Læs mere

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)

Læs mere

Oprids over grundforløbet i matematik

Oprids over grundforløbet i matematik Oprids over grundforløbet i matematik Dette oprids er tænkt som en meget kort gennemgang af de vigtigste hovedpointer vi har gennemgået i grundforløbet i matematik. Det er en kombination af at repetere

Læs mere

Matlab script - placering af kran

Matlab script - placering af kran Matlab script - placering af kran 1 Til at beregne den ideelle placering af kranen hos MSK, er der gjort brug af et matlab script. Igennem dette kapitel vil opbygningen af dette script blive gennemgået.

Læs mere

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger enote 11 1 enote 11 Lineære differentialligningers karakter og lineære 1. ordens differentialligninger I denne note introduceres lineære differentialligninger, som er en speciel (og bekvem) form for differentialligninger.

Læs mere

Quick startvejledning KUBO KODNING+

Quick startvejledning KUBO KODNING+ Quick startvejledning KUBO KODNING+ KUBO er verdens første undervisningsrobot baseret på puslespil, som er designet til at ændre elever fra passive forbrugere af teknologi til myndige skabere. Ved at simplificere

Læs mere

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP()

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP() Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP() John Andersen, Læreruddannelsen i Aarhus, VIA Et kast med 10 terninger gav følgende udfald Fig. 1 Result of rolling 10 dices

Læs mere

Fraktaler. Mandelbrots Mængde. Foredragsnoter. Af Jonas Lindstrøm Jensen. Institut For Matematiske Fag Århus Universitet

Fraktaler. Mandelbrots Mængde. Foredragsnoter. Af Jonas Lindstrøm Jensen. Institut For Matematiske Fag Århus Universitet Fraktaler Mandelbrots Mængde Foredragsnoter Af Jonas Lindstrøm Jensen Institut For Matematiske Fag Århus Universitet Indhold Indhold 1 1 Komplekse tal 3 1.1 Definition.......................................

Læs mere

3. Om skalamønstrene og den indfoldede orden

3. Om skalamønstrene og den indfoldede orden Dette er den tredje af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 3. Om skalamønstrene og den indfoldede orden Lad os begynde

Læs mere

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign 28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par

Læs mere

Løsning af simple Ligninger

Løsning af simple Ligninger Løsning af simple Ligninger Frank Nasser 19. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Arbejde med Regioner Lister, Playlists, og Cutlists i Sound Forge Pro

Arbejde med Regioner Lister, Playlists, og Cutlists i Sound Forge Pro Arbejde med Regioner Lister, Playlists, og Cutlists i Sound Forge Pro Gary Rebholz Du har sikkert allerede ved, at Sound Forge Pro software kan bruges til en imponerende række af audio opgaver. Alt fra

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Vejledning til opbygning af hjemmesider

Vejledning til opbygning af hjemmesider Side 1 af 9 Vejledning til opbygning af hjemmesider Hvis du er inde på din klubs hjemmeside, fx på forsiden, kan du nu gå i gang med at redigere. For at få redigeringsværktøjet frem, skal du klikke på

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

Forelæsning Uge 4 Mandag

Forelæsning Uge 4 Mandag Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3 DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget

Læs mere

Python programmering. Per Tøfting. MacFest

Python programmering. Per Tøfting. MacFest Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer

Læs mere

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...

Læs mere

Programmering for begyndere Lektion 2. Opsamling mm

Programmering for begyndere Lektion 2. Opsamling mm Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger

Læs mere

Introduktion til funktioner, moduler og scopes i Python

Introduktion til funktioner, moduler og scopes i Python Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).

Læs mere

Funktionsterminologi

Funktionsterminologi Funktionsterminologi Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette

Læs mere

Klasse 1.4 Michael Jokil 03-05-2010

Klasse 1.4 Michael Jokil 03-05-2010 HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk

Læs mere

i tredje sum overslag rationale tal tiendedele primtal kvotient

i tredje sum overslag rationale tal tiendedele primtal kvotient ægte 1 i tredje 3 i anden rumfang år 12 måle kalender hældnings a hældningskoefficient lineær funktion lagt n resultat streg adskille led adskilt udtrk minus (-) overslag afrunde præcis skøn formel andengradsligning

Læs mere

Funktionsterminologi

Funktionsterminologi Funktionsterminologi Frank Villa 17. januar 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

Læs mere

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje. Maple Dette kapitel giver en kort introduktion til hvordan Maple 12 kan benyttes til at løse mange af de opgaver, som man bliver mødt med i matematiktimerne på HHX. Skærmbilledet Vi starter med at se lidt

Læs mere

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

Egenskaber ved Krydsproduktet

Egenskaber ved Krydsproduktet Egenskaber ved Krydsproduktet Frank Nasser 23. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

Læs mere

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer: Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus

Læs mere

Pædagogisk vejledning til. Materialesæt. Sphero. http://via.mitcfu.dk/99872760

Pædagogisk vejledning til. Materialesæt. Sphero. http://via.mitcfu.dk/99872760 Pædagogisk vejledning til Materialesæt Sphero http://via.mitcfu.dk/99872760 Pædagogisk vejledning til materialesættet Sphero Materialesættet kan lånes hos VIA Center for Undervisningsmidler og evt. hos

Læs mere

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen. Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19

Læs mere

18 Multivejstræer og B-træer.

18 Multivejstræer og B-træer. 18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere