Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di BananaBoat
    Registrato dal
    Aug 2004
    Messaggi
    1,269

    [pascal, principiante] calcolare logaritmo

    Salve a tutti e buon anno,
    sto provando a programmare in turbo pascal e volevo scrivere un programma per calcolare logaritmi.
    ecco quello che ho scritto finora:
    codice:
    program LOGARITMO;
    uses crt;
    var A,B,Y:real;
    begin
    	clrscr;
    	writeln;
    	writeln('LOGARITMO');
    	writeln;
    	write('Insersci la base del logaritmo: ');
    	readln(A);
    	writeln;
    	write('Inserisci l''argomento del logaritmo: ');
    	readln(B);
    	:fagiano:
    	writeln;
    	writeln('Il logaritmo in base ',A,' di ',B,' e'' ',Y);
    	writeln;
    	write('Premere un tasto qualsiasi per uscire');
    	repeat until keypressed;
    end.
    quindi manca la parte centrale, quella piu' importante
    mi date una mano?
    grazie

  2. #2
    Utente di HTML.it L'avatar di BananaBoat
    Registrato dal
    Aug 2004
    Messaggi
    1,269
    up

  3. #3

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    Così di primo acchito mi sembrerebbe invece che la cosa non sia così difficile...
    Il logaritmo di un numero B in una base A (scelta a piacere e diversa dalle generiche base '10' e 'e') si può facilmente calcolare proprio utilizzando, per esempio, la funzione ln() che calcola il logaritmo naturale (base 'e') del numero.
    Infatti è:

    ln(B)/ln(A)

    Cioè il logaritmo del numero B in base A è dato dal logaritmo (in base e) del numero B diviso per il logaritmo (sempre in base e) della base A

    Nel tuo caso quindi (utilizzando la funzione ln() presente in turbo pascal) è

    Y = ln(B) / ln(A)


    Se invece vuoi calcolare il logaritmo SENZA utilizzare la funzione ln() devi pensare di utilizzare qualche algoritmo di calcolo numerico e la cosa è effettivamente un po' più complessa.
    Prova ad esempio a vederti questo: http://www.vialattea.net/esperti/mat/log/

    In fondo c'è la formula per calcolare ln(1+x)

  5. #5
    Utente di HTML.it L'avatar di BananaBoat
    Registrato dal
    Aug 2004
    Messaggi
    1,269
    io volevo proprio farlo con le quattro operazioni, ma e' impossibile ... riprovero' quando saro' un po' piu' bravo.
    altro problemino con pascal: e' possibile calcolare
    B=radice n-esima di A, avendo sia n che A, ma facendo tutto utilizzando solo le quattro operazioni e non le funzioni del programma? in realta' dovrebbe essere semplice, perche' equivale a
    A elevato 1/n=B, ma non riesco a impostare un ciclo, ad esempio
    for I:=0 to 1 div N do
    non funziona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.