Esponenziazione nel linguaggio di programmazione Pascal: suggerimenti e trucchi
C'è un enorme numero di lingueprogrammazione, e Pascal prende tra loro non l'ultimo posto. E se hai intenzione di impegnarti seriamente nella programmazione in futuro, dovresti iniziare a conoscere questo mondo con lo studio di questa lingua, poiché è più semplice nella percezione e, soprattutto, il programma è assolutamente gratuito.
In questo articolo, discuteremo di un problema così difficile,come esponenziazione. Pascal, purtroppo, non ci fornisce un operatore separato per risolvere questo problema, a differenza di altri linguaggi di programmazione. Quindi qui è necessario, come si dice, sbarazzarsi dei mezzi improvvisati, ricorrere ai cicli e agli operatori matematici - è qui che possiamo dare sfogo alla nostra immaginazione. Consideriamo diversi metodi per risolvere questo problema.
Supponiamo di avere un compito facile, in cui un certo numero deve essere sollevata al livello di tutto positiva. Supponiamo che il numero un alziamo in 4 gradi. Qui eseguiamo una semplice operazione matematica: b: = a * a * a * a.
Gli esempi precedenti ci permettono di costruire numerisolo in potenze di interi positivi. Ma ci sono problemi dove è necessario aumentare il numero a un potere frazionario. Quando scriviamo un programma del genere, abbiamo bisogno di conoscere le proprietà dei logaritmi. In particolare: unB= eb ln a. Procedendo da questo, il frammento necessario del nostro programma sarà simile a: r: = exp (b * ln (a)). Ma qui siamo di fronte al fatto che questol'operatore non funziona con numeri zero e negativi. Affinché il nostro programma esegua il potenziamento, è necessario specificare la condizione: Se b = 0 Quindi r: = 1 Else r: = exp (b * ln (a)). Ma che aspetto ha l'esponenziazione per un numero negativo?
Pascal ci fa pensare di nuovo. Qui dobbiamo eseguire questa operazione con il modulo del nostro numero e prendere i dati con un risultato negativo. Quindi controlla l'uniformità del grado: se il nostro grado è pari, allora prendiamo il modulo dal risultato. In questo caso, il nostro programma sarà simile a: r: = (- 1) * exp (b * ln (abs (a))); Se Round (b / 2) = b / 2 Quindi r: = abs (r). La condizione qui controlla se il grado è pari o no.
Di conseguenza, arriviamo a un modello più universale.il nostro programma che funzionerà con qualsiasi numero. Cioè, ora dobbiamo integrare tutto quanto sopra in uno. Nell'immagine a destra puoi vedere il testo completo del nostro programma finito. Prestare attenzione al tipo di dati specificato. A differenza del primo programma, è usato qui. veroperché qui stiamo già lavorando con qualsiasi numero, non solo con numeri interi. Quindi, abbiamo pienamente considerato di aumentare il potere dei numeri reali. Resta da considerare solo una domanda.