Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
CAPITOLO 2
2
NO BREVE STORIA DELL’ALGORITMO Da dove proviene il termine algoritmo?
Logaritmo ? Un anagramma. Dal Medio Evo : maniera di fare l’arimetica usando i numerali arabi. Algorismo ? Algiros + arithmos ? Dal greco: Complesso + numero NO
3
Abu Ja’Far Mohammed Ibn Mûsa Al-Khovârizm
(825 d.C.) ALGEBRA Padre di Ja’Far Mohammed Figlio di Moses Nativo di Kovarism (odierna Khiva (Russia)) Autore del famoso “Kitab Al Jabr W’Al-Muqabala” Regole di accorpamento e riduzione
4
. REGOLE SINTATTICHE Programma Testa del programma Header BLOCCO
………………………………... BEGIN …………………... END. PROGRAM identificatore ( ; ) , IpotTrianRett (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
Gli identificatori standard vengono messi tutti in minuscolo.
NomeDelProgramma(input, output, File1, ….) È previsto l’uso di una periferica di input periferica di output È previsto l’uso 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 Definizione variabili BEGIN Istruzioni
CONST Scala=3; Definizione variabili VAR Lato1, Lato2: real; Ipotenusa: real; BEGIN Istruzioni . END 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
ALCUNE NOTE E OSSERVAZIONI
Le parentesi …... si usano per delimitare i commenti writeln(…, …, .) dopo la scritta va a capo write(…, …, .) dopo la scritta non va a capo N.B. Terminare una sequenza di write sempre con un writeln Ogni dialetto Pascal ha una dimensione del campo dei numeri di default quindi se non dichiarata usa quella. N.B. Nel Turbo Pascal questa dimensione vale 1. Quindi write( 3, 2, 5) sarà mostrato come 325. Le stringhe vanno messe tra apici ‘…stringaaa…’ Se nella stringa è necessario mettere un apice allora se ne scrivono due ‘io l’’avevo detto’
9
OPERATORI NUMERICI + addiziona numeri interi e reali - sottrae numeri interi e reali * moltiplica / divide numeri reali DIV divide i numeri interi MOD resto della divisione tra interi
10
La divisione di due numeri può essere eseguita da
NUMERI INTERI E REALI 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 FIXED POINT es (almeno una cifra prima del .) FLOITING POINT es E-3
11
intero= N1 DIV R2= non ammesso intero= N1 / N2= non ammesso
N1, N2, intero :integer; R1, R2, reale:real; N1=3 N2= 12 R1= 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= reale= N1 DIV R2= non ammesso reale= N1 / N2= reale= N1 / R2= reale= R1 / N2= reale= R1 / R2= (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) | | write( :9:3) | | write( :9:13) | | (Formati)
13
Un parametro che non varia durante l’esecuzione del programma
COSTANTI Un parametro che non varia durante l’esecuzione del programma CONST identificatori ; costante = CONST Scala=3; Spazio=‘ ‘; VelocitaLuce=3E+08; PiGreco=3.145
14
Un parametro che può variare durante l’esecuzione del programma
VARIABILI Un parametro che può variare durante l’esecuzione 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
CONST Scala=3; VAR Lato1 : real; Lettera : char; Numero: integer; {ipotenusa } BEGIN Scala Lato ??E?? Lettera ????? END Numero ?
17
) ( , INTRODUZIONE DATI read variabile readln
ATTENZIONE !!! Introdurre i dati così come definiti dalla variabile
18
readln(Int1, Lato1, Int2) VAR Lato1: real; Int1, Int2 : integer;
ESEMPI LETTURA DATI readln(Int1, Lato1, Int2) <eoln> Int1=73 Lato1= Int2=54 Int1=73 Lato1 = Int2=54 <eoln> 54 <eoln> Ciao <eoln> Int1=73 Lato1 = Int2=54 <eoln> Error T <eoln> Error
19
Assegnare un valore ad una variabile a seguito di una
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; Error Int1:=73 Lato1:=98.56 Caratt1:=‘A’ Int1:=73/2 Lato1:=98+Caratt1 Caratt1:=‘A’+2 Error Error Int1:=73 DIV 4 Lato1:= DIV 3 Caratt1:=‘7’ Error Error Int1:=73.01 Lato1:=98A Caratt1:=‘Ciao’ Error Error
21
Maxint = 32767 (Limiti)
22
PROGRAM Test(input,output); CONST A=130; B=1000; VAR
Esercizio Dire quale è l’output del seguente programma: 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. (test)
23
Esercizio Assegnate le seguenti variabili A, B, C intere X, Y, Z reali
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
Un programma che opera senza interagire con l’utente.
MODO BATCH Un programma che opera senza interagire con l’utente. 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)
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.