Inhoudsopgave:

Hoogste gemeenschappelijke factor rekenmachine - Ajarnpa
Hoogste gemeenschappelijke factor rekenmachine - Ajarnpa

Video: Hoogste gemeenschappelijke factor rekenmachine - Ajarnpa

Video: Hoogste gemeenschappelijke factor rekenmachine - Ajarnpa
Video: Ontbinden in factoren - moeilijke opgaven (2 HAVO/VWO & 2 VWO) 2024, Juli-
Anonim
Hoogste gemeenschappelijke factor Calculator
Hoogste gemeenschappelijke factor Calculator

veel van mijn vrienden en kinderen die ik bijles geef, hebben problemen met het vinden van de hoogste gemene deler (HCF) van een reeks getallen. Dit komt vooral omdat het onderwijs in mijn land echt onder de maat is. kinderen nemen meestal hun toevlucht tot uit het hoofd leren en harde regels.

In die zin heb ik een programma gemaakt waarmee HCF wordt berekend.

hoewel dit eigenlijk niet met de hand kan worden gedaan en er zelfs eenvoudigere en eenvoudigere manieren zijn om HCF te krijgen, denk ik persoonlijk dat dit de meest primitieve en dus de meest elementaire techniek is. ik hoop dat mensen de aard van HCF kunnen begrijpen.

de programmeertaal waarin ik vandaag ga schrijven is Microsoft studio 2010 in console-modus

dit komt omdat het niet zo hoofdlettergevoelig is en het is zeer gebruiksvriendelijk, dus perfect voor een aspirant-beginner.

Stap 1: Stap 1: de variabelen declareren

in elk programma moeten we variabelen declareren als we enige vorm van gegevens voor manipulatie willen opslaan. Hoewel er veel typen in mijn programma zijn, heb ik alleen lokale variabelen gebruikt.

het slaat integrale variabelen op in het formaat

Dim x als geheel getal

dit labelt variabele met de naam "x" als een geheel getal gegevenstype

dus in het programma moeten we deze variabelen declareren

Dim eerste getal, tweede getal, TEMP, HCF als geheel getal

ik heb in principe opgeslagen voor variabelen met de namen: firstNum, secondNum, TEMP, HCF

Stap 2: De variabelen opslaan

Zodra we een variabele hebben gedeclareerd, moeten we er een waarde aan toekennen, anders is het nutteloos.

hiervoor maken we gebruik van de "=" operator

maar om het van de gebruiker te laten lezen, hebben we een manier nodig om het in te voeren. we gebruiken de functie "Console. ReadLine"

dit is een functie van de consolemodus van visual basic die een regel leest die in de console is getypt

het programma gaat als volgt;

firstNum = Console. ReadLine

we doen dan hetzelfde met de volgende variabele

secondNum = Console. ReadLine

dit slaat twee nummers op voor manipulatie door het programma

Stap 3: Vergelijken

vervolgens vergelijken we twee variabelen en controleren welke kleiner is. we zouden ook het grotere aantal kunnen gebruiken, maar het zou nutteloos zijn om het programma te zwaar te belasten. maar als beide variabelen gelijk zijn, kunnen we beide gebruiken

om te vergelijken gebruiken we de if-statements

Als voorwaarde Dan (actie als voorwaarde waar is)

ElseIf voorwaarde dan

(actie als voorwaarde waar is)

Stop als

dus in feite ziet het er zo uit

Als eersteNum < tweedeNum Dan TEMP = eersteNum AndersAls eersteNum > tweedeNum Dan TEMP = tweedeNum

ElseIf firstNum = secondNum Then

TEMP = secondNum

Stop als

Stap 4: HCF vinden

in theorie is HCF het hoogste gehele getal waarmee alle gegeven getallen afzonderlijk kunnen worden gedeeld zonder een rest over te laten. of in de zin van een computer een rest van nul

in mijn programma blijf ik de getallen delen en verhogen totdat ik het hoogst mogelijke gehele getal krijg dat alle getallen deelt zonder een rest over te laten.

hiervoor zal ik een "for iteratielus" gebruiken

de syntaxis gaat:

Voor i = (elk getal) naar (willekeurig getal) stap (oplopend getal)

(functie)

Volgende

aangezien ik niet door 0 kan delen, zal ik moeten beginnen bij 1 en tot het minste getal. dit komt omdat de HCF niet groter kan zijn dan een van de getallen. als je je herinnert, hebben we het minste aantal opgeslagen in variabele 'TEMP'.

om de getallen te vergelijken gebruiken we een if-statement.

voor deze taak zullen we ook een speciale operator gebruiken, de modulus-operator

dit retourneert de rest van een deling

de syntaxis is

(getal) mod (deler)

in andere programmeertalen, d.w.z. C++, mag mod worden vervangen door het procentteken '%'

dus voor ons programma schrijven we

Voor i = 1 Naar TEMP Stap 1

If ((firstNum Mod i = 0) And (secondNum Mod i = 0)) Then

HCF = i

Einde als volgende

we slaan de getallen op in variabele "HCF" telkens wanneer een grotere variabele wordt gevonden, wordt HCF overschreven

als i als een factor van beide getallen is, wordt deze opgeslagen in variabele HCF

Stap 5: Uitvoer weergeven

om de uitvoer op het consolescherm weer te geven, gebruiken we het commando "console.write()" of "console.writeline()"

een belangrijke vuistregel is dat geschreven woorden tussen apostrofs ("") moeten staan. Variabelen hoeven niet tussen apostrofs te staan

we kunnen ook gebruik maken van " & " operator om lijnen samen te voegen vergeet niet om een spatie te plaatsen aan weerszijden van het & symbool

zo gaat het programma

Console. WriteLine("De hoogste gemene deler is " & HCF)

Helaas wacht de computer meestal niet op de gebruiker, tenzij hem dat wordt verteld. dus voegen we nog een programmaregel toe zodat de gebruiker het resultaat kan lezen.

Console. WriteLine("DRUK OP EEN KNOP OM TE VERLATEN")

Console. ReadKey()

Stap 6: Voor het gemak

dit is mijn versie van de programmering met commentaar voor hulp.

Module Module1 Sub Main()

'in elk programma moeten we variabelen declareren'

Dim firstNum, secondNum, TEMP, HCF As Integer ' "As Integer" symboliseert dat de aard van gegevens voor deze variabelen gehele getallen zijn

'eerst informeren we de gebruiker over de instructies'

Console. WriteLine("voer twee getallen in voor de hoogste gemene deler") 'vervolgens vragen we de gebruiker om een getal in te voeren Console. WriteLine("voer het eerste getal in") 'we slaan het cijfer op in een variabele firstNum firstNum = Console. ReadLine ' dan vragen we de gebruiker om een tweede nummer in te voeren Console. WriteLine("voer tweede nummer in") 'op dezelfde manier slaan we dat ook op, maar in een andere variabele' we willen niet dat het eerste wordt overschreven secondNum = Console. ReadLine

'we vergelijken welke groter is en slaan deze op in een tijdelijke opslag "TEMP"

Als eersteNum tweedeNum Dan TEMP = tweedeNum

'in de onderstaande clausule hebben we een waarde in de TEMP opgeslagen, ook al waren de eerste en tweede cijfers gelijk'

'dit is omdat we het 'hoogste' getal van beide nodig hadden, wat het ook moge zijn.

ElseIf firstNum = secondNum Then

TEMP = secondNum End If

'hier begint het programmeren pas echt'

'de mod functie deelt het gehele getal door een getal en retourneert de rest 'dit is handig, op deze manier kunnen we controleren met welke getallen de resten nul zijn

'hier gebruiken we een "FOR ITERATION LOOP" om het werk te doen

'we maken een variabele 'i' en verhogen deze met 1 na elke lus

Voor i = 1 Naar TEMP Stap 1 '"Stap 1" geeft aan dat er een toename van 1 is na elke lus

'zoals je kunt zien hebben we ook een AND-functie gebruikt

'dit komt omdat we alleen getallen nodig hadden die beide variabelen verdeelt en rest nul geeft'

'een andere belangrijke opmerking is dat we i niet bij 0. kunnen beginnen

'dit komt omdat alles gedeeld door 0 tot oneindig kan leiden If ((firstNum Mod i = 0) And (secondNum Mod i = 0)) Dan

'we slaan de getallen op in variabele "HCF"

' elke keer dat een grotere variabele wordt gevonden, wordt HCF overschreven HCF = i End If Next

Console. Clear() ' deze opdracht wist alles dat op het consolescherm is geschreven

Console. WriteLine("hoogste gemene deler = " & HCF) 'dit commando geeft een bericht weer op het consolescherm

'met de onderstaande commando's kan het consolescherm worden verlaten'

Console. WriteLine() Console. WriteLine("DRUK OP EEN KNOP OM TE VERLATEN") Console. ReadKey()

'P. S.'

'tijdens het programmeren, zolang je de syntaxis niet verpest' ben je vrij om spaties, tabs of lege regels te plaatsen om het programma er minder rommelig uit te laten zien

Einde sub

Einde Module

Aanbevolen: