ComputersProgrammering

Machtsverheffen in Pascal programmering: tips en trucs

Er is een groot aantal programmeertalen, en Pascal is niet de laatste plaats onder hen. En als je gaat om serieus deel te nemen in de toekomst programmeren wilt laten starten vertrouwd te maken met de wereld is door de taal te leren, omdat het gemakkelijker is om de perceptie en, nog belangrijker, het programma is helemaal gratis.

In dit artikel zullen we omgaan met dit moeilijke probleem, aangezien de machtsverheffing. Pascal, helaas, niet ons te bieden om dit probleem op te lossen, in tegenstelling tot andere programmeertalen, een enkele operator. Dus hier hebben we, zoals ze zeggen, ga weg met geïmproviseerde middelen, toevlucht te nemen tot loops en wiskundige operators - het is hier dat we de vrije loop kan geven aan onze verbeelding. Overweeg verschillende methoden om dit probleem op te lossen.

Stel dat we een gemakkelijke taak, waar een bepaald nummer moet worden verhoogd tot het niveau van de hele positieve gegeven. Ga uit van een aantal rechtop bij 4 graden. Er wordt uitgevoerd een eenvoudige wiskundige bewerking: b: = a * a * a * a.

In de volgende stap, compliceren we de taak en van de universele programma dat een willekeurig aantal zal bouwen in een hele positieve graad. Hier is een kans om te profiteren van een cyclus, maar we zullen een eenvoudige methode met behulp van een lus met een teller te overwegen. Aan de linkerzijde kunt u de volledige tekst van ons programma te lezen, is er, en de uitleg van de operaties. Overigens zij opgemerkt dat verscheidene eventueel opgericht Integer ingesteld, en kan, bijvoorbeeld, Real, die zal worden ingebouwd fractionele graden.

De voorgaande voorbeelden kunnen we een aantal te bouwen alleen in positieve gehele machten. Maar er zijn uitdagingen waar je nummer moet bouwen om een fractionele macht. Bij het schrijven van een dergelijk programma, moeten we weten logaritmen eigenschappen. In het bijzonder: a = b e b ln . Op basis hiervan wordt het gewenste deel van het programma de volgende notatie: r: = exp (b * ln (a)). Maar hier worden we geconfronteerd met het feit dat deze operator werkt niet met nul en negatieve getallen. Met het oog op ons programma exponentiation 0 te voldoen, moet u een voorwaarde te stellen: Als b = 0 Then r: = 1 Else r: = exp (b * ln (a)). Maar als voor negatief getal verschijnt exponentiation?

Pascal maakt ons eens na te denken. Hier is het noodzakelijk om deze operatie te maken met onze module nummer en neem de gegevens met een negatief resultaat. Controleer vervolgens de pariteit van graad: als ons niveau was zelfs, terwijl wij over het resultaat van de module. In dit geval zal het programma de vorm hebben: r: = (- 1) * exp (b * ln ( abs (a))); Indien Rond (b / 2) = b / 2 Toen r: = abs (r) . De voorwaarde hierbij controleert, even of geen diploma.

Als gevolg daarvan, komen we tot een meer universele model van ons programma dat zal werken met alle nummers. Dus nu moeten we verenigen in één geheel al het bovenstaande. De afbeelding aan de rechterkant kunt u de volledige tekst van onze afgewerkte programma te lezen. Besteed aandacht aan het opgegeven data. In tegenstelling tot het eerste programma, gebruikt het echt, want Hier zijn we al bezig met cijfers, niet alleen gehele getallen. Zo, de bevoegdheden van reële getallen we volledig beschouwd. Slechts één vraag blijft te worden beschouwd.

Met betrekking tot hem, dient te worden opgemerkt dat de oplossing van dit probleem vereist vrij diepe kennis in de programmering. Dit exponentiation complex getal. U kunt proberen om een verscheidenheid aan oplossingen, bijvoorbeeld Moivre formule, maar er zijn problemen met de overdracht van een complex getal in goniometrische vorm. Er is een oplossing voor dit probleem in de taak van de procedures van twee complexe getallen en een eenvoudige lus te vermenigvuldigen met een teller, dat wil zeggen, Het herhalen van deze procedure een vermogen van het aantal keren. Op het gegeven voorbeeld, kun je begrijpen in meer detail de tekst van het programma.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 nl.atomiyme.com. Theme powered by WordPress.