Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un...
-
Upload
massimiliano-mazzei -
Category
Documents
-
view
225 -
download
0
Transcript of Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un...
![Page 1: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/1.jpg)
Informatica 22/03/2012
![Page 2: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/2.jpg)
Operatori matematici
+ - * / div mod
Div: divisione tra interi, ottieni un quoziente intero.
Mod: resto della divisione tra interi
Es.: 7 div 4 = 1 7 mod 4 = 3
![Page 3: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/3.jpg)
Dichiarazione di costanti
(Nella sezione dichiarativa del programma)
Const nomecostante = valore;
Es.: Const pi=3.14;
risposta=‘si’;
• Le costanti di tipo alfanumerico vanno chiuse tra apici.
![Page 4: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/4.jpg)
Dichiarazione di variabile
• VAR nomevariabile:tipo;
• Es.: VAR a:integer;
b:real;
c:char;
nome:string;
cognome:string[30];
![Page 5: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/5.jpg)
Tipi di variabile
• Char: il tipo char è un singolo carattere alfanumerico.
• String: il tipo string è una serie di caratteri alfanumerici di lunghezza qualunque tra 1 e 256 elementi.
• String[n]: è una serie di n caratteri alfanumerici.
![Page 6: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/6.jpg)
I commenti
• Nel programma Pascal potete inserire dei commenti vostri, degli appunti per chiarimento al programma.
• I commenti si scrivono tra parentesi graffe.
• Es.: Var eta:integer; {età della persona}
![Page 7: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/7.jpg)
Funzioni matematiche
• A:=sqr(x); {restituisce il quadrato di x}
• A:=sqrt(x); {restituisce la radice quadrata di x}
• A:=round(x); {restituisce l’arrotondamento di x}
• A:=trunc(x); {restituisce il troncamento di x}
esempio:• Sqr(5) = 52=25• Sqrt(25) = √25 =5• Round(3,7) = 4• Trunc(3.7) = 3
![Page 8: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/8.jpg)
Le parentesi
• Con le parentesi si stabilisce quali operazioni si devono eseguire per prima.
• 5+6*2-7 = 5+12-7=10• (5+6)*(2-7) = 11*(-5)=-55• (5+6)*2-7 = 11*2-7=22-7=15• Sqr(4-2)/(3*1) = 22/3 =4/3 = 1.333• Sqr[(4-2)/(3*1)] = [2/3]2 =4/9 = 0.444
![Page 9: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/9.jpg)
Operatori logici
Informatica.
>
<
=
>=
<=
<>
Matematica.
>
<
=
≥
≤
≠
Maggiore
Minore
Uguale
Maggiore o uguale
Minore o uguale
Diverso
![Page 10: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/10.jpg)
Operatori boleani
• And entrambi• Or o l’uno o l’altro o entrambi• Xor o l’uno o l’altro• Not il contrario (non)
• Esempio.• Not (a=b) a diverso da b• Not (a<b) a>b
![Page 11: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/11.jpg)
Istruzioni di i/o
• Input readln(); leggi read();
• Output writeln(); scrivi write();
Esempio Writeln(‘area del cerchio ‘, r * r * 3.14);
![Page 12: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/12.jpg)
Output formattati
• Si impone di quanti caratteri debba essere l’output.
• Write(numero:n); voglio solo n cifre
• Write(numero:n:m); voglio solo n cifre di cui m decimali
• Write(stringa:n); voglio solo n caratteri
![Page 13: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/13.jpg)
Program valutainizio
Chiedi euro,cambio
leggi euro,cambio
Dollari=euro/cambio
Scrivi dollari
fine
![Page 14: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/14.jpg)
Program valuta;Var euro,cambio:real; {dati in input} dollari:real; {dati in output}
Begin
write('Inserisci l’’ importo in euro : ');readln(euro);write('Quale e'' il cambio euro/dollaro ? ');readln(cambio);dollari:=euro/cambio;writeln;writeln('Euro':10, 'Cambio':10,'Dollari':10);writeln(euro:10:2,cambio:10:3,dollari:10:2);readln;
End.
![Page 15: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/15.jpg)
Output formattati
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
e u r o c a m b i o
7, 2 0 1, 3 5 0
![Page 16: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/16.jpg)
Cicli ripetitivi
• Sono strutture che servono a ripetere una serie di comandi
• Per un certo numero di volte
• Controllato da una condizione
![Page 17: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/17.jpg)
Cicli ripetitivi
• Il controllo della condizione si può mettere alla fine delle istruzioni (controllo postcondizionale)
• Oppure all’inizio (controllo precondizionale)
![Page 18: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/18.jpg)
Cicli ripetitivi
• Ripetizione con controllo finale (finchè)• Repeat
– istruzione 1– istruzione n
• Until (cond)
• Ripetizione con controllo iniziale (mentre)• While (cond) do• Begin
– Istruzione 1– Istruzione n
• end
![Page 19: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/19.jpg)
Confronto tre le strutture di ripetizione
condizione
istruzionicondizione
istruzioni
Ripetizione finchèRepeat Until (cond)
Ripetizione mentreWhile (cond) doBegin
end
Esce se vera
Esce se falsa
Falso
Vero
Falso
Vero
Controllo dopo
Controllo prima
![Page 20: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/20.jpg)
Ripetizione postcondizionale
Pseudolinguaggio
• Esegui – Istruzione 1– …..– Istruzione n
• Fino a che (condizione)
Pascal
• Repeat – Istruzione 1– …..– Istruzione n
• Until (condizione)
![Page 21: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/21.jpg)
Ripetizione postcondizionale
esempio Pascal
Repeat Write(inserisci mese);
Readln(mese)
Until (mese>0) and (mese<13);
Ripete la richiesta di un mese finché il numero inserito è tra 1 e 12.
Controlla cioè che non si sia inserito 400 perché in quel caso ripete la richiesta.
![Page 22: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/22.jpg)
Program mese;
Var mese: integer;
Begin
Repeat Writeln(‘inserisci mese’); Readln(mese)Until (mese<13) and (mese>0);
Readln;End.
Mese>0Mese<13
Esce se vera
Falso
Vero
Controllo dopo
inizio
fine
o: mese?
i: mese
![Page 23: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/23.jpg)
Indovina la carta
Carta=M?
Falso
Vero
inizio
fine
Chiedi carta
Leggi carta
Indovinato in i tentativi
M=random(10)
i=i+1
![Page 24: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/24.jpg)
Program indovinacarta; { uso del contatore}
Var n,m,i: integer;
Begini:=0; {inizializzazione del contatore}Randomize;m:=1+random(9); {sceglie numero a caso tra 1 e 10}
Repeat i:=i+1; {incremento del contatore} Write('Quale carta ho scelto tra 1 e 10 ? '); Readln(n)Until (m=n);
Writeln('Hai indovinato con ', i,' tentativi !!!'); {controllo del contatore}Readln;End.
![Page 25: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/25.jpg)
Player A inserisce un numero, Player B lo deve indovinare !
N >0N <11
Falso
Vero
inizio
fine
Player Achiedi N 1..10
Leggi N
M = N
Player Bchiedi M 1..10
Leggi M
![Page 26: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/26.jpg)
Program indovina; {il giocatore A inserisce un numero, B lo indovina} uses crt; { gestisce lo schermo}Var n,m: integer;
Begin
Repeat Write('Giocatore A, inserisci numero tra 1 a 10 : '); {ciclo di controllo} Readln(n) {dell’input}Until (n<11) and (n>0);
Clrscr; { pulisce lo schermo}Writeln; {riga vuota}
Repeat Write('Giocatore B, indovina il numero : '); {ciclo di verifica dell’input} Readln(m)Until (m=n);
Writeln;Writeln(‘ Hai indovinato !!!!!!!!!!!!!!!!! '); {uscita dai cicli }Readln;End.
![Page 27: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/27.jpg)
Esercizio
• Aggiungete un contatore al precedente esercizio con cui CONTARE il numero di tentativi fatti dal giocatore 2.
![Page 28: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/28.jpg)
![Page 29: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/29.jpg)
Program indovina; {il giocatore A inserisce un numero, il giocatore B lo indovina} uses crt; { gestisce lo schermo}Var n,m,i: integer;
BeginRepeat Write('Giocatore A, inserisci numero tra 1 a 10 : '); {ciclo di controllo} Readln(n) {dell’input}Until (n<11) and (n>0);clrscr; { pulisce lo schermo}Writeln; {lascia una riga vuota a video}i:=0;Writeln('Giocatore B, indovina il numero '); writeln;
Repeat i:=i+1; Write(i, ' ^ tentativo : '); {ciclo di verifica dell’input} Readln(m)Until (m=n);
Writeln; Writeln(' Hai indovinato in ',i,' tentativi '); {uscita dai cicli }Readln;End.
![Page 30: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/30.jpg)
Esercizio
• Fate una variante del gioco : si indovina il mese dell’anno in cui si è nati!
![Page 31: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/31.jpg)
Program indovina2; { uso del contatore}uses crt; { gestisce lo schermo}
Var n,m,i: integer;
Begini:=0; {inizializzazione del contatore}Repeat Write(‘ Inserisci un mese (numero tra 1 e 12 ) : '); Readln(m)Until (m<13) and (m>0);clrscr; { pulisce lo schermo}
Writeln;Repeat i:=i+1; {incremento del contatore} Write(‘ Indovina un un mese (numero tra 1 e 12) : '); Readln(n)Until (m=n);Writeln;Writeln(‘ Hai indovinato con ', i, ' tentativi !!! '); {controllo del contatore}Readln;End.
![Page 32: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/32.jpg)
Player A inserisce un numero.Player B indovina il numero.
![Page 33: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/33.jpg)
Media dell’età
i=0
inizio
fine
Chiedi età
Leggi età
Età media = Tot
Tot=Tot+età; i=i-1
Quante persone?
Leggi p
Tot=0; i=p
Tot=Tot/p
![Page 34: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/34.jpg)
Program mediaeta; Var p,i: integer; tot,eta:real;
BeginWriteln(‘ Calcolo dell'' eta'' media ');Write(‘ Quante persone sono? ');Readln(p);tot:=0; {azzeramento del totalizzatore}i:=p; {inizializzazione del contatore}Repeat Write( 'inserisci eta'' : '); Readln(eta); i:=i-1; {decremento del contatore} tot:=tot+etaUntil (i=0);
tot:=tot/p; {calcolo della media}Writeln(‘ L'' eta'' media delle ', p, ' persone e'' : ', tot:5:2);Readln;End.
![Page 35: Informatica 22/03/2012. Operatori matematici + - * / div mod Div: divisione tra interi, ottieni un quoziente intero. Mod: resto della divisione tra interi.](https://reader033.fdocuments.net/reader033/viewer/2022052504/5542eb4a497959361e8b6ba0/html5/thumbnails/35.jpg)
Età media di n persone.