ComputereProgrammering

Eksponentiering i programmeringssproget Pascal: tips og tricks

Der er et stort antal programmeringssprog, og Pascal indtager blandt dem den sidste plads. Og hvis du vil alvorligt engagere sig i den fremtidige planlægning bør starte fortrolige med verden er ved at lære sproget, fordi det er lettere at opfattelsen og, endnu vigtigere, at programmet er helt gratis.

I denne artikel vil vi beskæftige sig med dette vanskelige problem, som eksponentiering. Pascal, desværre ikke tilbyde os at løse dette problem, i modsætning til andre programmeringssprog, en enkelt operatør. Så her har vi, som de siger, komme ud med improviserede midler, ty til loops og matematiske operatorer - det er her, vi kan give frie tøjler til vores fantasi. Overveje flere metoder til at løse dette problem.

Antag, at vi får en let opgave, hvor et bestemt antal skal hæves til niveauet for hele positive. Lad os sige et tal hæves til det niveau på 4. Der udføres en simpel matematisk operation: b: = a * a * a * a.

I det næste trin, vi komplicere opgaven og af den universelle program, der vil bygge et vilkårligt antal i en hvilken som helst hele positiv grad. Her er en mulighed for at drage fordel af enhver cyklus, men vi vil overveje en enkel metode ved hjælp af en løkke med en tæller. Til venstre kan du læse den fulde ordlyd af vores program, er der, og forklaringer af operationer. I øvrigt skal det bemærkes, at rejst en række valgfri sæt Heltal, og det er muligt, for eksempel, Real, som vil blive opført i graden af fraktioneret nummer.

De foregående eksempler giver os mulighed for at opbygge et nummer kun i positive integrerende kræfter. Men der er udfordringer, hvor du skal bygge nummer til en fraktioneret magt. Når du skriver et sådant program, har vi brug for at vide logaritmer egenskaber. Især: a b = e b ln a . På dette grundlag vil den ønskede del af vores program have formen: r: = exp (b * ln (a)). Men her er vi konfronteret med det faktum, at denne operatør ikke virker med nul og negative tal. For at opfylde vores program eksponentiering 0, skal du indstille en betingelse: Hvis b = 0 Så r: = 1 Else r: = exp (b * ln (a)). Men som for negativt tal vises eksponentiering?

Pascal gør os tænke igen. Her er det nødvendigt at gøre denne operation med vores modul nummer og tage data med et negativt resultat. Kontrollér derefter paritet af graden: hvis vores niveau var endnu, mens vi tager på resultatet af modulet. I dette tilfælde vil vores program have formen: r: = (- 1) * exp (b * ln ( abs (a))); Hvis runden (b / 2) = b / 2 Så r: = abs (r) . Betingelsen her kontrollerer, selv eller ingen grad.

Som et resultat, kommer vi til en mere universel model af vores program, der vil arbejde med nogen tal. Så nu er vi nødt til at forene sig i en helhed alle de ovennævnte. Billedet til højre kan du læse den fulde ordlyd af vores færdige program. Vær opmærksom på den angivne datatype. I modsætning til det første program, det bruger Real, som Her er vi allerede arbejder med nogen tal, ikke kun heltal. Således beføjelser af reelle tal vi har fuldt overvejet. Kun ét spørgsmål tilbage at undersøge.

Med hensyn til ham, skal det bemærkes, at løsningen af dette problem kræver temmelig dyb viden i programmering. Denne eksponentiering komplekst tal. Du kan prøve at bruge en række forskellige løsninger, for eksempel, Moivres formel, men der er problemer med overførslen af et komplekst tal i trigonometrisk formular. Der er en løsning på dette problem i opgaven med at multiplicere procedurer to komplekse tal og en enkel sløjfe med en tæller, dvs. Gentagelse af denne procedure en effekt på antallet af gange. På eksemplet forudsat, du forstår mere detaljeret tekst af programmet.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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