La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

BREVE STORIA DELLALGORITMO Da dove proviene il termine algoritmo? Logaritmo ? Algorismo ? Dal Medio Evo : maniera di fare larimetica usando i numerali.

Presentazioni simili


Presentazione sul tema: "BREVE STORIA DELLALGORITMO Da dove proviene il termine algoritmo? Logaritmo ? Algorismo ? Dal Medio Evo : maniera di fare larimetica usando i numerali."— Transcript della presentazione:

1

2 BREVE STORIA DELLALGORITMO Da dove proviene il termine algoritmo? Logaritmo ? Algorismo ? Dal Medio Evo : maniera di fare larimetica usando i numerali arabi. Algiros + arithmos ?Dal greco: Complesso + numero Un anagramma.

3 Abu JaFar Mohammed Ibn Mûsa Al-Khovârizm ( 825 d.C.) Padre di JaFar Mohammed Figlio di Moses Nativo di Kovarism (odierna Khiva (Russia)) Autore del famoso Kitab Al Jabr WAl-Muqabala Regole di accorpamento e riduzione

4 REGOLE SINTATTICHE Testa del programma Header Programma BLOCCO. PROGRAM ………………………………... BEGIN …………………... END. PROGRAM identificatore ( ;), PROGRAMIpotTrianRett(input, output,...);

5 PROGRAM IpotTrianRett(input, output); {calcolo ipotenusa del triangolo rettangolo} {moltiplicata per un fattore di scala} CONST Scala=3; VAR Lato1, {primo lato del triangolo} Lato2, {secondo lato del triangolo} Ipotenusa: real; {ipotenusa } BEGIN writeln('Il fattore di scala e''= ', Scala:3); write('Dammi il primo lato '); readln(Lato1); write('Dammi il secondo lato '); readln(Lato2); Ipotenusa:=sqrt(sqr(Lato1)+sqr(Lato2))*Scala; writeln('Ipotenusa del triangolo rettangolo = ', Ipotenusa:7:3); readln END.

6 IDENTIFICATORI Gli identificatori standard vengono messi tutti in minuscolo. Es. NomeDelProgramma(input, output, File1, ….) È previsto luso di una periferica di input È previsto luso di una periferica di output È previsto luso di un file denominato File1 N.B. Gli identificatori non possono cominciare con un numero (33ident) né contenere caratteri diversi da lettere o numeri (a_prov)

7 BLOCCO Definizione costanti CONST Scala=3; Definizione variabili VAR Lato1, Lato2: real; Ipotenusa: real; BEGINIstruzioni. END BEGIN writeln('Il fattore di scala e'=', Scala:3); write('Dammi il primo lato '); readln(Lato1); write('Dammi il secondo lato '); readln(Lato2); Ipotenusa:=sqrt(sqr(Lato1)+sqr(Lato2))*Scala; writeln('Ipotenusa del triangolo rettangolo =, Ipotenusa:7:3); readln END.

8 Le parentesi …... si usano per delimitare i commenti writeln(…, …,.) dopo la scritta va a capo write(…, …,.) dopo la scritta non va a capo Ogni dialetto Pascal ha una dimensione del campo dei numeri di default quindi se non dichiarata usa quella. Le stringhe vanno messe tra apici …stringaaa… Se nella stringa è necessario mettere un apice allora se ne scrivono due io lavevo detto ALCUNE NOTE E OSSERVAZIONI N.B. Terminare una sequenza di write sempre con un writeln N.B. Nel Turbo Pascal questa dimensione vale 1. Quindi write( 3, 2, 5) sarà mostrato come 325.

9 OPERATORI NUMERICI *moltiplica /divide numeri reali DIV divide i numeri interi MOD resto della divisione tra interi +addiziona numeri interi e reali -sottrae numeri interi e reali

10 NUMERI INTERI E REALI FIXED POINTes (almeno una cifra prima del.) FLOITING POINTes E-3 La divisione di due numeri può essere eseguita da DIV se i numeri da dividere sono interi e il risultato è posto in una variabile intera / se i numeri da dividere sono interi o reali e il risultato è posto in una variabile reale I numeri reali possono essere rappresentati dalle notazioni

11 N1, N2, intero :integer; R1, R2, reale:real; N1=3 N2= 12 R1= 3.00 R2= intero= N1 DIV N2= 0 intero= N1 DIV R2= non ammesso intero= N1 / N2= non ammesso intero= N1 / R2= non ammesso reale= N1 DIV N2= 0.00 reale= N1 DIV R2= non ammesso reale= N1 / N2= 0.25 reale= N1 / R2= 0.25 reale= R1 / N2= 0.25 reale= R1 / R2= 0.25 (corso\lezioni Mod A\esercizi\cap2\Division)

12 SCRITTURA INTERI E REALI ALCUNI ESEMPI write(3+100:2) |103| write(3+100:1) |103| write(3+100:10) |…….103| write(3.1456:2) | 3.1E+00| write(3.1456:1) | 3.1E+00| write(3.1456:10) | 3.146E+00| write( :9) | 9.88E-07| write(3.1456:2:4) |3.1456| write(3.1456:1:3) |3.146| write(3.1456:10:2) | 3.15| write( :9:3) | | write( :9:13) | | (Formati)

13 COSTANTI Un parametro che non varia durante lesecuzione del programma CONST identificatori ; costante = CONST Scala=3; Spazio= ; VelocitaLuce=3E+08; PiGreco=3.145

14 VARIABILI Un parametro che può variare durante lesecuzione del programma VAR identificatori ; type :, VAR Lato1, Lato2 : real; Numero : integer; Stringa : char;

15 PROGRAM IpotTrianRett(input, output); {calcolo ipotenusa del triangolo rettangolo} {moltiplicata per un fattore di scala} CONST Scala=3; VAR Lato1, {primo lato del triangolo} Lato2, {secondo lato del triangolo} Ipotenusa: real; {ipotenusa } BEGIN writeln('Il fattore di scala e''= ', Scala:3); write('Dammi il primo lato '); readln(Lato1); write('Dammi il secondo lato '); readln(Lato2); Ipotenusa:=sqrt(sqr(Lato1)+sqr(Lato2))*Scala; writeln('Ipotenusa del triangolo rettangolo = ', Ipotenusa:7:3); readln END.

16 ALLOCAZIONE IN MEMORIA Scala 3 Lato1 ??E?? Lettera ????? Numero ? CONST Scala=3; VAR Lato1 : real; Lettera : char; Numero: integer; {ipotenusa } BEGIN END

17 INTRODUZIONE DATIreadvariabile ( ), readln ATTENZIONE !!! Introdurre i dati così come definiti dalla variabile

18 VAR Lato1: real; Int1, Int2 : integer; ESEMPI LETTURA DATI readln(Int1, Lato1, Int2) Int1=73 Lato1=98.56 Int2= Ciao Int1=73 Lato1 =98.56 Int2= ErrorT Error

19 ISTRUZIONI DI ASSEGNAZIONE variabile ; espressione := Assegnare un valore ad una variabile a seguito di una elaborazione. Es. Int1:=7 DIV 3; Int2:=Int1*2;

20 VAR Int1:integer; Real1:real; Caratt1:char; Int1:=73 Lato1:=98.56 Caratt1:=A Error Int1:=73 DIV 4 Lato1:=98.56 DIV 3 Caratt1:=7 Int1:=73.01 Lato1:=98A Caratt1:=Ciao Error Int1:=73/2 Lato1:=98+Caratt1 Caratt1:=A+2 Error

21 Maxint = (Limiti)

22 PROGRAM Test(input,output); CONST A=130; B=1000; VAR Somma, Prod, Potenza : integer; BEGIN Somma:=A+B; Prod:=(A+B)*Somma; writeln('Valori letti: ', A:7, 'e ', B:7); writeln; writeln('Somma = ', Somma:7); writeln('Prodotto = ', Prod:7); readln END. Esercizio Dire quale è loutput del seguente programma : (test)

23 Esercizio Assegnate le seguenti variabili A, B, Cintere X, Y, Zreali M, N, O caratteri eseguire le seguenti operazioni A diviso B M + N O + A X diviso C Y diviso Z trovare il resto della divisione di A per C trovare il resto della divisione di B per Y Mostrare i risultati delle operazioni o segnalare quelle eventualmente errate.

24 MODO BATCH Un programma che opera senza interagire con lutente. Esempio un programma che legge i dati da un file e li scrive su un altro. A questo scopo è necessario utilizzare delle variabili per riferirsi ai nomi dei file adoperati. Esempio Sia Dat il nome del file da cui leggere i dati di input Sia Risultat il nome del file su cui scrivere i dati di output VAR Dati, Risultati : text; Int1:integer; Real1:real; Caratt1:char; Per leggere da un file bisogna aprirlo in lettura reset(Dati) Per scrivere su un file bisogna aprirlo in scrittura rewrite(Risultati)

25 {legge dal file Dati due numeri reali Re1 e Re2 e scrive la loro somma Somma e il loro prodotto Prod in un file Risultat} PROGRAM ProvaFiles(input,output,Dat,Risult); VAR Dat, Risult: text; Re1, Re2, Somma, Prod: real; BEGIN assign(Dat,'C:\TP\ESEMPI\MODA\DATI.TXT'); assign(Risult,'C:\TP\ESEMPI\MODA\RISULTAT.TXT'); reset(Dat); rewrite(Risult); readln(Dat, Re1, Re2); Somma:=Re1+Re2; Prod:=Re1*Re2; writeln('Valori letti: ', Re1:7:5, 'e ', Re2:7:5); writeln; writeln('Somma= ', Somma:7:5); writeln('Prodotto= ', Prod:7:5); writeln(Risult, 'Valori letti: ', Re1:7:5, ' e ', Re2:7:5); writeln(Risult, ' Somma e Prodotto ', Somma:7:5, ' e ', Prod:7:5); close(Risult); readln END. {esempio di lettura e scrittura di files} (ProvaFile)


Scaricare ppt "BREVE STORIA DELLALGORITMO Da dove proviene il termine algoritmo? Logaritmo ? Algorismo ? Dal Medio Evo : maniera di fare larimetica usando i numerali."

Presentazioni simili


Annunci Google