Operativsystem:...4 Installer Microsoft.NET Runtime:...4 Mit første program: Virker.NET Runtime?...5 Kør programmet:...6 Kompiler med parametre eller

Størrelse: px
Starte visningen fra side:

Download "Operativsystem:...4 Installer Microsoft.NET Runtime:...4 Mit første program: Virker.NET Runtime?...5 Kør programmet:...6 Kompiler med parametre eller"

Transkript

1 Operativsystem:...4 Installer Microsoft.NET Runtime:...4 Mit første program: Virker.NET Runtime?...5 Kør programmet:...6 Kompiler med parametre eller flag:...6 Gennemgang af programmet Test:...8 Signaturer for Main():...10 Generelt:...10 Note: Redirection eller omdirigering:...12 Test i Windows udgaven:...12 Forklaring:...13 Installer SharpDevelop:...15 Struktureret programmering:...16 Kommentarer:...17 Keywords:...17 Variabelnavne/Identifiers:...17 Variable og scope:...19 Static variable:...20 C# indbyggede basale typer:...21 Opgaver:...21 Value og reference:...22 Strenge eller strings:...22 Opgaver:...24 Arrays eller tabeller:...24 Sortering af arrays:...27 Opgaver:...29 Operatorer i C#:...29 Tildelings operator:...29 Matematiske operatorer:...29 Relationelle operatorer og if-sætninger:...30 Kontrol flow diagram:...33 Logiske operatorer:...33 Binære Tal: Operatorerne &, og ^:...34 Kontrol strukturer:...35 for:...36 Opgaver:...36 Eksempel på løkker: Binære tal og decimaltal:...37 Opgaver:...37 C# format koder:...38 Opgaver:...39 foreach:...41 Opgaver:...44 switch:...45 while:...47 do..while:...47 goto:...48 Kontrol Flow Diagrammer:...48 Metoder eller funktioner:...49

2 Metoden arbejder normalt med lokale variable:...51 Parametre har attributter implicit eller eksplicit:...53 Rekursive funktioner/metoder:...55 Rekursivt: Drev, mapper og filer...57 Opgaver:...58 Enumerationer:...58 Flags og enums:...61 Opgaver:...62 DateTime:...62 Dato og Tids format koder:...64 Opgaver:...65 XML dokumentation af programmer:...65 Collections:...69 Eksempel på strenge og collections: En sorteret ordliste:...71 Hash-tabeller:...73 Opgaver:...75 Reflection (og om hvordan man kommer videre):...76 dll_reflection.exe:...77 reflection.exe:...79 Opgaver:...80 Reflection i SharpDevelop:...81 Opgaver:...83 Enum reflection i Windows program:...84 Filer:...85 GREP søg i filer:...89 Bruge gammel Windows kode:...91 Opgaver:...92 Debugging eller at finde de logiske fejl:...92 Define sætninger kan bruges til konfiguration:...95 Debugging med klasserne i System.Diagnostics:...97 Metodens stack eller StackFrame:...98 Attributten [Conditional()]:...99 Løbende kontrol: Debug.Assert(): Debugging og tracing efter release: Opgaver: Objekt Orienteret Programmering (OOP): Indkapsling: Arv: Metoder i System.Object: GUID: Lille eksempel på arv: En tom klasse som arver fra Form: Såkaldt har en arv (eller komposition): Polymorfisme: Genbrug: Objekter og klasser: SharpDevelop og C# basis klasserne: Arrays og operatorer på objekter: Opgaver:...113

3 Et praktisk eksempel på OOP: Person og Adresse klassen: Kommentar til Adresse klassen: Person klassen, som har en Adresse: Kommentar til klassen Person: En applikation som anvender klasserne Adresse og Person: Proporties i C# klasser: Opgaver: Eksempler på Polymorfisme og Arv: Override metoder i System.Object: Opgaver: Eksempel: Polymorfisme og dynamisk binding Opgaver: Polymorfisme og Streams: Abstrakte klasser: Arrays og operatorer på objekter (operator overloading): Opgaver: Interfaces en anden slags arv: Implementere standard interfaces IComparable: Opgaver: Strukturer: Brug af unsafe: Strukturer modsat klasser: Typer og hvad der kan stå i en C# fil (*.cs fil): Namespace: Alias for et namespace eller for en klasse: User Defined namespace: Opgaver: Exceptions i C# programmer: Opgaver: Serialisering af objekter gem objekter: Opgaver: NET eller DotNet Hvad er det egentligt? IL Intermediate Language: Managed/Unmanaged kode: COM: JIT kompiler: En EXE eller DLL er ikke en EXE eller DLL! Eksempel: Projekt i SharpDevelop: AssemblyInfo: En klasse i Visual Basic: Klasse i JScript: En.NET applikation der bruger klasserne: XML config-filer: At producere IL kode dynamisk: Opgaver: At skrive IL (Intermediate Language) kode i hånden: Et konkret eksempel på IL: Dis-assembling, utilities:...186

4 Operativsystem: Alle de følgende eksempler er testet på Windows 98 og Internet Explorer 5.5. Dette er i.net en minimums installation. Der er nogle hjørner af.net som ikke er tilgængelige med denne installation. Det fulde.net (SDK.NET) kræver installation af Windows XP. Men der er tale om små hjørner og programmeringssproget C# fungerer fint sammen med Windows 98! Vi vil altså indtil videre gå ud fra, at du har installeret denne minimumsinstallation! Installer Microsoft.NET Runtime: For at komme i gang er det nødvendigt at installere Microsofts.Net Runtime på din maskine. Filen kan downloades fra Den downloadede fil du skal søge efter den udgave af.net som er redistributable - hedder dotnetfx.exe eller dotnetredist.exe (ca 20 Mega Byte), en Win32 Cabinet Self Extractor. Denne fil er en minimums udgave af Dotnet. Den store udgave SDK fylder ca 135 MegaByte og forudsætter at Windows XP er installeret. SDK indeholder især megen dokumentation og nogle flere basisklasser. På dette kursus vil vi have den lille udgave dotnet redistributable som grundlag. Gør følgende: 1. Opret en ny mappe på skrivebordet dotnet 2. Dobbeltklik filen 3. Vælg at ekstrahere filerne til den nye mappe dotnet 4. Åbn mappen dotnet og dobbeltklik filen dotnetfx.exe. 5. Du guides nu igennem installationen 6. Programmet installerer først og fremmest en række EXE og DLL filer i en ny mappe: C:\WINDOWS\Microsoft.NET\Framework\v De vigtigste er: mscorlib.dll (som indeholder den cenrale kode til.net Runtime) og csc.exe (som er en compiler til C#). Der installeres også andre compilere fx vbc.exe til Visual Basic (herom senere). 8. NB path eller stien til de nye EXE filer er altså: C:\WINDOWS\Microsoft.NET\Framework\v Åbn filen C:\autoexec.bat og tilføj den nye sti sådan: 10. set path=c:\windows\microsoft.net\framework\v ;%path% 11. Ellers kan dit operativ system ikke finde filerne fx compileren til C#!!

5 12. Du kan også skrive en bat fil ved navn sharppath.bat med indholdet: path=c:\windows\microsoft.net\framework\v Hvis du dobbeltklikker bat filen sættes path korrekt. Mit første program: Virker.NET Runtime? Formålet med det følgende er især at teste om det installerede.net Runtime virker. Åbn Notestblok (eller en anden editor som kan gemme tekst uformatteret!) og skriv følgende C# kode som et testprogram (koden vil blive gennemgået lidt senere): public class Test{ public static void Main(string[] args){ System.Console.WriteLine("Hello World!"); Opret en ny mappe til dine C# filer fx: C:\csharp\test og gem koden som Test.cs. ALLE C# programmer (tekstfiler) skal have filtypen.cs. Ellers kan de ikke kompileres. Navnet på CS filen er i øvrigt ligegyldigt. Test.cs, test.cs eller mitførsteprogram.cs er alle OK (modsat reglerne i Java). Åbn et DOS kommando prompt vindue og styr til mappen C:\csharp\test. Tast: csc Test.cs. Hvis alt går godt får du følgende output: Microsoft (R) Visual C#.NET Compiler version for Microsoft (R).NET Framework version Copyright (C) Microsoft Corporation All rights reserved. Denne besked betyder følgende: 1. tekstfilen Test.cs er nu kompileret til en EXE fil ved navn Test.exe 2. kompileringen har ikke givet anledning til nogen fejl (error) eller advarsel (warning). Hvis IKKE alt går som det burde, vil du få fejl meddelelser som fx: error CS2001: Source file 'a.cs' could not be found fatal error CS2008: No inputs specified I dette tilfælde er indtastet csc a.cs en fil som ikke findes i mappen! Kompileren csc giver altså fejl/advarsler som kan bruges til at rette programmet til. Prøv fx at slette semikolon efter sætningen: System.Console osv. Slet også Test.exe i mappen. Gem filen Test.cs og prøv at kompilere den med: csc Test.cs.

6 Der fås nu en fejl meddelelse og der oprettes IKKE nogen EXE fil (Kompileren kan kun oprette en EXE fil hvis C# tekst filen er syntaktisk - uden fejl men en EXE oprettes selv om der er mange warnings!): Microsoft (R) Visual C#.NET Compiler version for Microsoft (R).NET Framework version Copyright (C) Microsoft Corporation All rights reserved. Test.cs(3,42): error CS1002: ; expected Kompileren gætter på at der mangler et semikolon efter sætningen. System Det manglende semikolon er en syntaktisk fejl. Kompileren kan opdage syntaktiske og semantiske fejl men ikke logiske fejl. En cs fil kan altså godt indeholder mange logiske fejl og alligevel kompileres uden problemer! Mange programmer også professionelle har faktisk logiske fejl! (Mere herom senere). Csc kompilerer tekstfilen til binær kode eller en binær (dvs til en EXE, DLL eller NETMODULE fil). I dette eksempel fylder tekstfilen Test.cs 117 bytes, men den kompilerede binære kode (Test.exe) fylder bytes der er altså tale om to vidt forskellige objekter!! Binær kode er kode som maskinens CPU (processor) kan forstå og direkte anvende til at køre et program. Binær kode består af 0 og 1 taller populært sagt. Kompileren kan ikke skrive til en EXE fil hvis programmet allerede kører!! Husk derfor at lukke et program inden du kompilerer det igen! Dette glemmes ofte med Windows programmer, hvor kompileringen så giver en fejl. Kør programmet: Programmet køres ved at taste programmets navn i kommando prompten: Test (eller: Test.exe). Output bliver en linje skrevet til skærmen: Hello World! og et linjeskift til ny linje. Vi har altså produceret i virkeligt program eller applikation. Du kan også dobbeltklikke ikonet Test.exe i Windows Stifinder men DOS vinduet forsvinder med det samme. Løsningen herpå er simpelt hen at tilføje en ny linje nedenunder System.Console : System.Console.Read(); Programmet vil du stoppe op og vente på input fra brugeren. DOS vinduet vil nu først lukke når du har tastet ENTER. Read() betyder: Vent indtil brugeren har indtastet noget på linjen. Kompiler med parametre eller flag: C# kompileren kan startes med en lang række af forskellige flag eller parametre.

7 Her følger selve listen. En del af disse flag vil blive forklaret efterhånden: Microsoft (R) Visual C#.NET Compiler version for Microsoft (R).NET Framework version Copyright (C) Microsoft Corporation All rights reserved. Visual C#.NET Compiler Options - OUTPUT FILES - /out:<file> Output file name (default: base name of file with main class or first file) /target:exe Build a console executable (default) (Short form: /t:exe) /target:winexe Build a Windows executable (Short form: /t:winexe) /target:library Build a library (Short form: /t:library) /target:module Build a module that can be added to another assembly (Short form: /t:module) /define:<symbol list> Define conditional compilation symbol(s) (Short form: /d) /doc:<file> XML Documentation file to generate - INPUT FILES - /recurse:<wildcard> Include all files in the current directory and subdirectories according to the wildcard specifications /reference:<file list> Reference metadata from the specified assembly files (Short form: /r) /addmodule:<file list> Link the specified modules into this assembly - RESOURCES - /win32res:<file> Specifies Win32 resource file (.res) /win32icon:<file> Use this icon for the output /resource:<resinfo> Embeds the specified resource (Short form: /res) /linkresource:<resinfo> Links the specified resource to this assembly (Short form: /linkres) - CODE GENERATION - /debug[+ -] Emit debugging information /debug:{full pdbonly Specify debugging type ('full' is default, and enables attaching a debugger to a running program) /optimize[+ -] Enable optimizations (Short form: /o) /incremental[+ -] Enable incremental compilation (Short form: /incr) - ERRORS AND WARNINGS - /warnaserror[+ -] Treat warnings as errors /warn:<n> Set warning level (0-4) (Short form: /w) /nowarn:<warning list> Disable specific warning messages /checked[+ -] /unsafe[+ -] - LANGUAGE - Generate overflow checks Allow 'unsafe' code - MISCELLANEOUS Read response file for more options /help Display this usage message (Short form: /?)

8 /nologo /noconfig Suppress compiler copyright message Do not auto include CSC.RSP file - ADVANCED - /baseaddress:<address> Base address for the library to be built /bugreport:<file> Create a 'Bug Report' file /codepage:<n> Specifies the codepage to use when opening source files /utf8output Output compiler messages in UTF-8 encoding /main:<type> Specifies the type that contains the entry point (ignore all other possible entry points) (Short form: /m) /fullpaths Compiler generates fully qualified paths /filealign:<n> Specify the alignment used for output file sections /nostdlib[+ -] Do not reference standard library (mscorlib.dll) /lib:<file list> Specify additional directories to search in for references Gennemgang af programmet Test: Med en lille ændring ser vores Test.cs sådan ud: //fil: test.cs //postcondition: outputter en linje til skærmen public class Test{ public static void Main(string[] args){ System.Console.WriteLine("Hello World!"); System.Console.Read(); Øverst er tilføjet 2 linjer som starter med //. Linjer som starter med // er kommentarer som skal gøre programmer mere forståelige. Kompileren springer altid disse linjer over dvs her kan skrives hvad som helst uden krav til regler eller syntaks. Brug altid så mange kommentar linjer at programmet er læseligt og forståeligt. Selve koden starter med en klasse erklæring som omfatter hele koden: public class Test{. public: betyder at klassen kan bruges udefra af alle andre klasser/programer.(mere herom når vi kommer til Objekt orienteret Programmering). class: ALLE programmer i C# er en class ligesom i Java (men modsat af C++). ALLE programmer skal altså starte med public class (evt kun: class) XXX. { definerer en blok dvs alt efter { og før hører sammen i en blok her definerer { og klassens start og slutpunkt. Inden i denne klasse findes kun en metode: public static void Main():

9 Denne standard metode skal findes i alle C# applikationer dvs i alle C# programmer som skal kunne køres som et program (som vi gjorde ved at taste Test på DOS linjen). Metoden Main()(NB Main med stort M modsat i C++) er programmets entry point. Hvis Main() fjernes fra koden vil en kompilering give en fejl (Prøv det!): error CS5001: Program 'Test.exe' does not have an entry point defined En metode i C# har til formål at udføre en handling, at gøre noget. Metoder er normalt public dvs de kan kaldes udefra. Static: betyder at metoden kaldes på en klasse og ikke på et objekt (mere herom senere). Void: betyder at metoden Main() ikke returnerer noget som helst. Main(string[] args) : args er et array eller en liste over de evt. parametre som programmet kaldes med. Fx kunne Test kaldes sådan: Test De 3 tal gemmes i listen args og kunne bruges som input parametre til programmet. (Se eks senere). string: er en type/klasse. En string kan gemme en hvilken som helst værdi som fx 88 eller Johnny. NB: Der er i C# tradition for at skrive string og ikke String men traditionen er vaklende. String er en klasse: System.String og en basal type. Så både string og String er OK! Main() indledes lige som klassen med en { og slutter med en. Main() er altså en blok. Inden i blokken står to sætninger (en sætning er en linje som afsluttes med ;). System.Console.WriteLine("Hello World!"); System.Console.Read(); WriteLine(): er en metode som udskriver den streng/tekst som den har som parameter dvs den tekst som står i citat mellem parenteserne. ALLE metoder kaldes med parenteser de viser at der er tale om en metode. De parametre ( input ) som metoden anvender står mellem parenteserne. Read(): stopper programmet og venter på at brugeren indtaster eet tegn (fx a );. Problemet lige nu set fra kompilerens side er: hvilken WriteLine metode tales der om og hvor findes den? Kompileren har en resolver som prøver at finde ud af hvad jeg mener. (Problemet er det samme med Read()). Disse metoder er jo IKKE beskrevet i Test.cs!! C# anvender her namespaces således: WriteLine() er den metode som findes i namespace Console som igen findes inden i namespace System. De forskellige namespaces som findes i forskellige DLL filer kan ses i.net mappen i Windows (se tidl). Som det vil fremgå senere kunne jeg teoretisk have skrevet min egen metode WriteLine() derfor skal kompileren vide hvilken metode jeg taler om. For at gøre det mere brugervenligt kan man i C# indlede koden med en using sætning og derefter undgå at skrive den fulde sti til metoderne. Koden kan altså skrives således: //fil: test.cs //postcondition: outputter 4 linjer til skærmen using System;

10 public class Test{ public static void Main(string[] args){ Console.WriteLine("Dette er C Sharp."); Console.WriteLine("Programmet anvender en using System."); Console.WriteLine("using System er en slags shortcut!"); Console.WriteLine("Hello World!"); Console.Read();//teknisk af hensyn til Windows, stopper vinduet Som det kan ses er det væsentligt lettere at anvende en using hvis der skal skrives/læses meget til/fra skærmen derfor er output sætningerne her forøget og ændret! Men det er meget vigtigt at forstå at using kun er en tekst-hjælp using xxx betyder ikke at kompileren inddrager/refererer de nødvendige DLL filer. Når Test.cs kan kompileres uden videre skyldes det at kompileren csc automatisk inddrager mscorlib.dll (som indeholder.net og C# kerne klasser) (NB: using fungerer altså ikke som import sætninger i Java eller som #include i C++!! ).(Mere herom senere). Som det ses kan en kommentar starte midt på en linje resten af linjen er så ren kommentar og ignoreres af kompileren. Signaturer for Main(): Main() metoden i C# kan skrives på 4 tilladte måder: 1. public static void Main(string[] args){ 2. public static int Main(string[] args){ 3. public static void Main(){ 4. public static int Main(){ Hvis der skal anvendes input/parametre fra brugeren anvendes nr 1 eller 2. Hvis man ønsker at programmet skal returnere en værdi til operativ systemet (fx return 0; eller return 1;) anvendes nr 2 eller nr 4, som også kan anvendes til at standse Main() et bestemt sted i programmet så at sige i utide (Senere et eksempel herpå). Oftest anvendes nr1. Det er vigtigt at huske at kommando linje parametre altid er strings (tekst) hvis de skal anvendes som tal skal de konverteres! En metodes signatur er metodens hoved uden selve koden i blokken. Signaturen definerer metodens parametre (fx string[]), navn (fx Main), access (fx public) og retur værdi (ex void eller int eller string ). Generelt: C# er case sensitive dvs at et keyword (reserveret ord) som fx while IKKE må skrives While eller Main() må IKKE skrives main(). Det er en meget god ide at genbruge kode som engang er skrevet til nye programmer. Dvs når du starter på en ny kode start med den gamle cs-fil (som skabelon). På den måde undgås det at skulle skrive en række gentagne formularer igen og igen og fejl undgås!!

11 Der kan altid anvendes mellemrum eller linjeskift for evt at gøre koden lettere at læse. Følgende to eksempler opfattes ens af kompileren (dvs giver den samme binære kode/samme program): if(x==22){y=9;u=7;i=44;else{c= a ; if(x==22){ y=9; u=7; i=44; else { c= a ; Normalt vil den nederste boks være meget nemmere at forstå: hvis x er lig 22 så gør sådan og sådan ellers (hvis x ikke er lig 22) gør sådan og sådan. Det er en virkeligt god ide at anvende indrykninger og linje skift på denne måde.

12 Note: Redirection eller omdirigering: I Windows DOS kan man redirecte et programs udskrift. Hvis vi har et program test som udskriver en række data til skærmen med Console.WriteLine() kan vi i kommandoprompten skrive: test > dokumentation.txt Output bliver så redirectet til en fil dokumentation.txt og der skrives intet ud til særmen! På samme måde kan udskriften omdirigeres til printeren med test > prn og udskriften bliver så udskrevet på printeren! (Output kan også redirectes til COM porte mv). Dette er altså en nem måde at arbejde med filer på! Som vi siden skal se er dette et eksempel på det som i C# kaldes Streams. Omdirigering kan også gøres programmatisk i selve koden sådan: using System; using System.IO; public class Omdiriger_konsol { public static void Main() { // Console.WriteLine omdirigeres/re-directes til en fil: StreamWriter sw = new StreamWriter ( new FileStream ("konsol.out", FileMode.Create)); Console.SetOut(sw); Console.WriteLine("DETTE VIL BLIVE SKREVET TIL EN FIL..."); sw.close(); Klassen Console har simpelthen en metode som hedder SetOut() som kan bruges til en omdirigering! Teksten DETTE VIL osv bliver nu indskrevet i en fil konsol.out. Test i Windows udgaven: Formålet med dette afsnit er at vise hvad der sker når C# skal referere eller bruge klasser, metoder, objekter som ikke automatisk inddrages af compileren som ligger uden for kernen. Start med at gemme Test.cs under et nyt navn som WinTest.cs. Målet er nu at få det til at køre som Windows program. Den nye WinTest.cs skal se sådan ud:

13 //fil: WinTest.cs //postcondition: Viser en messagebox using System.Windows.Forms; public class Test{ public static void Main(string[] args){ string nr1="dette er C Sharp."; string nr2="dette er en System.Windows.Forms.MessageBox!\nHello World!"; MessageBox.Show(nr2,nr1); Forklaring: Hvis koden er blevet korrekt kompileret (csc WinTest.cs) viser WinTest.exe en messagebox med en titellinje og en tekst delt på 2 linjer. Tegnet \n angiver linje skift. (Escape tegn idet alle escape tegn indledes med \ og de er format koder som ikke udskrives). Koden erklærer 2 string-objekter, som bruges til boksens titel og tekst. Klassen MessageBox findes i namespace Forms som findes i Windows som findes i System. Ved at bruge using undgås at skrive hele stien hver gang. Klassen MessageBox har en metode Show() som tager 2 parametre: en tekst og en titel. Prøv at fjerne using-linjen og kompiler programmet. Kompileren meddeler nu en fejl: WinTest.cs(11,2): error CS0246: The type or namespace name 'MessageBox' could not be found (are you missing a using directive or an assembly reference?) Kompileren forstår ikke henvisningen til MessageBox : hvilken/hvor? Prøv derefter at tilføje en linje til Main() således: public static void Main(string[] args){ string nr1="dette er C Sharp."; string nr2="dette er en System.Windows.Forms.MessageBox!\nHello World!"; Assembly.Load("System.Windows.Forms"); MessageBox.Show(nr2,nr1); Den nye sætning loader/indlæser den DLL fil eller det namespace som vi ønsker at anvende. Sætningen er den mest sikre metode til at referere eller inddrage bestemte klasser som er eksterne dvs ikke findes i denne cs-fil. Hvis du har problemer med at få dette Windows program (eller andre) til at køre skulle Assembly.Load() sætningen klare alle problemer. Senere i kurset vil vi skrive vore egne DLL filer og hvis der er problemer med at kunne referere dem skulle Assembly.Load() også kunne klare disse problemer.

14 En alternativ metode er at kompilere filen WinTest.cs med en reference parameter. Skriv på kommandolinjen i prompten: csc /reference:system.windows.forms.dll WinTest.cs Eller: csc /r:system.windows.forms.dll WinTest.cs /reference: betyder at kompileren skal inddrage den pågældende dll fil. Mange referencer kan stå efter hinanden med semikolon imellem fx således: csc /r:system.windows.forms.dll;system.drawing.dll;system.io.dll WinTest.cs

15 Installer SharpDevelop: Alle kode eksempler i dette kursus kan uden vanskelighed skrives i en primitiv editor som Notesblok i Windows. Men et program som SharpDevelop giver trods alt mange fordele og gør tingene lidt nemmere. Problemet er nogen gange at der produceres en del automatisk kode af programmet som programmøren måske ikke helt forstår! Programmet SharpDevelop kan frit downloades (programmet er et GNU General Public License projekt) fra Internettet på adressen: Filen hedder 092setup.exe på ca 3,2 Mbyte. Når programmet er installeret kan du oprette forskellige typer af projekter (Combines) i C#, Visual Basic og Java. Den kode som skrives farves efter syntaksen så at man i nogen grad kan se om ens kode er syntaktisk korrekt. Som vi skal se senere er det også muligt at bruge SharpDevelop som en builder af grafiske windows programmer. I SharpDevelop kan tilføjes en reference til projektet og gøres mange ting som vi her har gjort manuelt på kommando linjen. Et projekt kan også kompileres og køres via SharpDevelop. SharpDevelop har masser af Hjælp brug den! Et eksempel fra SharpDevelop: Det bedste værktøj til C# og.net er måske Microsofts professionelle Visual Studio.NET. Dette program er absolut ikke freeware, men der er visse muligheder for at bruge programmet on-line og

16 i nogle perioder kan man faktisk også downloade en evaluerings kopi af programmet. Oplysninger herom kan findes på Internettet. Struktureret programmering: At programmere på en fornuftig måde i C# indeholder to aspekter: struktureret og objektorienteret programmering. De kommende mange afsnit handler om struktureret programmering. Målet med struktureret programmering er at koden skal være modulopdelt og let forståelig. Et eksempel på meget ustruktureret kode ( spaghetti kode ) ville være følgende: //fil: spagetti.cs //postcondition: Viser spaghetti kode eks - udskriver sætning: using System; public class Test{ public static int Main(string[] args){ goto Z; X: Console.WriteLine("er"); goto V; Y: Console.WriteLine("C#"); goto EXIT; Z: Console.WriteLine("Dette"); goto X; V: Console.WriteLine("ogsaa"); goto Y; EXIT: return 0; Hvis du indtaster programmet vil du opdage at det faktisk virker perfekt. goto gør at programmet hopper rundt fra label til label (en label er et tegn/tekst med et kolon efter som f.eks. EXIT:). På denne måde bliver koden meget vanskelig at læse og forstå. Meningen med struktureret programmering er at undgå denne slags spaghetti kode (som var mere almindelig i gamle dage i BASIC programmering). Eksempler på strukturerede sprog var i sin tid sprog som Pascal og C (fra omkring 1970).

17 Kommentarer: Som nævnt er det vigtigt at forsyne koden med så mange kommentarer at andre (og en selv!) kan forstå koden. Der findes i C# 3 slags kommentarer: // enkelt linje kommentar /* flerlinjekommentar */ /// XML kommentar som kan producere et XML dokument (a la Javadoc, Herom senere). Kommentarer ignoreres helt af kompileren. Brug kommentarer til at forklare programmets flow og gang. Skriv rigeligt med kommentarer! Keywords: En række ord er reserverede eller keywords i C# - dvs de må ikke bruges som navne på variable. Eksempler på keywords er: class, if, string, public. Variabelnavne/Identifiers: Som kode eksempel se følgende const int MAX=100; string fornavn= Erik ; string efternavn; efternavn= Hansen ; int side1=12; int side2=33; side2=123; int areal=side1*side2; C# kode består af sætninger som afsluttes med et semikolon. I eksemplet erklæres/oprettes 2 variable fornavn og efternavn som tildeles en værdi. En literal er en værdi som 44 eller erik. En literal er hvad den er deraf betegnelsen literal (bogstavelig). En variabel er et sted eller en adresse i RAM hukommelsen som tildeles et navn fx fornavn.

18 Når en variabel erklæres tildeles den det antal bytes i RAM som er nødvendigt. Dvs. den allokeres. Fx bevirker sætningen int side1=12; at der tildeles 4 bytes et bestemt sted (fx byte nummer 1000,1001,1002,1003 i RAM) og at tallet/værdien/literalen 12 gemmes på denne adresse. De 4 bytes ser fx sådan ud: byte 1003 byte 1002 byte 1001 byte Enhver identifier eller ethvert variabel-navn skal først erklæres med en type. C# skal vide hvilken type fornavn er: er det et tal, en tekst? (Som det vil fremgå senere kan man oprette sine egne typer det er selve ideen med OOP, objekt orienteret programmering. En type er bl.a. en klasse): Variablen kan oprettes på en linje og tildeles en værdi på en anden linje og kan til hver en tid tildeles en ny værdi (se eksemplet med side2). Sætningen string efternavn; er en erklærings sætning. Sætningen efternavn= Hansen; er en tildeling eller assignment. Sidste sætning viser hvordan en ny variabel kan tildeles en værdi ved at gange 2 andre variable. (De almindelige 4 matematiske operatorer er: +, -, *, /).

19 Variabelnavne-regler: 1. et navn kan indeholde bogstaver, tal og understregninger 2. det første tegn i navnet skal være et bogstav 3. C# er case sensitive: Fornavn er ikke det samme som fornavn 4. reserverede ord må ikke bruges som navne Konstanter skrives normalt med kun store bogstaver (versaler). I eksemplet er MAX en konstant: erklæret med const int MAX. Dette betyder at MAX ikke/aldrig kan ændre værdi mens programmet afvikles. Programmet KAN ikke indeholde en linje som: MAX=23; når først konstanten er erklæret. int er en type som betegner et helt tal uden decimaler - jvf senere. I C# er det skik og brug (i nogen grad!) at anvende navne med små bogstaver og understregninger: string kunde_navn; string kunde_adresse; Det er meget vigtigt at anvende navne som er intuitive og beskrivende. Hvis programmet skal gemme kundens navn i en variabel er der intet i vejen for at kalde variablen for: string xyz. MEN det vil blive ulige nemmere at forstå programmet og især undgå fejl hvis denne variabel kaldes: string kunde_navn! Variable og scope: En variabel som int x har en levetid eller scope eller et område, hvor den er synlig. Helt grundlæggende opstår den i forbindelse med programmets start eller en metodes start og dør ved programmets eller metodens slutpunkt. Se eks dette kode fragment: public static void kvadrat(int x){x=x*x;int y=x; public static void Main(string[] args) { int x=22; kvadrat(x); //NB dette giver kompiler fejl: //Console.WriteLine("y: {0",y); //OBS x er stadig 22: Console.WriteLine("x: {0",x); Console.Read(); Hvis man prøver at udskrive variablen y melder compileren fejl:

20 Variablen y er simpelt hen ikke synlig i Main() den er kun synlig i den blok (fra { til ) som består af metoden kvadrat(). Y fødes og dør inden i metode blokken og er usynlig i Main(). Læg også mærke til at x ikke skifter værdi selv om metoden kvadrat sætter x til x*x men dette x inden i metoden er en lokal variabel som fødes og dør i metoden blokken. Når Main() bagefter udskriver x er x stadig det samme! I C# kan man gennemtvinge at en variabel bruges som reference type med det reserverede ord ref. Ovenstående kunne omskrives således: public static void kvadrat(ref int x){x=x*x;int y=x; public static void Main(string[] args) { int x=22; kvadrat(ref x); //NB dette giver kompiler fejl: //Console.WriteLine("y: {0",y); Console.WriteLine("x: {0",x); Console.Read(); Når x udskrives er x nu 22*22, fordi metoden databehandler selve x (altså en reference til x) og ikke en kopi (value type) af x. Static variable: I C# kan erklæres static variable (modsat almindelige lokale variable) som er klassevariable som bevarer/husker deres værdi. F.eks. kan static variable bruges som tællere jvf dette lille kode eksempel: static int antal=0;//tæller antal metode kald: //to metoder som kaldes: public static void engangtil(){antal++; public static void engangtiligen(){antal++; public static void Main(string[] args) {

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

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

Kapitel 1 I gang med C#

Kapitel 1 I gang med C# Kapitel 1 I gang med C# Vi skal starte med at oprette et meget simpelt program, så du kan se hvad der ligger bag et C# projekt. Når du er færdig med dette kapitel vil du have lært: Hvordan du opretter

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

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

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

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

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

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

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

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

Programmering i C. Lektion 4. 5. december 2008

Programmering i C. Lektion 4. 5. december 2008 Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

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

RefWorks en vejledning fra UCL Biblioteket. Indholdsfortegnelse

RefWorks en vejledning fra UCL Biblioteket. Indholdsfortegnelse Indholdsfortegnelse Hvad er RefWorks?... 2 Opret dig som bruger... 2 Inden du går i gang... 3 Klargøring af computer til download af Write-N-Cite v. 4.2... 3 Installation af Write-N-Cite... 4 Installation

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

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

Test af It-komponent

Test af It-komponent Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side

Læs mere

Python programmering. Per Tøfting. MacFest

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

Læs mere

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

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

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

Læs mere

MapBasic &.NET interaktion. MapBasic.NET. Jakob Lanstorp IT konsulent COWI. Odense 23. Juni 2011. 1 8 jun 2011 MapBasic &.

MapBasic &.NET interaktion. MapBasic.NET. Jakob Lanstorp IT konsulent COWI. Odense 23. Juni 2011. 1 8 jun 2011 MapBasic &. MapBasic &.NET interaktion MapBasic.NET Jakob Lanstorp IT konsulent COWI Odense 23. Juni 2011 1 MapBasic &.NET interaktion Erfaring med MapBasic.NET / Visual Studio Anden programmering 2 Program Hurtig

Læs mere

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

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4 DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens

Læs mere

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger

Læs mere

Advanced Word Template Brugermanual

Advanced Word Template Brugermanual Advanced Word Template Brugermanual Forord: Advanced Word Template er et værktøj, der anvendes sammen med Microsoft Word til at opbygge ensartet beskrivelser på en mere intelligent måde end Copy and Paste

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

Hvad er Objekter - Programmering

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

Læs mere

Programmering i C. Lektion oktober 2008

Programmering i C. Lektion oktober 2008 Programmering i C Lektion 2 20 oktober 2008 Historie Processen At kompilere 2 / 23 Fra sidst 1 Historie 2 Processen 3 At kompilere Historie Processen At kompilere 3 / 23 ALGOL 60 1963 CPL 1966 BCPL 1969

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

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

Tilslutning med Cisco AnyConnect VPN-klient (Windows) til AARHUS TECH P-net

Tilslutning med Cisco AnyConnect VPN-klient (Windows) til AARHUS TECH P-net 18. november 2011 Vejledning Windows 7 - eklient Opkobling via ADSL eller anden kabelforbindelse til P-net. Tilslutning med Cisco AnyConnect VPN-klient (Windows) til AARHUS TECH P-net Cisco AnyConnect

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

DM536. Rapport og debug

DM536. Rapport og debug DM536 Rapport og debug Kilder Vigtig.it (Felix Palludan Hargreaves) http://vigtig.it/dm502/howto_report.pdf http://vigtig.it/blog/teaching/#toc-relevant-tips Peter Schneider-Kamp http://imada.sdu.dk/~petersk/dm536/project2.pdf

Læs mere

Python 3 kursus lektion 1:

Python 3 kursus lektion 1: Python 3 kursus lektion 1: Her laves et nyt program Her køre programmet! Her skrives koden: Gem (CTRL-s) Tryk F5 (for at køre) www.madsmatik.dk d.14-01-2016 1/5 At skrive til skærmen: Hello World Man kan

Læs mere

SWC eksamens-spørgsmål. Oversigt

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

Læs mere

Udvikling af DOTNET applikationer til MicroStation i C#

Udvikling af DOTNET applikationer til MicroStation i C# Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt

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

ViKoSys. Virksomheds Kontakt System

ViKoSys. Virksomheds Kontakt System ViKoSys Virksomheds Kontakt System 1 Hvad er det? Virksomheds Kontakt System er udviklet som et hjælpeværkstøj til iværksættere og andre virksomheder som gerne vil have et værktøj hvor de kan finde og

Læs mere

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX IT -Eksamen Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX [Vælg en dato] Indhold Indledning... 2 Teori... 3 Hvorfor dette design... 4 Produktet... 4 Test og afprøvning... 9 Konklusion... 10 Indledning

Læs mere

Klasser og objekter. (Afsnit i manualen)

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

Læs mere

Svar på de mest almindelige Citrix spørgsmål

Svar på de mest almindelige Citrix spørgsmål Svar på de mest almindelige Citrix spørgsmål Henrik Meyer og Ajâja Hyttel Oprettet: 24/6-13 Sidst revideret 14/5-14 h t t p s : / / c i t r i x. a a b n e t. d k Hvad er nyt i Citrix?... 2 Hvis du ikke

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

Kursusarbejde 3 Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................

Læs mere

Hvordan vælger jeg dokumentprofilen?

Hvordan vælger jeg dokumentprofilen? Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel

Læs mere

Programmeringseksempel til CX/IPC

Programmeringseksempel til CX/IPC APP-NOTE 610004 Beckhoff Application Note Date: 7/17/2009 Document Status: 1.1 Beckhoff Automation Aps Naverland 2, DK-2600 Glostrup Phone +45 43 46 76 20 Fax +45 43 46 63 35 Programmeringseksempel til

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

PHP Snippets. De små korte. Skrevet af Daniel Pedersen PHP Snippets De små korte Skrevet af Daniel Pedersen Indhold PHP Snippets De små korte er en samling af små og praktiske kode eksempler med kort forklaring, som med formål at kunne benyttes til opsalgsværk

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

Login-tiden, Første gang tager det måske 1 ½ - 2 min. Andet gang ½ - 1 ½ min...9

Login-tiden, Første gang tager det måske 1 ½ - 2 min. Andet gang ½ - 1 ½ min...9 Ver. 1.8 RDS Side: 1 af 27 Indhold: Inden du kan benytte RDS-løsningen, skal din PC være opdateret...2 Login på RDS-løsningen...3 Login-tiden, Første gang tager det måske 1 ½ - 2 min. Andet gang ½ - 1

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

Manual til hjemmeside i Typo3

Manual til hjemmeside i Typo3 Manual til hjemmeside i Typo3 Gode tips og genvejstaster Ét linieskift Ctrl + A Ctrl + C Ctrl + X Ctrl + V shift + enter (tasten du normalt bruger til linieskift) Markér alt Kopier Klip Sæt ind Oprettelse

Læs mere

RIGSPOLITIET. Vejledning i konvertering. fra. Word -dokument. til. PDF-fil. på politi.dk. Rigspolitiets websektion

RIGSPOLITIET. Vejledning i konvertering. fra. Word -dokument. til. PDF-fil. på politi.dk. Rigspolitiets websektion RIGSPOLITIET Vejledning i konvertering fra Word -dokument til PDF-fil på politi.dk Rigspolitiets websektion Indledning Da vi skal leve op til kravene om tilgængelighed på Internettet, skal alle tekster

Læs mere

Virkefeltsregler i Java

Virkefeltsregler i Java Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten

Læs mere

Installation af DATABOKS online backup manager

Installation af DATABOKS online backup manager Installation af DATABOKS online backup manager For at kunne tage fjern-backup skal du installere en online backup manager på din maskine. Den skal bl.a. bruges til at bestemme hvilke filer, databaser og

Læs mere

Gem dine dokumenter i BON s Content Management System (CMS)

Gem dine dokumenter i BON s Content Management System (CMS) 24. august 2007 Gem dine dokumenter i BON s Content Management System (CMS) INDHOLDSFORTEGNELSE 1. Indledning... 2 2. Se indholdet i dit Content Management System... 3 3. Tilgå dokumenterne i My Content

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

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003 Side 1 af 8 Dato: 14-05-2003 Til Sigurd Som aftalt vil jeg her fremsende vores program til vores 80C535 kit og display. Det gik jo ud på at vi skulle starte med at få den til at intialiserer displayet,

Læs mere

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen... Modul 2 Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen... 6 Opgave... 6 POST/GET og formular... 6 Opgaver...

Læs mere

Annemette Søgaard Hansen/www.dinwebvejleder.dk

Annemette Søgaard Hansen/www.dinwebvejleder.dk Google Docs Dokumenter Indholdsfortegnelse Værktøjer... Side 3 Menuer... Side 5 Opgave... Side 8 Få adgang til filerne fra din computer... Side 16 Vejledende løsning... Side 17 GoogleDocs Dokumenter 2

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Namespaces. Vi kan kvalificere elementer på denne måde:

Namespaces. Vi kan kvalificere elementer på denne måde: <?xml version=1.0 encoding=iso-8859-1?> Namespaces...1 Default namespace:...6 Præfiks:...7 To slags navne i XML:...11 Standard namespaces:...14 RDF Resource Description Framework:...18 Attributter:...19 DTD skemaer og namespaces:...21 Namespaces.

Læs mere

PHP guide af Daniel Pedersen

PHP guide af Daniel Pedersen PHP guide af Daniel Pedersen Side 1 af 12 Indholdsfortegnelse PHP guide af Daniel Pedersen Side 2 af 12 Indledning I dette hæfte finder du forklaringer til PHP funktioner, løkker, variabler samt en række

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller

Læs mere

2013 SP1. Konfiguration af koncernindblik. Configuration Guide

2013 SP1. Konfiguration af koncernindblik. Configuration Guide 2013 SP1 Konfiguration af koncernindblik Configuration Guide Intellectual Property Rights This document is the property of ScanJour. The data contained herein, in whole or in part, may not be duplicated,

Læs mere

Spil Master Mind. Indledning.

Spil Master Mind. Indledning. side 1 af 16 Indledning. Spillet som denne rapport beskriver, indgår i et større program, der er lavet som projekt i valgfaget programmering C på HTX i perioden 9/11-98 til 12/1-99. Spillet skal give de

Læs mere

Kom godt i gang med DLBR Webdyr

Kom godt i gang med DLBR Webdyr Kom godt i gang med DLBR Webdyr Kom godt i gang med DLBR Webdyr Udgivet Februar 2011 Redaktør Tryk Videncentret for Landbrug Videncentret for Landbrug Udgiver Videncentret for Landbrug, KvægIT, 8740 5000

Læs mere

Installation af kalibreringsprogrammet. (BDE versionen)

Installation af kalibreringsprogrammet. (BDE versionen) Installation af kalibreringsprogrammet. (BDE versionen) Installationen består egentlig af to (3) dele: 1 del der vedrører selv programmet med tilhørende filer ( det kan opdateres ) 2 en del der vedrører

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

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner Java Programmering En bog for begyndere Skrevet af Henrik Kressner Indholdsfortegnelse Introduktion...3 1 Introduktion til Java...4 1.1 Javakoden...4 1.2 Det første program...6 1.2 Skriv til skærmen...6

Læs mere

Exceptions i Delphi. Try except

Exceptions i Delphi. Try except Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

Sektornet VPN Installationsvejledning Windows Vista/7

Sektornet VPN Installationsvejledning Windows Vista/7 Sektornet VPN Installationsvejledning Windows Vista/7 Version 5.0 Af Jesper Skou Jensen og Mads Udengaard Sørensen 1 Start installationen 1 1 Indledning Denne vejledning gennemgår opsætning af Sektornet

Læs mere

It-@fdelingen UC Syddanmark 7266 2400

It-@fdelingen UC Syddanmark 7266 2400 UNI-Login Installation af SkoleKom og ændring af kodeord SkoleKom er et udbredt mail- og konferencesystem i skoleverdenen i Danmark. For at komme på SkoleKom, skal du oprettes som bruger, hvor du får 3

Læs mere

Guide til Umbraco CMS

Guide til Umbraco CMS web Guide til Umbraco CMS Indhold Indledning 3 Kompatible browsere 3 Log ind i Umbraco 4 Content-delen 5 Indholdstræet 5 Tilføjelse af en side/sektion 7 Sortering af indhold 12 Galleri 14 Mediebibliotek

Læs mere

Opdatering af ISOWARE til version 6.1.0

Opdatering af ISOWARE til version 6.1.0 Opdatering af ISOWARE til version 6.1.0 September 2015 Indhold Kontaktoplysninger... 1 VIGTIGT... 2 Opdatering af trejdepartssoftware... 2 Opdatering til version 6.1.0.... 2 1. Backup af databasen... 3

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

Fra 1. april 2009 skal lægerne fremsende alle henvisninger til psykologer og fysioterapeuter elektronisk.

Fra 1. april 2009 skal lægerne fremsende alle henvisninger til psykologer og fysioterapeuter elektronisk. Guide: Henvisninghotellet ( REFHOST ) Version mar 2009 Fra 1. april 2009 skal lægerne fremsende alle henvisninger til psykologer og fysioterapeuter elektronisk. Denne guide er primært baseret på oplysninger

Læs mere

Daglig brug af JitBesked 2.0

Daglig brug af JitBesked 2.0 Daglig brug af JitBesked 2.0 Indholdsfortegnelse Oprettelse af personer (modtagere)...3 Afsendelse af besked...4 Valg af flere modtagere...5 Valg af flere personer der ligger i rækkefølge...5 Valg af flere

Læs mere

OrCAD Capture TCL IDE med Eclipse

OrCAD Capture TCL IDE med Eclipse OrCAD Capture TCL IDE med Eclipse OrCAD Capture TCL er et script sprog til at lave applikationer til OrCAD Capture. Eclipse er et gratis udviklingsmiljø med debug muligheder. Denne guide hjælper med at

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

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

Manual til Dynamicweb Februar 2010

Manual til Dynamicweb Februar 2010 Manual til Dynamicweb Februar 2010 Login... 2 Skabeloner og formater... 3 Filarkivet... 4 Lav en PDF... 5 Opret en ny side... 7 Navngiv siden... 9 Aktiver siden... 9 Sorter sider... 9 Flyt siden... 11

Læs mere

Tredjepart webservices

Tredjepart webservices Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output

Læs mere

BRP 6.9.2006 Kursusintroduktion og Java-oversigt

BRP 6.9.2006 Kursusintroduktion og Java-oversigt BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:

Læs mere

Manual til opsætning af Jit-klient version 1.0. Opsætning. Copyright Jit-Danmark Aps 2006. Find mere information på www.jitbesked.

Manual til opsætning af Jit-klient version 1.0. Opsætning. Copyright Jit-Danmark Aps 2006. Find mere information på www.jitbesked. Opsætning Indholdsfortegnelse Sådan finder du indstillingerne...3 Muligheder og begrænsninger...6 Hvilke søgeord skal jeg bruge?...6 Ting man skal passe på...6 Tilføjning/nedlægning af søgeord...6 Ændring

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

Programmering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale

Programmering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale Programmering i C Lektion 1 16. september 2008 Målgruppe Indhold Form Materiale Kursusintroduktion 1 Målgruppe 2 Indhold 3 Form 4 Materiale 2 / 21 Målgruppe Indhold Form Materiale Folk der har styr på

Læs mere

Assignment #5 Toolbox Contract

Assignment #5 Toolbox Contract Assignment #5 Toolbox Contract Created by: René Kragh Trine Randløv E mail address cph rk70@cphbusiness.dk 23 11 2014 1 Introduktion Dette dokument indeholder en vertikal kontrakt for et system som skal

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

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

Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0

Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0 Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0 Indledning Denne vejledning beskriver hvordan det er muligt at oprette Z-Home Controls ZHC5010 Betjeningstryk

Læs mere

E-MAIL MICROSOFT OUTLOOK 2010

E-MAIL MICROSOFT OUTLOOK 2010 E-MAIL MICROSOFT OUTLOOK 2010 Erik Thorsager, Esbjerg. 3. udgave: Outlook Side 1 Microsoft Outlook 2010 Hvordan skriver og sender jeg en e-mail? Det engelske ord mail betyder post. E står for elektronisk.

Læs mere

Noter til C# Programmering Iteration

Noter til C# Programmering Iteration Noter til C# Programmering Iteration Programflow Programmer udfører det meste af deres arbejde vha. forgrening og løkker. Løkker Mange programmeringsproblemer kan løses ved at gentage en handling på de

Læs mere

MSI pakke til distribution af AutoPilot komponenter.

MSI pakke til distribution af AutoPilot komponenter. MSI pakke til distribution af AutoPilot komponenter. Hermed følger en basal dokumentation for installation af AutoPilot msi pakken. Der vil i det følgende blive forklaret brugen af 4 programmer fra Microsoft,

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

DANSK SKOLEDATA APS. Tlf. 86 44 80 99 E-mail DSD@skoledata.dk DSA-Ventelisten

DANSK SKOLEDATA APS. Tlf. 86 44 80 99 E-mail DSD@skoledata.dk DSA-Ventelisten Indholdsfortegnelse Overordnet beskrivelse af programmets funktioner... 2 Log på... 2 Manuel oprettelse af elev.... 3 Optagelse af elever... 3 1 Gruppering og sortering af elever... 3 2 Udvælg aspiranter...

Læs mere

TravelTales; håndtering af konfigurationsfil

TravelTales; håndtering af konfigurationsfil TravelTales; håndtering af konfigurationsfil 1 (7) TravelTales; håndtering af konfigurationsfil Synopsis Dette dokument beskriver indholdet i en TravelTales konfigurationsfil og metoder til hvordan man

Læs mere

Brug af Word til matematik

Brug af Word til matematik Flex på KVUC, matematik C Brug af Word til matematik Word er et af de gængse tekstbehandlingssystemer der slipper bedst fra det at skrive matematiske formler. Selvfølgelig findes der andre systemer der

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

NR. 92 PDF-formularer med OpenOffice DEN 4. MARTS 2015

NR. 92 PDF-formularer med OpenOffice DEN 4. MARTS 2015 NR. 92 PDF-formularer med OpenOffice DEN 4. MARTS 2015 PDF-formularer med OpenOffice til LUDUS Web Målet med dette Tips & Tricks er at beskrive, hvordan man laver PDF-formularer til brug i LUDUS Web. Læs

Læs mere