Størrelse: px
Begynne med side:

Download ""

Transkript

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22 C:\>cd \eclipse\workspace C:\eclipse\workspace>mkdir exampleproject C:\eclipse\workspace>cd exampleproject C:\eclipse\workspace\exampleproject>copy..\lib-coretrek-buildsys\antscript\webapp-build.xml-TEMPLATE build.xml C:\eclipse\workspace\exampleproject>ant create cd eclipse/workspace/ mkdir exampleproject cd exampleproject cp../lib-coretrek-buildsys/antscript/webapp-build.xml-template build.xml

23 ant create

24

25

26

27 ## I webmacro, linjer som begynner med ## er kommentar linjer ## Eksempel variabel navn: $variabel ## Kalle opp metoden getvalue(): $variabel.getvalue() ## Hente ut instans variabel "public String instancevar": $variabel.instancevar ## Hente ut statisk variabel "public static String STATIC_VAR": $variabel.static_var

28 ## Gitt følgende WebMacro tekst: $variable.name ## Så vil følgende oppslag bli prøvd: 1. Instans variabelen "Name" på objektet $variable 2. Den statisk variaben "Name" på objektet $variable 3. $variable.getname() 4. $variable.isname() 5. $variable.get("name") $variable.object.value $variable.getobjectbyid($id).name

29 #set $variablereference = <Expression> ## En variabel kan settes til en streng #set $var = "Value" ## En kan også kalle på metoder og lagre resultatet #set $varlength = $var.length() ## Å bruke uttryk er også gyldig #set $sum = #if () BLOCK [#elseif () BLOCK] [#else BLOCK] #if (<test>) Resultat1 #elseif (<test2>) Resultat2 #else Resultat3 #end

30 #foreach $listentry in $collection[indexing $indexvariable[ from $fromvariable][ limit $ <table> #foreach $entry in $list <tr> <td>$entry.name</td> <td>$entry.value</td> </tr> #end </table> #count $i from $start to $end[ step $step] #set $start = 100 #set $end = 1 #set $step = -1 #count $i from $start to $end step $step $i. I like WebMacro<br /> #end #alternate $variable through $collection ## Notasjonen [ <var>, <var> ] lar deg lage lister rett i WebMacro koden ## Listen kan ha flere enn bare 2 elementer som vist her #alternate $rowcolor through ["#ffffff", "#dddddd"] <table>

31 <tr bgcolor="$rowcolor"> </tr> <tr bgcolor="$rowcolor"> </tr> <tr bgcolor="$rowcolor"> </tr> </table> ## resultatet her blir #ffffff for første og siste, og #dddddd for den i midten. #text BLOCK #text #if her vil ikke bli tolket som en #if #end #macro ($argument,...) BLOCK ## Her definerer vi en macro som tar ett argument, $param, som den skriver ut i bold #macro testmacro($param) <b>$param</b> #end ## Her sender vi inn teksten "test" som ett parameter, resultatet blir at det her står <b>test</b> #macro("test")

32 #include [as text as template as macro] $filename ## Include as text gjør at filen blir lest rått og innholdet satt inn #include as text "info.txt" ## Include as template gjør at filen blir parset som om innholdet stod direkte her #include as template "template.wm" ## Include as macro brukes for filer der en sammler sammen flere #macro kommandoer #include as macro "macros.wm" import java.io.bytearrayoutputstream; import java.io.ioexception; import java.io.outputstream; import java.util.map; import org.webmacro.context; import org.webmacro.fastwriter; import org.webmacro.initexception; import org.webmacro.propertyexception; import org.webmacro.resourceexception; import org.webmacro.template; import org.webmacro.wm; /** * Dette er en liten hjelpeklasse for å rendere webmacro filer. */ public class WebMacroRenderer { private String _template; private WM _wm; public WebMacroRenderer(String template) throws InitException { _template = template; // initialiser WebMacro instansen _wm = new WM(); public void render(outputstream stream, Map contextmap) throws ResourceException, PropertyException, IOException { // For å kunne rendere en WM fil, så trenger vi Template objeketet. Dette // er fordi WebMacro cacher parse resultatet fra en fil. Template template = _wm.gettemplate(_template);

33 // For å parse en fil så trenger vi en FastWriter til å skrive. Denne // peker vi på OutputStreamen som vi får inn, og setter encoding til ISO FastWriter fastwriter = new FastWriter(_wm.getBroker(), stream, "ISO "); // Contexten er det objektet som inneholder alle variabler som er tilgjengelig i en // WebMacro fil. Vi kan også fylle den med data før parsing for å sende variabler inn // til WM filen. Contexten er en utvidelse av Map, og vi fyller den med det mapet // som har blitt sendt inn. Context context = _wm.getcontext(); context.putall(contextmap); // Render templaten med det FastWriter objektet vi har laget og den konteksten vi // har template.write(fastwriter, context); // Flush fastwriteren, slik at resultatet blir skrevet ut. fastwriter.flush(); public String rendertostring(map context) throws PropertyException, ResourceException, IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); render(baos, context); baos.close(); return new String(baos.toByteArray(), "ISO "); import java.util.hashmap; import java.util.map; public class WebMacroMain { // Generer template navn utifra klassenavn. Dette slik at det bare er å lage en template med // samme navn som klassen i den pakken som WebMacroMain ligger. private static final String TEMPLATE = WebMacroMain.class.getName().replace('.','/')+".wm"; public static void main(string[] args) throws Exception { // Opprett en renderer for filen vår. WebMacroRenderer renderer = new WebMacroRenderer(TEMPLATE); // Lag og fyll en Context Map context = new HashMap(); // Render resultatet til Syste,out. renderer.render(system.out, context);

34

35 public class SomeCorelet extends Corelet { private static final String TEMPLATE = SomeCorelet.class.getName().replace('.','/')+".wm"; public String gettemplate() { return TEMPLATE;

36 package com.coretrek.kurs; import com.corelet.corelet; public class HelloWorld extends Corelet { private static final String TEMPLATE = HelloWorld.class.getName().replace('.','/')+".wm"; private static final String TITLE = "Hello World"; public String gettitle() { return TITLE; public String gettemplate() { return TEMPLATE;

37 <span class="normal">hello World</span> <Module id="example"> <Corelet id="helloworld" class="com.coretrek.kurs.helloworld" size="small"> <Addable application="true" portal="true" /> </Corelet> </Module>

38 ModuleId[.ModuleId] CoreletId

39 <a href="parameters?$this:key=value">send key=value to $this</a> <form method="post" action="parameters"> <input type="text" name="$this:text" /> </form> public void process(coreletrequest creq, CoreletResponse cres)

40 public void sendparameter(string coreletid, String parametername, Object parametervalue)

41

42 <img src="$spaceimage" width="1" height="1" />

43

44

45

46 <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE Config SYSTEM "corelets.dtd"> <Config> <!-- Mange forskjellige tager som kun gjelder for server oppsettet --> <Modules> <Module id="test"> <Corelet id="test" class="com.test.test" size="small"> <Addable portal="true" application="true" /> </Corelet> </Module> </Modules> </Config>

47 <!-- Den første Entryen her inneholder kun en String --> <Entry key="string">stringvalue</entry> <!-- Denne Entryen inneholder en liste, man må caste til java.util.list når den hentes ut. --> <Entry key="list"> <Value>Entry 1</Value> <Value>Entry 2</Value> <Value>Entry 3</Value> <Value>Entry 4</Value> </Entry> <!-- Denne entryen inneholder ett nytt map inne i seg selv. En må cate til java.util.map når verdien henter ut. --> <Entry key="map"> <Entry key="subkey1">subvalue 1</Entry> <Entry key="subkey2">subvalue 2</Entry> <Entry key="subkey3">subvalue 3</Entry> <Entry key="subkey4">subvalue 4</Entry> </Entry> <!-- Her er ett eksempel som bruker flere ting om en annen. Man må kjenne til strukturen i koden der man leser ut innholdet --> <Entry key="mix"> <Value> <Entry key="submap">submapvalue</entry> <Entry key="somethingelse">value</entry> </Value> <Value>String</Value> <Value> <Value>2</Value> <Value>4</Value> <Value>6</Value> <Value>8</Value> </Value> <Value> <Entry key="map">

48 <Value>TEXT</Value> </Entry> </Value> </Entry> #set $coreletid = $this.getsiblingid("popupcorelet") #set $popupwidth = 200 #set $popupheight = 400 ## Vanlig popup <a href="javascript:popup($coreletid, $popupwidth, $popupheight)">popup</a> ## popup mede paramter <a href="javascript:popup("$coreletid&$coreletid:para1=val&$coreletid:para2=val", $popupwidth, $popupheight)">popup</a>

49

50

51

52 mins hours dates months days 0,30 * * * *

53 0 0 1 * * run()

54

55 com.corelet.event.event Listener.EVENT_ID_USER_ SESSION_ADDED_MASTER com.corelet.event.event Listener.EVENT_ID_USER_ SESSION_ADDED_SHARED com.corelet.event.event Listener.EVENT_ID_REMOV E_USER_SESSION_MASTER com.corelet.event.event Listener.EVENT_ID_REMOV E_USER_SESSION_SHARED com.corelet.event.event Listener.EVENT_ID_DOMAI N_LOGGEDIN com.corelet.event.event Listener.EVENT_ID_LOGOU T_DOMAIN fireevent

56 corelets.xml corelets.xml corelets.xml <Authentication masterchainid="--chain ID ref--" optionalchainid="--chain ID ref--" logoutchainid="--chain ID ref--"> <AuthenticationSystemMappings defaultmasterchainid="--chain ID ref--" fileuploaddownloadchainid="--chain ID ref--" optionalchainid="--chain ID ref--" /> <StateStore class="--statestore class--"> </StateStore> <SessionKeepers> <SessionKeeper id="--session keeper ID--" class="--session keeper class--"> </SessionKeeper> </SessionKeepers> <AuthenticationSources> <AuthenticationSource id="--authentication source ID--" class="--authentication source class--"> </AuthenticationSource> </AuthenticationSources>

57 <AuthenticationSourceStacks> <AuthenticationSourceStack id="--authentication stack ID--"> <AuthenticationSourceRef sourceref="--authentication source ID ref--" /> </AuthenticationSourceStack> </AuthenticationSourceStacks> <AuthenticationMethods> <AuthenticationMethod id="--authentication method ID--" class="--authentication method class--"> </AuthenticationMethod> </AuthenticationMethods> <AuthenticationChains> <AuthenticationChain id="--chain ID--" defaultstackref="--authentication stack ID ref--" sessionkeeperref="--session keeper ID ref--" mastersession="--true/false--"> <AlreadyLoggedInAuthenticationMethodRef methodref="--authentication method ID ref--" /> <AuthenticationMethodRef methodref="--authentication method ID ref--" /> </AuthenticationChain> </AuthenticationChains> </Authentication> <AuthenticationSources> <!-- Simple SQL authentication with users and domains. No groups, etc. --> <AuthenticationSource id="simpledb_ct-domain" class="com.coretrek.machete.auth.std.source.simpledb.simpledbauthenticationsource"> <Alias absoluteid="dbsrc_ct-domain" /> <Entry key="connectionid">ct-domain</entry> <Entry key="databasefailurehaltsstartup">false</entry> </AuthenticationSource> </AuthenticationSources> <AuthenticationSourceStacks>

58 <!-- Only use the simple SQL based authentication system --> <AuthenticationSourceStack id="dbstack"> <Alias id="default" /> <AuthenticationSourceRef sourceref="dbsrc_ct-domain" /> </AuthenticationSourceStack> </AuthenticationSourceStacks> <AuthenticationMethods> <AuthenticationMethod id="htmlform" class="com.coretrek.machete.auth.std.method.htmlformauthenticationmethod"> <!-- <Entry key="singledomain">default</entry> --> <Entry key="loginpage">com/coretrek/machete/auth/std/method/login.wm</entry> <Entry key="takenoverpage">com/coretrek/machete/auth/std/method/takenover.wm</entry> </AuthenticationMethod> </AuthenticationMethods>

59 <SessionKeepers> <SessionKeeper id="httpsessionbasedsessionkeeper" class="com.coretrek.machete.auth.std.sessionkeeper.servlet.httpsessionbasedsessionkeeper"> <Alias absoluteid="default" /> </SessionKeeper> </SessionKeepers> <StateStore class="com.coretrek.machete.auth.std.statestore.sql.sqlstatestore"> <Entry key="connectionid">ct-domain</entry> <Entry key="databasefailurehaltsstartup">false</entry> </StateStore>

60 <AuthenticationChains> <AuthenticationChain id="html Form" defaultstackref="default" sessionkeeperref="default" mastersession="true"> <AlreadyLoggedInAuthenticationMethodRef methodref="htmlform" /> <AuthenticationMethodRef methodref="sessionkeeper" /> <AuthenticationMethodRef methodref="ccscookie" /> <AuthenticationMethodRef methodref="popupblocker" /> <AuthenticationMethodRef methodref="htmlform" /> </AuthenticationChain> </AuthenticationChains> <Authentication masterchainid="html Form" optionalchainid="optional-shared" logoutchainid="logout-chain">

61 <AuthenticationSystemMappings defaultmasterchainid="html Form" fileuploaddownloadchainid="http BASIC-shared" optionalchainid="optional-shared" />

62 <AuthenticationChain id="html Form + Anonymous" defaultstackref="default" sessionkeeperref="httpsessioninactivityintervalboostingsessionkeeper" mastersession="true"> <AlreadyLoggedInAuthenticationMethodRef methodref="htmlform" /> <AuthenticationMethodRef methodref="cookietester" /> <AuthenticationMethodRef methodref="anonymoushtmlsnoop" /> <AuthenticationMethodRef methodref="sessionkeeper" /> <AuthenticationMethodRef methodref="ccscookie" /> <AuthenticationMethodRef methodref="popupblocker" /> <AuthenticationMethodRef methodref="anonymoususer" /> <!-- This method generates a AnonymousUser --> </AuthenticationChain> corelets.xml

63 corelets.xml <AdminServlet password="default" />

64

65

66

67 logconfig.xml logconfig.xml

68 registerrss getrssnewsitems reloadrss getregisteredrssfeeds incrementcounter getcurrentvalue getupdatetimes percentagehit eventtofire percentagehit eventtofire

69 public class ExampleStateCorelet extends Corelet implements Stateful { private ExampleState _instancestate; private ExampleState _globalstate; public void setinstancestate(state state) { _instancestate = (state == null)? new ExampleState() : (ExampleState) state; public void getinstancestate() { return _instancestate; public void setglobalstate(state state) { _globalstate = (state == null)? new ExampleState() : (ExampleState) state; public void getglobalstate() { return _globalstate; // Corelet methods // State class definiton public static class ExampleState extends State { setxxxstate getxxxstate

70 public class ExampleStatefulCorelet extends StatefulCorelet { private ExampleState _instancestate; private ExampleState _globalstate; public void process(coreletrequest creq, CoreletResponse cres) { if (_instancestate == null) { _instancestate = (ExampleState) getinstancestate(); if (_instancestate == null) { _instancestate = new ExampleState(); setinstancestate(_instancestate); if (_globalstate == null) { _globalstate = (ExampleState) getglobalstate(); if (_globalstate == null) { _globalstate = new ExampleState(); setglobalstate(_globalstate); // State class definiton public static class ExampleState extends State { getxxxstate setxxxstate getmodulestate setmodulestate public ExampleState getmodulestate() { if (_modulestate == null) { _modulestate = (ExampleState) user.getmodulestate(getcoreletconfig().getmoduleconfig()); if (_modulestate == null) { _modulestate = new ExampleState(); user.setmodulestate(getcoreletconfig().getmoduleconfig(), _modulestate); return _modulestate;

71 _modulestate public ExampleState getdomaincoreletstate() { if (_domaincoreletstate == null) { _domaincoreletstate = (ExampleState) domain.getcoreletstate(getcoreletconfig()); if (_domaincoreletstate == null) { _domaincoreletstate = new ExampleState(); domain.setcoreletstate(getcoreletconfig(), _domaincoreletstate); return _domaincoreletstate; public ExampleState getdomainmodulestate() { if (_domainmodulestate == null) { _domainmodulestate = (ExampleState) domain.getmodulestate(getcoreletconfig().getmoduleconfig()); if (_domainmodulestate == null) { _domainmodulestate = new ExampleState(); domain.setmodulestate(getcoreletconfig().getmoduleconfig(), _domainmodulestate); return _domainmodulestate;

72 <!-- example for connection URLs of the type jdbc:<driver>://<host>/<database> --> <Connection id="--connectionid--" driverclass="--driverclass--" exceptionshaltstartup="--true/false--"> <ConnectionParameters driver="--driver--" host="--host--" database="--database--" /> <ConnectionCredentials username="--dbusername--" password="--dbpassword--" /> <PoolParameters minsize="--minpoolsize--" maxsize="--maxpoolsize--" maxidletime="--maxconnectionidletime--" maxreuse="--maxconnectionreuse--" /> </Connection> <!-- Example using URL instead of parameters --> <Connection id="--connectionid--" driverclass="--driverclass--" exceptionshaltstartup="--true/false--"> <ConnectionURL url="--jdbcurl--" /> <ConnectionCredentials username="--dbusername--" password="--dbpassword--" /> <PoolParameters minsize="--minpoolsize--" maxsize="--maxpoolsize--" maxidletime="--maxconnectionidletime--" maxreuse="--maxconnectionreuse--" /> </Connection>

73

74 // Getting the connection Connection con; try { // in Corelets con = getconnection("ct-domain"); // elsewhere con = Server.getServer().getConnection("ct-domain"); catch (SQLException e) { // Handle connection error try { // Perform SQL operations catch (SQLException e) { // Handle SQL error finally { try { con.close(); catch (SQLException e) { // Handle connection closing error

75 import org.apache.log4j.logger; private static final Logger log = Logger.getLogger(<logger name>); if (log.isdebugenabled()) log.debug("current time is: "+System.currentTimeMillis()+"ms since 1. January 1970");

76 <appender name="demoappender" class="org.apache.log4j.dailyrollingfileappender"> <param name="datepattern" value="'.'yyyy-mm-dd" /> <param name="file" value="${com.coretrek.machete.log.dir/demoappender.log" /> <layout class="org.apache.log4j.patternlayout"> <param name="conversionpattern" value="%d{iso8601 %-5p %-25t %-35c [%x] %m%n" /> </layout> </appender>

77 <category name="demo.democategory" additivity="false"> <priority value="debug" /> <appender-ref ref="demoappender" /> </category>

78

79 public FormParser createform() { InputField field1 = new TextField(/* Constructor parameters*/); InputField field2 = new TextField(/* Constructor parameters*/); InputField field3 = new TextField(/* Constructor parameters*/); FormParser form = new FormParser(getId() getnamespace()); form.addinputfield(field1); form.addinputfield(field2);

80 form.addinputfield(field3); Validator range = new RangeCheckValidator(/* Constructor parameters*/); Validator match = new MatchValidator(/* Constructor parameters*/); form.addvalidator("numberfield", range); form.addvalidator(new String[] {"pass1", "pass2", match); ## This assumes that the Corelet has a method called getform(), which ## returns a FormParser object. $this.form.startform("formname") ## To print out the field named "field1" $this.form.field1 $this.form.endform

81 public void process(coreletrequest req, CoreletResponse res) { String formsubmitted = req.getstringparameter(formparser.parameter_form_submitted); if (formsubmitted.equals("formname")) { form.process(req); if (userrequestedsave && form.validate()) { saveformdata(form); private void saveformdata(formparser form) { String stringfield = form.getstring("stringfieldname"); Date datefield = form.getdate("datefieldname"); int intfield = form.getint("intfieldname"); Object customobject = form.getobject("customobjectfieldname");

82

83

84

85

86 public class ExampleComponent extends WebmacroComponent {

87 // Statisk definert Componenet ID public static final String COMPONENT_ID = "ExampleComponent"; // WebMacro template for Componenten // Det er egen hjelpefunksjon for å lage den som gir den samme navn som klassen +".wm", og // peker til at WebMacro filen ligger i samme mappe/pakke som klassen. private static final String TEMPLATE = classtotemplate(examplecomponent.class); // Default konstruktør - når denne brukes så kan Componenten kun // oppstå en gang under en parent public ExampleComponent() { super(component_id); // Konstruktør som tar ID som parameter public ExampleComponent(String id) { super(id); // Process kan implementeres ved behov protected void process(componentrequest creq, ComponentResponse cres) { // DisplayPrepare kan implementeres ved behov protected void displayprepare() { public String gettemplate() { return TEMPLATE;

88 // ExampleComponentCorelet.java public class ExampleComponentCorelet extends Corelet implements ComponentHolder { // Componentet som vi bruker. private Component _component; // getnamespace metoden som man må implementere fra ComponentHolder public String getnamespace() { // Denne metoden vil alltid se slik ut for Coreletter return getid(); // process for Coreletten public void process(coreletrequest creq, CoreletResponse cres) { // Pass på at vi har en instans av Component if (_component == null) { _component = new ExampleComponenet("Example"); // Kall opp process på Component. Dette vil videre kalle den implementerte // process metoden på Componetet etter at kontekstverdier er satt. _component.process(this, creq); public void displayprepare() { // Kall opp displayprepare på Componenten, som vil kalle videre til den faktisk // implementasjonen etter at kontekst har blitt satt _component.displayprepare(this); /** * Denne metoden vil gjøre det mulig å få tak i Componenten i WebMacro. */ public Component getcomponent() { return _component; // gettemplate metoden må også implementeres her. ## ExampleComponentCorelet.wm ## Dette vil hente ut Componentet, og så vil det i tur rendere seg selv med sin template der det plasseres. $this.component

89 public class StateComponent extends WebmacroComponent { private StateComponentState _state; protected void process(componentrequest creq, ComponentResponse cres) { if (_state == null) { _state = (StateComponentState) getstate(); if (_state == null) { _state = new StateComponentState(); setstate(_state); // Bruk staten private static final class StateComponentState extends State {

90 public TabContainer createtabcontainer() { // Første steg er å opprette selve TabContaineren TabContainer result = new TabContainer("TabContainer", "details"); // Vi har satt at default tabben skal være details, vi må da sikre at vi legger // til en tab med den IDen

91 // Den første tabben vi legger til her er også den som kommer til å // ende opp som default tab. result.addcontainedcomponent(new CompanyDetailComponent("details")); result.addcontainedcomponent(new CompanyAddressComponent("address")); result.addcontainedcomponent(new CompanyContactsComponent("contacts")); // TabContainer er nå initialisert, den må videre brukes som en vanlig Component return result;

92

93 <Themes> <Default id="standard" /> <Common logout="com/corelets/htmldesign/logout.wm" restore="com/corelets/htmldesign/restore.wm" replacementcorelet="com/corelets/htmldesign/replacementcorelet.wm" serverdown="com/corelets/htmldesign/serverdown.wm" exception="com/corelets/htmldesign/exception.wm" /> <Theme id="standard" description="the Blue Dull" frameset="com/corelets/htmldesign/standard/frameset.wm" stylesheet="com/corelets/htmldesign/standard/css.wm" topbar="com/corelets/htmldesign/standard/topbar.wm" topsize="26" corelet="com/corelets/htmldesign/standard/corelet.wm" mainlet="com/corelets/htmldesign/standard/applicationmodemainlet.wm" themeinclude="com/corelets/htmldesign/standard/themeinclude.wm" workbench="com/corelets/htmldesign/standard/workbench.wm" staticcontent="themes/standard" /> </Themes>

94 <link rel="stylesheet" href="$ccs_abscontextpath/stylesheet/$ccs_theme.id" type="text/css" /> #parse "$CCS_Theme.ThemeInclude" #set $themehtmlroot="$htmlroot/$ccs_theme.staticcontent"

95 themes/<themeid>

96

97

98 corelets.xml <?xml version="1.0" encoding="iso "?> <Dictionary> <Key key="module"> <Key key="modulepart"> <Key key="text"> <Value lang="no_no">teksten på norsk</value> <Value lang="en_us">the text in english</value> </Key> </Key> </Key> </Dictionary>

Eksamen i Internetteknologi Fagkode: ITE1526

Eksamen i Internetteknologi Fagkode: ITE1526 Datateknikk Side 1 av 8 Eksamen i Internetteknologi Fagkode: ITE1526 Tid: Mandag, 23.05.05, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 3 oppgaver og

Detaljer

Videregående programmering 6

Videregående programmering 6 Videregående programmering 6 1. Feilkontroll i klasser uten unntaksobjekter Klasser skal lages sikre. Argumentverdier skal kontrolleres, og eventuelle feil skal rapporteres til klienten. I praksis har

Detaljer

INF 1010, vår 2005 Løsningsforslag uke 11

INF 1010, vår 2005 Løsningsforslag uke 11 INF 1010, vår 2005 uke 11 Anders Brunland 11. april 2005 Oppgave 1 Oppgave 1 i kapittel 19, Rett på Java Er følgende metoder lovlige? Hovorfor/hvorfor ikke? a) void koknverter ( int mnd ) { konverterdato

Detaljer

Løsningsforslag Test 2

Løsningsforslag Test 2 Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.

Detaljer

INF1000 - Løsning på seminaropppgaver til uke 8

INF1000 - Løsning på seminaropppgaver til uke 8 INF1000 - Løsning på seminaropppgaver til uke 8 Oppgave 1 a) for(string nokkel : studenter.keyset){ System.out.println(nokkel); Studenten sitt navn blir skrevet ut. b) for(student dennestudenten : studenter.values()){

Detaljer

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien

Detaljer

Implementering av caching ved hjelp av Spring. Christian Vestøl 27.04.06

Implementering av caching ved hjelp av Spring. Christian Vestøl 27.04.06 Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06 Agenda Kort introduksjon til Spring med Spring Praktiske eksempler Forskjellige rammeverk for caching April 2006 2 Kort om Spring

Detaljer

Socket og ServerSocket

Socket og ServerSocket Side 1 av 5, socket og klient-tjener, V. Holmstedt, HiO 2006 Dette dokumentet er revidert den 29.8.2006, kl:12:30. Det er foretatt rettelser i begge versjoner av klassen A_Server. Socket og ServerSocket

Detaljer

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM 2 TEMA 1 MULTIPROSESSERING MED DATASTEGET Multiprosessering har lenge vært et tema i SAS Stadig ny funksjonalitet er med på

Detaljer

OOT Seminar H-97 CORBA. Praktisk del

OOT Seminar H-97 CORBA. Praktisk del OOT Seminar H-97 CORBA Praktisk del Valg av ORB implementasjon Har valgt å bruke Visigenic sin ORB implementsjon ORB en er 100% Java kodet Bygger på OMG sin IDL to Java language mapping fra Jun 97 Gratis

Detaljer

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java INF1010 våren 2017 Onsdag 25. januar Litt om unntak i Java Stein Gjessing Nytt tema: Feilhåndtering (IO: Innlesing/Utskrift) n En metode som kan komme til å gjøre en IO-feil på fil må enten behandle denne

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Mandag 6. august 2012, kl. 15:00-19:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Rune Sætre. Kontaktperson under

Detaljer

Kapittel 8: Programutvikling

Kapittel 8: Programutvikling Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 14.desember 2007 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasser: LO347D Web-applikasjoner med Java EE Nettstudenter

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Hentet fra Suns Totorial:

Hentet fra Suns Totorial: Sun s Hello-eksempel Hentet fra Suns Totorial: http://java.sun.com/j2se/1.4.2/docs/guide/idl/gshome.html Andre nyttige URIer: Java IDL documentation: http://java.sun.com/j2se/1.4.2/docs/guide/idl/index.html

Detaljer

Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen

Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen Hva er ibatis Rammeverk laget for: Forenkling av database oppkoblinger Separering av SQL kode fra kildekode Data access objects

Detaljer

Eksamen Objektorientert Programmering 2013

Eksamen Objektorientert Programmering 2013 Eksamen Objektorientert Programmering 2013 Høgskolen i Østfold 2013-01-07 Emnekode Emne ITF10611 Dato 2013-01-07 Eksamenstid 09:00-13:00 Hjelpemidler Faglærer Objektorientert Programmering To A4-ark (fire

Detaljer

XML og JDOM. Helge Furuseth

XML og JDOM. Helge Furuseth XML og JDOM Helge Furuseth furuseth@idi.ntnu.no XML XML = Extensible Markup Language Basert på SGML Standard Generalized Markup Language HTML = Hypertext Markup Language Også basert på SGML Mange likheter

Detaljer

INF2100. Oppgaver uke 40 og

INF2100. Oppgaver uke 40 og INF2100 Oppgaver uke 40 og 41 2014 For å få trening i å programmere en parser, skal vi aller først gjøre det for et veldig enkelt programmeringsspråk: E. Dette språket består av uttrykk med de fire vanligste

Detaljer

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering i C++ Løsningsforslag Eksamen høsten 2005 Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det

Detaljer

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007. Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører

Detaljer

INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 15. januar 2014 2. time Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder med parametre En metode uten parameter:

Detaljer

Dagens tema: Mer av det dere trenger til del 1

Dagens tema: Mer av det dere trenger til del 1 Dagens tema Dagens tema: Mer av det dere trenger til del 1 Hvilke klasser trenger vi? Uttrykk Typer Testutskrifter 12 gode råd Dagens tema Prosjektet Utifra dette AlboC-programmet: int pot2 (int x) { int

Detaljer

Eksamen. Objektorientert Programmering IGR 1372

Eksamen. Objektorientert Programmering IGR 1372 + JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV

Detaljer

import java.util.arraylist;

import java.util.arraylist; import java.util.arraylist; * Klassen som generer TerminListe * @author young * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates

Detaljer

(MVC - Model, View, Control)

(MVC - Model, View, Control) INF1010 - våren 2008 Modell - Utsyn - Kontroll (MVC - Model, View, Control) Stein Gjessing Inst. for informatikk Et bankprogram Vi skal lage et program som håndterer kontoene i en bank. En konto eies av

Detaljer

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at

Detaljer

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter DCOM Distributed Component Object Model Almir Delkic og Frank Jensen Institutt for Informatikk, Universitetet i Oslo, oktober 2003 Introduksjon Utvikling av distribuerte applikasjoner Utvidelse av COM

Detaljer

INF1010. Grensesnittet Comparable

INF1010. Grensesnittet Comparable<T> INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd

Detaljer

Avdeling for ingeniørutdanning Institutt for teknologi

Avdeling for ingeniørutdanning Institutt for teknologi Avdeling for ingeniørutdanning Institutt for teknologi Oppgavetittel: Lab Fag(nr./navn): DOPS2021 - Operativsystemer Gruppemedlemmer: T. Alexander Lystad Faglærer: Karoline Moholth Dato: 15. oktober 2009

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet LØSNINGSFORSLAG Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet

Detaljer

Kapittel 9. Distribusjon. Fjernbruker. Tjenermaskin LAN WAN. Nærbruker. Figur 9-1: En enkel klient/tjener distribusjon

Kapittel 9. Distribusjon. Fjernbruker. Tjenermaskin LAN WAN. Nærbruker. Figur 9-1: En enkel klient/tjener distribusjon Kapittel 9 Distribusjon Tjenermaskin Fjernbruker LAN Nærbruker WAN Figur 9-1: En enkel klient/tjener distribusjon 195 Tjenermaskin Fjernbruker LAN Replikert tjener Nærbruker WAN Figur 9-2: Klient/tjener-konfigurasjon

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson

Detaljer

Tilkobling og Triggere

Tilkobling og Triggere Tilkobling og Triggere Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 12, 2011 1 / 25 Tilkobling med PHP PHP bruker databasespesifike moduler til å koble

Detaljer

Eksamensoppgave i TDT4100 Objektorientert programmering

Eksamensoppgave i TDT4100 Objektorientert programmering Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4100 Objektorientert programmering Faglig kontakt under eksamen: Hallvard Trætteberg Tlf.: 91897263 Eksamensdato: 6. juni Eksamenstid

Detaljer

EKSAMEN I FAG TDT4180 - MMI Lørdag 11. august 2012 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 - MMI Lørdag 11. august 2012 Tid: kl. 0900-1300 Side 1 av 8 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 - MMI Lørdag

Detaljer

Litt om pakker og mest om data inn og ut

Litt om pakker og mest om data inn og ut Litt om pakker og mest om data inn og ut IN105-javainnogut-1 import java.io.*;. Data inn fra tastaturet lesemetode tastatur BufferedReader void lesemetode (String [ ] args) throws IOException {... /* sett

Detaljer

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund Antagelser og forutsetninger Implementasjonseksemplet kompileres og kjøres på Java SDK 1.4.2 Dokumentasjon

Detaljer

Dagens tema: Kompilatorens struktur. De ulike modulene Prosjektet. Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java

Dagens tema: Kompilatorens struktur. De ulike modulene Prosjektet. Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java Dagens tema: Kompilatorens struktur Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java De ulike modulene Prosjektet Hva skal Del-0 gjøre? Feilmeldinger Testutskrifter Siste råd og påbud

Detaljer

Å lese tall fra en fil, klassen Scanner

Å lese tall fra en fil, klassen Scanner Å lese tall fra en fil, klassen Scanner 1. Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2. Kan skanne teksten etter data av ulike typer. 3. Kan kun skanne framover i teksten. Vis

Detaljer

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Løsningsforslag Eksamen V2007 Oppgave 1 NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Oppgave 1.1 Klasse som pakke rinne n primitiv datatype, slik at vi kan

Detaljer

1 Kodegenerering fra Tau Suiten

1 Kodegenerering fra Tau Suiten Kodegenerering fra Tau Suiten For å generere Javakode eller en annen form for programmeringskode ut i fra Tau suiten, er det visse ting som må være utført.. En UML modell må eksistere og være korrekt.

Detaljer

Dagens tema: Kompilatorens struktur. De ulike modulene Prosjektet. Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java

Dagens tema: Kompilatorens struktur. De ulike modulene Prosjektet. Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java Dagens tema: Kompilatorens struktur Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java De ulike modulene Prosjektet Hva skal del-0 gjøre? Feilmeldinger Testutskrifter Siste råd og påbud

Detaljer

INF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser

INF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser INF1010, 21. januar 2016 Klasser med parametre = Parametriserte klasser = Generiske klasser Stein Gjessing Inst. for Informatikk Universitetet i Oslo Først litt repetisjon fra i går class LagBiler { public

Detaljer

Feilmelding Årsak Løsning

Feilmelding Årsak Løsning Request for the permission of type 'System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed Feil oppstod i Window.DialogWindow:

Detaljer

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19 Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre

Detaljer

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN!

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN! Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse Transaksjonshåndtering LC191D Videregående programmering

Detaljer

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet Eksamen i emnet INF101/INF101-F - Programmering 2 Fredag 10. juni 2011, kl. 09-14 Bokmål Tillatte hjelpemidler: alle skrevne og trykte.

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage

Detaljer

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold Java RMI Markus Foss Hans-Gunnar Vold Introduksjon Java Remote Method Invocation Tillater metodekall mellom Java virituelle maskiner Introdusert i Java 1.02 Javas svar på RPC, men er objekt orientert,

Detaljer

import java.io.*; import java.util.*; import javagently.text;

import java.io.*; import java.util.*; import javagently.text; //-------------------------------------------------------- // // Fil: Oppg1.java - // løser oppgave 1 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import

Detaljer

INF1010 våren 2016. Arv og subklasser - del 2

INF1010 våren 2016. Arv og subklasser - del 2 INF1010 våren 2016 Onsdag 10. februar Arv og subklasser - del 2 pluss litt om feil og unntak hvis tid Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi

Detaljer

OPPGAVE 5b og 8b Java Kode

OPPGAVE 5b og 8b Java Kode OPPGAVE 5b og 8b Java Kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene

Detaljer

Inf1010 Våren Feilsituasjoner og unntak i Java. Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Inf1010 Våren Feilsituasjoner og unntak i Java. Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Inf1010 Våren 2009 Feilsituasjoner og unntak i Java Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Oversikt Hva er en feil (er det ikke mulig å unngå feil?) Hva skjer når et program feiler

Detaljer

Repetisjon. INF1000 - gruppe 13

Repetisjon. INF1000 - gruppe 13 Repetisjon INF1000 - gruppe 13 Lese fra fil Scanner import java.util.*; void lesfrafil() { try { Scanner innfil = new Scanner(new File( fugleobservasjoner.txt )); while (innfil.hasnext()) { String linje

Detaljer

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær: TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer

Detaljer

Eksamen Objektorientert Programmering 2011

Eksamen Objektorientert Programmering 2011 Eksamen Objektorientert Programmering 2011 Høgskolen i Østfold 2011-05-11 Emnekode ITF10611 Emne Objektorientert Programmering Dato 2011 05-11 Eksamenstid 09:00-13:00 Hjelpemidler To A4-ark (fire sider)

Detaljer

Mål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon

Mål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon Mål med kurset Java i INF 2400 Introduksjon til signalbehandling Lyd som anvendelse Få programmeringserfaring Dagens tema Utplukk av Java (GUI, kode-konvensjon, polymorfisme, classpath, javadoc) Java og

Detaljer

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Objektorientert modellering

Detaljer

Kapittel 5: Objektkommunikasjon

Kapittel 5: Objektkommunikasjon Kapittel 5: Objektkommunikasjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk

Detaljer

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden Øving 4 Thorstein Brekke Operativsystemer Oppgave 1 Kode for Murer: // Uke4oppgave1murer.cpp : main project file. #include "stdafx.h" using namespace System; using namespace Threading; using namespace

Detaljer

Eksamensoppgave i TDT4100 Objektorientert programmering med Java

Eksamensoppgave i TDT4100 Objektorientert programmering med Java Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4100 Objektorientert programmering med Java Faglig kontakt under eksamen: Rune Sætre Tlf.: 452 18 103 Eksamensdato: 2013, torsdag

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Lørdag 19. mai 2011, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under

Detaljer

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag KANDIDATNUMMER: EKSAMEN EMNENAVN: Programutvikling EMNENUMMER: IMT3281 EKSAMENSDATO:05/12-2007 KLASSE: 06HBINDA/06HBINDP TID: 09.00 13.00 EMNEANSVARLIG: Øivind Kolloen ANTALL SIDER UTLEVERT: 7 TILLATTE

Detaljer

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl. 0900-1300 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009

Detaljer

OO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0

OO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0 OO-eksempel I eksemplet er det deklarert tre klasser: 1) Fag (skal instansieres ett objekt for hvert fag) 2) Student (skal instansieres ett objekt for hver student) 3) Studenter (abstrakt klasse skal ikke

Detaljer

Hittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste

Hittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste Datafiler og serialisering Tekstfiler Scanner klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc191d.php

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 4.mai 2011 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D Campus: LC191D Videregående

Detaljer

Mer objektorientert programmering

Mer objektorientert programmering Mer objektorientert programmering Klasser og objekter En klasse med konstruktør og en array Innkapsling En klasse med datafil og kommandoløkke Klassen ArrayList Hva er hva? Klasser og objekter Det er viktig

Detaljer

Løsningsforslag Eksamen V08. Oppgave 1. Oppgave 1.1. Oppgave 1.2. Oppgave 1.3. Se i boka/forelesningsnotatene:-) Se i boka/forelesningsnotatene:-)

Løsningsforslag Eksamen V08. Oppgave 1. Oppgave 1.1. Oppgave 1.2. Oppgave 1.3. Se i boka/forelesningsnotatene:-) Se i boka/forelesningsnotatene:-) Løsningsforslag Eksamen V08 Oppgave 1 Oppgave 1.1 Se i boka/forelesningsnotatene:-) Oppgave 1.2 Se i boka/forelesningsnotatene:-) Modularitet: Dele opp sammenhørende deler av programmet i egne moduler.

Detaljer

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være

Detaljer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: Informatikk II Emnekode: LO334E Faglig veileder: Hilde Hemmer Gruppe(r): 2EA,2EB,2EC Dato:14.12.04 Eksamenstid: 9 00-12 00 Eksamensoppgaven består av:

Detaljer

Eksamensoppgave i TDT4100 Objektorientert programmering med Java

Eksamensoppgave i TDT4100 Objektorientert programmering med Java Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4100 Objektorientert programmering med Java Faglig kontakt under eksamen: Rune Sætre Tlf.: 452 18 103 Eksamensdato: 2013, torsdag

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN

Detaljer

JSP. Tilstander og synkronisering

JSP. Tilstander og synkronisering JSP Tilstander og synkronisering Tilstandsinformasjon Fire måter å gjøre det på omskriving av URL cookies hidden fields (gjemte felt) tjenersidelagring (sessions) se kreativbrukavurl.jsp Kreativ bruk av

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

ADT og OO programmering

ADT og OO programmering ADT og OO programmering I. ADT I JAVA - INTERFACE I.1 grensesnitt skal dokumenteres Javadoc I.2 bruk av interface I.3 implementasjoner av interface II. OO II.1 Arv av type og implementasjon II.2 Abstrakte

Detaljer

HashMap. INF1000 Forelesning 9. Ulike versjoner i Java 1.4 (gammel) og Java 1.5/1.6 av HashMap. Objekter lagres med en søkenøkkel

HashMap. INF1000 Forelesning 9. Ulike versjoner i Java 1.4 (gammel) og Java 1.5/1.6 av HashMap. Objekter lagres med en søkenøkkel HashMap INF1000 Forelesning 9 Hashmap Eksempel: Flyreservasjon Ofte har vi flere, mange objekter av en bestemt klasse - eks. : elever på en skole biler som har passert bomringen i Oslo telefonsamtaler

Detaljer

Velkommen til. INF våren 2016

Velkommen til. INF våren 2016 Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010

Detaljer

INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon

INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon INF1000 Forelesning 9 Hashmap Eksempel: Flyreservasjon HashMap Ofte har vi flere, mange objekter av en bestemt klasse - eks. : elever på en skole biler som har passert bomringen i Oslo telefonsamtaler

Detaljer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting

Detaljer

Kapittel 7: Mer om arv

Kapittel 7: Mer om arv Kapittel 7: Mer om arv Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,

Detaljer

J2EE. CMP Entity Beans, Transaksjoner, JSP

J2EE. CMP Entity Beans, Transaksjoner, JSP J2EE CMP Entity Beans, Transaksjoner, JSP CMP Entity Beans Container Managed Persistence Container sin oppgave å lagre innholdet i EJB til varig lager (typisk DB). Implementasjonsklassen lages abstrakt.

Detaljer

Dagens tema Kapittel 8: Objekter og klasser

Dagens tema Kapittel 8: Objekter og klasser Dagens tema Kapittel 8: Objekter og klasser Hva er objekter og klasser? Programmering med objekter Klassedeklarasjoner Generering av objekter Tilgang til elementer i objektene Objekt- og klassevariable

Detaljer

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006 Løsningsforslag for Obligatorisk Oppgave 3 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.03.14 Den tredje obligatoriske oppgaven tar for seg forelesning 9 til 13, som dreier seg om

Detaljer

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk INF1010 - Våren 2015 Li' repe$sjon om Tråder og GUI Stein Gjessing,, Universitetet i Oslo 1 GUI, tråder og hendelser Op-sys (Win, Linux,..) Ditt Program sin Event Dispatch Thread Hver ting brukeren gjør

Detaljer

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Gaustadbekkdalen, januar 27 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår inne i primærlageret

Detaljer

Oblig 4Hybelhus litt mer tips enn i oppgaven

Oblig 4Hybelhus litt mer tips enn i oppgaven Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,

Detaljer

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke

Detaljer

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet Eksamen i emnet INF101/INF101-F - Programmering 2 Tirsdag 27. September 2011, kl. 09-14 Bokmål Tillatte hjelpemidler: alle skrevne og

Detaljer

Universitetet i Oslo Institutt for informatikk. avmystifisert i INF102. Kvile

Universitetet i Oslo Institutt for informatikk. avmystifisert i INF102. Kvile Universitetet i Oslo Institutt for informatikk Surfing avmystifisert i INF102 Kvile kvile@mail.com Vår 2003 Innhold 1 Vanlig surfing med GET-metoden 4 1.1 Spørringen fra klienten.........................

Detaljer

First edition. Copyright Orion Billing A/S 2005. All rights reserved

First edition. Copyright Orion Billing A/S 2005. All rights reserved BRUKERMANUAL First edition. Copyright Orion Billing A/S 2005. All rights reserved Forord: Denne brukermanualen vil gi deg en rask innføring i bruken av Orion Billing A/S TapXML-Generator. Manualen er rikt

Detaljer

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

Detaljer