$ %' ) * %' +,! - Myarray %' /0 /0 122 +3 /0 /0



Relaterede dokumenter
! #!! $ % $! & " &'"! & *+ "! " $ $ ""!,-! $!.! $! " # 1!! &' "

! " # $% &'!& & ' '" & # ' "&()(*& + + +,-' "&( # &(! (! " )(!# &!! (!&!! * (! +& (!!! & " " & & / & & (!

' #$*# ' # #) * #& #& ' # #* #, #$--

+ "&"' +,! ")& - )'.** /, )'.** 1 2 "&"' +,! 3 *4 5

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

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

Erhvervsøkonomisk Institut. Vejleder: Henrik Nørholm BILAG. Analyse og prissætning af JB Ti Aktier I skyggen af en finanskrise

Hent filoplysninger fra billeder og filer

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune

Spil Master Mind. Indledning.

SAX Simple API for XML.

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

MS Visual Studio Basic En kort vejledning

Visual Basic for begyndere

Indhold. Maskinstruktur Kapitel 1. Assemblersprog Indledning Hop-instruktioner Input og output...

Udvikling af DOTNET applikationer til MicroStation i C#

Programmering for begyndere Lektion 2. Opsamling mm

Ekstra hastighed med array's i Excel-VBA

Opret en Powerpoint præsentation automatisk med VBA

DRONNINGER (QUEENS) Opgave 1

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

SelskabMasterKom. Per Kjærulf-Møller ApS 13. november KomTabel-layout. Art: 41 Sendes: Begge veje

Python 3 kursus lektion 1:

Noter til C# Programmering Iteration

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

Programmering og Problemløsning, 2017

SAX Simple API for XML.

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017

Send fra Access.

DDD Runde 2, 2015 Facitliste

Notesæt til Optimering i Microsoft Excel

Forelæsning Uge 2 Mandag

Hashing og hashtabeller

HTML, PHP, SQL, webserver, hvad er hvad??

Projekt - Visual Basic for Applications N på stribe

Programmering I Java/C#

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

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

Kapitel 4 Løkker i C#

Danmarks Tekniske Universitet

Life. Kurt Nørmark Aalborg Universitet. 10. september Resumé

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

#AlleKanKode. Lektion 2 - Konstanter og Variabler

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Blockprog Rev1.0. Block programmering CS1/CJ1. Qiuck guide OMRON

Rekursion C#-version

// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Programmeringscamp. Implementer funktionerne én for én og test hele tiden.

User Guide AK-SM 720 Boolean logic

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Appendiks A Modeller til Strategisk Analyse

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

// Definition af porte og funktioner

Lær Python dag 1 - modul 1

Transkript:

!"#!"# "# %&') * #" % && %' Dim MyArray2) As Integer ) * %' +,! - Myarray MyArray0). %' /0 /0 122 + /0 /0 +4

/ 0) Dim MyArray1 to 2) As Integer 5MyarrayMyArray1)" +6 Option Base 1 Option Explicit %' 76 Dim MyArray2) * 8 Sub Array1) Dim i As Integer Dim StrArray) As String Dim Saetning As String End Sub StrArray0) = "Leif " StrArray1) = "den " StrArray2) = "lalle" StrArray) = "glade" For i = 0 To Saetning = Saetning & StrArrayi) Debug.Print Saetning i StrArray) 9 +- Saetning = Saetning + StrArrayi) 5 StrArray) * -

:StrArray) = glade ) : % *#"%# "#% %' Dim dynarray) As Integer ; antal = InputBox Hvor mange elementer har du brug for? ) Redim dynarrayantal) 7+ 7+ 7+++ 7+++ : 5 7<=>?#A6 # >** =>*< :

antal = antal + 1 Redim Preserve dynarrayantal) +!&# #* #& A 6 Dim MyArray2, 10) As String 5 *B>7+). " Public Sub Array4) Dim i As Integer, j As Integer Dim Matrix) As Integer i = 0 j = 0 End Sub ReDim Matrix1, 1) Matrixi, j) = 1 Debug.Print "i er: "; i; " j er: "; j; " Vaerdi i matrix er: "; Matrixi, j) 'Gaar det her? dvs. er Option Base sat til 1? Matrix0, 1) = 1 Debug.Print Matrix0, 1) Matrix1, 1) = 1 Debug.Print Matrix1, 1) ReDim Matrix2, 2) Matrix2, 2) = 1 Debug.Print Matrix2, 2) " ; 6 >C* Public Sub array6) Dim inti As Integer Dim arr, 4, 5, 6, 7, 8, 9, 5,, 2) As Integer

arr1, 1, 1, 1, 1, 1, 1, 1, 1, 1) = 1!, -B9B<BDBEBFBGB<B- B*H<99-*++ H* 7+FFD9++, 5 6 6 "*,&,- I.#,# "# %'?# 7+++ 5 5 J "! ' I!&& 5: 6 "

Option Explicit Option Base 1 Sub FindPris) Dim ProdKode) As String, EnhPris) As Currency, i As Integer, Found As Boolean, _ Kode As String, KodePris As Currency, NProdukter As Integer ' Find antallet af produkter og redim de enkelte arrays. ' fyld dem herefter med data With Range"A") NProdukter = Range.Offset1, 0),.EndxlDown)).Rows.Count ReDim ProdKodeNProdukter) ReDim EnhPrisNProdukter) For i = 1 To NProdukter ProdKodei) =.Offseti, 0) EnhPrisi) =.Offseti, 1) End With ' Faa nu koden. Kode = InputBox"Indtast en produktkode Stort bogstav efterfulgt af fire cifre. ") ' Find koden, og registrer prisen Found = False For i = 1 To NProdukter If ProdKodei) = Kode Then Found = True KodePris = EnhPrisi) Exit For End If ' Vis nu nogle meddelelser. If Found Then MsgBox "Enhedsprisen for produktet " & Kode & " er " & _ FormatKodePris, "0.00"), vbinformation, "Produktet er fundet" Else MsgBox "Produktkoden " & Kode & " findes ikke i listen.", vbinformation, _ "Produktet er ikke fundet" End If End Sub %"/&%,!" K %' > =! && ProduktKodeArr ProduktKodeArr "

ProduktKodeFundet ProduktKodeFundet 5 7 5 ProduktKodeFundet J I ". Option Explicit Option Base 1 Sub ProdSalg) Dim ASalg As Integer, ProduktKodeArr) As Integer, ProduktKodeFundet) As Integer, _ Antal) As Integer, KroneData) As Single, KronerTotalt) As Single, _ i As Integer, j As Integer, NytProdukt As Boolean, AFundet As Integer ' Fjern gamle resultater fra kolonnerne E to G. With Range"E2") Range.Offset1, 0),.Offset0, 2).EndxlDown)).ClearContents End With ' Find antallet af transaktioner i data sættet, redimensioner ProduktKodeArr og ' KroneData array'ene, og indskriv dataene fra kolonnerne A and C. With Range"A2") ASalg = Range.Offset1, 0),.EndxlDown)).Rows.Count ReDim ProduktKodeArrASalg) ReDim KroneDataASalg) For i = 1 To ASalg ProduktKodeArri) =.Offseti, 0) KroneDatai) =.Offseti, 2) End With ' Initialisering. AFundet = 0 ' Loop igennem alle transaktioner. For i = 1 To ASalg ' Sæt den Boolske NytProdukt to True, og ændre den til False hvis ' nuværende produkt kode allerede findes. NytProdukt = True If AFundet > 0 Then ' Loop igennem alle "kendte" produkt koder og sammenlign med den nuværende For j = 1 To AFundet If ProduktKodeArri) = ProduktKodeFundetj) Then ' Den nuværende er ikke ny så opdater Antal og ' KronerTotalt værdierne. NytProdukt = False Antalj) = Antalj) + 1 KronerTotaltj) = KronerTotaltj) + KroneDatai) Exit For End If End If If NytProdukt Then

' Den nuværende er ny så opdater listen af koder som kendes indtil videre ' og initialiser Antal and KronerTotalt værdierne dette nye produkt. AFundet = AFundet + 1 ReDim Preserve ProduktKodeFundetAFundet) ReDim Preserve AntalAFundet) ReDim Preserve KronerTotaltAFundet) ProduktKodeFundetAFundet) = ProduktKodeArri) AntalAFundet) = 1 KronerTotaltAFundet) = KroneDatai) End If ' Placer resultatet i kolonnerne E til G. For j = 1 To AFundet With Range"E2").Offsetj, 0) = ProduktKodeFundetj).Offsetj, 1) = Antalj).Offsetj, 2) = KronerTotaltj) End With ' Sorter kolonnerne efter kolonne G in faldende orden, og vis en besked omkring antallet af produkter ' som er fundet. Range"E").Sort Key1:=Range"G"), Order1:=xlDescending, Header:=xlYes MsgBox "Der er p.t. " & AFundet & " forskellige produkter som har været solgt." End Sub 4 8 JProduktKodeArrKroneData A ProduktKodeFundet Antal KronerTotalt IAFundetAProduktKodeFundet Antal KronerTotalt " : J&& A AFundet 8 >7 ) 0&%1!##" L?L?" A?? #

&& >7 #7< : 8! I 7<6 7+7* 7*7+ Option Explicit Option Base 1 ' Denne sub indskriver tilfældige heltal fra 1 til 100 over ' diagonalen og derefter under diagonale for at opnå symmetri. Sub LavAfstande) Dim i As Integer, j As Integer, NCities As Integer ' Følgende udtryk sikrer at vi får forskellige tal ' hver gang rutinen kaldes. Randomize With Range"afstMatrix") NCities =.Rows.Count For i = 1 To NCities - 1 ' Rnd er en indbygget VBA funktion, som generere tilfældige tal imellem ' 0 og 1. Int er en anden VBA funktion som "sakser" decimal delen og ' returnerer heltalsdelen. For j = i + 1 To NCities.Cellsi, j) = IntRnd * 100) + 1

For i = 2 To NCities For j = 1 To i - 1.Cellsi, j) =.Cellsj, i) End With End Sub ' %'J + 7 77< 7<&&%&' +79,: 7 ) # '7-?*E I I = = ' Denne sub udfører nearest neighbor heuristikken. Sub NearestNeighbor) ' Definition af variable: ' NCities - Antallet af byer i problemet ' Visited - Et Boolsk array: True hvis en by har været besøgt, False ellers ' Step - En tæller for antallet af byer besøgt indtil videre ' Route - Et array hvor element i er den i'te by besøgt ' Note: Route1) og RouteNCities+1) er selvfølgelig begge 1. ' NowAt - nuværende by ' At - by som skal besøges næste gang ' TotDist - totale afstand rejst ' ' MinDist - minimum afstand til den nærmeste ikke besøgt) nabo i - loop variabel Dim NCities As Integer, Visited) As Boolean, Step As Integer, _ Route) As Integer, NowAt As Integer, At As Integer, _ TotDist As Integer, MinDist As Integer, i As Integer ' Find størrelsen af problemet antallet af noder) og redimensioner Visited ' og Route arrayene. NCities = Range"afstMatrix").Rows.Count ReDim VisitedNCities) ReDim RouteNCities + 1) ' Initialiser variablene. Route1) = 1 RouteNCities + 1) = 1 Visited1) = True For i = 2 To NCities Visitedi) = False

NowAt = 1 TotDist = 0 ' For hvert step undersøg hvilken by der skal besøges i hvilken orden For Step = 2 To NCities ' Find hvilken by, der skal besøges næste gang ved at finde 'minimum' afstandene ' fra den nuværende by til alle andre byer. Den næste by er kun kandidat ' hvis den ikke er den nuværende by og hvis den ikke er besøgt i forvejen. ' Start med at sætte den temporære minimum MinDist) til en HØJ værdi. MinDist = 10000 For i = 2 To NCities If i <> NowAt And Visitedi) = False Then If Range"afstMatrix").CellsNowAt, i) < MinDist Then ' "Fang" den bedste kandidat indtil videre og dens afstand fra den nuværende by. At = i MinDist = Range"DistMatrix").CellsNowAt, At) End If End If i ' Gem byen og gå videre til den næste i Route, opdater Visited, opdater den totale ' afstand. RouteStep) = At VisitedAt) = True TotDist = TotDist + MinDist ' Forbered næste gennemløb. NowAt = At Step ' Opdater den totale afstand så returnering til by 1 indgår TotDist = TotDist + Range"afstMatrix").CellsNowAt, 1) ' Skriv ruten til regnearket, begyndende i celle B0. For Step = 1 To NCities + 1 Range"B0").OffsetStep, 0) = RouteStep) Step ' Vi den totale afstand i en beskedboks. MsgBox "Den totale afstand er " & TotDist, vbinformation, "Totale rejselængde" End Sub I 7 Visited Route5Visited6) = True D Route J5 Route7) = 4 E9 5! && > At " NowAt At

" NowAt7 " '-+?, 2,%/ 7 77++ > 77++ 27 7GG " 7&& :M * # 7 : A*9A #N8 O 7E>5, A : - # 1 6 6 " 5 %' 61"6 P# 9? # ) #)%'>=B>) #:)272

)) #)? ) # ) % % >7 % >* " A % " ' < K48# *+++*++7 *+++ *++7 *+++ *++7" " D K# -<++6 " " E 5 O8 && "&& ; )17# 7D? 1 > ) ) &A:: & 7D' : ::K*

&& && 1 61 F &A66 & 1 1J = & 66 & )1*# 4 1 : & 66 & A1? A1! 1> 1 " 1 : G >I <+&>5 <&F&7*&7<&*+&*<&? Q A<&AF& 7*&9G& && 8 I&& )#>