Linux - Friheden til at programmere i C

Størrelse: px
Starte visningen fra side:

Download "Linux - Friheden til at programmere i C"

Transkript

1 Linux - Friheden til at programmere i C Programmering med GNU/Linux Version / Donald J. Axel SSLUG, Skåne Sjælland Linux User Group

2 Linux - Friheden til at programmere i C: Programmering med GNU/Linux; Version / af Donald J. Axel Ophavsret Forfatteren har ophavsret til bogen, men udgiver den under "Åben dokumentlicens (ÅDL) - version 1.0". Forskellige programmeringsteknikker illustreret med eksempler, mest for C programmører med lidt erfaring, men begyndere kan bladre om i Appendix A og se, om det er noget for dem.

3 Indholdsfortegnelse Forord...vi 1. Oversigt over bogen...vi 2. Om forfatteren og bogens historie...vi 3. Linux-bøgerne... vii 4. Ophavsret... viii 5. Vi siger tak for hjælpen... viii 6. Typografi...ix 1. Repræsentation og modeller Et professionelt værksted Hvad er en debugger? Biblioteker - et eksempel Hvordan kommer man igang? Repræsentation af data Repræsentation af tal Simulering - Modeller Planlægning af et program Funktioner, modularitet og relevante teknikker ANSI prototyper og modularitet Et brohoved Returværdi fra en funktion Parameterlister og datatyper Datatyper og beregninger Prompt og input ANSI prototyper og modularisering Kursomregning Filter programmer Tegn og talværdier Et typisk filter Oversætter - teknik, forstadium Summering af tal i en fil Analyse af input En tag - parser Tjek balancering af tags Any-tag Skelnen mellem tagtyper Tilstandsvariabel Fejl og håndteringen af dem Hvilke slags fejl er interessante Flere små programmer og øvelsesforslag Tal formatering ved udskrift med printf Word count - med tak til Kernighan & Ritchie Øvelser Forslag til beregningsøvelser...59 iii

4 3. Sammensatte datatyper og hvad man kan med dem i C Sammensætning af flere oplysninger til en enhed En struct Interface til datatype Tabel, array, liste, sekvens, bunke Operationer på datatypen Konkrete og abstrakte datatyper FILE: En abstrakt type Parsning - hvordan oversættes et C program En declaration parser En expression parser En komplet compiler uc - en mikroskopisk C compiler Tilstandsmaskiner...96 A. Crash course i C sproget...99 A.1. C i få ord...99 A.1.1. Data typer A.1.2. Operatorer A.1.3. Flow kontrol A.1.4. Modularitet A.2. Lager klassifikation, storage classes A.2.1. Externe variable, funktioner og konstanter A.2.2. Storage specifications A.2.3. Konstanter og memory protection A.2.4. Storage specifikation og scope A.2.5. Kontrolvariable for løkker eller loops A.2.6. Flygtige ukontrollerede variable A.2.7. Oversigt over variabel - anvendelse A.3. GNU programmerings værktøjer A.3.1. GNU C Compiler options A.3.2. objdump eksempler B. Revisionshistorie for bogen C. Nyt i C C.1. Uddrag af nyheder i ANSI revisionen fra C.2. Liste i tilfældig rækkefølge C.3. Nyt i C93 (AM1) Stikordsregister iv

5 Figurliste 1. Donald Axel... vii 2. ÅDL... viii 1-1. glade, en GTK+ GUI generator glade, projekt vindue Eksempel på fejlhåndtering, informativ besked Binært træ...73 v

6 Forord 1. Oversigt over bogen Kapitel 1: Repræsentation og modeller Beskriver, hvordan data bliver repræsenteret i en computer. Det er nøglen til forståelse af, hvordan man kan løse forskellige typer programmeringsopgaver, beregninger, simuleringer m.v. Kapitel 2: Funktioner, modularitet og relevante teknikker. ANSI prototyper og modularisering, datatyper og parameterlister, modularisering af en beregning. Rekursive funktioner. Kapitel 3: Sammensatte datatyper og hvad man kan med dem i C. Kapitel 4: Parsning - hvordan oversættes et C program. Hvordan man parser et beregningsudtryk. Hvordan man skriver en rekursiv descent parser. Som eksempler en kalkulator og en minimalistisk C-compiler. Komplet kildetekst medfølger. Appendiks A Kort introduktion af C sprogets elementer. Bogen her har til hensigt at vise eksempler på forskellige grundlæggende teknikker. Den henvender sig til programmører, som (måske) kender de første eksempler fra Kernighan & Ritchie s bog "The C Programming Language", men som gerne vil se flere små eksempler, der illustrerer de forskellige features i C sproget. Den ihærdige begynder med en del teknisk flair og lidt erfaring kan dog også få glæde af bogen ved først at læse Appendix A, som er en kort og koncis introduktion til sprogets "mekanik". Det er tanken at følge denne bog op med flere, som hver især behandler en bestemt type applikation. - Donald Axel - vi

7 2. Om forfatteren og bogens historie Forord Figur 1. Donald Axel Donald Axel Musiker, ex-radiojournalist, gymnasielærer, kursusinstruktør i C programmering, C++, Unix systemadministration m.v., edb-konsulent, har blandt andet været udstationeret som gæsteprogrammør hos Motorola med private GSM systemer for alarmtjenester etc. Har et lille beskedent hus, der skal gøres noget ved. Men jeg spiller klaver midt i det hele og synes det er dejligt. 3. Linux-bøgerne Bogen er en del af en serie, som kan findes på Linux Friheden til at vælge installation Om at installere Linux. Linux Friheden til at lære Unix Om hvordan man bruger Linux (og Unix ) kommandolinjeværktøjer. Linux Friheden til at vælge grafisk brugergrænseflade Om alle de grafiske brugergrænseflader, der findes til Linux. Linux Friheden til at vælge programmer Om de programmer du kan få til Linux. Linux Friheden til systemadministration Om at administre sit eget linuxsystem. Linux Friheden til at programmere Programmering på Linux Linux Friheden til at programmere i C Om at programmere i sproget "C". Linux Friheden til at programmere i Java Om at programmere i sproget "Java". Linux Friheden til sikkerhed på internettet Om at sikre dit Linuxsystem mod indbrud fra internettet. vii

8 Forord Linux Friheden til egen webserver Om at sætte en webserver med databaser, CGI-programmer og andet godt op. Linux Friheden til at skrive dokumentation Om at skrive dokumentation (og andet) i SGML/DocBook, LaTeX eller andre formater. Linux Friheden til at vælge kontorprogrammer Kontorfunktioner på et Linux/KDE/OpenOffice.org-system. Linux Friheden til at vælge IT-løsning Om muligheder, fordele og ulemper ved at bruge Linux i sin IT-løsning. Linux Friheden til at vælge OpenOffice.org Om at bruge OpenOffice.org, både på Linux og på andre styresystemer. Linux Friheden til at vælge digital signatur Digital signatur på Linux. 4. Ophavsret Denne bog er skrevet af Linux-brugere til Linux-brugere. Store dele af bogen er skrevet eller redigeret af enkelte forfattere, hvilket er nævnt i revisions-historien til bogen. Bogen kan findes i opdateret form på mens prøve-udgaver kan findes på Figur 2. ÅDL Bogen er udgivet under "Åben dokumentlicens (ÅDL) version 1.0" som kan læses på Du har bl.a. herved frit lov til at kopiere dette værk uændret på ethvert medium. Kommentarer, ris og ros og specielt fejl og mangler bedes sendt til men er du medlem af SSLUG kan du i stedet for med fordel skrive til viii

9 5. Vi siger tak for hjælpen Forord Vi har haft stor glæde af folks støtte, rettelser og forslag til forbedringer - bliv ved med dette. Specielt vil vi nævne: Peter Toft har hjulpet med SGML koden og rettet et par fejl. Jacob Sparre Andersen har fundet nye stavemåder og rettet sprogfejl. Forfatteren takker Brian Eberhardt, direktør for SuperUsers a/s, for hans inspiration til bl.a. introduktionen til de grundlæggende elementer i C sproget i appendix A. Du kan i Appendiks B finde en liste over alle de revisioner, som bogen har været igennem. Hvis du har ord du ikke forstår, så kan være interessant. Her kan du slå mange computerord op, dog kun på engelsk. I øvrigt kan bogens stikordsregister være interessant. 6. Typografi Vi vil afslutte indledningen med at nævne den anvendte typografi. Navne på filer og kataloger skrevet som foo.bar Kommandoer, du udfører ved at taste, skrives som help Der er flere steder i bogen, hvor vi viser, hvad brugeren (som vi kalder "tyge") taster, og hvad Linux svarer. Det vil se ud som: ~]$ Det her taster brugeren Det her svarer Linux Der er tilsvarende flere steder i bogen hvor vi viser hvad systemadministratoren (root) taster, og hvad Linux svarer. Det vil se ud som: hven# Dette taster systemadministratoren Dette svarer Linux. Det vigtige her er at kommandofortolkeren bruger nummertegnet (#) til at markere at man har systemadministratorrettigheder. ix

10 Kapitel 1. Repræsentation og modeller 1.1. Et professionelt værksted Hvis du har en maskine med Linux i en af de større distributioner (fx. Red Hat eller Debian) har du samtidig en samling af de mest avancerede værktøjer til fremstilling af software. Det er ikke blot en "sandkasse", du sidder med, men et professionelt udviklingsmiljø. Der er optimerende oversætter, standardiserede biblioteker, supplerende biblioteker med et væld af funktionalitet, debugger, source management med alt, hvad dertil hører, og oven i det er Linux jo et professionelt afviklingsmiljø med automatisk jobstart, kommandofortolkere og andre fortolkede sprog i mange varianter, serverfaciliteter, samt ikke mindst dørvogterfaciliteter (Firewall værktøjer eller TCP-IP filtrering). Det avancerede i denne her sammenhæng ligger ikke i et smart peg - og - klik interface til en programgenerator. Just for the record: En programgenerator er et udmærket værktøj i visse sammenhæng. Med sådan et værktøj kan du kan vælge mellem et begrænset antal på forhånd programmerede moduler ved hjælp af en mus, klik og vupti, så har du et resultat bestående af objekter, der er sat sammen (nogen kalder peg og klik - programmering for objektorienteret programmering, men det er en fordrejning af begreber). Et sidespring: På Linux findes mindst én klik-og-peg generator, nemlig "glade", en GTK+ User Interface Builder, skrevet af Damon Chaplin, Kan anbefales. 1

11 Kapitel 1. Repræsentation og modeller Figur 1-1. glade, en GTK+ GUI generator. 2

12 Kapitel 1. Repræsentation og modeller Figur 1-2. glade, projekt vindue. Nej, det avancerede består i, at du kan styre genereringen af programkode fuldstændig professionelt. Hvis du for eksempel ønsker at skrive en ny og bedre database server, så værsgo, gå i gang. Den nødvendige dokumentation er til rådighed, og der findes desuden lærebøger som forklarer om low-level ting og high-performance problematikker på Linux. Oven i alt dette får du den fordel, at dine Linux programmer i de fleste tilfælde kan anvendes uden ændringer på andre Linux-systemer, inclusive 64-bit systemer, og med få ændringer på mange andre Unix systemer som for eksempel Solaris, AIX, HP-UX. Mere overraskende er det måske, at man også kan køre Linux-udviklede programmer på Microsoft NT ved hjælp af Cygwin systemet fra Cygnus. Det er en væsentlig del af filosofien i GNU og C - sproget, at man skal kunne genbruge sin kode, hvis hardwaren skal udskiftes; og det skal den før eller senere! Hardware forgår, brainware består. Sådan da. Udover C-oversætteren har du med Linux adgang til C++ og mange andre sprog. 3

13 Kapitel 1. Repræsentation og modeller Hvad er en debugger? Debuggeren er et værktøj, som kan vise, linje for linje, hvad der sker i et program. Selv om det hedder en debugger, så er det er ikke så godt at bruge den til at fjerne fejl 1. Hvis et program er så fejlbehæftet, at man overvejer at anvende en debugger, så bør man begynde forfra og reimplementere sine programmer med de nyvundne erfaringer. Ok, der er undtagelser, hvor man kan lokalisere en vanskelig, periodisk fejl ved at anvende en debugger med omtanke, men det er ikke noget, som man skal gøre til en fast vane! Biblioteker - et eksempel Det vigtigste er imidlertid, at der med de almindelige Linux-distributioner er et stort arsenal af frie biblioteker til database, netværk, grafik etc. Som et eksempel kan det fremhæves, at der findes frie biblioteker til netværksprogrammering. For eksempel Remote Procedure Call, både til klient- og tjenersiden. Det er en teknik, som kan benyttes til at udføre en routine på en anden computer (som selvfølgelig skal være forberedt til dette!) Dette er værd at understrege, idet den meget udbredte PC-software har indført nogle økonomisk betingede useriøse skel mellem server og klient programmer. Desuden har du adgang til mange gode eksempler på, hvordan i hvert fald nogle af bibliotekerne anvendes. Kort sagt, hvis du går i gang, kan du satse på at nå et professionelt niveau på de områder, som du udvælger Hvordan kommer man igang? Hvad gør man så for at komme igang? Hvis der skulle være et mirakel-ord, som er nøgle til forståelse af computerens magi, så er det ordet DATA-REPRÆSENTATION. Godt nok følger computerens elektriske signaler de fysiske love, men computeren er et instrument til at manipulere store mængder af impulser ud fra nogle få regler valgt af programmøren. Med andre ord, vi kan tillægge elektriske signaler en betydning. Et enkelt elektrisk signal kaldes oftest en bit, binary digit. Otte af dem kaldes en byte eller, mere officielt, en octet. En enkelt bit kan være en besked om at åbne sluserne for at undgå en oversvømmelse. Eller en prik på en billedskærm. Eller forskellen mellem et punktum og et komma (i en dårlig skrifttype! Anstrengende for øjnene!) 4

14 Kapitel 1. Repræsentation og modeller Som regel bruger man flere bits til vigtige beskeder for at sikre, at man nu også har forstået hinanden rigtigt. Det kaldes redundans. Bogstaver repræsenteres som regel ved en byte, men ved anvendelse af Unicode bruges 16 bit eller 2 bytes. Der er også systemer, som repræsenterer bogstaver ved hjælp af variabelt antal bytes. Kig for eksempel på en HTML-side Repræsentation af data Hvis du ved en masse om computere, så vil du nok finde dette afsnit overflødigt. Spring straks videre! En computer kan bruges til tekstbehandling, styring af produktionsmaskineri, til teleudstyr, og, selvfølgelig, til den "klassiske" lommeregner. Hvor kommer denne fleksibilitet fra? Fra programmøren, eller mere korrekt: De forskellige applikationer af computerteknikken beror på muligheden for at repræsentere information af mange forskellige typer ved hjælp af elektriske spændinger. Konstruktøren af en harddisk bestemmer f.x., at når man sætter strøm på ledning 77, så er det en besked til harddisken om, at den skal begynde en read-operation. De, der konstruerer computeren, bestemmer, hvad de forskellige elektriske signaler skal få de forskellige dele af maskineriet til at udføre. Når han én gang har bestemt, at ledning 77 er read-request, og maskinen er bygget efter hans anvisninger, så er vi bundet af denne mening med signal 77, men det kan altså laves om - næste gang, vi konstruerer et harddisk interface. Den ene dag repræsenterer bit nummer en kerne i en tomat, næste sekund måske et punktum på en skærm, og næste dag kunne den være en del af en ordre til en harddisk. Hvis du vil i dybden med forståelse af computerens virkemåde og muligheder, kan du læse for eksempel Joseph Weizenbaum s "Computer Power and Human Reason". Datarepræsentation handler om teknikker til at repræsentere forskellige typer af objekter. For programmøren er det vigtigere at spørge, hvilke informationer, det egentlig er interessant at repræsentere. Det kan computeren ikke finde ud af uden kyndig vejledning fra programmører! Hvordan vælger vi at repræsentere en tomat, hvad vælger vi at se? Er det prisen, der interesserer os? Vægten? Udseendet? Surhed? Arvelige egenskaber? Vi vælger ud fra en idé om, hvad vi vil med objektet. 5

15 1.3. Repræsentation af tal Kapitel 1. Repræsentation og modeller Lad os se på, hvordan computeren repræsenterer tal. Det er vel det, den er bedst til? Jo, måske nok, men alligevel, der er faktisk en hage eller to ved computerens måde at repræsentere tal på. Fx. taler vi om heltal, de naturlige tal, tallene fra 0 og opefter. Eller er det fra 1 og opefter ;-) Nå, i hvert fald så siger vi, at vi kan repræsentere heltallene med en computers kalkulator register eller en memory celle. Men det er ikke helt rigtigt! Det er nemlig kun et udsnit af de naturlige tal, som vi kan repræsentere. Så ikke engang denne enkle opgave kan en computer klare så godt som en almindelig dødelig! Forklaring følger. Et register er en slags tælleværk, der i dag typisk består af 32 bits - binary digits. De enkelte digits er lavet ved hjælp af et transistor mønster, der kan være i to tilstande, enten i en tilstand, hvor strømmen kan passere, eller også i en tilstand, hvor strømmen blokeres. Når der er 32 bits, kan de danne ca. 4 mia. mønstre eller kombinationer af on/off, 0 eller 1. Det er maximum antal kombinationer. Hvis vi altså tæller fra 0, kan vi komme op på 4 mia med et 32-bit register. Det er derfor, at der har været en grænse for filstørrelser på de almindeligst forekommende filsystemer. Siger 2 Gb grænsen dig noget? Det er den største fil på for eksempel Linux ext2-filsystemer. Det kunne have været en 4 Gb grænse, men én af bit ene er reserveret til et andet formål, nemlig til angivelse af, om systemet er i en fejltilstand efter en skrive- eller læseoperation. En bit, on/off, svarer altså til en fordobling af kombinationsmulighederne, se nærmere nedenfor. Bits er altså repræsenteret ved hjælp af elektriske kredsløb, der kan aflæses af andre kredsløb. Kalkulator registeret, det vigtigste register på den traditionelt opbyggede CPU, er en slags tælleværk bestående af bits (i dag som regel 32), som en kilometertæller, som kan udføre forskellige regnestykker på det tal, den indeholder. En CPU kan have mange kalkulator-registre. De har navne, ofte noget med R1 og R2, i Intel-arkitekturen (x86 - CPU er) hedder de imidlertid EAX, EBX, ECX etc (hvilket er copyrighted!) Mange af dem kan udføre regnestykker. På Intel 386 arkitekturen (og Pentium m.v.) kan man dog se en vis fortrinsstilling for EAX registeret. Men denne bog handler ikke om Intel. Hvis Intels CPU er interesserer dig, så hent fra "Intel Architecture Software Developer s Manual" (det er 3 PDF-filer på ialt omkring 15 Mb), eller find en bog om assemblerprogrammering, eller prøv at læse den Assembly-HOWTO, som følger med bl.a. Red Hat Linux. Hvis CPU-en har 32-bit registre, så kan man skrive tal fra 0 til 4 milliarder. Selv om det er mange, er det ikke ALLE de naturlige tal - de fortsætter jo opefter, mod uendelig, som man siger. Selv om det heller ikke er muligt at finde noget i universet, som er uendeligt, man bliver om jeg så må sige træt inden man når dertil, er det alligevel en mere begrænset repræsentation af talsystemet, som vi får med en 32-bit computer 2 Metoden til at tælle ved hjælp af bits, som du sikkert kender eller allerede har regnet ud, kan illustreres med følgende tabel (med kun 4 bit): 6

16 Kapitel 1. Repræsentation og modeller ottere firere toere_ enere_ værdi med almindeligt 10-talsystem == == == == == == == == 7 Som man kan se kan kolonnerne kaldes ENERE, TOERE og FIRERE i analogi med vores ti-tal system, hvor vi siger, at kolonnerne repræsenterer enere, tiere og hundreder etc. Hvis vi har brug for mere, kan vi imidlertid godt sætte flere registre, eller flere memory celler, sammen, så vores tal kan blive større. Det er forholdsvis enkelt. De negative tal kunne vi repræsentere ved at markere med en ekstra bit (eventuelt et helt andet sted) at vi skulle gange med -1. Nogle maskiner kan faktisk skelne mellem +0 og -0! Men det er ikke populært i dag. Man vælger som regel en anden metode. Man indretter CPU registrene sådan, at når man tæller op, så bliver til (for ikke at skrive alle 32 bit, skriver jeg ) Det ligner lidt en kilometertæller, som når den har nået det største tal, den kan vise, går tilbage til 0, altså for eksempel går fra til Men altså, det skal forestille, at alle bit er tændt - det kalder man, at de er sat. Hvis det er et 32-bit register, svarer det til ca. 4 milliarder. Når man så lægger 1 til, bliver resultatet 0! Det ligner ikke helt den verden, vi ønsker at repræsentere med vores computer programmer. Derfor bør man under programmering altid være opmærksom på grænserne for de tal, man arbejder med. Det er imidlertid ikke så slemt, som det lyder Ovenstående forestiller en kilometertæller som tæller med nuller og enere. Den er løbet fuld! Næste gang, den skal tælle opad, skifter alle cifre, ligesom km ville skifte til km. Altså, når alle bit er sat, og vi lægger en til, så slukker de alle sammen. Derfor kunne det være en god idé at lade repræsentere det negative tal -1. 7

17 Kapitel 1. Repræsentation og modeller fortegn værdi med almindeligt 10-talsystem == == == == == == == == -1 Som man kan se, nytter det ikke noget her at kalde kolonnerne for ENERE, TOERE og FIRERE. Hvis man skal give denne "konvertering af betydningen" et navn, så plejer man at kalde den 2 s komplement. Men egentlig er det 2 32 s komplement, d.v.s tal. Det er nok lettere at se det for sig med en illustration. Man repræsenterer f.x. 1 med en bit i den ene ende. Når man vender alle bits om, så 0 er bliver til 1 og omvent (inverterer), og lægger 1 til, så får man bitmønsteret til repræsentation af -1. Eksempel 1-1. tallene fra 0 til 7 og 0 til -7. 0: 0000, Inverted: 1111, Complement(til 2^4): : 0001, Inverted: 1110, Complement(til 2^4): : 0010, Inverted: 1101, Complement(til 2^4): : 0011, Inverted: 1100, Complement(til 2^4): : 0100, Inverted: 1011, Complement(til 2^4): : 0101, Inverted: 1010, Complement(til 2^4): : 0110, Inverted: 1001, Complement(til 2^4): : 0111, Inverted: 1000, Complement(til 2^4): 1001 Når der er tale om 32 bit heltals repræsentation, er det lettere at benytte hexadecimal notation. Tallene fra 0-9 skrives som sædvanlig 0-9, men skrives a-f. Det betyder, at man kan repræsentere 4 bit med ét ciffer, hvor ciffer skal forstås som 0-9a-f. Eksempel 1-2. tallene fra 0 til 7 og 0 til -7. Word: , Inverted: ffffffff, Complement: Word: , Inverted: fffffffe, Complement: ffffffff Word: , Inverted: fffffffd, Complement: fffffffe Word: , Inverted: fffffffc, Complement: fffffffd Word: , Inverted: fffffffb, Complement: fffffffc Word: , Inverted: fffffffa, Complement: fffffffb Word: , Inverted: fffffff9, Complement: fffffffa Word: , Inverted: fffffff8, Complement: fffffff9 8

18 Kapitel 1. Repræsentation og modeller Fortsætter man denne tankegang, så bliver det største tal med 32 - bit ca. 2 milliarder, og det er stadigvæk en pæn sjat. Grunden til, at Linux ext2-filsystem ikke kan have filer, som er større end 2 Gb er forresten, at grænsesnittene der bruges til at læse og skrive filer arbejder med 32 bit heltal (hvoraf en bit bruges til fortegnet). Et program, som frembringer udskriften ovenfor (fig Eksempel 1-2) er vist i Afsnit 2.7. Det er muligt at repræsentere tal på andre måder end den her viste. Men vigtigere, det er muligt at repræsentere andet end tal. Bogstaver kan repræsenteres ved hjælp af tal, den simpleste løsning på en computer med mulighed for at repræsentere tekst er jo den kendte metode med en byte pr. bogstav. Det er ikke nok, hvis der også skal være plads til at repræsentere græske bogstaver, matematiske symboler, og slet ikke, hvis også forskellige grafiske symboler, skrifttypebeskrivelser etc. skal repræsenteres. Men det er en helt anden historie. Andre ting, som for eksempel grøntsager og frugt, må repræsenteres ved bits og bytes på samme måde som tal og bogstaver. Hvis du er ny i programmering, vil det klogeste være at afprøve nogle programmer nu, måske endda bruge 3-4 måneder på eksemplerne og øvelserne i Afsnit 2.1 kapitlet. Hvis du på den anden side kender lidt til programmering og gerne vil køre tanken om repræsentation til ende, så er der to begreber, som vi skal tygge lidt på: Simuleringer og modeller Simulering - Modeller For lige at få lidt mere real-life perspektiv på datarepræsentation, så forestil dig et program, som skal simulere noget, der foregår i det virkelige liv, matador-spil, adventure-spil (som på visse punkter forventes at svare til ting, vi kender fra dagligdagen), eller beregning af en vejrudsigt. Vind fra vest med lavtryk - hvor ligger grænsen (isobar linjen) for 990 millibar etc.etc. Man kan for eksempel opdele luftrummet over Skandinavien i firkanter med hver deres vejr-målinger og beregne interaktionen mellem firkanterne efter de fysiske love for tryk udligning, temperaturudvidelser etc. - pyha, godt det ikke skal udregnes i hånden! Simuleringer er så forskellige. Man kan simulere reaktionerne på håndtag og visningen i instrumenter i et flycockpit for at give piloterne øvelse i at betjene styremekanismerne; eller man kan simulere eller efteligne lydene fra et spillende symfoniorkester. Simuleringerne svarer ikke på alle punkter til virkeligheden, men kan være nyttige og mere eller mindre tæt på virkeligheden. Hvis vi skulle beregne det mest rentable dyrkningsforløb for tomater i drivhus, hvad skulle vi så vide om dem? Jeg behøver ikke spørge, om vi kunne spise resultatet af simuleringen! Men en ting er sikkert, der skulle mange oplysninger til, de fleste af dem skulle opsamles ved hjælp af grundige forsøg og målinger, som ville ende med nogle tal, der repræsenterede egenskaber ved forløbet. 9

19 Kapitel 1. Repræsentation og modeller Derimod så ligner et investeringsspil og en investerings service for bankkunder hinanden så meget, at man kan bruge det ene program som grundlag for den virkelige service. Her bliver der blot koblet betalingstransaktioner på spillet, med tilhørende retsansvar. Kobler vi simuleringerne på virkelige objekter (med passende teknik, som i sig selv kan være komplicerede computersystemer) kan computeren anvendes som værktøj til at "styre virkeligheden", måske bedre, end vi kan gøre det, men til syvende og sidst blot som vores "forlængede arm". Simulerings- og styringsteknikker hviler på evnen til at repræsentere begreber og objekter ved hjælp af computerens bits. Som nævnt er denne repræsentation altid mangelfuld. Den opfattelse af verden, som måtte ligge til grundlag for simuleringerne, kaldes en model. Modellen er altså ikke kun repræsentationen af statiske, ubevægelige, egenskaber, som tingene har, men også af deres måde at bevæge sig og indgå forbindelser med hinanden, sådan som for eksempel de enkelte styrehåndtag i en flysimulator må reagere på og med hinanden. Men ligesom talrepræsentationen er mangelfuld, så vil modeller også være mangelfulde. Ikke kun fordi der mangler den syvende decimal, men fordi der er grænser for, hvor meget programmøren kan forudse. Havarisituationer, vejrsituationer, forskellige former for landskabsforhindringer etc. kan kun i et begrænset antal være repræsenteret i en computer. På et eller andet tidspunkt kommer man (efter meget arbejde) formentlig til en model, som tilfredsstiller brugerne af modellen så meget, at de opfatter modellen som en fuldt funktionel fremstilling af virkeligheden. Den slags tanker virker specielt tiltrækkende på børn og reklamefolk. Måske også på fabrikanter af computerspil. Ord som cybernetics, cyberspace og cyborg spiller på dette element af "en verden inde i computeren". Man kunne sige, at vi har "mappet", kortlagt, en del af den virkelige verden ved hjælp af vores computers bits og nogle programmer, som behandler dem i overensstemmelse med vores fortolkning. Denne teknik, at "mappe" en mængde af elementer, således at de repræsenteres af en anden mængde, er den grundlæggende disciplin for applikationsprogrammører. Alan Turing har omkring beskrevet det teoretiske grundlag for computerens virkemåde, og hans arbejde er stadig interessant for programmører, der vil forstå muligheder og grænser for computerens "indre univers" Planlægning af et program For at omsætte teori til praksis er det bedst at begynde med en opgavetype, som man kender lidt til i forvejen, og helst et område, som ikke involverer kompliceret teknik. I denne sammenhæng er spil og simuleringer er gode. Det er vigtigt, at man ikke begynder for ambitiøst. Pas på ikke at gøre for meget ud af detaillerne i første omgang. Prøv for eksempel at skitsere, hvilke oplysninger, der bør være med i et CD kartotek. Når det 10

20 Kapitel 1. Repræsentation og modeller viser sig, at denne opgave er af næsten uoverskuelig kompleksitet og involverer ansættelse af 10 erfarne bibliotekarer (jvf. Knuth [2]) så er man gået for langt. For at repræsentere et medlem i et medlemskartotek er det indlysende, at der skal være navn og medlemsnummer (eller er medlemsnummer nok?), måske skal navnet deles i for/efternavn, formentlig skal vi have adressen med. Hvordan vi vil nedfælde adressen kommer an på meningen med kartoteket. Normalt skal der være forskellige måder at kontakte personen. Det kunne måske klares ved et telefonnummer eller en e-postadresse. Skal der være felter for indbetalt kontingent eller vil vi henvise til et kontonummer og dermed bevæge os ind på posteringsteknikker? Det er rart at prøve det nogle gange. Det er også ganske underholdende, fordi man (forhåbentlig) opdager en masse om, hvad man kan forvente af funktionalitet ud fra de data, man agter at registrere. Opgave: Prøv at tegne/skitsere en repræsentation af noget, du kender godt, f.eks. et medlemskartotek, og beskriv de operationer, du ønsker at kunne foretage. Hvis det bliver nødvendigt at ændre i datarepræsentationen, så gør det, og tjek, at de gamle operationer stadig kan fungere. Prøv at holde skitsen så simpel som muligt, således at man stort set kunne gøre de samme ting ved hjælp af en editor (tekstbehandling). Det er den samme fremgangsmåde som ved objektorienteret analyse og planlægning, med den lille undtagelse, at vi ikke hævder at afspejle den ydre verdens datastruktur i vores interne datarepræsentation. Man kan selvfølgelig også begynde med de operationer, som man ønsker at have til rådighed. Derefter finder man ud af, hvilke data, som kræves for at kunne gøre det. Med denne metode skal man være mere opmærksom på, hvordan de forskellige data skal grupperes. Det sjove ved den "objektorienterede" analyse er jo, at man anvender sit forudfattede billede af den eksisterende opgave til at gruppere sine data. Uanset hvilken indfaldsvinkel man foretrækker, så er det vigtigt at tegne og tale med kolleger, i nødsfald med sig selv, om hvordan man kunne gribe sagen an. Brug meget gerne pseudo-programmering, d.v.s. almindelige sætninger, som beskriver, hvordan programmet skal fungere. Det kunne man kalde aktions-orienteret programmering ;-) Den her foreslåede fremgangsmåde er jo den samme procedure som ved objektorienteret analyse til for eksempel programmering i C++, Det er ikke umuligt at skrive strukturerede, objektorienterede programmer ved hjælp af C sproget. Det er selvfølgelig nemmere at gøre det med C++ (eller bør være nemmere), men der er stadig nogle situationer, hvor C er mere effektivt. Slutbemærkning: 1. Det kaldes aflusning eller debugging, bug == insekt, - der skulle engang være opstået en fejl i en af de første computere p.g.a. nogle insekter, som syntes, at der var varmt og rart at være oven på sådan 11

Programmering i C Intro og grundlæggende C 5. marts 2007

Programmering i C Intro og grundlæggende C 5. marts 2007 Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner

Læs mere

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);

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

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

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

Introduktion til C programmering

Introduktion til C programmering Introduktion til C programmering Rasmus Erik Voel Jensen Uge 17 voel@math.ku.dk Dagens forelæsning Formalia Indledende programmering, main, include, printf, variable, scanf, if-else, statements, eksempler

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

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

Projekt - Visual Basic for Applications N på stribe

Projekt - Visual Basic for Applications N på stribe Projekt - Visual Basic for Applications N på stribe Mikkel Kaas og Troels Henriksen - 03x 3. november 2005 1 Introduktion Spillet tager udgangspunkt i det gamle kendte 4 på stribe, dog med den ændring,

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere

1. Opbygning af et regneark

1. Opbygning af et regneark 1. Opbygning af et regneark Et regneark er et skema. Vandrette rækker og lodrette kolonner danner celler, hvori man kan indtaste tal, tekst, datoer og formler. De indtastede tal og data kan bearbejdes

Læs mere

Kom i gang med... Kapitel 11 Math: Formelredigering med OpenOffice.org. OpenOffice.org

Kom i gang med... Kapitel 11 Math: Formelredigering med OpenOffice.org. OpenOffice.org Kom i gang med... Kapitel 11 Math: Formelredigering med OpenOffice.org OpenOffice.org Rettigheder Dette dokument er beskyttet af Copyright 2005 til bidragsyderne som er oplistet i afsnittet Forfattere.

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

Kom godt igang med Inventar registrering

Kom godt igang med Inventar registrering Kom godt igang med Inventar registrering (InventoryDB) (Med stregkodesupport) programmet fra PetriSoft Introduktion... 1 Inventar registrering... 2 Værktøjsudleje... 3 Service database til reperationer

Læs mere

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller

Læs mere

poedit og oversættelse af sprogfiler

poedit og oversættelse af sprogfiler poedit og oversættelse af sprogfiler af Georg S. Adamsen WordPress.Blogos.dk 2009 http://kortlink.dk/wordpressblogosdk/6g38 1 af 11 14-04-2009 14:55 Jeg får af og til spørgsmål om, hvordan man bruger poedit,

Læs mere

SÅDAN BRUGER DU TEKST- BEHANDLING INTRODUKTION

SÅDAN BRUGER DU TEKST- BEHANDLING INTRODUKTION SÅDAN BRUGER DU TEKST- BEHANDLING INTRODUKTION I vejledningen bruger vi det gratis program Writer fra OpenOffice som eksempel til at vise, hvordan man bruger nogle helt grundlæggende funktioner i tekstbehandling.

Læs mere

COMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE

COMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE COMPUTER ANATOMI 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE 1 Indholdsfortegnelse Kapitel 1: Opbygning s.2 Kapitel 2: CPU s.3 Kapitel 3: Motherboard s.4 Kapitel 4: Ram s.6 Kapitel 5: Grafikkort s.7 Kapitel

Læs mere

Programmering I Java/C#

Programmering I Java/C# Programmering I Java/C# Dit første projekt Datatekniker Intro to C# C# (C Sharp) Et enkelt, moderne, generelt anvendeligt, objektorienteret programmeringssprog Udviklet af Microsoft, ledet af danskeren

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

Lonbox PCM2001 betjeningsenhed

Lonbox PCM2001 betjeningsenhed PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 Lonbox PCM2001 betjeningsenhed Bruger vejledning Oktober 2002 Denne manual beskriver installation

Læs mere

Først skal du oprette dig i systemet, d. v. s. du skal have en såkaldt Googlekonto bestående af en mailadresse og et kodeord.

Først skal du oprette dig i systemet, d. v. s. du skal have en såkaldt Googlekonto bestående af en mailadresse og et kodeord. Gmail Indhold Indhold...1 Introduktion...2 Opret dig i systemet...2 At skrive mails...5 Sende en mail til flere personer...8 Vedhæfte en fil...9 Kladde...10 Signatur...11 Modtagne mails...12 Stjernemarkering...14

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

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

Manual til at arbejde med POI på Garmin GPS.

Manual til at arbejde med POI på Garmin GPS. Manual til at arbejde med POI på Garmin GPS. Michael Pedersen (mike42dk) mike42dk@gratispoi.dk Juli 2009 Version 2.1 Jeg fralægger mig alt ansvar for den skade du kan komme til at forsage ved din GPS,

Læs mere

vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl:

vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl: Fejlhåndtering Selv de bedste programmører laver af og til fejl! Dette kommer sikkert som en overraskelse for de fleste, bortset fra de, der har arbejdet med et hvilket som helst større program. Fejl kan

Læs mere

Vejledning til Teknisk opsætning

Vejledning til Teknisk opsætning Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder

Læs mere

PHP kode til hjemmeside menu.

PHP kode til hjemmeside menu. PHP kode til hjemmeside menu. Home Hovedmenu 1 Hovedmenu 2 Hovedmenu 3 Hovedmenu 4 Undermenu 1 Breadcrumb Her vises indholdet af den valgte side Undermenu 2 Undermenu 3 Undermenu 4 Evt. en mulighed for

Læs mere

Lidt orientering om, hvad en computer består af

Lidt orientering om, hvad en computer består af Lidt orientering om, hvad en computer består af Lidt orientering om, hvad en computer består af...1 Introduktion...2 Skærm...2 Printer...2 Tastatur...2 Mus...3 CPU...3 Bundkort...4 Strømforsyning...4 RAM/

Læs mere

Microsoft. fra Word 2003

Microsoft. fra Word 2003 I denne vejledning Microsoft Word 2010 ser meget anderledes ud end Word 2003, og vi har derfor oprettet denne vejledning, så du hurtigere kan komme i gang med at bruge programmet. Læs videre for at få

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

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

SÅDAN BRUGER DU REGNEARK INTRODUKTION

SÅDAN BRUGER DU REGNEARK INTRODUKTION SÅDAN BRUGER DU REGNEARK INTRODUKTION I vejledningen bruger vi det gratis program Calc fra OpenOffice som eksempel til at vise, hvordan man bruger nogle helt grundlæggende funktioner i regneark. De øvrige

Læs mere

DocBook SGML/XML. Forhistorien for Linux Friheden til at vælge Dokumentation. I bestemmer :-) Motivation for DocBook Alternativer til DocBook Docbook

DocBook SGML/XML. Forhistorien for Linux Friheden til at vælge Dokumentation. I bestemmer :-) Motivation for DocBook Alternativer til DocBook Docbook DocBook SGML/XML Forhistorien for Linux Friheden til at vælge Dokumentation Motivation for DocBook Alternativer til DocBook Docbook Min første bog eksempel Oversættelse Hvordan arbejder vi sammen CVS make

Læs mere

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4 Maskine Udlejning 15. oktober 2010 Jacob Weng, Jeppe Boese og Mads Anthony Roskilde Tekniske Gymnasium Udlejningsvirksomhed 3.4 Indholdsfortegnelse Problemformulering:... 2 Planlægning:... 2 Analyse af

Læs mere

Start på Arduino og programmering

Start på Arduino og programmering Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget

Læs mere

Brugervejledning. Hjemmesider med Cmsimple.

Brugervejledning. Hjemmesider med Cmsimple. 1af23 Brugervejledning. Hjemmesider med Cmsimple. 1. Forord. Denne brugervejledning er fremstillet for at hjælpe personer ved Lokalhistorisk Arkiver i ny Sønderborg kommune, som kun har ringe kendskab

Læs mere

Crash Course i Programmering. HumTek, RUC

Crash Course i Programmering. HumTek, RUC Crash Course i Programmering HumTek, RUC Kursus mål At give en basal introduktion til programmering i sproget Processing At give et overblik over sprogets potentiale At have det sjovt :-) Kursus form Meget

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

BAAN IVc. Brugervejledning til BAAN Data Navigator

BAAN IVc. Brugervejledning til BAAN Data Navigator BAAN IVc Brugervejledning til BAAN Data Navigator En udgivelse af: Baan Development B.V. P.O.Box 143 3770 AC Barneveld Holland Trykt i Holland Baan Development B.V. 1997. Alle rettigheder forbeholdes.

Læs mere

Komplekse tal og Kaos

Komplekse tal og Kaos Komplekse tal og Kaos Jon Sporring Datalogisk Institut ved Københavns Universitet Universitetsparken 1, 2100 København Ø August, 2006 1 Forord Denne opgave er tiltænkt gymnasiestuderende med matematik

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

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

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

Skifte til Excel 2010

Skifte til Excel 2010 I denne vejledning Microsoft Excel 2010 ser meget anderledes ud end Excel 2003, og vi har derfor oprettet denne vejledning, så du hurtigere kan komme i gang med at bruge programmet. Læs videre for at få

Læs mere

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004 Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret

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

Picto Selector. Lav dine egne flotte symbolark på den nemme måde. Version: Oktober 2012

Picto Selector. Lav dine egne flotte symbolark på den nemme måde. Version: Oktober 2012 Picto Selector Lav dine egne flotte symbolark på den nemme måde Version: Oktober 2012 Indholdsfortegnelse Hvad er Picto Selector?...4 USB?...4 Hent programmet...4 Installer programmet på din computer...5

Læs mere

Introduktion til Calc Open Office med øvelser

Introduktion til Calc Open Office med øvelser Side 1 af 8 Introduktion til Calc Open Office med øvelser Introduktion til Calc Open Office... 2 Indtastning i celler... 2 Formler... 3 Decimaler... 4 Skrifttype... 5 Skrifteffekter... 6 Justering... 6

Læs mere

Rapport generator til Microsoft C5

Rapport generator til Microsoft C5 Generelt Rapportgeneratoren til C5 kan benyttes sammen med alle versioner af C5 og kræver INGEN tillægsmoduler eller tilkøb af C5. Den kører på: C5 version 1.5x, 1.6x, 2.x, 3.x, 4.x, 2008, 2010 og 2012.

Læs mere

Læringsprogram. Talkonvertering. Benjamin Andreas Olander Christiansen Niclas Larsen Jens Werner Nielsen. Klasse 2.4. 1.

Læringsprogram. Talkonvertering. Benjamin Andreas Olander Christiansen Niclas Larsen Jens Werner Nielsen. Klasse 2.4. 1. Læringsprogram Talkonvertering Benjamin Andreas Olander Christiansen Niclas Larsen Jens Werner Nielsen Klasse 2.4 1. marts 2011 Fag: Vejleder: Skole: Informationsteknologi B Karl G. Bjarnason Roskilde

Læs mere

Introduktion til SQL

Introduktion til SQL Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke

Læs mere

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Matematik i WordMat En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Indholdsfortegnelse 1. Introduktion... 3 2. Beregning... 4 3. Beregning med brøker...

Læs mere

3. Computerens opbygning.

3. Computerens opbygning. 3. Computerens opbygning. Computere er konstrueret med henblik på at skulle kunne behandle og opbevare data og det er de som nævnt i noterne om Bits og Bytes vældig gode til. Som overordnet model for computere

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

Hvad er dukapc. E-mail modulet. dukapc 2

Hvad er dukapc. E-mail modulet. dukapc 2 dukapc 2 Hvad er dukapc dukapc er en ældrevenlig computer, som hjælper seniorer med at komme online og få glæde af computerens og internettets mange muligheder. Også selvom brugeren aldrig før har rørt

Læs mere

4 Basal Objekt-orienteret Programmering I.

4 Basal Objekt-orienteret Programmering I. 4 Basal Objekt-orienteret Programmering I. Klasser i forhold til abstrakte datatyper og record-typer. Variable og operationer. Klasse-interfaces. Klasser og typer. Klasse-instantiering og initialisering.

Læs mere

Ruko SmartAir. Updater installation

Ruko SmartAir. Updater installation Ruko SmartAir Updater installation Introduktion. Updateren er en speciel enhed som giver os mulighed for at tilføje, læse og skrive funktioner i en offline installation. Med læse og skrive funktionen kan

Læs mere

Lektion 1 Grundliggende regning

Lektion 1 Grundliggende regning Lektion 1 Grundliggende regning Indholdsfortegnelse Indholdsfortegnelse... Plus, minus, gange og division - brug af regnemaskine... Talsystemets opbygning - afrunding af tal... Store tal og negative tal...

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

Mathcad Survival Guide

Mathcad Survival Guide Mathcad Survival Guide Mathcad er en blanding mellem et tekstbehandlingsprogram (Word), et regneark (Ecel) og en grafisk CAS-lommeregner. Programmet er velegnet til matematikopgaver, fysikrapporter og

Læs mere

Optimering af fraværsregistrering

Optimering af fraværsregistrering Journal Optimering af fraværsregistrering Eksamensprojekt i Programmering C, klasse 3.4, 2011 AFLEVERET 09-05-2014 Indhold Abstract... Fejl! Bogmærke er ikke defineret. Problemformulering... 2 Produktet...

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

Viditronic NDVR Quick Guide. Ver. 2.0

Viditronic NDVR Quick Guide. Ver. 2.0 Viditronic NDVR Quick Guide Ver. 2.0 1 Indholdsfortegnelse 1. HOVEDMENU 3 1.1 START 5 1.2 AKTIVITETSINDIKATOR: 7 1.3 INFORMATIONS VINDUE: 7 1.4 PTZ KAMERA KONTROL: 7 1.5 SKÆRMMENU 8 1.5.1 AKTIVER BEVÆGELSE:

Læs mere

Rejsekort A/S idekonkurence Glemt check ud

Rejsekort A/S idekonkurence Glemt check ud Rejsekort A/S idekonkurence Glemt check ud 9. marts 2015 1 Indhold 1 Introduktion 4 1.1 Problembeskrivelse........................ 4 1.2 Rapportens opbygning...................... 4 2 Ordliste 5 3 Løsning

Læs mere

Vejledning KPK Online Prøverum

Vejledning KPK Online Prøverum Vejledning KPK Online Prøverum INDHOLD Introduktion side 2 Funktionsliste side 2 Få adgang til systemet side 3 Opload dine billeder side 4 Sådan bruges systemet side 5 Gem dine eksempler side 7 Side 1/7

Læs mere

Øvelser rundt på computeren

Øvelser rundt på computeren Øvelser rundt på computeren Kursister med it-færdigheder bør læse øvelserne igennem. Hvis der er elementer, som er ukendte, bør du udføre øvelserne. Hvis øvelserne derimod er kendt information kan øvelserne

Læs mere

Lavet af Danni jensen og David Olsen

Lavet af Danni jensen og David Olsen Projekt Delfin Lavet af Danni jensen og David Olsen 19/5-2008 Indholdsfortegnelse. Side 1: Indholdsfortegnelse og forord. Side 2: Kravsliste. Side 3: Use Case Model. Side 4: Formandens aktørbeskrivelse

Læs mere

Introduktion til FileMaker Pro 4.0/4.1

Introduktion til FileMaker Pro 4.0/4.1 1 Introduktion til FileMaker Pro 4.0/4.1 Hvad er en database? En database er en samling data, som er organiseret på en systematisk måde og er tilgængelig i digital form. Med andre ord er det en slags elektronisk

Læs mere

IT/Regneark Microsoft Excel 2010 Grundforløb

IT/Regneark Microsoft Excel 2010 Grundforløb Januar 2014 Indhold Opbygning af et regneark... 3 Kolonner, rækker... 3 Celler... 3 Indtastning af tekst og tal... 4 Tekst... 4 Tal... 4 Værdier... 4 Opbygning af formler... 5 Indtastning af formler...

Læs mere

Det binære talsystem og lidt om, hvordan computeren virker

Det binære talsystem og lidt om, hvordan computeren virker Det binære talsystem og lidt om, hvordan computeren virker Det binære talsystem...2 Lidt om, hvorledes computeren anvender det binære talsystem...5 Lyst til at lege med de binære tal?...7 Addition:...7

Læs mere

xgalleri Mulige filtyper Installation web-version

xgalleri Mulige filtyper Installation web-version xgalleri xgalleri opstod ud fra ønsket om at lægge en større samling billeder på nettet. Der findes mange programmer, som kan bruges til at lægge datafiler på nettet; men de fungerer typisk på den måde,

Læs mere

smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15

smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15 smart-house Web-Server Manual CARLO GAVAZZI AS, PB 215, NO-3901 Porsgrunn Telefon: 35 93 08 00 Telefax: 35 93 08 01 Internet: http://www.carlogavazzi.no E-Mail: gavazzi@carlogavazzi.no 1 of 15 Indholdsfortegnelse

Læs mere

PHP Quick Teknisk Ordbog

PHP Quick Teknisk Ordbog PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,

Læs mere

Installationsvejledning Family Tree Maker

Installationsvejledning Family Tree Maker Side 1 af 10 Først og fremmest tillykke med din nye version, oversat til dansk af undertegnede. Håber du bliver lige så glad for alle dens muligheder, som så mange over hele verden er blevet det. Installation

Læs mere

Operativsystemer - dopsys

Operativsystemer - dopsys Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk dopsys 1 Q/A Mange deltagere er nu på 2. år af datalogistudiet, med dcomnet 1 for år siden Er din baggrund anderledes? dopsys 2 Praktiske oplysninger

Læs mere

ectrl Skabelonkonvertering

ectrl Skabelonkonvertering ectrl Skabelonkonvertering Indholdsfortegnelse 1. Indledning 3 2. Import ved hjælp af standardskabeloner 4 Kolonneopsætning og feltdefinition 6 3. Opsætning af konverteringsdefinitioner 8 4. Udvidede muligheder

Læs mere

Softwareudvikling: Miljøer

Softwareudvikling: Miljøer Softwareudvikling: Miljøer Præsentation af mig Praktiske oplysninger Overblik Host-target setup UNIX, historisk UNIX egenskaber UNIX ulemper UNIX, netværk, X11, brugerflader Windows fordele/ulemper Øvelse

Læs mere

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et

Læs mere

Indstillinger. 1. Built-in viewer 2. Built-in viewer embedded 3. Ekstern viewer

Indstillinger. 1. Built-in viewer 2. Built-in viewer embedded 3. Ekstern viewer TeXMaker guide TeXMaker er den editor, som vi anbefaler til at skrive LaTeX i. Det er en såkaldt cross-platform editor og kan benyttes til både Windows, Mac og Linux. TeXMaker er en ret almindelig editor

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

Brugervejledning til Avery Wizard for Microsoft Office. Dansk version til www.avery.dk - www.avery.no

Brugervejledning til Avery Wizard for Microsoft Office. Dansk version til www.avery.dk - www.avery.no Brugervejledning til Avery Wizard for Microsoft Office Dansk version til www.avery.dk - www.avery.no Indholdsfortegnelse 1. Systemkrav 1. Systemkrav for at anvende Avery Wizard 2. Installering af Wizard

Læs mere

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO...

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO... INDHOLDSFORTEGNELSE INDLEDNING... 7 Kristian Langborg-Hansen KAPITEL ET... 9 I gang med App Inventor Installation af App Inventor... 10 Trådløs installation... 11 Installation af emulator (Windows)...

Læs mere

Velkommen til IT for let øvede

Velkommen til IT for let øvede Velkommen til IT for let øvede at dias ligger på hjemmesiden, så I kan se dem igen hjemme. Peter har ordet Blev vi færdige med vinduerne?? Øvelse tastatur og mus vi ikke kunne sidste gang får I som hjemmeopgave

Læs mere

Spil og svar. Journal nr. 13.12.599. Et webbaseret værktøj udviklet af Programdatateket i Skive

Spil og svar. Journal nr. 13.12.599. Et webbaseret værktøj udviklet af Programdatateket i Skive Journal nr. 13.12.599 Spil og svar Et webbaseret værktøj udviklet af Programdatateket i Skive E-mail: programdatateket@viauc.dk Web: http://www.programdatateket.dk Kolofon HVAL-vejledning Spil og svar

Læs mere

Internet Information Services (IIS)

Internet Information Services (IIS) Internet Information Services (IIS) Casper Simonsen & Yulia Sadovskaya H1we080113 06-11-2013 Indholdsfortegnelse Problemformulering... 2 Hvorfor:... 2 Hvad:... 2 Hvordan:... 2 Problembehandling... 3 Introduktion...

Læs mere

Installation af Oracle 10g Release 2 database

Installation af Oracle 10g Release 2 database Installation af Oracle 10g Release 2 database Oracle 10g database indeholder databasesoftware, enterprise manager, SQL*Plus m.m., HTML DB (i dag kendt som Application Express) og tilhørende HTTP Server

Læs mere

Introduktion til EXCEL med øvelser

Introduktion til EXCEL med øvelser Side 1 af 10 Introduktion til EXCEL med øvelser Du kender en almindelig regnemaskine, som kan være til stort hjælp, når man skal beregne resultater med store tal. Et regneark er en anden form for regnemaskine,

Læs mere

KAPITEL 1 Introduktion

KAPITEL 1 Introduktion KAPITEL 1 Introduktion ZoomText 9.1 er et specialdesignet computer program der hjælper svagsynede med at se skærmbilledet på computeren. Ved at benytte både skærmforstørrelse og skærmlæsning giver ZoomText

Læs mere

IT sikkerhed Whitelist

IT sikkerhed Whitelist IT sikkerhed Whitelist IT sikkerhed Whitelist Skrevet af: Anchelika V. Skjødt og Lasse B. Troelsen Kom/IT A Klasse 3.5 Side 1 af 7. Spam facts Spam er et af de største problemer med internettet på nuværende

Læs mere

Kort om CoinDB (Mønt- og seddelsamling):

Kort om CoinDB (Mønt- og seddelsamling): Kom godt i gang med CoinDB programmet fra PetriSoft (Holder styr på din Mønt- seddel- eller frimærkesamling) Kort om CoinDB (Mønt- og seddelsamling): CoinDB er et Windows program, der anvendes af mønt-

Læs mere

Oprettelse og brug af E-mail i Jubii

Oprettelse og brug af E-mail i Jubii Side 1 af 11 Få din egen mailadresse Start Internettet. Skriv denne adresse i Adressefeltet: www.jubii.dk og tyk på Enterknappen. Du har nu forbindelse med søgemaskinen: Jubii Klik på punktet: E-mail Oprettelse

Læs mere

Sådan indlægges nyheder på DSqF s hjemmeside trin for trin

Sådan indlægges nyheder på DSqF s hjemmeside trin for trin Sådan indlægges nyheder på DSqF s hjemmeside trin for trin Systemkrav For at kunne bruge Composite kræves: Windows 95 eller nyere (bemærk - kun Windows kan bruges) Browseren Internet Explorer 6.0 eller

Læs mere

Design af IT-medier. Skriftlig prøve 27. august 1999. Alle skriftlige hjælpemidler er tilladt.

Design af IT-medier. Skriftlig prøve 27. august 1999. Alle skriftlige hjælpemidler er tilladt. Design af IT-medier Skriftlig prøve 27. august 1999 Varighed: Hjælpemidler: Bedømmelse: Besvarelse: Opgaver: 4 timer. Alle skriftlige hjælpemidler er tilladt. Karakter efter 13-skalaen. Alle ark skal være

Læs mere

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger Kompetenceområde Efter klassetrin Efter 6. klassetrin Efter 9. klassetrin Matematiske kompetencer handle hensigtsmæssigt i situationer med handle med overblik i sammensatte situationer med handle med dømmekraft

Læs mere

1. HVAD ER HOT POTATOES? 2. HVAD BESTÅR HOT POTATOES AF? 3. HVAD KOSTER HOT POTATOES? 4. SOFTWARE- OG HARDWAREKRAV.

1. HVAD ER HOT POTATOES? 2. HVAD BESTÅR HOT POTATOES AF? 3. HVAD KOSTER HOT POTATOES? 4. SOFTWARE- OG HARDWAREKRAV. Hot Potatoes 1. Hvad er Hot Potatoes?...2 2. Hvad består Hot Potatoes af?...2 3. Hvad koster Hot Potatoes?...2 4. Software- og hardwarekrav...2 5. Versioner....3 6. Indstillinger...3 Ny, Åbn, Gem, Gem

Læs mere

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13 1 Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Hvad er en makro... 10 Hvad kan du bruge en makro til... 10 Hvad en makro er (Visual Basic for Applications)... 11 Det hele sker

Læs mere

INDHOLDSFORTEGNELSE. INDLEDNING... Indledning. KAPITEL ET... Kom videre med Excel. KAPITEL TO... 27 Referencer og navne

INDHOLDSFORTEGNELSE. INDLEDNING... Indledning. KAPITEL ET... Kom videre med Excel. KAPITEL TO... 27 Referencer og navne INDHOLDSFORTEGNELSE INDLEDNING... Indledning KAPITEL ET... Kom videre med Excel Flyt markering efter Enter... 8 Undgå redigering direkte i cellen... 9 Markering ved hjælp af tastaturet... 10 Gå til en

Læs mere

Multi kanal GSM porttelefon med adgangs kontrol

Multi kanal GSM porttelefon med adgangs kontrol Multi kanal GSM porttelefon med adgangs kontrol Model: MCI-3000V1 Funktioner: Metal tastatur. Robust anti-vandal enhed. Rustfrit stål dørstation. Nem installation kun fire ledninger. Anti-Vandal højttaler

Læs mere

Datatransport... 2. Import & Eksport af data... 2. Generelt... 2. Import/eksport... 4. Felter i Import og Eksport... 5

Datatransport... 2. Import & Eksport af data... 2. Generelt... 2. Import/eksport... 4. Felter i Import og Eksport... 5 Indhold Datatransport... 2 Import & Eksport af data... 2 Generelt... 2 Import/eksport.... 4 Felter i Import og Eksport... 5 Trykknapper til Import og Eksport... 7 1 Alle... 7 2 Slet... 7 3 Editor... 7

Læs mere