Sisukord:

Suurim ühistegurite kalkulaator: 6 sammu
Suurim ühistegurite kalkulaator: 6 sammu

Video: Suurim ühistegurite kalkulaator: 6 sammu

Video: Suurim ühistegurite kalkulaator: 6 sammu
Video: Suurim Ühistegur 2024, November
Anonim
Kõrgeim ühistegurite kalkulaator
Kõrgeim ühistegurite kalkulaator

paljudel mu sõpradel ja lastel, keda ma juhendan, on probleeme kõigi ühiste tegurite (HCF) leidmisega. Seda enamasti seetõttu, et minu riigis on haridus tõesti ebastandardne. lapsed kasutavad tavaliselt mäluõpetust ja rangeid reegleid.

Selles mõttes lõin programmi, millega arvutatakse HCF.

kuigi seda ei saa tegelikult käsitsi teha ning HCF saamiseks on veelgi lihtsamaid ja lihtsamaid viise, arvan isiklikult, et see on kõige primitiivsem ja seega ka kõige põhilisem tehnika. loodan, et inimesed saavad aru HCF olemusest.

programmeerimiskeel, millesse ma täna kirjutan, on Microsoft studio 2010 konsoolirežiimis

seda seetõttu, et see ei ole nii tõstutundlik ja väga kasutajasõbralik, seega ideaalne algajale algajale.

1. samm: 1. samm: muutujate deklareerimine

mis tahes programmis, kui tahame salvestada mis tahes vormis andmeid manipuleerimiseks, peame deklareerima muutujad. Kuigi minu programmis on palju tüüpe, olen kasutanud ainult kohalikke muutujaid.

see salvestab vormingus integraalmuutujad

Dim x täisarvuna

see tähistab muutuja integraalse andmetüübina nimega "x"

nii et programmis peame need muutujad deklareerima

Dim firstNum, secondNum, TEMP, HCF As Integer

Põhimõtteliselt olen muutujate jaoks salvestanud nimedega: firstNum, secondNum, TEMP, HCF

2. samm: muutujate salvestamine

Kui oleme muutuja deklareerinud, peame sellele väärtuse määrama, vastasel juhul on see kasutu.

selleks kasutame operaatorit "="

kuid selleks, et seda kasutajast lugeda, vajame selle sisestamiseks viisi. kasutame funktsiooni "Console. ReadLine"

see on Visual Basicu konsoolirežiimi funktsioon, mis loeb konsooli sisestatud rida

programm läheb nii;

firstNum = Console. ReadLine

siis teeme sama järgmise muutujaga

secondNum = Console. ReadLine

see salvestab programmi jaoks manipuleerimiseks kaks numbrit

3. samm: võrdlemine

järgmisena võrdleme kahte muutujat ja kontrollime, kumb on väiksem. me võiksime kasutada ka suuremat arvu, kuid oleks mõttetu programmile üle koormata. aga kui mõlemad muutujad on võrdsed, saame kasutada kumbagi

võrdlemiseks kasutame if -lauseid

Kui tingimus Siis (toiming, kui tingimus on tõene)

Muidu kui tingimus siis

(toiming, kui tingimus on tõene)

Lõpp Kui

nii et tegelikult näeb see välja selline

Kui firstNum <secondNum Siis TEMP = firstNum ElseIf firstNum> secondNum Siis TEMP = secondNum

MuiduKui esimeneNum = teineNum Siis

TEMP = secondNum

Lõpp Kui

Samm: HCF leidmine

teoreetiliselt on HCF suurim täisarv, millega saab kõiki antud numbreid eraldi jagada, jäämata. või arvuti mõttes ülejäänud null

oma programmis jagan ma numbreid ja suurendan neid, kuni saan võimalikult suure täisarvu, mis jagab kõik numbrid ilma jääki jätmata.

selleks kasutan iteratsioonitsükli jaoks

süntaks läheb:

I = (suvaline arv) kuni (mis tahes arv) samm (juurdekasv)

(funktsioon)

Edasi

Kuna ma ei saa jagada 0 -ga, pean alustama 1 -st ja väikseima arvuni. seda seetõttu, et HCF ei saa olla suurem kui ükski arv. kui mäletate, salvestasime muutuja "TEMP" kõige vähem numbreid.

numbrite võrdlemiseks kasutame lauset if.

Selle ülesande jaoks kasutame ka spetsiaalset operaatorit, mida nimetatakse moodulioperaatoriks

see tagastab jao ülejäänud osa

selle süntaks on

(number) mod (jagaja)

teistes programmeerimiskeeltes, nt C ++, võib modi asendada protsendimärgiga '%'

nii et meie programmi jaoks kirjutame

I = 1 TEMP -i jaoks 1. samm

Kui ((firstNum Mod i = 0) Ja (secondNum Mod i = 0)) Siis

HCF = i

Lõpeta kui järgmine

salvestame numbrid muutuja "HCF" iga kord, kui leitakse suurem muutuja HCF kirjutatakse üle

kui i kui mõlema arvu tegur, salvestatakse see muutuvas HCF -is

5. samm: väljundi kuvamine

väljundi kuvamiseks konsooli ekraanil kasutame käsku "console.write ()" või "console.writeline ()"

oluline rusikareegel on see, et kirjutatud sõnad peavad olema ümbritsetud apostroofidega (""). Muutujaid ei pea lisama apostroofidesse

Ridade ühendamiseks võime kasutada ka operaatorit "&", ärge unustage paigutada tühikut sümboli & mõlemal küljel

nii programm läheb

Console. WriteLine ("Kõrgeim ühine tegur on" ja HCF)

Kahjuks arvuti tavaliselt ei oota kasutajat, kui seda ei öelda. seega lisame veel ühe rea programmi, et kasutajal oleks võimalik tulemust lugeda.

Console. WriteLine ("VAJUTAGE VÄLJUNEMISEKS NUPPU")

Console. ReadKey ()

6. samm: lihtsuse huvides

see on minu versioon programmeerimisest koos kommentaaridega.

Moodul Module1 Sub Main ()

mis tahes programmis peame deklareerima muutujad

Dim firstNum, secondNum, TEMP, HCF Nagu täisarv "Täisarvuna" sümboliseerib, et nende muutujate andmete olemus on täisarvud

kõigepealt teavitame kasutajat juhistest

Console. WriteLine ("sisestage kaks numbrit kõrgeima ühise teguri jaoks") ', siis palume kasutajal sisestada number Console. WriteLine ("sisesta esimene number")' salvestame numbri muutujale firstNum firstNum = Console. ReadLine ' siis palume kasutajal sisestada teine number Console. WriteLine ("sisesta teine number") 'salvestame sarnaselt ka selle, kuid erinevas muutuja' me ei taha, et esimene kirjutataks üle secondNum = Console. ReadLine

Võrdleme, kumb on suurem, ja salvestame selle ajutisse salvestusseadmesse "TEMP"

Kui firstNum secondNum Siis TEMP = secondNum

Allolevas klauslis salvestasime väärtuse TEMP -sse, kuigi esimene ja teine arv olid võrdsed

"see on sellepärast, et me vajasime" kõrgeimat "numbrit ükskõik millisest.

MuiduKui esimeneNum = teineNum Siis

TEMP = secondNum End If

Siit algab programmeerimine

Funktsioon mod jagab täisarvu numbriga ja tagastab ülejäänud osa

"siin kasutame töö tegemiseks" ITERATSIOONILOOPI"

"loome muutuja" i "ja suurendame seda pärast iga tsüklit 1 võrra

Kui i = 1 TEMP -le Samm 1 '"1. samm" näitab, et iga tsükli järel on juurdekasv 1

Nagu näete, kasutasime ka funktsiooni AND

seda seetõttu, et vajasime ainult numbreid, mis jagavad mõlemad muutujad, andes ülejäänud nulli

Veel üks oluline märkus on see, et me ei saa i alustada nullist

see on sellepärast, et kõik, mis on jagatud 0 -ga, võib viia lõpmatuseni Kui ((esimeneNum Mod i = 0) Ja (teineNum Mod i = 0)) Siis

"salvestame numbrid muutuja" HCF"

'iga kord, kui leitakse suurem muutuja, kirjutatakse HCF üle HCF = i End If Next

Console. Clear () 'see käsk kustutab kõik, mis on konsooli ekraanile kirjutatud

Console. WriteLine ("kõrgeim ühine tegur =" & HCF) "see käsk kuvab teate konsooli ekraanil

all olevad käsud võimaldavad konsooli ekraanilt väljuda

Console. WriteLine () Console. WriteLine ("PRESS ANY BUTTON EXIT") Console. ReadKey ()

'P. S

Programmeerimise ajal, kui te ei riku süntakse, võite vabalt panna tühikuid, vahelehti või tühje ridu, et muuta programm vähem räpaseks.

End Sub

Lõppmoodul

Soovitan: