Kodkomplexitet - Hur mäts det? Sara Nilsson D05, Lunds Tekniska Högskola 1 mars 2011
|
|
- Bernt Fredriksson
- för 8 år sedan
- Visningar:
Transkript
1 Kodkomplexitet - Hur mäts det? Sara Nilsson D05, Lunds Tekniska Högskola dt05sn2@student.lth.se 1 mars 2011
2 Sammanfattning Den här rapporten är tänkt för studenter med programmeringsvana och åtminstone viss kunskap om Eclipse och extreme Programming (XP). Motivet till rapporten är att ge en ökad förståelse för vad kodkomplexitet är och hur man kan räkna ut hur komplex den kod man arbetar med är. Tanken är också att hitta visa på några verktyg och metoder som kan hjälpa till för att upptäcka och göra koden mindre komplex. Slutligen jämförs även verktygen mmellan vanlig och agil utvecklingsmiljö, för att se om det är samma verktyg som är användbara i bägge fallen.
3 Innehåll 1 Inledning 4 2 Teori Mätning av hela program Mätning av metoder Cyclomatic Complexity NPATH Complexity Tester Metrics Installation Körning Fördelar Nackdelar Clover Installation Körning Inställningar Fördelar Nackdelar Slutsats 13
4 1 Inledning De esta som någon gång har programmerat har också någon gång konstaterat att från att vara n välstrukturerad kod så går den långsamt över mot något komplext och rörigt. De esta har nog hört begreppet kodkomplexitet, men hur många vet egentligen vad det innebär riktigt, och hur många vet hur man kan beräkna det och använda det? Det är det här jag vill fokusera på med den här rapporten. Hur man beräknar kodkomplexitet och hur man använder de resultat man får fram. Resten av rapporten kommer att struktureras som följer. Kapitel 2 ger en inblick i teorin kring Kodkomplexitet och fortsätter sedan vidare till att beskriva några olika sätt att mäta kodkomplexiteten för ett program. Kapitel 3 ger en utvärdering av två eclipseplugins som kan mäta kodkomplexitet. Kapitel 4 sammanfattar vad jag kommit fram till och ger en liten slutsats. 2 Teori Efter hand som våra program växer i både komplexitet och storlek blir kraven större och större på ett sätt att förstå och kommunicera hur stora de egentligen är. [7] Eftersom människor är olika och det vi försöker mäta är hur komplext en människa tycker det här programmet är så kommer vi aldrig kunna få ett exakt värde eller en exakt mätteknik. [10] Ddäremot nns det en del generella tumregler man kan undersöka efter och få ett ungefärligt värde. 2.1 Mätning av hela program Funktionspoäng Utifrån designen kan man räkna ut hur många funktionspoäng ett program har, dessa kan sedan användas för att räkna ut hur stort programmet kommer bli, hur mycket arbete som kommer krävas och hur lång tid det kommer att ta. Vi människor bryter ner problem i små delar och löser delproblem, men om problemet som ska delas ner är ett helt program kan detta bli svårt. [7] Då är funktionspoäng ett sätt att hjälpa till att bryta ner problemet. Funktionspoäng är ddäremot inte särskilt bra att mäta med om det du vill se är hur mycket arbete det behövs för att underhålla koden (buggxar, prestandaproblem osv.). En stor del av underhållsarbetet är att leka detektiv och räkna ut vad problemet är. Antal rader kod En av de vanligaste metoderna att mäta ett programs komplexitet är just dess storlek. [10] Det stämmer ju att ett större program är svårare att sätta sig in i och blir mer komplext, men att bara räkna antalet rader är inte en så exakt metod om man vill jämföra mmellan olika språk. [7] Skriver man samma program i 2 olika språk kommer antalet funktionspoäng vara detsamma, men antalet rader kod kommer säkerligen att vara olika, speciellt om man väljer ett språk som är delvis graskt och ett som är rent textbaserat. Här är ett exempel på hur stor skillnad det kan vara mmellan 2 olika språk, i det här fallet Java och Scala: 4
5 Java [3] public static void quick_srt(int array[],int low, int n){ int lo = low; int hi = n; if (lo >= n) { return; int mid = array[(lo + hi) / 2]; while (lo < hi) { while (lo<hi && array[lo] < mid) { lo++; while (lo<hi && array[hi] > mid) { hi--; if (lo < hi) { int T = array[lo]; array[lo] = array[hi]; array[hi] = T; if (hi < lo) { int T = hi; hi = lo; lo = T; quick_srt(array, low, lo); quick_srt(array, lo == low? lo+1 : lo, n); Scala [4] <<ListQuicksort1>>= def qsort[t <% Ordered[T]](list:List[T]):List[T] = { list match { case Nil => Nil case x::xs => val (before,after) = xs partition (_ < x) qsort(before) ++ (x :: qsort(after)) Antalet rader kod beror också på andra faktorer, som programmerarens erfarenhet, metod att räkna på osv. Det absolut sämsta med metoden är att man vet aldrig svaret på hur många rader kod det blir förrän man är klar eller nästan klar. 5
6 2.2 Mätning av metoder Det kan vara intressant att mäta komplexiteten för en viss metod, och för detta nns det många olika sätt att mäta på. [10] Jag väljer här att ta upp några av dem. Antal rader kod Antalet rader kod kan ge ett mått på när man borde se sig om i sin metod och börja fundera på att bryta ut den i era små i stället. Ett vanligt råd är att man aldrig ska ha mer än en sida för en metod [10]. Att det är just en sida är för att man ska kunna se hela metoden, man ska kunna se allt relevant i en metod utan att behöva scrolla. Därför är också måttet en sida varierande med upplösning, teckensnitt osv osv. Nästling Ytterligare en bra riktlinje för programmering är att inte nästla mer än nödvändigt. Ju er nivåer man har på koden desto svårare är det att läsa den. Flöde En väldigt viktig del av den totala komplexiteten för en metod är ödeskomplexiteten, det nns 2 vanliga sätt för att mäta den. Cyclomatic Complexity 2.3 där man räknar hur många branches man gör och NPATH Complexity 2.4 som räknar alla möjliga exekveringsvägar genom en metod. Det innebär att man bland annat använder nästlingsdjupet och komplexiteten för de booleska variablerna. 2.3 Cyclomatic Complexity Cyclomatic Complexity är en metod för att räkna ut hur svårt ett program är att testa och underhålla. [8] [11] Det går i praktiken ut på att räkna ut hur många olika vägar man kan ta genom ett program, även om det i vissa program är totalt omöjligt för att det nns ett oändligt antal varianter. Därför har också beräkningen av komplexiteten ändrats till att räkna grundläggande vägar i stället för alla vägar. Det nns 2 olika formler för att beräkna cyclomatic complexity, vilken man ska använda beror på om slutnoden knyter an till startnoden Figur 2 1 eller inte Figur 1 2. Om grafen ser ut som i Figur 2 så ska man använda formeln v(g) = e n + p där v(g) är cyklomatic complexity, e antalet bågar i grafen, n antalet noder och p antalet anslutna komponenter. Om vi tar Figur 2 som exempel så gäller följande värden e = 9, n = 8 och p = 1. Om vi sätter in värdena i formeln får vi svaret 3, vilket innebär att det räcker med 3 sätt att gå igenom grafen för att kunna uttrycka alla sätt att gå igenom grafen. Ser ddäremot grafen ut som i Figur 1 gäller en annan formel, nämligen v(g) = e n + 2p Om vi tar Figur 1 som exempel så gäller följande värden e = 10, n = 8 och p = 1. Om vi sätter in värdena i formeln får vi svaret 3, vilket innebär att det räcker med 3 sätt att gå igenom grafen för att kunna uttrycka alla sätt att gå igenom grafen. Vill man inte skriva en graf kan man räkna antalet vilkorssatser och lägga till 1, dock får man inte glömma att t.ex. 1 and_an_if_statement.svg 2 and_an_if_statement_without_loop_back.svg 6
7 Figur 1: Det här är en kontrollgraf med ingångsnoden a och utgångsnoden f [1] if(a && b){... räknas som 2 eftersom det är samma sak som att skriva if(a){ if(b){... Om man vill kunna testa sina metoder på ett bra sätt bör man inte ha en cyclomatic complexity högre än 10, kommer man upp i 10 bör man refaktorisera eller skriva om sin metod. Undantaget är om man har en stor case-sats eller liknande. Structured testing Structured testing är ett sätt att mäta täckningen på dina tester, om man testar ett basset av vägar så är alla andra vägar täckta av tester eftersom de består av olika varainter av just de tester du redan gjort. 2.4 NPATH Complexity NPath Complexity mäter hur många icke cykliska vägar det nns i ett program, och underlättar för att räkna ut hur många testfall man behöver [9]. Genom att skriva kod med låg NPath-komplexitet får man en kod som är mycket lättare att testa. Precis som för Cyklomatic Complexity 2.3 nns problemet at det ubland 7
8 Figur 2: Det här är en kontrollgraf med ingångsnoden a och utgångsnoden f [2] nns oändligt antal möjliga vägar att gå eftersom man kan ta olika antal varv i looparna. Vad NPath försöker göra är att hitta en förbättrad lösning av Cyklomatic Complexity, där formlerna kan variera allt från en linjär lösning till en exponentiell funktion. Förutom det så kan antalet vägar genom grafen som inte kan testas varierar mmellan 0 och 2 N, där N är antalet bågar i grafen. Ett annat problem är att Cyclomatic Coplexity behandlar alla typer av satser likadant, oavstt om det är en while, if for eller annan. Även så ses det ingen skillnad på att ha 3 for-loopar i rad eller at ah 3 nästlade for-loopar, men en nästlad for-loop kan kännas mycket mer psykologiskt komplex än två loopar i rad. Många forskare är överens om att psykologisk komplexitet har större inytande på kodkvalitén [9]. Genom att utveckla NPath Complexity har man försökt lösa dessa problem. NPath gjordes från början med tanke på C, men kan även användas på andra programmeringsspråk. if Formeln för att räkna ut komplexiteten för en if-sats är NP if = NP if range + NP else range + NP expr + 1, där NP if range är komplexiteten för den kod som körs om if-satsen är true, NP expr är komplexiteten för uttrycket somstyr ifsatsen. NP else range är endast med i uttrycket om det nns en else-sats, i så fall är det komplexiteten för den kod osm körs om man går in i else-satsen. while Formeln för att räkna ut komplexiteten för en while-sats är NP while = NP while range + NP expr + 1, där NP while range är komplexiteten för den kod som är inom while-satsen och NP expr är komplexiteten för utrrycket som styr while-satsen. Om man har en do-while-sats ändrar man bara formlen så att det som står i do-satsen utgör värdet för NP while range. 8
9 for Formeln för att räkna ut komplexiteten för en for-sats är NP for = NP for range + NP expr1 +NP expr2 +NP expr3 +1, där NP for range är komplexiteten för den kod som är inom for-satsen, NP expr1 är komplexiteten för det första deluttrycket, NP expr2 det andra deluttrycket och NP expr3 det sista deluttrycket. switch Formeln för att räkna ut komplexiteten för en switch-sats är NP switch = NP expr +NP default + i=n i 1 NP i, där NP expr är komplexiteten för uttrycket som styr switch-satsen, NP default är den kod som körs om man går in i default och NP i är komplexiteten för det i:te caset i switch-satsen och n är antalet cases. Om ett case är tomt eller faller vidare till ett annat så räknas det som att det har komplexiteten 1. break Ett break beräknas alltid ha komplexiteten 1. return Eftersom return kan komma tillsammans med ett uttryck så är formeln för att beräkna komplexiteten NP return = NP expr, där NP expr är uttrycket som står tillsammans med return. expr Ett expression (&&, ) måste ju då också kunna beräknas, annars kommer vi aldrig få något resultat. Dock är detta ganska enkelt, komplexiteten är antalet operatorer. Totalt ger detta att NPath Complexity beräknas genom NP AT H = i=n i=1 NP i, därnp i är komplexiteten för det i:te statsmentet i koden. Tänk på att den tatala komplexiteten alltid är produkten av komplexiteterna för alla statements. Nedan kommer ett exempel: if ( ch == `a' ){ actrff; Func-a( ) ; if ( ch == `b' ){ bctr++; Func-b( ) ; if ( ch == `c' ){ cctr++; Func-c ( ) ; if ( ch == Id' ){ dctr++; Func-d( ); Eftersom alla if-satser består av kontinuerlig kod, är if-range = 1 för dem alla. Eftersom expr inte innehåller varken && eller så är den lika med 0. För att få ut komplexiteten för if-satserna tar vi således = 2. För att få ut den tatala komplexiteten tar vi sedan = 16 9
10 3 Tester För att göra det lättare att kunna testa programmen oavsett plattform valde jag att testa 2 plugins till Eclipse. Versionen av Eclipse jag har använt är Helios. 3.1 Metrics Den version av Metrics 3 jag provat är Installation Metrics installeras genom att man går in på Help Install new Software. Välj att installera från Följ instruktionerna på skärmen och starta om Eclipse Körning Innan du kan börja använda Metrics måste du se till att du står i Java-perspektivet, högerklicka på det projekt du vill köra metrics på och välj Properties. Välj metrics och se till att rutan med enable är ibockad. För att börja använda Metrics välj Window Show View Other Metrics Metrics View. Först kommer du se ett kort felmedelande eftersom projektet inte har körts ännu, kör projektet en gång så kommer data att samlas och du får en tabell som ser ut som Figur 3. Alla rader som är blå kan dubbelklickas på så kommer man direkt till den kod som har det maximala värdet för den rad du klickat på. Sedan version nns en trädstruktur i listan så du kan själv välja hur långt ner du vill gå. I trädet sorteras alla barn i fallande ordning med högst värde först. Man kan också exportera informationen till en XML-l, detta gör man genom att trycka på knappen Export XML Figur 4. Välj ett passande lnman och tryck spara. En annan funktionalitete det nns i programmet är att man kan göra en Dependency Graph, detta gör man genom att Välja det paket man vill göra den för och trycka på knappen Open the Dependency Graph View Figur 5. Ett exempel på hur Dependency Graph kan se ut nns i Figur 6. Alla paket som har ett cykliskt beroende färgas röda så man kan se vilka det är, övriga paket färgas blå. Den lilla gula cirkeln berättar hur många paket som ingår i cykeln och hur lång den längsta vägen runt är. Om man högerklickar på den gula cirkeln kan man välja Analyze Details som då använder Eclipse Search Engine för att räkna ut vilka underpaket eller klasser som ingår i cykeln. Genom att klicka på olika ler eller paket kan man få dem i centrum och se just deras beroenden Fördelar Verktyget är enkelt att använda, och grafer och liknande är väldigt tydliga. Sorteringen efter mest komplex först gör det lätt att följa trädet ner och se var man först ska försöka förbättra sin kod.att verktyget är helt gratis och inte gör allt för stora förändringar av eclipse i grunden är också väldigt positivt
11 Figur 3: Ett exempel på hur Metrics View kan se ut Figur 4: Knappen för att skapa en XML-l Nackdelar Den massiva mängden information i grundfönstret kan vara ganska förvirrande, man vet inte alltid vad man ska titta på först eller vad som är ett allvarligt fel och vad som bara är normalt. Pluginen är inte alltid så intuitiv heller, vissa saker är väldigt svåra att komma på hur man gör om man inte läst manualen noga först. 3.2 Clover Den version av Clover 4 jag provat är v Eftersom Clover så pass stor funktionalitet som den har väljer jag att bara berätta om vissa delar, för en fullständig beskrivning av all funktionalitet referear jag till pluginens egen hemsida, se fotnoten ovan
12 Figur 5: Knappen för att visa Dependency Graph Figur 6: Ett exempel på hur Dependency Graph View kan se ut Installation Metrics installeras genom att man går in på Help och väljer "Install new Software"i Eclipse. Välj att installera från clover. Följ instruktionerna på skärmen och starta om Eclipse Körning För att aktivera Clover gör du så här: Högerklicka på projektet och välj rightarrow Clover Enable / Disable on. Välj de projekt du vill aktivera Clover för. När du aktiverat Clover kommer det automatiskt upp 4 nya Flikar Figur7. Coverage Explorer visar hur bra dina tester täcker ditt projekt, här kan du även välja att ändra inställningarna för hur Clover ska hantera dina olika projekt Figur 8. Du kan även se en färgkodning i koden, denna visar hur pass täckt din kod är, siran ute till vänster visar hur många gånger just den kodraden körts. 12
13 Figur 7: De 4 ikarna som utgör den stora delen av Clover Test Run Explorer visar precis som JUnit vilka tester som gått igenom och inte, men tar även ett steg längre och låter en se hur stor del av koden som täcks av dessa tester Figur 9. Om man väljer ett test på vänster sida ändras vyn på höger sida så man kan se hur stor del av de olika klasserna just det testet täcker Inställningar I Clover nns det stora möjlighheter att anpassa vad man vill se i sin Coverage Explorer. För att anpass trycker du på knappen Choose Columns to Display Figur 10. Om inte den metod för komplixiteteberäkning man vill ha nns så nns det även möjlighet att göra egna formler. Tryck bara på ny i Column Chooser så hoppat ett fönster du kan skriva in din egen formel i upp Figur Fördelar Fördelarna med Clover är att det går att anpassa, är väldigt snyggt och lättanvänt och ger både JUnits funktioner och komplexitetsberäkningarna i samma fönster. Färgkodningen och numreringen av rader i det vanliga fönstret gör det väldigt lätt och överskådligt att se vad man lyckats testa och inte Nackdelar En nackdel med Clover är att om man vill ha mer än 30 dagar trial så måste man köpa en licens för verktyget. Det är svårt att hitta inställningsfönstret och när man väl kommer dit nns inte så mycket information. 4 Slutsats Det nns massor av olika sätt att mäta kodkomplexitet, vilket som är bäst beror mycket på av vilken anledning man vill mäta komplexiteten. Är det för underhåll kan Cyclomatic Complexity vara bra, så man kan se hur lättestad koden är, och hur mycket arbete som krävs för att få testningen heltäckande. Är det däremot före ett projekt kanske Funktionspoäng kan vara en bra metod att använda eftersom den är densamma oavsett språk och kodningsstil. Då kan man lättare planera tidsåtgång osv. Det kommer ständigt nya sätt att mäta på 13
14 Figur 8: Ett exempel på hur Coverage Explorer kan se ut så i framtiden nns det säkerligen ett som kan fungera bra både för underhåll, under utvecklingen och före utvecklingen. Programmen jag testade var bägge av bra kvalitet, Metrics verkade välanvänt när jag läste om det på nätet. Tyckte dock själv bättre om Clover eftersom det var mycket lättare att använda och gav mycket bättre feedback till användaren. Dock tycker jag inte det är värt priset 300$ för en licens, så mycket bättre än Merics är det inte. Metrics nackdelar var att det inte hade lika bra feedback till användaren och att det kräver en djupläsning av manualen för att använda. Metrics lär fortsätta bli bättre, det har kommit stora förbättringar för varje version innan och det lär fortsätta så. Om det hade funnits mer tid hade jag utökat antalet verktyg och tittat även utanför Eclipsepluginer, det nns säkerligen en värld av bra verktyg där ute det gäller bara att hitta dem. Jag hade också försökt fördjupa mig mer i vad som är riktigt nytt i det teoretiska området av kodkomplexiteten, nns det nyare algoritmer, är det något nytt på väg som kanske kan användas under hela processen? Finns det några enkla metodiker som inte inkluderar någon extra 14
15 programvara? Jag hade också gjort större undersökningar av de verktyg jag valde ut, kanske bett några andra personer testa dem för att se hur de upplevde dem, och testat dem på er kodbaser, nu blev det bara på en enda. Jämförelsen mellan agil och vanlig utveckling råkade också hmana mmellan stolarna, det hanns inte riktigt med. 15
16 Figur 9: Ett exempel på hurtest Run Explorer kan se ut 16
17 Figur 10: Knappen för att anpassa Coverage Explorer 17
18 Figur 11: Fönster för att skriva in egna formler och liknande för komplexitetsmätning 18
19 Referenser [1] function_with_loop_and_an_if_statement_without_loop_back.svg,. [2] function_with_loop_and_an_if_statement.svg. [3] Quick sort in java. /urlhttp:// [4] Quicksort (scala). (Scala),. [5] Stephen H. Kan. Metrics and Models in Software Quality Engineering. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1st edition, [6] David L. Lanning and Taghi M. Khoshgoftaar. Modeling the relationship between source code complexity and maintenance diculty. Computer, 27:3540, September [7] David Longstreet. Function Points Analysis Training Course. Longstreet Consulting Inc. [8] T.J. McCabe. A complexity measure. IEEE Transactions on Software Engineering, 2:308320, [9] Brian A. Nejmeh. Npath: a measure of execution path complexity and its applications. Commun. ACM, 31:188200, February [10] Fred Swartz. Java: Complexity measurement, leepoint.net/notes-java/principles_and_practices/complexity/ complexity_measurement.html. [11] Arthur H. Watson and Thomas J. McCabe. Structured testing: A testing methodology using the cyclomatic complexity metric. NIST Special Publication , National Institute of Standards and Technology, Computer Systems Laboratory, NIST, Gaithersburg, MD ,
Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse
Verktyg och Utvecklingsmiljö Föreläsning 2 Eclipse Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg. Editorer Kompilatorer Avlusare(debugger) Versionshantering(kommer i
Verktyg och Utvecklingsmiljö. Jochim von Hacht
Verktyg och Utvecklingsmiljö Jochim von Hacht Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg Editorer Kompilatorer Avlusare (debugger) Versionhantering (kommer i projektkurs)
Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem
Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från
Imperativ programmering. Föreläsning 2
Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.
Objektorienterad programmering Föreläsning 2
Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade
En sammanställning av komplexitetsmått.
En sammanställning av komplexitetsmått. D08 Lunds Tekniska Högskola Arvid Lindell dt08al6@student.lth.se 28 Februari 2012 Abstrakt Denna artikel diskuterar kodkomplexitetsmått i allmänhet. Några av de
Eclipse. Kort genomgång
Eclipse Kort genomgång Installation för den som vill ha Eclipse på sin egen maskin Du behöver först och främst ett Java Development Kit (JDK). Om du inte har något, installera JDK 7.0 från http://www.oracle.com/technetwork/java/javase/downloads/
Föreläsning 3. Programmering, C och programmeringsmiljö
Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator
Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.
Välkomna till DIT012 IPGO 1 Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare
F4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Klassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Föreläsning 13. Rekursion
Föreläsning 13 Rekursion Rekursion En rekursiv metod är en metod som anropar sig själv. Rekursion används som alternativ till iteration. Det finns programspråk som stödjer - enbart iteration (FORTRAN)
Tentamen i TDP004 Objektorienterad Programmering Praktisk del
Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2010-04-07 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär
String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning
Dagens Agenda String [] argv String [] argv Arrayer och Strängar fortsättning Booleska operatorer if, for, while satser Introduktion till algoritmer public static void main(string [] argv) argv är variabelnamnet
F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst
Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så
Tentamen i TDP004 Objektorienterad Programmering Praktisk del
Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-04-28 Tid: 08-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär
STOCKHOLMS UNIVERSITET. Handbok 2. Funktionaliteter moveon 4
STOCKHOLMS UNIVERSITET Handbok 2 Funktionaliteter moveon 4 Göteborgs Universitet 2013-11-04: Denna manual visar hur man söker i tabeller och sorterar i kolumner och andra bra tips för att förenkla användandet
Vane-Log. Loggningsprogram för Geotechs El-vinginstrument. Ingenjörsfirman Geotech AB Datavägen 53 436 32 ASKIM (Göteborg)
Vane-Log Loggningsprogram för Geotechs El-vinginstrument Ingenjörsfirman Geotech AB Datavägen 53 436 32 ASKIM (Göteborg) Tel: 031-28 99 20 Fax: 031-68 16 39 E-post: support@geotech.se Hemsida: http://www.geotech.se
Beräkningsverktyg HT07
Beräkningsverktyg HT07 Föreläsning 1, Kapitel 1 6 1.Introduktion till MATLAB 2.Tal och matematiska funktioner 3.Datatyper och variabler 4.Vektorer och matriser 5.Grafik och plottar 6.Programmering Introduktion
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Föreläsning 5 Innehåll
Föreläsning 5 Innehåll Algoritmer och effektivitet Att bedöma och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Datavetenskap (LTH) Föreläsning 5 VT 2019 1 / 39 Val av algoritm och datastruktur
Föreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.
Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod
Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada
Mer källkod Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne Erik Forslin efo@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 1 Styrstrukturer i Java En styrstruktur är något som påverkar
Nashuatec GelSprinter GX7000. Snabbguide
Nashuatec GelSprinter GX7000 Snabbguide Snabbguide till GX7000 Installation av GX7000 Mycket viktigt att skrivaren inte startas innan patronerna har installerats. 1. Ta bort skyddsplast och liknande från
Programmering. Den första datorn hette ENIAC.
Programmering Datorn är bara en burk. Den kan inget själv. Hur får man den att göra saker? Man programmerar den. Människor som funderar ut program som fungerar. Datorn förstår bara ettor och nollor och
5HVLVWHQVWDEHOO 'DWD3DUWQHU. Er partner inom data
5HVLVWHQVWDEHOO Tack för att du valde programmet 5HVLVWHQVWDEHOO! Vi hoppas att programmet ska vara till stor hjälp i ditt arbete. Har du synpunkter på programmet är du mycket välkommen att höra av dig
Tentamen i TDP004 Objektorienterad Programmering Praktisk del
Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-08-22 Tid: 14-18 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär
Föreläsning 9: NP-fullständighet
Föreläsning 9: NP-fullständighet Olika typer av problem: 1. Beslutsproblem: A(x) =Ja. 2. Optimeringsproblem: A(x) =m Vanligen max/min. 3. Konstruktionsproblem: A(x) =En struktur. Vanligen lösningen till
Extramaterial till Matematik Y
LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TVÅ Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta
6 cm. 106 Beräkna a) 3 ( 4) b) ( 2) 5 c) 4 ( 2,5) d) ( 8) 1,5. T.ex. print(3 * -4) 13 Beräkna cirkelns a) diameter b) omkrets
1 Print 1 Tal Multiplikation och division med negativa tal 106 Beräkna a) 3 ( 4) b) ( 2) 5 c) 4 ( 2,5) d) ( 8) 1,5 print(3 * -4) 2 Geometri Cirkelns omkrets 13 Beräkna cirkelns a) diameter b) omkrets 6
INSTÄLLNINGAR FÖR IRONCADS 2D-RITNING
INSTÄLLNINGAR FÖR IRONCADS 2D-RITNING Innehållsförteckning Justera storlek och antalet decimaler för måttsättning...2 Ändra färg på ritningselement...4 Justera färg för ett enskilt element genom att byta
OOP Objekt-orienterad programmering
OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Input/Output Programsatser Selektion Output OOP F2:2 Görs via System.out, anropa antingen print eller println: System.out.print("Hej"); System.out.println(
Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2
Paneler - VCPXX.2 Programmeringsmanual för VCP-paneler Revision 2 Innehållsförteckning Innehållsförteckning... 2 1 Symbolfiler för kommunikation via IndraLogic... 3 2 Uppsättning i IndraWorks... 6 3 Programmering
Komma igång med Qlikview
Denna instruktion är till dig som är ny i Qlikview och snabbt vill komma igång med grundläggande funktioner. Innehåll 1 Introduktion... 2 1.1 Behörighet... 2 1.2 Webbläsare... 2 2 Installation av Qlikview
LW313 Sweex Wireless 300N Adapter USB
LW313 Sweex Wireless 300N Adapter USB OBS! Utsätt inte Sweex Wireless 300N Adapter USB för extrema temperaturer. Placera inte enheten i direkt solljus eller i närheten av värmeelement. Använd inte Sweex
Förberedelseuppgift inför datorlaborationen
Förberedelseuppgift inför datorlaborationen Det finns datorprogram som följer strålar genom linssystem. Rätt använda kan de vara extremt kraftfulla verktyg och bespara dig många timmars beräkningar. Datorlaborationen
KOM IGÅNG MED DIVER-OFFICE
KOM IGÅNG MED DIVER-OFFICE Innehåll KOM IGÅNG MED DIVER-OFFICE... 1 1. Ladda ner programmet och skapa ett nytt projekt... 2 2. Programmera och starta Diver... 2 3. Ladda hem data från Diver... 3 4. Barometerkompensation
TILLÄMPNINGAR INOM DATORTEKNIK
TILLÄMPNINGAR INOM DATORTEKNIK I detta kapitel skall vi titta lite närmare på några specifika tillämpningar inom datorteknik som har anknytning till El och Energiprogrammet. Om du som läser denna kurs
Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING
Föreläsning 11 12 ALGORITMER: SÖKNING, REGISTRERING, SORTERING Seminarier: Fredagsklubben för dig som tycker att programmering är svårt (0 eller möjligen 1 poäng på delmålskontrollen) inte avsedda för
Datorteknik 2 (AVR 2)
Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra
Intro till SPSS Kimmo Sorjonen (0811)
1 Intro till SPSS Kimmo Sorjonen (0811) 1. Att mata in data i SPSS 1. Klicka på ikonen för SPSS. 2. Välj alternativet Type in data och klicka på OK. 3. Databladet har två flikar: Data view och Variable
C++ Slumptalsfunktioner + switch-satsen
C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.
Extramaterial till Matematik Y
LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ ETT Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få
Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...
Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... 4 Bussen (projektförslag)... 5 Bakgrund... 5 Klassen Buss
JavaScript del 3 If, Operatorer och Confirm
JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att
Laboration 1. "kompilera"-ikonen "exekvera"-ikonen
Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva
Versionshantering. Jan Erik Moström
Versionshantering Jan Erik Moström Johan Eliasson Versionssystem Gjorda för att användas av en eller flera personer på en eller flera platser, exempelvis: För en ensam användare som jobbar med ett projekt
Rev 2. Manual för handterminal
Rev 2. Manual för handterminal Förord Tack för visat förtroende för våran produkt. Handterminalen ansluts till ledig USB port. Anslut aldrig via hub eller annan delad anslutning pga terminalen behöver
USB styrt DMX gränssnitt
USB styrt DMX gränssnitt Inledning...2 DMX bibliotek...3 Programmering av kanalerna...7 Skapa en show...11 Inledning DMX LightPlayer är mycket enkel att använda. Inför en existerande fixtur eller skapa
Manuell installation av SQL Server 2008 R2 Express för SSF Timing
Manuell installation av SQL Server 2008 R2 Express för SSF Timing Innehåll 1. Metoder att installera...1 2. Förutsättningar...2 DotNet Framework 3.5...2 MSI Installer 4.5...2 3. Hämta SQL Server 2008 R2
TSFS06: Bayesianska nätverk i GeNIe - kort handledning
TSFS06: Bayesianska nätverk i GeNIe - kort handledning GeNIe är en grafisk utvecklingsmiljö för inferensberäkningar med bland annat Bayesianska nätverk. Verktyget är utvecklat vid Decision Systems Laboratory,
Administratörsrättigheter i Windows krävs för att genomföra installationen.
CADCAM-it Toolbox 2011 Installationsanvisning - Installation - Licensregistrerting - Avinstallation 1. Installation Administratörsrättigheter i Windows krävs för att genomföra installationen. Avinstallera
Guide Autodesk Account
Denmark Germany Norway Sweden Guide Autodesk Account Administering av licenskonton Telefon: 010 211 69 00 Mail: info@nticad.se Website: www.nti.dk/sv Innehåll KOM IGÅNG FRÅN START TILL MÅL... 3 INNAN DU
Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015
Objektorienterad Programkonstruktion Föreläsning 6 23 nov 2015 Designmönster Färdiga "recept" för att lösa (del-)problem i struktureringen av ens program Mönster kan beskriva små komponenter eller stora
Avancerade Webbteknologier
Projektledning, Business Knowledge Användbarhet & Layout Avancerade Webbteknologier Lkti Lektion 1 Kommunikation Tobias Landén tobias.landen@chas.se Avancerade webbteknologier del 1 (4 KY poäng) Syfte
LabelLogic. Bruksanvisning. www.planglow.com info@planglow.com. Innehåll. Label Choices. Data Library. Print Centre. Design Centre
www.planglow.com info@planglow.com Innehåll Label Choices Så här lägger du till en etikett Data Library Så här lägger du till smörgåsinformation Print Centre Så här skriver du ut etiketter Design Centre
Vilken version av Dreamweaver använder du?
Sida 1 av 7 Lektion 1: sida 1 av 4 Till kursens framsida Sida 2 av 4» Lektion 1 Då ska vi sätta igång med den här kursens första lektion! Här kommer du att få lära dig hur man skapar och förbereder webbplatser
Behovsberäkning i Christine-GIS
Behovsberäkning i Christine-GIS I det här exemplet är avsikten att visa hur man kan beräkna behovet av fosfor enligt jordanalysdata från en markkartering. Vi använder här ett enkelt kartprogram, Christine-GIS
Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)
UMEÅ UNIVERSITET Institutionen för datavetenskap Thomas Johansson Oktober 1998 Programutveckling med Java Development Kit (JDK 1.1.x) och Programmers File Editor (PFE 7.02) Umeå universitet 901 87 Umeå.
Verktyget FindBugs. Djupstudie i kursen EDA 270 Coachning av programvaruteam. Christofer Bach dt05cb6 Daniel Nilsson dt05dn4. Lunds Tekniska Högskola
Verktyget FindBugs Djupstudie i kursen EDA 270 Coachning av programvaruteam Christofer Bach dt05cb6 Daniel Nilsson dt05dn4 Lunds Tekniska Högskola 15 feb 08 1. Sammanfattning Denna djupstudie kommer att
Koda ett mattetest 4 av 5. Lektionen handlar om att utveckla mattetest så det fungerar för alla multiplikationstabeller. Koda ett mattetest 4 av 5
Lektionen handlar om att utveckla mattetest så det fungerar för alla multiplikationstabeller. Lektionsförfattare: Christer Sjöberg Till läraren 1. Skapa en fråga som datorn kan svaret till 2. Gör programmet
if (n==null) { return null; } else { return new Node(n.data, copy(n.next));
Inledning I bilagor finns ett antal mer eller mindre ofullständiga klasser. Klassen List innehåller några grundläggande komponenter för att skapa och hantera enkellänkade listor av heltal. Listorna hålls
Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer
Föreläsning 4 Metodanrop switch-slingor Rekursiva metoder Repetition av de första föreläsningarna Inför seminariet Nästa föreläsning Metodanrop - primitiva typer Vid metodanrop kopieras värdet av en variabel
Programmering i C, 7,5 hp
Programmering i C, 7,5 hp Föreläsning 4 VÄLKOMNA! 31 switch-satsen Antag att vi har en heltalsvariabel a som skall styra programflödet Antag vidare att a kan anta tex 5 olika värden 1,2,3,4,5 printf( Mata
JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?
Innehåll JavaScript En introduktion till skriptspråket JavaScript och till DOM Scripting Introduktion till JavaScript och DOM JavaScript Syntax DOM och DOM Scripting Händelsehantering och CSS Historia
IT-system. BUP Användarmanual
IT-system Användarmanual Innehållsförteckning 1. Att komma igång med... 1 1.1 Installera... 1 1.1.1 Byt databas... 1 1.1.2 Behörighet att byta databas... 2 1.2 Logga in... 3 1.2 Inloggad... 3 1.3 Logga
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund
Sida: 1(7) Installationsanvisningar VisiWeb Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund Detta dokument Detta dokument beskriver hur man installerar VisiWeb på en
Planering Programmering grundkurs HI1024 HT TIDAA
Planering Programmering grundkurs HI1024 HT 2016 - TIDAA Föreläsning V35 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning
Trädstrukturer och grafer
Översikt Trädstrukturer och grafer Trädstrukturer Grundbegrepp Binära träd Sökning i träd Grafer Sökning i grafer Programmering tillämpningar och datastrukturer Varför olika datastrukturer? Olika datastrukturer
NetBeans 7. Avsikt. Projektfönster
NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till
MMA132: Laboration 2 Matriser i MATLAB
MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen
Antares Användning och installation
Antares Användning och installation Sidan 1 av 13 Innehåll 1. Introduktion...... 2. Antares programvara installation...... 3. Antares programvara uppdatering...... 4. Data Linker anslutning... 5. Funktioner...
Koda ett mattetest (lektion 4 av 5)
Gör ett mattetest som fungerar för alla multiplikationstabeller. Christer Sjöberg är ämneslärare i matematik. Till läraren 1. Skapa en fråga som datorn kan svaret till 2. Gör programmet mer interaktivt
Laboration 10 - Eclipse
Laboration 10 - Eclipse Avsikten med laborationen är att du ska träna på att använda paket, att du ska packa några klassfiler i en jar-fil och slutligen använda innehållet i en jar-fil från en annan klass
1
www.itpedagogeek.se 1 Innehåll INNAN DU KÖR IGÅNG... 3 DET HÄR ÄR KLASSANTECKNINGSBOKEN... 3 ATT SPARA I ONENOTE... 3 MENYERNA... 3 ANTECKNINGSBOK FÖR KLASSEN... 4 STRUKTUR... 4 BYGG UPP DIN KLASSANTECKNINGSBOK...
Problemlösning och algoritmer
Problemlösning och algoritmer Human Centered Systems Inst. för datavetenskap Linköpings universitet Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS regeln Procedurell dekomposition
Programmering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
LIMITED DESKTOP. Version Januari 2008
LIMITED DESKTOP Version 1.01 Januari 2008 Innehållsförteckning Rekommenderad utrustning... 5 Installation... 5.NET Framework 1.1... 5 Limited Desktop... 5 Programinformation... 5 Programmet Limited Desktop...
Manual - 3D-skrivare ZYYX
Medicinska biblioteket Manual 3D-skrivare 2018-05-17 Sid 1 (7) Manual - 3D-skrivare ZYYX Kom igång med 3D-utskrifter Innehåll 1. Ladda ner 3D-modell från thingiverse.com... 2 2. Analysera/laga en 3D-modell
Välkomna till DIT012 IPGO
Välkomna till DIT012 IPGO 1 Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare Joachim von Hacht, hajo@chalmers.se, 772 1003 Handledare (se även kurssida) Alexander Sjösten, sjosten@chalmers.se
FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst 2004-10-29
FactoryCast HMI Premium & Quantum PLC MySQL Server och FactoryCast HMI databastjänst 2004-10-29 INNEHÅLLSFÖRTECKNING 1 DATABASTJÄNSTEN...3 1.1 KONFIGURERING AV DATABASTJÄNST...3 2 KONFIGURERING MYSQL...6
En kort text om programmering i C.
En kort text om programmering i C C skapades 1972 av Brian Ritchie och Dennis Kerighan på Bell Labs i USA Det blev det språk som är mest använt genom tiderna Det finns många olika språk Pascal, FORTH,
Föreläsning 3. Iteration while-satsen
Föreläsning 3 Iteration while-satsen Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har
Swema 05. Bruksanvisning vers 1.01 MB20130530
Swema 05 Bruksanvisning vers 1.01 MB20130530 SWEMA AB Pepparv. 27 SE-123 56 FARSTA Tel: +46 8 94 00 90 Fax: +46 8 93 44 93 E-mail: swema@swema.se Hemsida: www.swema.se Innehållsförteckning: 1. Introduktion...
PNSPO! Använda NJ med NS System Memory. 14 mars 2012 OMRON Corporation
Använda NJ med NS 14 mars 2012 OMRON Corporation 2/15 Läs detta innan du bläddrar vidare Denna bok är avsedd som ett tillägg till de ursprungliga manualerna för OMRONs produkter. Använd den som en hjälp
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val
732G11 Linköpings universitet 2011-01-26 1 2 3 4 Program recept 1 spaghetti = 100; 2 salt = 1; 3 olja = 5; 4 köttbullar = 8; 5 ketchup = 0,5; 6 koka(salt, spaghetti); 7 micra(köttbullar); 8 Om(micron ==
Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!
Tentamen Programmeringsteknik II 2014-01-09 Skrivtid: 0800-1300 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja
Logik och kontrollstrukturer
Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch
1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05
1(15) Bilaga 1 2(15) Neuronnätslaboration Räknare Denna laboration riktar sig till gymnasieelever som går en teknisk utbildning och som helst har läst digitalteknik samt någon form av styrteknik eller
Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14
Labb LABB 1 Databassagan och en rundtur i databasers märkliga värld Plushögskolan Frågeutveckling inom MSSQL - SU14 I Microsoft SQL-Server Management Studio kan man arbeta på olika sätt. Antingen via användargränssnittet
Iteration while-satsen
Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,
TDDI16 Datastrukturer och algoritmer. Algoritmanalys
TDDI16 Datastrukturer och algoritmer Algoritmanalys 2017-08-28 2 Översikt Skäl för att analysera algoritmer Olika fall att tänka på Medelfall Bästa Värsta Metoder för analys 2017-08-28 3 Skäl till att
Laboration 1. "kompilera"-ikonen "exekvera"-ikonen
Syfte Laboration 1. Objektorienterad programmering, Z1 Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i
Telia Connect för Windows
Telia Connect för Windows Version 3.0 Användarguide Updaterad: 3 juli 2007 Innehåll Ansluta till Internet...3 Information som presenteras av Telia Connect...4 Konfiguration av Telia Connect...7 Fliken
MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP
MÄLARDALENS HÖGSKOLA CD5560 Formella språk, automater och beräkningsteori Användarmanual för simulatorn JFLAP Innehållsförteckning Att komma igång med JFLAP... 3 Att köra en sträng... 5 Att köra flera
INSTALLATION AV VITEC MÄKLARSYSTEM
INSTALLATION AV VITEC MÄKLARSYSTEM Studentversion september 2013 Innehållsförteckning 1. Installera VITEC Mäklarsystem... 2 2. Läs noga igenom manualen... 2 3. Systemkrav... 2 4. Kundservice/Teknisk support...