logaritmi con turbo pascal
turbologa.htm
note ed esempi a integrazione
descrizione per
usare la tabella logaritmica che fornisce le mantisse (positive)
in corrispondenza di una serie parziale di numeri interi
consecutivi
inserendo un logaritmo con caratteristica < 0 si viene guidati
al numero corrispondente
program logaritmica; (* tabella logaritmica com mantisse positive *) uses crt; var n1,n2,n3,l1,l2,l3,ma1,ma2,ma3:real; var base,k,esponente,nx,lx,max,cx,cifrex:real; var contatore,prove:integer; procedure pausa; var ch:char; begin ch:=readkey; end; function potenza(base,esponente:real):real; begin potenza:=exp(ln(base)*esponente); end; begin clrscr; writeln('viene visualizzata tabella parziale con mantisse e numeri '); writeln('viene rischiesto inserimento logaritmo con caratteristica < 0 '); writeln('si descrive come risalire al numero leggendo la mantissa '); writeln('e considerando la caratteristica e quindi il numero di zeri '); writeln('dopo la virgola del numero corrispondente al logaritmo fornito'); writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); pausa; clrscr; prove:=3; base:=10; k:=ln(10); n1:=0.5; n2:=0.05; n3:=0.005; l1:=ln(n1)/k; l2:=ln(n2)/k; l3:=ln(n3)/k; ma1:=frac(l1); ma2:=frac(l2); ma3:=frac(l3); writeln('tabella parziale numeri con mantisse fornite da pascal'); writeln('le mantisse non corrispondono a quelle detta tabella con mantisse positive'); writeln('che sono necessarie per risalire al numero per logaritmo fornito'); writeln('i calcoli che usano i logaritmi con pascal foniscono direttamente'); writeln('il valore numerico con exp(ln(base)*esponente) '); writeln('per usare la tabella con mantisse positive e trovare il numero'); writeln('devo ricavare la mantissa positiva usando il logaritmo fornito da pascal'); writeln('trasformadolo in formato misto:caratterisitica negatica e mantissa positiva'); writeln('***********************************************************************'); write('n1...:',n1:1:5);writeln('...',ma1:0:5); write('n2...:',n2:1:5);writeln('...',ma2:0:5); write('n3...:',n3:1:5);writeln('...',ma3:0:5); writeln('************************************'); for contatore:=1 to prove do begin if contatore=1 then nx:=n1; if contatore=2 then nx:=n2; if contatore=3 then nx:=n3; write('scrivi un logaritmo per avere il numero :');readln(lx); cx:=int(lx); cifrex:=abs(cx+1); writeln('logaritmo = ',lx:1:5); writeln('caratteristica = ',cx:1:0); writeln('numero zeri dopo della virgola = ',cifrex:1:0); writeln('numero cercato da utente = ',nx:1:5); writeln('.............................................'); end; pausa; end.
trasformazione da
logaritmo negativo a logaritmo misto
cerco numero con mantissa positiva da tabella
calcolo numero con funzione pascal
program logaritmica; (* tabella logaritmica com mantisse positive *) uses crt; var n1,n2,n3,l1,l2,l3,ma1,ma2,ma3:real; var base,k,esponente,nx,lx,max,cx,cifrex:real; var contatore,prove:integer; var l1f,l2f,l3f,lxf:real; procedure pausa; var ch:char; begin ch:=readkey; end; function potenza(base,esponente:real):real; begin potenza:=exp(ln(base)*esponente); end; begin clrscr; writeln('viene visualizzata tabella parziale con mantisse e numeri '); writeln('viene rischiesto inserimento logaritmo con caratteristica < 0 '); writeln('si descrive come risalire al numero leggendo la mantissa '); writeln('e considerando la caratteristica e quindi il numero di zeri '); writeln('dopo la virgola del numero corrispondente al logaritmo fornito'); writeln('si fornisce anche il valore del numero, senza usare la tabella'); writeln('con la funzione pascal exp(ln(base)*esponente) '); writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); pausa; clrscr; prove:=3; base:=10; k:=ln(10); n1:=0.5; n2:=0.05; n3:=0.005; l1:=ln(n1)/k; l2:=ln(n2)/k; l3:=ln(n3)/k; ma1:=frac(l1); ma2:=frac(l2); ma3:=frac(l3); writeln('tabella parziale numeri con mantisse fornite da pascal'); writeln('le mantisse non corrispondono a quelle detta tabella con mantisse positive'); writeln('che sono necessarie per risalire al numero per logaritmo fornito'); writeln('i calcoli che usano i logaritmi con pascal foniscono direttamente'); writeln('il valore numerico con exp(ln(base)*esponente) '); writeln('per usare la tabella con mantisse positive e trovare il numero'); writeln('devo ricavare la mantissa positiva usando il logaritmo fornito da pascal'); writeln('trasformadolo in formato misto:caratterisitica negatica e mantissa positiva'); writeln('***********************************************************************'); write('n1...:',n1:1:5);writeln('...',ma1:0:5); write('n2...:',n2:1:5);writeln('...',ma2:0:5); write('n3...:',n3:1:5);writeln('...',ma3:0:5); writeln('************************************'); for contatore:=1 to prove do begin if contatore=1 then nx:=n1; if contatore=2 then nx:=n2; if contatore=3 then nx:=n3; write('scrivi un logaritmo per avere il numero :');readln(lx); cx:=int(lx); cifrex:=abs(cx+1); writeln('logaritmo = ',lx:1:5); writeln('caratteristica = ',cx:1:0); writeln('numero zeri dopo della virgola = ',cifrex:1:0); writeln('numero cercato da utente = ',nx:1:5); writeln('.............................................'); end; pausa; writeln('la mantissa positiva corrispondente a 5 - 0.5 - 0.05 - 0.005 '); writeln( 'fornita dalle tabelle = 0.69897 e non 0.30103 '); writeln('alla mantissa 0.30103 corrisponderebbe il numero 20 '); writeln('il logaritmo fornito es. -1.30103 deve essere trasformato '); writeln('nel formato misto <2).69897 '); writeln('<2> o 2 sopralineato = -2 ; 69897 = complemento a mantissa 30103'); writeln('.....................................................'); writeln('esempio log 0.5 = -1.69897 = <1>.69897 con tabella '); writeln('esempio log 0.5 = -1.30103 = <2>.69897 trasformato '); writeln('esempio log 0.05 = -2.69897 = <2>.69897 con tabella '); writeln('esempio log 0.05 = -2.30103 = <3>.69897 trasformato '); writeln('esempio log 0.005 = -3.69897 = <3>.69897 con tabella '); writeln('esempio log 0.005 = -3.30103 = <4>.69897 trasformato '); writeln('--------------------------------------------------------'); pausa; writeln ('valori calcolati con funzione pascal potenza:=exp(ln(base)*esponente)'); l1f:=(-1+0.69897); l2f:=(-2+0.69897); l3f:=(-3+0.69897); writeln('numero1 :',potenza(base,l1f):0:5); writeln('numero2 :',potenza(base,l2f):0:5); writeln('numero3 :',potenza(base,l3f):0:5); writeln('................................'); pausa; end.
vedi esempio con excel turbologa45.htm