FP-2: Supplerende noter i funktionsprogrammering

Størrelse: px
Starte visningen fra side:

Download "FP-2: Supplerende noter i funktionsprogrammering"

Transkript

1 FP-2: Supplerende noter i funktionsprogrammering Nils Andersen juli 2005 (revideret juli 2006) Datalogisk Institut Københavns Universitet

2 Redaktion: c Nils Andersen 2006 ISSN Forord Disse noter er skrevet med henblik på den indledende programmeringsundervisning i funktionsprogrammering på Datalogisk Institut ved Københavns Universitet (DIKU). Siden den første version fra 1996 er noterne løbende blevet omarbejdet, og ved Det Naturvidenskabelige Fakultets overgang i efteråret 2004 fra semester- til kvartalsstruktur måtte en del af stoffet fjernes. Efter fremkomsten af lærebogen FP-1 [5], (Hansen og Rischel: Introduction to Programming using SML) blev noterne omskrevet, så de først og fremmest behandlede emner, der enten kun berøres overfladisk eller helt forbigås i lærebogen. Noternes første seks kapitler udgør en selvstændig fremstilling, men senest inden kapitel 7 (Tegn, tekster, udskrivning) er det nødvendigt at sætte sig ind i typen af lister [5, Chapt. 5]. Tak til kollegaer og studerende, som gennem årene har bidraget med kritik og kommentarer, og en særlig tak til Jakob Grue Simonsen for hans pertentlige gennemlæsning. Yderligere kommentarer, forslag, oplysninger om trykfejl og lignende modtages gerne. De kan sendes til nils@diku.dk 2

3 Indhold 1 Programstyret databehandling Data Databehandling Analoge og digitale data Automatisering Universalitet Programmering Det imperative princip Det applikative princip Højere programmeringssprog Valg af programmeringssprog Ind- og udlæsning Alfabeter ISO s 7 bit-kode ISO s 8 bit-kode Unicode Funktionsbegrebet Den matematiske opfattelse Den datalogiske opfattelse Litteratur Dialog med Standard ML Dialogen Foranstillede (monadiske) operatorer Sandhedsværdi Værdierklæring Afslutning Gruppering Associering Prioritet Funktioner Funktionserklæring Funktionskald, parenteser og prioritet Argumentsæt Sprogsystemets faser

4 2.4.1 Navne Fem simple typer To typer tal Sandhedsværdier Tegn Tekster Sammenfatning Opgaver Programmeringssproget Standard ML Funktionsdefinition med valg mellem flere parametermønstre Evaluering af funktionskald Virkefelt Redefinition Rekursion Navnerum; biblioteksmoduler Typen af heltal Heltalsdivision Euklids algoritme Standardundtagelser Ikke-udtømmende parametermønstre Overløb Typen af sandhedsværdier Striks eller efterladende strategi? Betingelse som skildvagt Konjunktion og disjunktion Koncis omgang med sandhedsværdier De øvrige simple typer Typen af brudne tal Typerne af tegn og tekster Overlæssede symboler Typebegrænsning Definitionen af Standard ML Skandering i grundsymboler Gruppering i syntaktiske helheder Sammenfatning Opgaver Produkttype. Terminering. Blokke Strukturerede typer Sæt Enhedstypen Komponentvalg Projektionsfunktionerne Joker Blok

5 4.4.1 Analytisk brug af val Udtryk og erklæringer; let og local Polymorfi Værdipolymorfi Kast af standardundtagelse Robusthed Uendelig løkke Sammenfatning Opgaver Konstruktion af funktioner Problemløsning Et eksempel: Hexadecimale tegnkoder Rekursion Fakultetsfunktionen Virkning af funktionskald Rekursiv problemløsning Ræsonneren om funktionskald Indsættelse Programnedskrivning Navnevalg Opstilling Kommentarer Systematik Afprøvning Bevis eller afprøvning? Afprøvningsdata i programteksten Udformning af testdata Programkonstruktion Hanois tårn Egenskaber og definitioner Kaldtræer Opgaver Højereordensfunktioner Funktion som funktionsværdi Parentesregler ved funktionskald og funktionstype Sekventialisering Funktion af tupel eller sekventialiseret funktion? Operator som funktion Funktion som funktionsargument Anonym funktion Funktionserklæring med val Sammenfatning Opgaver

6 7 Tegn, tekster, udskrivning Typen string af tekster Typen char af tegn Typeerklæring Eksempler Majuskler Decimale talord Opstilling Listekombinatoren map Sammenfatning Opgaver Naïv sortering Naboombytning Boblesortering Indsættelsessortering Udtagelsessortering Sammenfatning Opgaver Et større eksempel: kalender Rektangulære billeder Opdeling af en liste i dellister En enkelt måneds billede Ugedag Månedsdata Skudår De enkelte måneder Opsamling af månedsdata Kalenderfunktionen Hele programmet Udnyttelse af listefunktionalen map Hele programmet på kompakt form Opgaver Kombinatorisk søgning Det grådige princip Alle løsninger Kaste og gribe undtagelser Blindgydesøgning Problemet med de otte dronninger Sammenfatning Opgaver

7 11 Køretidseffektivitet Eksempel: potensopløftning En forbedring Måling af ressourceforbrug Beregning af udførelsestid Funktioners vækst Store O-notation Store Ω- og store Θ-notation Effektivitet Listespejling Analyse af listesammenstillen Analyse af funktionen spejl Programtransformation Sammenfatning Opgaver Effektiv sortering Ineffektiv sortering En nedre grænse for sorteringstid Forbedring Flettesortering Analyse af flettesortering Kviksortering Analyse af kviksortering Effektiv sortering Tilfældige tal Pseudo-tilfældige tal Sammenfatning Opgaver Litteratur 167 A Styretegn 169 B Engelsk-dansk ordliste 173 B.1 Ordliste for de enkelte afsnit i lærebogen B.1.1 Chapter 1: Getting started B.1.2 Chapter 2: Basic values and operators B.1.3 Chapter 3: Tuples and records B.1.4 Chapter 4: Problem solving I B.1.5 Chapter 5: Lists B.1.6 Chapter 6: Problem solving II B.1.7 Chapter 7: Tagged values and partial functions B.1.8 Chapter 8: Finite trees B.2 Engelsk-dansk ordliste

8 C Indeks 183 8

9 Kapitel 1 Programstyret databehandling I betragtning af, at en computer tilsyneladende hverken producerer eller forarbejder eller transporterer noget fysisk håndgribeligt materiale, kan man undre sig over disse apparaters store betydning og udbredelse. Dette kapitel indeholder nogle mere principielle overvejelser over en computers funktion. 1.1 Data Det er centralt, at computere ikke arbejder med fænomenerne selv, men med repræsentationer af dem eller, som man også siger, med data. Ordbogsdefinitionen 1 af data er: En formaliseret repræsentation af kendsgerninger eller forestillinger på en sådan form, at den kan kommunikeres eller omformes ved en eller anden proces. Bemærkning: En repræsentation kan tage sigte på menneskelig tolkning (fx trykt tekst) eller på tolkning ved hjælp af apparatur (fx hulkort eller elektriske signaler). omverden perception fænomen forståelse virkelighed tanke bevidsthedsindhold information repræsentation symbol tolkning Figur 1.1: Forholdet imellem omverden, tanke og sprog. sprog Forholdet imellem omverdenen og menneskets erkendelse af den, beskaffenheden af vores bevidsthed og tilsvarende problemer behandles og diskuteres i filosofisk og datalogisk litteratur. Spørgsmålene er vanskelige, og der er ingenlunde enighed om svarene, men man kan vælge at anskue sammenhængen på følgende måde (se figur 1.1): I det bombardement af sanseindtryk og udfordringer, den omgivende virkelighed påtrykker os, forsøger mennesker 1 fra [1]. data 9

10 at orientere sig ved at danne ideer og begreber. Skal sådanne bevidsthedsfænomener huskes til senere, kommunikeres til andre eller på anden måde behandles uden for bevidstheden, må de formes som talte eller skrevne ord eller andre symboler, der da (i henhold til ovenstående definition) fungerer som data. Sagt på en anden måde er data den form, tanker og ideer fremtræder på, når de befinder sig uden for et menneskes bevidsthed, og der er en konvention for, hvorledes de skal tillægges betydning. Overgange mellem de tre faser finder sted i begge retninger: Ord og begreber foranlediges som nævnt af virkelighedens ydre påvirkninger og dannes i en analyse, der givetvis i høj grad er sprogligt og kulturelt betinget; man kunne sige, at ideerne udgjorde en form for model af det studerede fænomen. Den anden vej siges vi at have forstået et begreb, hvis vi er klare over, hvilke praktiske betydninger det dækker. Begreber kan så repræsenteres i form af symboler, og omvendt kan symboler fortolkes som bestemte begreber. 1.2 Databehandling indgangsdata addition af decimale talord dataproces 48 udgangsdata Figur 1.2: Databehandling. I de mange situationer, hvor man benytter repræsentationer af ting i stedet for tingene selv, foretager man en databehandling. I denne brede betydning er fænomenet ikke nyt: opbevaring eller afsendelse af en lertavle med en meddelelse i kileskrift ligesom beregning på en abacus (kugleramme) var i henhold til begrebets definition databehandling. Når databehandling finder sted, foreligger der nogle indgangsdata eller inddata (eng.:input), hvoraf der ved en dataproces dannes tilhørende udgangsdata eller uddata (eng.:output), se figur 1.2. En del af årsagen til, databehandling er så nyttig, kan forklares ved at opfatte den som simulering: Der er en proces, man gerne vil vide noget om, men af en eller anden grund ønsker man ikke, den skal udspille sig i virkeligheden. Det kan være, den tager for lang tid (hvordan bliver vejret i morgen?), er for dyr (opfør et nyt kraftværk!), destruktiv (hvad er effekten af en bombesprængning?), forurenende, eller der kan være andre grunde til, at man ikke ønsker et reelt eksperiment. Ved at simulere processen i en databehandling kan man alligevel (i det omfang, modellen er troværdig) komme til kendskab om den. Denne opfattelse illustreres af figur 1.3 og udgør vores bedste bud på et svar på det indledende spørgsmål om, hvorfor computere egentlig er nyttige. Mange EDB-anvendelser kan beskrives ud fra figur 1.3, men i en moderne hverdag tager man også en del hjælpemidler i brug, som kun langt ude harmonerer med opfattelsen af databehandling som simulering: supermarkedets stregkodelæser og dankortautomat, pladsreservationssystemer (for teatre, færge- og flyselskaber) og et elektronisk kontaktur er eksempler på databehandlingssystemer. 10

11 virkelighedens plan det bevidstheds- eller begrebsmæssige plan modellering repræsentation proces, der ønskes studeret indgangs- fænomen indgangsoplysninger udgangsfænomen indsigt resultater tolkning sprogets eller kalkulens plan inddata dataproces uddata Figur 1.3: Databehandling opfattet som simulering. 1.3 Analoge og digitale data Man skelner mellem analog og digital repræsentation af information. Hvis der ved repræsentationen benyttes en længde, vinkel, strøm, spænding eller anden kontinuert varierende fysisk størrelse, kaldes det analoge data. I en analogregnemaskine benyttes der analoge signaler i de centrale kredsløb; udviklingen inden for elektronik har imidlertid betydet, at man nu kan opnå langt større hastighed og præcision ved at benytte digital teknik. (Det er den samme udvikling, man i øjeblikket ser inden for telefon-, radio- og fjernsynstransmission.) Digitale data forudsætter et vedtagent alfabet af såkaldte tegn (eng.:character), og i en digital repræsentation, som også kaldes et ord, er der til hver af en række positioner knyttet et tegn. Den skrivemåde for ikke-negative hele tal, som vi har fra araberne, er et eksempel på digital repræsentation: Tegnene er de ti decimale cifre, og positionerne betegner antallet af enere, tiere, hundreder, osv., regnet fra højre (fordi arabisk læses fra højre mod venstre). Vi vil skelne mellem et tal, som er det matematiske begreb, og dets repræsentation som talord. Med et givet antal positioner udnytter det arabiske talsystem mulighederne optimalt: har man for eksempel tre cifre til rådighed, kan der dannes forskellige talord, som bruges til at betegne de 1000 forskellige tal fra 0 (betegnet 000) til 999. Det underliggende princip kaldes radixnotation og er ikke afhængigt af, at alfabetet netop har ti forskellige tegn: Systemet kan bruges for et hvilket som helst alfabet, når der blot mindst er to forskellige tegn i det. (Man kan sågar tillade forskellige alfabeter for hver af de forskellige positioner.) Bruges kun de to cifre 0 og 1, fås det binære talsystem eller totalssystemet; et binært ciffer kaldes også en bit. Skrevet binært begynder talrækken 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001,... I disse noter skal vi kun interessere os for digitale data. 11

12 1.4 Automatisering Data skal (det ligger i selve definitionen) kunne behandles af en proces. Udførelse af de fire elementære regningsarter på decimale talord ciffer for ciffer under brug af mente, lån, den lille tabel og så videre er eksempler på sådanne processer. De nævnte metoder går helt slavisk frem, og i 1642 konstruerede Blaise Pascal ( ) en mekanisk regnemaskine, som kunne addere og subtrahere sekscifrede decimale talord; moderne elektroniske lommeregnere kan behandle flere cifre og har mange flere funktioner. Selv om en automatisk regnemaskine kan aflaste megen triviel talbehandling, skal man dog stadig selv tage stilling til, hvilke operationer der skal udføres, og i hvilken rækkefølge det skal ske. Det afgørende skridt fra regnemaskine til computer går ud på at automatisere hele dataprocessen og ikke blot de aritmetiske operationer. En computer indeholder en regneenhed som en af sine dele, men er yderligere bygget ud, så den kan løse en hel beregningsopgave uden indgriben undervejs Universalitet Rent teknisk er der ikke noget i vejen for at bygge automater, der løser specialiserede databehandlingsopgaver (som at udstede billetter, veksle penge, styre en vaskemaskine og lignende). Det viser sig imidlertid, at man ikke skal gøre en automats ordrerepertoire særligt omfattende, før den bliver universel i den forstand, at den kan udføre en hvilken som helst databehandling. For os vil det interessante netop være universelle computere, det vil sige databehandlingsapparater med den egenskab, at hvis man kunne specialbygge en indretning, der løste en bestemt ønsket databehandlingsopgave, så kan man også få computeren til at løse denne opgave. 1.5 Programmering Fysisk set ombygges computeren ikke mellem hver af de forskellige opgaver, den skal løse. Det, der sker, er, at man udskifter dens program, det vil sige de ordrer, som styrer dens virkemåde. At programmere (eller, som man sagde før i tiden: kode) en computer går ud på at forsyne den med de ordrer, der skal til for at løse en forelagt opgave. Her står flere forskellige principper eller beregningsmodeller til rådighed; vi omtaler nedenfor kort to af dem: det imperative og det applikative princip Det imperative princip Når en beregningsopgave løses manuelt, har man ud over en regnemaskine brug for at kunne notere mellemresultater ned, taste andre mellemresultater ind igen og eventuelt lade delresultater styre de videre beregninger. En af de måder, hvorpå man kan udbygge en regneenhed til en computer, der er universel i den ovennævnte forstand, er derfor ved siden af regneenheden at have et lager til mellemresultater. 12

13 Et vigtigt skridt i datamaskinernes udvikling blev taget, da Charles Babbage ( ) planlagde en mekanisk regnemaskine, som ud over datalager og regneenhed samt indog udlæsningsenheder også skulle have en styreenhed, hvori en sekvens af hulkort bestemte, hvilke operationer der skulle udføres. Denne maskine kunne altså programmeres: med forskellige sekvenser af hulkort i styreenheden kunne den løse forskellige opgaver. Til assistance ved planlægning af styringen havde han komtesse Augusta Ada Lovelace (den engelske digter lord Byrons datter), som således i en vis forstand blev verdens første programmør. Af praktiske grunde forblev maskinen dog på tegnebrættet med datidens teknik var den umulig at bygge. Imperativ programmering, der også kan kaldes tilstandsorienteret programmering eller variabelbaseret programmering, går ud på at supplere regnekapaciteten med et lager. Skudt ind mellem de almindelige regneordrer (til addition, subtraktion, multiplikation og så videre) ligger der ordrer om at læse fra pladserne i lageret og at skrive til dem, så lagerets indhold hele tiden ændrer sig. Fungerende datamaskiner har næsten alle denne opbygning, og skal man benytte sådan en maskine, skal den altså udføre et program, der bestemmer, hvordan lagerets indhold skal bruges og ændres. Efter den imperative model foregår en beregning ved, at en maskine (med sin regneenhed og sit lager) præsenteres for to ingredienser: dels de aktuelle inddata, dels et program, hvorefter maskinen behandler inddata i overensstemmelse med programmet og som resultat leverer uddata: x inddata p program Det applikative princip datamaskine M (imperativ forståelse) y uddata Almindelige regneudtryk formår ikke at beskrive alle beregninger, og derfor skulle der i den imperative model suppleres med et lager til mellemresultater. En anden opfattelse går ud på, at en beregning veksler mellem at inddrage forskellige dele. Ved at identificere de forskellige dele med passende navne kan man sørge for, at de kommer i brug til det rigtige tidspunkt. Mentalt arbejder denne model derfor med bindinger mellem navne eller parametre og værdier. Så længe et bånd består, ændres et navns værdi ikke (i modsætning til forholdene i den imperative model, hvor en plads kunne skifte værdi). I applikativ programmering, der også kaldes funktionsorienteret programmering eller værdiorienteret programmering, opnås universaliteten ved at udvide klassen af udtryk med nye former og operationer, som gør det muligt at formulere en vilkårlig beregning som et udtryk. Da disse nye operationer skal erstatte brugen af et eksplicit lager, er det klart, mange af dem vil have karakter af nogle omflytninger, og den nødvendige udvidelse kaldes også kombinatorisk logik. Det matematisk grundlag for det applikative synspunkt blev udviklet i 1930 erne af Alonzo Church ( ) i form af den såkaldte lambda-kalkule, men den første, der foreslog teorien benyttet i forbindelse med programmering, var John McCarthy, som omkring 1960 udviklede en kalkule for rekursive funktioner af symbolske udtryk og konstruerede programmeringssproget Lisp. 13

14 I applikativ programmering formuleres den opgave, man vil have løst, som et generaliseret regneudtryk, og man lader derefter det datamatiske system evaluere dette regneudtryk til en værdi. Sagt på en anden måde skal inddata kapsles ind i et mere omfattende regneudtryk; hvad der i det imperative paradigme var et program, svarer her til en kontekst: et generaliseret udtryk med et hul (hvori inddata kan placeres). f(x) inddata indkapslet i et applikativt udtryk datamaskine A (applikativ forståelse) y uddata Højere programmeringssprog Udviklingen inden for elektronik (radiorør) gjorde det muligt at bygge de første fungerende datamaskiner i tiden omkring anden verdenskrigs slutning; disse maskiner havde dog stadig et separat styrende program. Forud for hver ny anvendelse af maskinen skulle programmet skiftes ud, hvilket kunne være en møjsommelig opgave. I 1940 erne fik en gruppe ingeniører, hvis mest fremtrædende medlem var John von Neumann ( ), den afgørende ide at integrere data- og programlager, således at de ordrer, som styrede dataprocessen, blev hentet fra lageret, hvilket også betød, at maskinen undervejs i en beregning kunne modificere sine egne ordrer. Selv om det skyldes den moderne elektronik (transistorer, integrerede kredse), at datamaskiner er blevet hurtige og billige og dermed har fået en sådan udbredelse, som tilfældet er, har elektronik ikke principiel betydning i forbindelse med datateknik: man kunne også (og gør det i et vist omfang) bruge mekaniske, hydrauliske, pneumatiske (trykluft), magnetiske eller optiske (lys) lagrings- og transportmedier; det afgørende er, at vi har at gøre med en universel datamaskine, der fortolker sit program fra et lager, hvortil der automatisk kan skrives. Betegnelsen datamaskine eller datamat (eng.:computer) vil i det følgende blive brugt om en sådan universel datamaskine med lagret program; datamatik (eng.:computer science) drejer sig om egenskaber ved og brugen af sådanne maskiner. Reglerne for, hvorledes en datamat fortolker et lagerindhold som en ordre, er bestemt af maskinens ingeniørmæssige konstruktion og kaldes for dens maskinsprog. Da ordrer kan behandles som data, behøver man imidlertid ikke at programmere maskinen i dette sprog: et afviklingsprogram (der dog da selv må være lagt ind i maskinsprog) kan oversætte eller fortolke programmer udformet i et såkaldt højere programmeringssprog til maskinsprog, og man siger da, at det højere programmeringssprog er implementeret på den pågældende datamat. Hvis et afviklingsprogram for sproget L er lagt ind i en maskine M, ser det fuldstændig ud, som om man havde at gøre med en L-maskine. Fremkomsten af højere programmeringssprog har gjort det muligt at afvikle de samme programmer på meget forskellige datamater (og at afvikle programmer i mange forskellige programmeringssprog på samme datamat) i princippet kan alle datamater det samme. Siden implementeringen i 1958 af det første højere programmeringssprog Fortran (afledt af formula translator ) er der fremkommet et overordentlig stort antal af den slags sprog. To af dem har navn efter de ovennævnte pionerer Pascal og Ada; et meget udbredt sprog hedder C (videreudviklet til C++). Sammen med Algol, Cobol, PL/1, Basic og mange andre tilhører alle de nævnte sprog klassen af imperative eller tilstandsorienterede 14

15 programmeringssprog. Fælles for disse sprog er et forholdsvis tro billede af datamatens lager som opbygget af variable, der skifter værdi under en beregning. I Objektorienteret programmering opfattes alle forhold og størrelse, programmet skal arbejde med, som objekter med visse egenskaber. Objektorienterede programmeringssprog er blandt andet Simula, Emerald, Java og C++. Det sprog, der præsenteres i de følgende kapitler, tilhører klassen af såkaldte applikative, værdiorienterede eller funktionsorienterede programmeringssprog, hvor program og inddata bygges sammen til et udtryk, og den ønskede databehandling opfattes som evaluering af dette udtryk til en værdi. De applikative sprog omfatter blandt andet Lisp, Scheme, ML, Hope, Miranda og Haskell. Logikprogrammering, går ud på at beskrive de egenskaber, uddata skal have, på en sådan måde, at denne beskrivelse kan danne grundlag for beregning; funktionsprogrammering og logikprogrammering kan under et betegnes deklarativ programmering. Eksempler på logikprogrammeringssprog er Prolog og SQL. Datamater med et applikativt sprog som maskinsprog har været konstrueret, men har ikke vundet stor udbredelse. I praksis afvikles ethvert højere programmeringssprog, hvad enten det er imperativt eller applikativt, på traditionelle imperative maskinarkitekturer ved hjælp af et passende afviklingsprogram Valg af programmeringssprog At løse en opgave ved hjælp af en datamat betyder at realisere en bestemt dataproces K og indebærer i praksis, at man vælger et bestemt højere programmeringssprog (imperativt eller applikativt), som man har adgang til et afviklingsprogram for, og skriver passende kode (et program p K eller en f K (...)). Der er en tendens til, at programmører opdeler sig i skoler, der (undertiden nærmest fanatisk) sværger til hver deres foretrukne programmeringssprog. Ved en mere nøgtern betragtning må det erkendes, at de forskellige sprog har hver deres styrker og svagheder. Tilstandsorienterede sprog holder mest konkret styr på, hvad der foregår i datamaten, og giver derigennem mulighed for konstruktion af meget effektive programmer. Effektiviteten opnås på bekostning af, at der er flere detaljer, man selv skal tage stilling til, så det bliver mere omstændeligt at nå frem til en løsning og vanskeligere at overbevise sig om, at den er korrekt. Programmeres efter det funktionsorienterede princip, kan det være vanskeligere at gennemskue, hvilke maskinaktiviteter der sættes i gang, og man kan uforvarende komme til at skrive ineffektive programmer. Nyere forskning inden for området betyder dog, at afviklingstiderne i de senere år er reduceret betydeligt. Først og fremmest opvejes eventuelle ulemper ved funktionsorienterede sprog af, at der er mange detaljer, man slipper for at tage stilling til, så man får langt større fleksibilitet, modularitet og udtrykskraft. Frem for et lager, hvis indhold varierer gennem beregningsforløbet, er det mentalt set enklere at have at gøre med bindinger mellem navne og værdier, hvor værdierne ikke ændrer sig, mens båndet består. Funktionsudtryk er sædvanligvis velstrukturerede og lette at afprøve og at ræsonnere om. Derfor er et funktionsorienteret sprog også velegnet ved introducerende undervisning. 15

16 1.6 Ind- og udlæsning Skal databehandlingsresultater forelægges mennesker, må det ske ved påvirkning af en af vore fem sanser i praksis synet og/eller hørelsen. Inddata må frembringes af vores bevægeapparat: først og fremmest fingre og hænder, eventuelt tale. De første seriefremstillede datamater var forbundet med en elektrisk skrivemaskine, således at inddata hentedes fra tastaturet, og uddata var maskinskrevet tekst på papir. Megen ingeniørmæssig energi og opfindsomhed er investeret i at udvikle hurtigere og bedre måder at kommunikere med maskinerne på; i moderne datamater præsenteres resultater som billeder på en skærm, eventuelt i farver, og som lyd eller musik, mens inddata kan komme fra tastaturet eller ved at der er brugt en mus og trykket på musens knapper. Der er også skærme, som kan reagere, når der peges på dem, og man kunne forestille sig mange andre muligheder. Alle signaler kan digitaliseres; bag de farvebilleder, skærmen viser, ligger en repræsentation, som for hvert punkt på skærmen angiver dets farve og lysintensitet. Psykologisk er det naturligvis af stor betydning, om man præsenteres for et rigtigt billede eller bare for en tabel af indgange af formen (x, y, farvekode), men det informationsteoretiske indhold er det samme. Programmer i et højere programmeringssprog formuleres som tekst, og i disse noter vil vi også gå ud fra, at ind- og uddata er tekster. I princippet er dette tilstrækkeligt til simulering af enhver dataproces: Der er standard-programpakker, som kan sørge for, at brug af musen bliver til indgangstekster a la venstre museknap nedtrykket i skærmkoordinat (x, y), og at udgangstekster med (x, y, farvekode) bliver vist som billeder på skærmen. Kernen i at lære at programmere går derfor ud på at konstruere programmer med tekst som ind- og uddata. 1.7 Alfabeter Fejloversat fra engelsk kaldes et alfabet, som er en mængde af tegn (eng.:character set), også for et tegnsæt. Forskellen på en mængde og et sæt er, at der ikke er nogen organisation i en mængde, mens elementerne i et sæt er ordnet. Brugt som digitale data har tegn i et alfabet imidlertid hver deres kode eller vægt, og betegnelsen tegnsæt giver da alligevel mening, idet man kan tænke sig alfabetets tegn stillet op i rækkefølge efter vægt. Hvordan noget skal repræsenteres, er kun i meget ringe grad naturligt og kan vælges næsten fuldstændig frit. I begyndelsen, hvor hver computer var en autonom installation, og hvert fabrikat derfor omtrent havde sit eget alfabet, var et stort antal alfabeter i brug. Med udbredelsen af datakommunikation blev der behov for standardisering, og antallet af forskellige alfabeter er efterhånden reduceret. I det følgende omtales de tre alfabeter, man hyppigst støder på i dag: ISOs 7 bit-kode, ISOs 8 bit-kode og Unicode ISO s 7 bit-kode Sædvanlig maskinskreven tekst er også digital: Alfabetet består af de forskellige skrifttegn (også kaldet grafemer), maskinen kan frembringe, og positionerne er anslagene mod papiret. En af mulighederne for en position er ikke at have noget grafem tilknyttet; denne 16

17 mulighed regnes med blandt skrifttegnene og kaldes et blanktegn. Det mest almindeligt anvendte grafiske tegnsæt ASCII (American Standard Code for Information Interchange) har udviklet sig fra det internationale fjernskriveralfabet og er i let modificeret form blevet anerkendt af den internationale standardiseringsorganisation ISO som standarden ISO 646. Det har 128 forskellige tegn, som både omfatter grafiske tegn (blanktegn, cifre, bogstaver og specialtegn) og forskellige ikke-grafiske tegn til opstilling, styring med mere, se tabel 1.1. Da man i totalssystemet netop får 128 talord ved at bruge 7 bit, kaldes koden også for ISOs 7 bit-kode. kode NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 16 DLE DC 1 DC 2 DC 3 DC 4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 32 SP! " /# $/ % & ( ) * +, -. / : ; < = >? A B C D E F G H I J K L M N O 80 P Q R S T U V W X Y Z Æ/[ Ø/\ Å/] ^ 96 ` a b c d e f g h i j k l m n o 112 p q r s t u v w x y z æ/{ ø/ å/} /~ DEL Tabel 1.1: DS/ISO 646 og DS At alfabetet primært er konstrueret med henblik på transmission, afspejler sig i det store antal ikke-grafiske tegn; nogle af disse styrer tegnenes opstilling eller andre terminalfunktioner og forklares i tabellen nedenfor (styretegnenes tilsigtede virkning kan ses i appendiks A). Som man kan se, stammer mange af betegnelserne fra den gang, hvor en terminal var en skrivemaskine med valse og slæde. kode forkortelse navn virkning 7 BEL Bell egentlig klokke : får terminalen til at afgive lyd (sige bip ) 8 BS Backspace tilbagerykningstegn (én position mod venstre) 9 HT Horizontal tabulation tabuleringstegn: fremrykning mod højre til næste tabuleringsmærke 10 LF Line feed linjeskift: en linje nedad; egentlig uden ændring af positionen i tværgående retning (og skift til ny linje styres da af to tegn, i rækkefølgen CR+LF), men hvis udstyret tillader det, kan man vælge at lade dette tegn (som da også forkortes NL, New line) betyde skift til forrest på næste linje 11 VT Vertical tabulering nedad tabulation 12 FF Form feed sideskift 13 CR Carriage vognretur: tilbagerykning til linjens begyndelse return 32 SP Space blanktegn På en skærm (og på papir) er tegn stillet op i to dimensioner; omformningen til en en- 17

18 dimensional række finder sted ved, at teksten opfattes som en sekvens af vandrette linjer, som opstilles efter hinanden, idet der efter hver linje indsættes et linjeskift; blanke dele yderst til højre på linjerne er uden betydning og kan udelades. Som et eksempel vil teksten kunne sendes som sekvensen Her er et eksempel på, hvorledes en tekst transmitteres. Her er et eksempel på, hvorledes en tekst transmitteres. hvor blanktegn (kode 32) er vist som og ny-linje-tegn (kode 10) som. Et tastatur behøver ikke at have en tast for hvert tegn, der skal kunne frembringes: flere taster kan benyttes i kombination. Der kan være parallelle skiftenøgler, som skal holdes nede, samtidig med at man trykker på en anden tast. Princippet kendes fra den måde, hvorpå man på en sædvanlig skrivemaskine frembringer de store bogstaver, men ud over denne nøgle, betegnet Shift, kan en arbejdsplads have skiftenøgler betegnet Option (eller Alt eller Select ) og Ctrl. Det er almindeligt at lade Ctrl virke på den måde, at man får dannet det tegn, hvis kode er 64 (eller 96) mindre end det tegn, man ellers ville få (se tabel 1.1). I mange programmeringssprog kan en beregning, der er løbet løbsk, standses ved, at man sender ETX (kode 3); det sker så ved, at Ctrl holdes nede, mens man taster c. Et serielt ikke-låsende skiftetegn eller undvigelsestegn (eng.:escape character) ændrer det umiddelbart efterfølgende tegns betydning; på mange tastaturer fungerer accent-taster på den måde: accenten placeres over det efterfølgende tegn; tasten Esc, der sender tegnet ESC (kode 27), har en tilsvarende virkning. Man kan også have låsende skiftetegn, hvor et såkaldt skift-ud-tegn ændrer betydning for alle efterfølgende tegn, indtil der kommer et skift-ind-tegn. I modsætning til konstruktionen på en gammeldags skrivemaskine er det på en arbejdsplads sådan, at den tast (mærket Caps Lock ), der låser til store bogstaver, ikke sætter den normale skiftenøgle ud af funktion: det er nemlig kun tasterne med bogstaver på, hvis virkning ændres; for de andre taster er det stadig nødvendigt at kombinere med skiftenøglen, hvis man vil frembringe tegnet for oven på tasten. Gruppering Trods standardiseringsbestræbelserne er der en række forhold, man ikke har kunnet enes om. Linjeskift. Svarende til, at overgangen fra en linje til den næste egentlig kombinerer to bevægelser (tilbage til venstre margin + en linje ned), skulle linjeskift oprindeligt angives CR (kode 13) + LF (kode 10), og sådan er konventionen også i operativsystemerne MS Windows 95/98/... Standarden åbner mulighed for, at man kan nøjes med med LF (kode 10); dette alternativ har man valgt under operativsystemet Unix. Også på Macintosh nøjes man med ét tegn, men det er (i strid med standarden) CR (kode 13). 18

19 Mellemrum. Horisontal tabulering og blanktegn (og kombinationer af dem) danner mellemrum mellem de grafiske tegn, men der er ikke enighed om, hvorvidt blanktegnet selv skal klassificeres som grafisk eller ej. I programmeringssproget Standard ML har man en lang række prædikater til klassifikation af tegn (se [5, D.3.3]), og man har valgt, at om blanktegn skal Char.isPrint (is a printable character) være sandt, men Char.isGraph (is a graphical character) være falsk. De danske bogstaver Den oprindelige ide i ISO 646 var at holde syv pladser (koderne 64, 91, 92, 93, 123, 124, 125, med mulighed for udvidelse til ti pladser ved også at inddrage kode 94, 96 og 126) ledige til nationale udvidelser af alfabetet. Desuden kunne anførelsestegn, apostrof, komma, pilespids-opad og overstregning i kombination med tilbagerykningstegn bruges som accenterne henholdsvis trema (to prikker), aigu, cedille, cirkumfleks og tilde. Dansk Standardiseringsråd foreskrev derfor i DS 2089, at æ, ø, å, Æ, Ø og Å skulle placeres som vist i tabel 1.1. Desværre er de tegn, som derved bliver utilgængelige først og fremmest kantede og krøllede parenteser vanskelige at undvære inden for programmering, og det må konstateres, at den danske standard aldrig rigtig er slået an. Hertil kommer, at otte bit, svarende til et repertoire på 256 muligheder, er en mere naturlig enhed på nutidens maskiner end syv 2. ISO 646-koden afløses derfor i stigende grad af mere omfattende tegnsæt ISO s 8 bit-kode En gruppe på 8 bit, der kaldes en byte 3 og kan rumme 256 forskellige muligheder, er en naturlig dataenhed for computere. Lagerstørrelser måles som regel i byte, maskinens naturlige repræsentationer af heltal, reelle tal og ordrer vil være et helt antal byte, og ofte er en byte den mindste adresserbare lagerenhed. ISO 8859 standardiserer en familie af alfabeter indeholdende lutter grafiske tegn med koder mellem 0 og 255, så de kan rummes inden for en byte. Af dem er det såkaldte latinske alfabet nummer 1 indrettet med henblik på at indeholde alle de tegn, som kræves i vesteuropæiske sprog (nærmere bestemt catalansk, dansk, engelsk, fransk, færøsk, irsk, islandsk, italiensk, nederlandsk, norsk, portugisisk, spansk, svensk og tysk). Til gengæld er det ikke meningen, at der skal bruges mere end én kode for noget grafisk tegn inden for denne standard (bogstaver med accent regnes med andre ord for selvstændige tegn og må ikke dannes ved kombinationer og tilbagerykning). Som det fremgår af tabel 1.2 er der ved denne udvidelse ikke alene blevet plads til æ/æ, ø/ø og å/å, men også til svensk og tysk ä/ä og ö/ö, tysk ü/ü og ß, islandsk og færøsk d -/D- med meget mere. Al standardisering er et kompromis, men det er alligvel forbavsende, at fransk œ/œ ikke er lagt ind i steden for /. Forklaringen er, at medlemmerne af standardiseringskommissionen har defineret Œ som ligatur (typografisk sammenskrivning) af O og E, ligesom (i nederlandsk) ij og IJ er ligaturer, eller fi og fl er ligaturer for fi og fl. 2 selv om den ottende bit ved asynkron transmission kunne bruges som paritetskontrol. 3 De foreslåede fordanskninger til stavelse eller oktet er ikke slået an. 19

20 kode ikke i tabel 32 SP! " # $ % & ( ) * +, -. / : ; < = >? A B C D E F G H I J K L M N O 80 P Q R S T U V W X Y Z [ \ ] ^ 96 ` a b c d e f g h i j k l m n o 112 p q r s t u v w x y z { } ~ ikke i tabel 160 NBSP c Y= c ā << SHY R 176 ± ō µ >> À Á ^A ~A Ä Å Æ Ç È É ^E Ë Ì Í ^I Ï 208 D- ~N Ò Ó ^O ~O Ö Ø Ù Ú ^U Ü Ý bp ß 224 à á ^a ~a ä å æ ç è é ^e ë ì í ^ı ï 240 d- ~n ò ó ^o ~o ö ø ù ú ^u ü ý bp ÿ ikke i tabel Tabel 1.2: ISO 8859 Part 1: Latin alphabet No. 1. Vores æ/æ blev også i begyndelsen kaldt en ligatur og først ved en senere rettelse accepteret som selvstændigt bogstav! HTML-kodning Ved at udnytte elektronisk lagrings muligheder for effektiv adgang til alverdens oplysninger kan man bygge systemer, der ud fra henvisninger i en tekst hurtigt finder frem til det, der henvises til. Med den slags systemer til rådighed ændrer begrebet tekst karakter: snarere end en lineær strøm fornemmes den som en struktur med dybde i, og betegnelsen hypertekst er foreslået indført for at dække dette nye begreb. Kort kan en hypertekst måske forklares som en tekst med aktive henvisninger, og det er klart, at der så bliver brug for et særligt formuleringssprog, et afmærkningssprog, at skrive den slags tekster i. HTML står for HyperText Markup Language og er dels en betegnelse for selve begrebet (afmærkningssprog til at skrive hypertekster i), dels en betegnelse for et ganske bestemt sådant sprog, der er vidt udbredt og blandt andet benyttes af systemerne Netscape og Internet Explorer. De forhold, som omtales her, gælder version 2.0 af HTML. Sproget er sådan indrettet, at man ved udformning af kildeteksterne bag HTML-dokumenter kan nøjes med tegn fra ISOs 7 bit-sæt. For i teksten se DIKUs hjemmeside i et HTML-dokument at få ordene DIKUs hjemmeside til at henvise til DIKUs hjemmeside skal man indføre et såkaldt anker i kildeteksten: se <a href = " hjemmeside</a> Ud over de egentlige henvisninger er der i HTML en lang række muligheder for at angive forskellige typografiske opstillinger af teksten. Fremhævelse (som regel med kursiv) angives 20

Datalogi 0 GA Forelæsning september 2003 Nils Andersen. Datamatiske principper

Datalogi 0 GA Forelæsning september 2003 Nils Andersen. Datamatiske principper Datalogi 0 GA Forelæsning 1 2 1. september 2003 Nils Andersen Datamatiske principper EDB som simulering Programmering Problemløsning Tilstandsorienteret Værdiorienteret (= funktionsorienteret) Administrative

Læs mere

Formål: Indledning: Notationer

Formål: Indledning: Notationer Formål: Formålet med dette kompendium er at gennemgå de forskellige principper bag EDB printeren, således at læseren efter gennemgangen, har overblik over printeren som enhed. Indledning: I nudansk ordbog

Læs mere

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget

Læs mere

It og informationssøgning Forelæsning 1 6. september 2006 Nils Andersen. Beregning på computer

It og informationssøgning Forelæsning 1 6. september 2006 Nils Andersen. Beregning på computer It og informationssøgning Forelæsning 1 6. september 2006 Nils Andersen Beregning på computer Begrebet data Universel computer Højere programmeringssprog Python Dialogdrift Fejl (syntaksf., udførelsesf.,

Læs mere

It og informationssøgning Forelæsning september 2006 Nils Andersen. Underprogrammer og betingelser. Standardfunktioner, typeomsætning

It og informationssøgning Forelæsning september 2006 Nils Andersen. Underprogrammer og betingelser. Standardfunktioner, typeomsætning It og informationssøgning Forelæsning 2 13. september 2006 Nils Andersen Underprogrammer og betingelser Standardfunktioner, typeomsætning Funktionskald Moduler, lange navne Brugerdefinerede funktioner

Læs mere

Talregning. Aktivitet Emne Klassetrin Side. Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3

Talregning. Aktivitet Emne Klassetrin Side. Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3 VisiRegn ideer 1 Talregning Inge B. Larsen ibl@dpu.dk INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3 Vejledning til Talregning

Læs mere

ALMINDELIGT ANVENDTE FUNKTIONER

ALMINDELIGT ANVENDTE FUNKTIONER ALMINDELIGT ANVENDTE FUNKTIONER I dette kapitel gennemgås de almindelige regnefunktioner, samt en række af de mest nødvendige redigerings- og formateringsfunktioner. De øvrige redigerings- og formateringsfunktioner

Læs mere

Elementær Matematik. Mængder og udsagn

Elementær Matematik. Mængder og udsagn Elementær Matematik Mængder og udsagn Ole Witt-Hansen 2011 Indhold 1. Mængder...1 1.1 Intervaller...4 2. Matematisk Logik. Udsagnslogik...5 3. Åbne udsagn...9 Mængder og Udsagn 1 1. Mængder En mængde er

Læs mere

Sproget Limba. Til brug i G1 og K1. Dat1E 2003

Sproget Limba. Til brug i G1 og K1. Dat1E 2003 Sproget Limba Til brug i G1 og K1 Dat1E 2003 Abstract Limba er et simpelt imperativt sprog med hoballokerede tupler. Dette dokument beskriver uformelt Limbas syntaks og semantik samt en fortolker for Limba,

Læs mere

De rigtige reelle tal

De rigtige reelle tal De rigtige reelle tal 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

Datalogi 0 GA Forelæsning september 2003 Nils Andersen. Tegn og tekster. Listefunktionalen map. Naïv sortering

Datalogi 0 GA Forelæsning september 2003 Nils Andersen. Tegn og tekster. Listefunktionalen map. Naïv sortering Datalogi 0 GA Forelæsning 11 12 18. september 2003 Nils Andersen Tegn og tekster. Listefunktionalen map. Naïv sortering Typen char af tegn Typen string af tekster Eksempler Højereordensfunktionen map Sortering

Læs mere

Chapter. Information Representation

Chapter. Information Representation Chapter 3 Information Representation (a) A seven-bit cell. Figure 3. Figure 3. (Continued) (b) Some possible values in a seven-bit cell. Figure 3. (Continued) 6 8 7 2 5 J A N U A R Y (c) Some impossible

Læs mere

JavaScript. nedarvning.

JavaScript. nedarvning. JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man

Læs mere

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang.

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Den tekniske platform Af redaktionen Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Teknologisk udvikling går således hånd i hånd med videnskabelig udvikling.

Læs mere

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens

Læs mere

Sproget Rascal (v. 2)

Sproget Rascal (v. 2) Sproget Rascal (v. 2) Til brug i K1 på kurset Oversættere Opdateret 29/11 2004 Abstract Rascal er et simpelt Pascal-lignende imperativt sprog. Dette dokument beskriver uformelt Rascals syntaks og semantik

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

It og informationssøgning Forelæsning september 2006 Nils Andersen. Gentagelser og tekster

It og informationssøgning Forelæsning september 2006 Nils Andersen. Gentagelser og tekster It og informationssøgning Forelæsning 3 20. september 2006 Nils Andersen Gentagelser og tekster Dokumentationstekster Iteration (gentagelse) - med while - med for En- og todimensionale tabeller Typen af

Læs mere

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

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

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

(Positions) Talsystemer

(Positions) Talsystemer (Positions) Talsystemer For IT studerende Hernik Kressner Indholdsfortegnelse Indledning...2 Positions talsystem - Generelt...3 For decimalsystemet gælder generelt:...4 Generelt for et posistionstalsystem

Læs mere

Kapitel 3 Betinget logik i C#

Kapitel 3 Betinget logik i C# Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret

Læs mere

Stregkodereferencevejledning

Stregkodereferencevejledning Stregkodereferencevejledning Version 0 DAN 1 Introduktion 1 Oversigt 1 1 Denne referencevejledning indeholder information om stregkodeudskrivning ved hjælp af kontrolkommandoer, der sendes direkte til

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

Noter til C# Programmering Selektion

Noter til C# Programmering Selektion Noter til C# Programmering Selektion Sætninger Alle sætninger i C# slutter med et semikolon. En sætning kontrollerer sekvensen i programafviklingen, evaluerer et udtryk eller gør ingenting Blanktegn Mellemrum,

Læs mere

Appendiks 6: Universet som en matematisk struktur

Appendiks 6: Universet som en matematisk struktur Appendiks 6: Universet som en matematisk struktur En matematisk struktur er et meget abstrakt dyr, der kan defineres på følgende måde: En mængde, S, af elementer {s 1, s 2,,s n }, mellem hvilke der findes

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg 1 / 18 Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur

Læs mere

Den sproglige vending i filosofien

Den sproglige vending i filosofien ge til forståelsen af de begreber, med hvilke man udtrykte og talte om denne viden. Det blev kimen til en afgørende ændring af forståelsen af forholdet mellem empirisk videnskab og filosofisk refleksion,

Læs mere

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse.

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse. Boolesk Algebra og det binære talsystem - temahæfte informatik. I dette hæfte arbejdes der med to-tals systemet og logiske udtryk. Vi oplever at de almindelige regneregler også gælder her, og vi prøver

Læs mere

Hvad er matematik? C, i-bog ISBN 978 87 7066 499 8

Hvad er matematik? C, i-bog ISBN 978 87 7066 499 8 Et af de helt store videnskabelige projekter i 1700-tallets Danmark var kortlægningen af Danmark. Projektet blev varetaget af Det Kongelige Danske Videnskabernes Selskab og løb over en periode på et halvt

Læs mere

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Computerarkitektur. - en introduktion til computerarkitektur med LINDA Computerarkitektur - en introduktion til computerarkitektur med LINDA faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig

Læs mere

3 Algebra. Faglige mål. Variable og brøker. Den distributive lov. Potenser og rødder

3 Algebra. Faglige mål. Variable og brøker. Den distributive lov. Potenser og rødder 3 Algebra Faglige mål Kapitlet Algebra tager udgangspunkt i følgende faglige mål: Variable og brøker: kende enkle algebraiske udtryk med brøker og kunne behandle disse ved at finde fællesnævner. Den distributive

Læs mere

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM526 Rolf Fagerberg, 2009 Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, kommatal) Bogstaver Computerinstruktion (program)

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

Omskrivningsregler. Frank Nasser. 10. december 2011

Omskrivningsregler. Frank Nasser. 10. december 2011 Omskrivningsregler 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

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Lagervisning. Dina Friis, og Niels Boldt,

Lagervisning. Dina Friis, og Niels Boldt, Lagervisning Dina Friis, dina@diku.dk og Niels Boldt, boldt@diku.dk 6. april 2001 Kapitel 1 Sammenfatning Dette dokument er et eksempel på en delvis besvarelse af G-opgaven stillet på Datalogi 0 2000-2001.

Læs mere

Selam Friskole Fagplan for Matematik

Selam Friskole Fagplan for Matematik Selam Friskole Fagplan for Matematik Formål Formålet med undervisningen er, at eleverne udvikler matematiske kompetencer og opnår viden og kunnen således, at de bliver i stand til at begå sig hensigtsmæssigt

Læs mere

Talrækker. Aktivitet Emne Klassetrin Side

Talrækker. Aktivitet Emne Klassetrin Side VisiRegn ideer 3 Talrækker Inge B. Larsen ibl@dpu.dk INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Vejledning til Talrækker 2-4 Elevaktiviteter til Talrækker 3.1 Talrækker (1) M-Æ 5-9 3.2 Hanoi-spillet

Læs mere

Moduler i Standard ML

Moduler i Standard ML Moduler i Standard ML Hans Hüttel December 2001 I løbet af datalogikurset har vi haft glæde af en hel række forskellige standardmoduler som f.eks. Math, Int, Real og String. Disse moduler kan, har vi set,

Læs mere

Tal. Vi mener, vi kender og kan bruge følgende talmængder: N : de positive hele tal, Z : de hele tal, Q: de rationale tal.

Tal. Vi mener, vi kender og kan bruge følgende talmængder: N : de positive hele tal, Z : de hele tal, Q: de rationale tal. 1 Tal Tal kan forekomme os nærmest at være selvfølgelige, umiddelbare og naturgivne. Men det er kun, fordi vi har vænnet os til dem. Som det vil fremgå af vores timer, har de mange overraskende egenskaber

Læs mere

Noter til Perspektiver i Matematikken

Noter til Perspektiver i Matematikken Noter til Perspektiver i Matematikken Henrik Stetkær 25. august 2003 1 Indledning I dette kursus (Perspektiver i Matematikken) skal vi studere de hele tal og deres egenskaber. Vi lader Z betegne mængden

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

ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44

ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44 ITS MP 013 V009 Elevens navn IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44 ITS MP 013 Udarbejdet af Søren Haahr, juni 2010 Copyright Enhver mangfoldiggørelse af tekst eller illustrationer

Læs mere

ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER

ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER INDHOLDSFORTEGNELSE 0. FORMELSAMLING TIL FORMLER OG LIGNINGER... 2 Tal, regneoperationer og ligninger... 2 Isolere en ubekendt... 3 Hvis x står i første brilleglas...

Læs mere

Induktive og rekursive definitioner

Induktive og rekursive definitioner Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal

Læs mere

MATEMATIK. Formål for faget

MATEMATIK. Formål for faget MATEMATIK Formål for faget Formålet med undervisningen er, at eleverne udvikler matematiske kompetencer og opnår viden og kunnen således, at de bliver i stand til at begå sig hensigtsmæssigt i matematikrelaterede

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur og

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

How to do in rows and columns 8

How to do in rows and columns 8 INTRODUKTION TIL REGNEARK Denne artikel handler generelt om, hvad regneark egentlig er, og hvordan det bruges på et principielt plan. Indholdet bør derfor kunne anvendes uden hensyn til, hvilken version

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

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave

Læs mere

APPENDIX A INTRODUKTION TIL DERIVE

APPENDIX A INTRODUKTION TIL DERIVE APPENDIX A INTRODUKTION TIL DERIVE z x y z=exp( x^2 0.5y^2) CAS er en fællesbetegnelse for matematikprogrammer, som foruden numeriske beregninger også kan regne med symboler og formler. Det betyder: Computer

Læs mere

Grundlæggende Matematik

Grundlæggende Matematik Grundlæggende Matematik Hayati Balo, AAMS August 2012 1. Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, decimaltal (kommatal)) Bogstaver Computerinstruktion

Læs mere

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

Matematik samlet evaluering for Ahi Internationale Skole

Matematik samlet evaluering for Ahi Internationale Skole efter 3.klasse. e efter 6.klasse. e Skole efter 9.klasse. e indgå i dialog om spørgsmål og svar, som er karakteristiske i arbejdet med matematik (tankegangskompetence formulere sig skriftligt og mundtligt

Læs mere

4. Snittets kædebrøksfremstilling og dets konvergenter

4. Snittets kædebrøksfremstilling og dets konvergenter Dette er den fjerde af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 4. Snittets kædebrøksfremstilling og dets konvergenter Vi

Læs mere

VisiRegn: En e-bro mellem regning og algebra

VisiRegn: En e-bro mellem regning og algebra Artikel i Matematik nr. 2 marts 2001 VisiRegn: En e-bro mellem regning og algebra Inge B. Larsen Siden midten af 80 erne har vi i INFA-projektet arbejdet med at udvikle regne(arks)programmer til skolens

Læs mere

3. klasse 6. klasse 9. klasse

3. klasse 6. klasse 9. klasse Børne- og Undervisningsudvalget 2012-13 BUU Alm.del Bilag 326 Offentligt Elevplan 3. klasse 6. klasse 9. klasse Matematiske kompetencer Status tal og algebra sikker i, er usikker i de naturlige tals opbygning

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

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

MODELSÆT 2; MATEMATIK TIL LÆREREKSAMEN

MODELSÆT 2; MATEMATIK TIL LÆREREKSAMEN MODELSÆT ; MATEMATIK TIL LÆREREKSAMEN Forberedende materiale Den individuelle skriftlige røve i matematik vil tage udgangsunkt i følgende materiale:. En diskette med to regnearks-filer og en MathCad-fil..

Læs mere

Regneark hvorfor nu det?

Regneark hvorfor nu det? Regneark hvorfor nu det? Af seminarielektor, cand. pæd. Arne Mogensen Et åbent program et værktøj... 2 Sådan ser det ud... 3 Type 1 Beregning... 3 Type 2 Præsentation... 4 Type 3 Gæt... 5 Type 4 Eksperiment...

Læs mere

Regulære udtryk og endelige automater

Regulære udtryk og endelige automater Regulære udtryk og endelige automater Regulære udtryk: deklarative dvs. ofte velegnede til at specificere regulære sprog Endelige automater: operationelle dvs. bedre egnet til at afgøre om en given streng

Læs mere

Symbolbehandlingskompetencen er central gennem arbejdet med hele kapitlet i elevernes arbejde med tal og regneregler.

Symbolbehandlingskompetencen er central gennem arbejdet med hele kapitlet i elevernes arbejde med tal og regneregler. Det første kapitel i grundbogen til Kolorit i 8. klasse handler om tal og regning. Kapitlet indledes med, at vores titalssystem som positionssystem sættes i en historisk sammenhæng. Gennem arbejdet med

Læs mere

Grundliggende regning og talforståelse

Grundliggende regning og talforståelse Grundliggende regning og talforståelse De fire regnearter: Plus, minus, gange og division... 2 10-tals-systemet... 4 Afrunding af tal... 5 Regning med papir og blyant... 6 Store tal... 8 Negative tal...

Læs mere

Boolsk algebra For IT studerende

Boolsk algebra For IT studerende Boolsk algebra For IT studerende Henrik Kressner Indholdsfortegnelse 1 Indledning...2 2 Logiske kredsløb...3 Eksempel:...3 Operatorer...4 NOT operatoren...4 AND operatoren...5 OR operatoren...6 XOR operatoren...7

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

Affine - et krypteringssystem

Affine - et krypteringssystem Affine - et krypteringssystem Matematik, når det er bedst Det Affine Krypteringssystem (Affine Cipher) Det Affine Krypteringssystem er en symmetrisk monoalfabetisk substitutionskode, der er baseret på

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

π can never be expressed in numbers. William Jones og John Machins algoritme til beregning af π

π can never be expressed in numbers. William Jones og John Machins algoritme til beregning af π can never be expressed in numbers. William Jones og John Machins algoritme til beregning af. Oprindelsen til symbolet Første gang vi møder symbolet som betegnelse for forholdet mellem en cirkels omkreds

Læs mere

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

Greenfoot En kort introduktion til Programmering og Objekt-Orientering Greenfoot En kort introduktion til Programmering og Objekt-Orientering Greenfoot er et computer-program, som kan benyttes til at skrive andre computer-programmer, i et programmeringssprog kaldet Java.

Læs mere

Undervisningsplan for matematik

Undervisningsplan for matematik Undervisningsplan for matematik Formål for faget Formålet med undervisningen i matematik er, at eleverne udvikler kompetencer og opnår viden og kunnen således, at de bliver i stand til at begå sig hensigtsmæssigt

Læs mere

Årsplan for 2. årgang. Kapitel 1: Jubii. Kapitel 2: Mere om positionssystemet

Årsplan for 2. årgang. Kapitel 1: Jubii. Kapitel 2: Mere om positionssystemet Årsplan for. årgang Trix A Kapitel : Jubii Det første kapitel i. klasse samler op på det matematiske stof, som eleverne har lært i. klasse. Jubii giver dermed læreren mulighed for at screene, hvor klassen

Læs mere

Pointen med Funktioner

Pointen med Funktioner Pointen med Funktioner Frank Nasser 0. april 0 c 0080. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette er en

Læs mere

Space Challenge og Undervisningsminsteriets Fælles Mål for folkeskolen

Space Challenge og Undervisningsminsteriets Fælles Mål for folkeskolen Space Challenge og Undervisningsminsteriets Fælles Mål for folkeskolen I dette kapitel beskrives det, hvilke Fælles Mål man kan nå inden for udvalgte fag, når man i skolen laver aktiviteter med Space Challenge.

Læs mere

De fire elementers kostbare spejl

De fire elementers kostbare spejl Projekt.6 Lineær algebra moderne og klassisk kinesisk De fire elementers kostbare spejl "Som bekendt anses matematikken for at være en meget vigtig videnskab. Denne bog om matematik vil derfor være af

Læs mere

Gödel: Über formal unentschiedbare Sätze der Principia Mathematica und verwandter Systeme I, 1931

Gödel: Über formal unentschiedbare Sätze der Principia Mathematica und verwandter Systeme I, 1931 Kommentar til 1 Gödel: Über formal unentschiedbare Sätze der Principia Mathematica und verwandter Systeme I, 1931 Denne afhandling af den 24-årige Kurt Gödel er blevet en klassiker. Det er vist den eneste

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

Årsplan for 2. årgang Kapitel 1: Jubii. Kapitel 2: Mere om positionssystemet

Årsplan for 2. årgang Kapitel 1: Jubii. Kapitel 2: Mere om positionssystemet Årsplan for. årgang 08-9 Materialer: Trix A, Trix B samt tilhørende kopiark. Trix træningshæfte. Øvehæfte og 4. Andet relevant materiale. Trix A Kapitel : Jubii Det første kapitel i. klasse samler op på

Læs mere

Årsplan matematik 5. klasse. Kapitel 1: Godt i gang

Årsplan matematik 5. klasse. Kapitel 1: Godt i gang Årsplan matematik 5. klasse Kapitel : Godt i gang I bogens første kapitel får eleverne mulighed for at repetere det faglige stof, som de arbejdede med i 4. klasse. Kapitlet er udformet som en storyline

Læs mere

Kapitel 2 Tal og variable

Kapitel 2 Tal og variable Tal og variable Uden tal ingen matematik - matematik handler om tal og anvendelse af tal. Matematik beskæftiger sig ikke udelukkende med konkrete problemer fra andre fag, og de konkrete tal fra andre fagområder

Læs mere

Formål & Mål. Ingeniør- og naturvidenskabelig. Metodelære. Kursusgang 1 Målsætning. Kursusindhold. Introduktion til Metodelære. Indhold Kursusgang 1

Formål & Mål. Ingeniør- og naturvidenskabelig. Metodelære. Kursusgang 1 Målsætning. Kursusindhold. Introduktion til Metodelære. Indhold Kursusgang 1 Ingeniør- og naturvidenskabelig metodelære Dette kursusmateriale er udviklet af: Jesper H. Larsen Institut for Produktion Aalborg Universitet Kursusholder: Lars Peter Jensen Formål & Mål Formål: At støtte

Læs mere

MATEMATIK. GIDEONSKOLENS UNDERVISNINGSPLAN Oversigt over undervisning i forhold til trinmål og slutmål

MATEMATIK. GIDEONSKOLENS UNDERVISNINGSPLAN Oversigt over undervisning i forhold til trinmål og slutmål MATEMATIK GIDEONSKOLENS UNDERVISNINGSPLAN Oversigt over undervisning i forhold til trinmål og slutmål KOMMENTAR Vi har i det følgende foretaget en analyse og en sammenstilling af vore materialer til skriftlig

Læs mere

Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2

Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2 Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2 Encoding: Vi har tidligere set på spørgsmålet om et XML dokuments encoding. Det er generelt altid en god ide at gemme et dokument

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

Differentialregning. Ib Michelsen

Differentialregning. Ib Michelsen Differentialregning Ib Michelsen Ikast 2012 Forsidebilledet Tredjegradspolynomium i blåt med rød tangent Version: 0.02 (18-09-12) Denne side er (~ 2) Indholdsfortegnelse Introduktion...5 Definition af

Læs mere

Polynomiumsbrøker og asymptoter

Polynomiumsbrøker og asymptoter Polynomiumsbrøker og asymptoter Frank Villa 9. marts 2012 c 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

Gennem de sidste par årtier er en digital revolution fejet ind over vores tidligere så analoge samfund.

Gennem de sidste par årtier er en digital revolution fejet ind over vores tidligere så analoge samfund. Den digitale verden et barn af oplysningstiden Af redaktionen Gennem de sidste par årtier er en digital revolution fejet ind over vores tidligere så analoge samfund. Den elektroniske computer er blevet

Læs mere

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996 Hjerner i et kar - Hilary Putnam noter af Mogens Lilleør, 1996 Historien om 'hjerner i et kar' tjener til: 1) at rejse det klassiske, skepticistiske problem om den ydre verden og 2) at diskutere forholdet

Læs mere

og til summer af stambrøker. Bemærk: De enkelte brøker kan opskrives på flere måder som summer af stambrøker.

og til summer af stambrøker. Bemærk: De enkelte brøker kan opskrives på flere måder som summer af stambrøker. Hvad er en brøk? Når vi taler om brøker i dette projekt, mener vi tal på formen a, hvor a og b er hele tal (og b b 0 ), fx 2,, 3 og 3 7 13 1. Øvelse 1 Hvordan vil du forklare, hvad 7 er? Brøker har været

Læs mere

Talsystemer I V X L C D M 1 5 10 50 100 500 1000. Hvad betyder halvanden??. Kan man også sige Halvtredie???

Talsystemer I V X L C D M 1 5 10 50 100 500 1000. Hvad betyder halvanden??. Kan man også sige Halvtredie??? Romertal. Hvordan var de struktureret?? Systematisk?? I V X L C D M 1 5 10 50 100 500 1000 Regler: Hvis et lille tal skrives foran et stort tal trækkes tallet fra: IV = 5-1 = 4 Hvis et lille tal skrives

Læs mere

Rekursion C#-version

Rekursion C#-version Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet

Læs mere

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit. Kapitel 20: Talsystemer 20 Resumé af talsystemer... 344 Indtastning og omregning af talsystemer... 345 Udførelse af matematiske beregninger med hexadecimale og binære tal... 346 Sammenligning eller manipulation

Læs mere