DatamaskinerProgrammering

Potens i Pascal programmering: tips og triks

Det er et stort antall programmeringsspråk, og Pascal er ikke den siste plass blant dem. Og hvis du kommer til å seriøst engasjere seg i fremtiden programmering bør starte kjent med verden er ved å lære språket, fordi det er lettere å persepsjon og, enda viktigere, er programmet helt gratis.

I denne artikkelen vil vi håndtere dette vanskelig problem, som potenser. Pascal, dessverre, ikke tilby oss å løse dette problemet, i motsetning til andre programmeringsspråk, en enkelt operatør. Så her har vi, som de sier, komme ut med improviserte midler, å ty til løkker og matematiske operatorer - det er her vi kan gi frie tøyler til fantasien vår. Vurdere flere metoder for å løse dette problemet.

Anta at vi får en lett oppgave, der et visst antall må heves til nivået for hele positive. Anta at en rekke oppreist ved 4 grader. Det er utført en enkel matematisk operasjon: b: = a * a * a * a.

I neste trinn, komplisere vi oppgaven og av den universelle program som vil bygge et tall på noen hele positiv grad. Her er en mulighet til å dra nytte av noen syklus, men vi vil vurdere en enkel metode å bruke en loop med en teller. På venstre kan du lese hele teksten i vårt program, det er, og forklaringer av virksomheten. Forresten, bør det bemerkes at en rekke reises eventuelt sette Integer, og kan for eksempel Real, som vil bli bygget i brøk grad.

De foregående eksempler tillate oss å bygge en rekke bare positive integrert krefter. Men det er utfordringer der du må bygge tall til en brøk makt. Når du skriver et slikt program, trenger vi å vite logaritmer egenskaper. Nærmere bestemt: a b e = b ln et . På bakgrunn av dette vil den ønskede del av vårt program være av formen: r: = exp (b * ln (a)). Men her er vi konfrontert med det faktum at denne føreren ikke fungerer med null og negative tall. For å oppfylle vårt program eksponensieringen 0, må du angi en betingelse: Hvis b = 0 Then r: = 1 Else r: = exp (b * ln (a)). Men som for negative tall vises eksponensieringen?

Pascal gjør oss tro om igjen. Her er det nødvendig å foreta denne operasjonen med vår modul nummer og ta ut dataene med et negativt resultat. Så sjekk pariteten grad: Hvis vårt nivå var enda, mens vi tar på utfallet av modulen. I dette tilfellet vil programmet ha formen: r: = (- 1) * exp (b * ln ( abs (a))); Hvis Round (b / 2) = b / 2 og deretter r: = abs (r) . Tilstanden her sjekker selv eller ingen grad.

Som et resultat, kommer vi til en mer universell modell av vårt program som vil jobbe med noen tall. Så nå har vi å forene seg i en helhet alle de ovennevnte. Bildet til høyre kan du lese hele teksten i vår ferdig program. Vær oppmerksom på den angitte datatypen. I motsetning til det første programmet, bruker den Real, som Her er vi allerede jobber med noen tall, ikke bare heltall. Dermed makter av reelle tall vi har ferdigbehandlet. Bare ett spørsmål gjenstår å bli vurdert.

Slå til ham, bør det bemerkes at løsningen på dette problemet krever ganske dyp kunnskap i programmering. Dette eksponensieringen komplekst tall. Man kan forsøke å bruke en rekke forskjellige løsninger, for eksempel, Moivre formel, men det er problemer med overføring av et komplekst tall i trigonometrisk form. Det er en løsning på dette problemet i oppgaven med å multiplisere prosedyrer for to komplekse tall og en enkel sløyfe med en teller, det vil si, Gjenta denne prosedyren en kraft av antall ganger. På eksempel gitt, kan du forstå mer i detalj teksten i programmet.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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