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

Relaterede dokumenter
Kontrol-strukturer i PHP

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

At klippe en streng over på det mest hensigtsmæssige sted

Ekstra hastighed med array's i Excel-VBA

Afsending af s vha. ASP

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script.

Arrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP

Ratingsystem i PHP og MySQL

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

SESSION med PHP. En let begynderguide som kan føre dig ind i en verden af muligheder. Denne guide er oprindeligt udgivet på Eksperten.

Undtagelseshåndtering i C#

Bits, bit operationer, integers og floating point

Koden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)

Start på javascript. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 03. Feb 2009 af webstuff I kategorien Programmering / JavaScript

Introduktion til funktioner, moduler og scopes i Python

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.

Database design for begyndere

Hvad er Objekter - Programmering

Lektion 1 Grundliggende regning

Kapitel 3 Betinget logik i C#

PHP Pagination. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 01. May 2011 af dab93 I kategorien Programmering / Andre

Singleton pattern i Java

Regulære udtryk, 2. del

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Klasse 1.4 Michael Jokil

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Singleton pattern i C#

Tagwall med Php & MySQL

Sådan skriver du artikler til Eksperten!

Dokumentation af programmering i Python 2.75

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Visual Basic for begyndere

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

Dynamisk PHP design OPDATERET

I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.

Endnu mere om tilfældige tal

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Simpel upload af filer

Programmering for begyndere Lektion 2. Opsamling mm

Anvendelse af metoder - Programmering

Offset til terminalskærm i Java

Send fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.

Uploade billeder eller andre filer ved hjælp af php og mysql

Python 3 kursus lektion 1:

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Fang Prikkerne. Introduktion. Scratch

HVAD SKAL JEG VÆLGE?

Delphi - CrackMe og Keygen

Mozilla Firefox (tidligere Firebird): Fremhæve ord

Upload af billeder/filer for nybegyndere Del. 2

Bekrig Klonerne. Introduktion. Scratch. I dette projekt skal du lære, hvordan du laver et spil, hvor du skal redde Jorden fra monstre i rummet.

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

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

Java Klasse nedarvninger

Introduktion til SQL queries

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Loginsystem (med MySQL)

IT projekt person galleri

Hej alle sammen, nu fjerner vi lige mystikken om alle de "ulovlige tags" her på eksperten.dk

Introduction til.net remoting i VB.NET

Delphi og Databaser for begyndere

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

MS Visual Studio Basic En kort vejledning

Grundliggende regning og talforståelse

Allerede ved modtagelse af mailen med aktiveringslinket, har du adgang.

Visualiseringsprogram

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

Sproget Rascal (v. 2)

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4

Flerbruger miljø, opdel database

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

NIMAND A/S SINCE 1987

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

ChatBot. Introduktion. Scratch. Nu skal du lære hvordan du programmerer din egen talende robot! Arbejdsliste. Test dit Projekt.

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Grundlæggende færdigheder

Undersøgelse af sammenhængen mellem sidelængden og arealet i regulære polygoner Elevark

Opret en side/artikel og rediger din side

Potens & Kvadratrod. Navn: Klasse: Matematik Opgave Kompendium. Opgaver: 22 Ekstra: 4 Point: Matematik / Potens & Kvadratrod

Arkitektur for begyndere

Tyngdekraft i Scratch

Undervisningsbeskrivelse

NetLogo-simuleringen. Simuleringer og fysiske modeller (henfaldsloven)

DANSK SKOLEDATA APS. Tlf DSA-Ventelisten

Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge:

Generelle kommentarer omkring løsning af fysikopgaver

Forskellige Java versioner

Parameterisering af databasekald med ASP og ADO

I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide

Sortering. Eksempel: De n tal i sorteret orden

Gæstebog med validering opbygget med MySQL

De 4 regnearter. (aritmetik) Navn: Klasse: Matematik Opgave Kompendium. Opgaver: 42 Ekstra: 5 Point:

Transkript:

Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien Programmering / Visual Basic.NET Før vi går i gang For at forstå artiklen ordentlig, er det vigtigt, at du ved lidt om, hvad et array er og kan, og at du ved, hvad et if/then og select case statement er, da jeg ikke vil gå så meget i dybden med det. Første skridt Lad os starte med at lave en funktion. Skriv følgende: '"Tal" er det tal som skal afrundes Funktionen er lavet og første skridt er taget. Nu mangler vi kun at smide noget indhold i den. Lad os springe videre til det sjove Jeg fylder lige lidt indhold i den og kommenterer bagefter. Først har jeg erklæret er variabel, som skal indeholde det endelige resultat. Derefter har jeg lavet et array, som deler tallet ved kommaet. "arr(0)" kommer til at indeholde det tal, som står til venstre for kommaet, altså det hele tal, og "arr(1)" kommer til at indeholde tallet til højre for kommaet, altså decimal-tallet. Nu skal vi have fundet ud af, hvor mange decimaler der er bag kommaet. Til det bruger vi et 'select case' statement.

'arr(0) er det hele tal Select Case arr(1).length Case 1 Case 2 Case 3 Case 4 Case 5 Case End Case Som sagt skal vi have fundet ud af, hvor mange decimaler der er bag kommaet. Det gør vi ved at finde længden af "arr(1)", som jo indeholder decimalerne bag kommaet. Under "Case 1" skal der stå det, der skal ske, hvis der er ét decimal. Under "Case 2" skal der stå det, der skal ske, hvis der er to decimaler bag kommaet. Osv. Osv. Nu skal vi finde ud af hvor stort tallet er. Lad os sige, at der er ét decimal bag kommaet. Så skal vi funde ud af, om tallet er større eller lig med fem. Er tallet under fem skal tallet rundes ned, eller hvis tallet er større eller lig med fem, skal det selvfølgelig rundes op. Men hvad nu hvis der er to decimaler bag kommaet? Så er det jo pludselig ikke fem vi skal sammenligne det med. Nej, så er det 50, og hvis der er tre decimaler, så skal vi sammenligne med 500. Det skal hele tiden stige med ti gange så meget for hver decimal der er. (Hvis du kan finde ud af matematik, så er det faktisk logisk nok :o)) Men nok om det, lad os komme videre med koden. 'arr(0) er det hele tal Select Case arr(1).length Case 1 If arr(1) >= 5 Then + 1 Case 2 If arr(1) >= 50 Then

+ 1 Case 3 If arr(1) >= 500 Then + 1 Case 4 If arr(1) >= 5000 Then + 1 Case 5 If arr(1) >= 50000 Then + 1 'osv. osv. osv. osv... Case MessageBox.Show("Der er for mange decimaler") End Case Afrund = Facit Som du kan se, så har jeg lavet et if/then statement. Det tjekker hvor stort decimal-tallet er i forhold til hvor mange decimaler der er. Hvis tallet er større eller lig med det angivne, så skal det hele tal (arr(0)) rundes op og Facit (variablen vi lavede øverst) bliver det hele tal + 1. Hvis decimal-tallet er under det angivne, så skal det hele tal bare rundes ned, og Facit bliver det hele tal. Hvis antallet af decimaler er andet end 1-5, så håndterer "Case " det. Jeg har blot lavet en beskedbox med teksten "Der er for mange decimaler". Vi slutter af med at tildele funktionen samme værdi som Facit. Ja, så er funktionen faktisk færdig. Du kan altid selv udvide funktionen, hvis du vil have, at den skal kunne håndtere mere end fem decimaler. Du kan afprøve funktionen ved f.eks. at skrive følgende i Button1_Click: Label1.Text = Afrund("5,365") eller Label1.Text = Afrund(TextBox1.Text) Nedenfor er hele koden, hvori hver enkel linje er kommenteret.

'Her starter funktionen 'Vi laver lige en variabel som skal indeholde facit 'Vi erklærer et array som splitter 'komma-tallet i to 'arr(0) er det hele tal Select Case arr(1).length 'Vi skal tjekke hvor mange decimaler der er bag kommaet Case 1 'Hvis der er ét decimal bag kommaet... If arr(1) >= 5 Then 'Hvis decimal-tallet er større eller lig med fem... + 1 '...så skal tallet rundes op og facit bliver 'Eller hvis decimal-tallet er mindre end fem... '...så skal tallet rundes ned og facit bliver det hele tal Case 2 'Hvis der er to decimaler bag kommaet... If arr(1) >= 50 Then 'Hvis decimal-tallet er større eller lig med 50... + 1 '...så skal tallet rundes op og facit bliver 'Eller hvis decimal-tallet er mindre end 50... '...så skal tallet rundes ned og facit bliver det hele tal Case 3 'Hvis der er tre decimaler bag kommaet... If arr(1) >= 500 Then 'Hvis decimal-tallet er større eller lig med 500... + 1 '...så skal tallet rundes op og facit bliver 'Eller hvis decimal-tallet er mindre end 500... '...så skal tallet rundes ned og facit bliver det hele tal Case 4 'Hvis der er fire decimaler bag kommaet... If arr(1) >= 5000 Then 'Hvis decimal-tallet er større eller lig med 5.000... + 1 '...så skal tallet rundes op og facit bliver 'Eller hvis decimal-tallet er mindre end 5.000... '...så skal tallet rundes ned og facit bliver det hele tal Case 5 'Hvis der er fem decimaler bag kommaet... If arr(1) >= 50000 Then 'Hvis decimal-tallet er større eller lig med 50.000... + 1 '...så skal tallet rundes op og facit bliver 'Eller hvis decimal-tallet er mindre end 50.000... '...så skal tallet rundes ned og facit bliver det hele tal 'osv. osv. osv. osv... Case 'Hvis der er over fem decimaler... MessageBox.Show("Der er for mange decimaler", "Ups") '...så får du lige besked

End Select Afrund = Facit 'Vi slutter af med at tildele funktionen samme værdi som Facit 'Her slutter funktionen Kommentar af mysitesolution d. 28. Nov 2007 1 Jeg sætter pris på at du forsøger dig på en relativ lang artikel. Men din metode er ekstrem ineffektiv. Og så er der jo allerede en i.net lib. For det første så konvertere du et "decimal" til en tekst, som du så splitter. Allerede der er den 10* så langsom end den i.net (estimat). Og så virker den ikek hvis du har mere end 5 cifrer :/ Kommentar af arne_v d. 25. Nov 2007 2 Math.Round(tal, 0, MidpointRounding.AwayFromZero) var meget nemmere. Kommentar af cwboy d. 27. Nov 2007 3 Selv hvis det skulle være for eksemplets skyld - og man ikke måtte bruge Math.Round, ville jeg mene, at der var mere effektive måder at gøre det på. Kommentar af qua d. 27. Sep 2008 4 Dårlig struktur af kode og algoritme. Kommentar af happycow d. 04. Jan 2008 5 Undskyld, men denne artikel hører til på thedailywtf.com -- specielt siden du tager betaling for den...