Il software e la programmazione • Concetti base sul software • Elementi di programmazione • Cenni sul linguaggio Pascal Che cosa è il software • Determina ciò che un computer può fare • Include istruzioni memorizzate “elettronicamente” per svolgere determinati compiti → programma, ma non su carta! • Può includere dati, ma i dati da soli non sono software • Software package: un prodotto commerciale che può includere più di un singolo programma ed eventuali dati Informatica Generale (CdL in E&C), A.A. 2000-2001 2 1 Aspetti legali • Copyrighted software: software con diritti protetti legalmente • Licenza software: contratto che definisce i modi di utilizzo del software • Shareware software: software protetto da copyright ma distribuito commercialmente secondo la politica “try before you buy” • Public domain (freeware) software: software il cui autore ha rinunciato ai diritti Informatica Generale (CdL in E&C), A.A. 2000-2001 3 Una classificazione del software Software Software Sistemi operativi di sistema Driver di periferiche Programmi di utilità Compilatori Software Software di applicativo produttività Informatica Generale (CdL in E&C), A.A. 2000-2001 Giochi Software educativo 4 2 Sistema operativo • Ponte fra hardware e software applicativo • Di solito (nei PC) è già “preinstallato” al momento dell’acquisto del computer • Si rende “visibile” tutte le volte che si accende il computer • Manda in esecuzione i programmi, gestisce le risorse fisiche (es., CPU) e logiche (file) Informatica Generale (CdL in E&C), A.A. 2000-2001 5 Programmi di utilità • Software di sistema che aggiunge funzionalità al Sistema Operativo • Certe “utilities” sono acquistate insieme al Sistema Operativo (es. programmi per la formattazione di un floppy disk) • Altre devono essere acquistate separatamente (es. programmi per la protezione dai “virus”) Informatica Generale (CdL in E&C), A.A. 2000-2001 6 3 Programmi “driver” di periferiche • Softare di sistema che istruisce il computer su come utilizzare dispositivi periferici (es. stampanti) • Deve essere installato insieme al dispositivo periferico → già presente nel corredo del S.O. → su CD ROM/floppy di corredo → “download” da rete Informatica Generale (CdL in E&C), A.A. 2000-2001 7 Linguaggi di programmazione • Consentono di scrivere programmi per computer utilizzando istruzioni “vicine” al linguaggio naturale (“English like”) Esempi: C, C++, Java, Pascal, Fortran, Cobol, Basic, …. • Compilazione: traduzione delle istruzioni in un formato accettabile dall’hardware del calcolatore Informatica Generale (CdL in E&C), A.A. 2000-2001 8 4 Programma Pascal per il calcolo dell’IRPEF program irpef(input,output) const S1=15000000; S2=30000000; A1=0.19; A2=0.26; A3=0.33; var tassa,reddito: integer; begin write(‘Inserisci il reddito lordo:); readln(reddito); if reddito <= S1 then tassa:=round(reddito*A1) else if reddito <= S2 then tassa:=round(S1*A1+(reddito-S1)*A2) else tassa:=round(S1*A1+(S2-S1)*A2+(reddito-S2)*A3); write(‘L’’IRPEF lorda ammonta a lire ’, tassa); end Informatica Generale (CdL in E&C), A.A. 2000-2001 9 Assegnamenti variabile := espressione; media := (a+b)/2; i := i+1; Istruzioni condizionali if espressione logica then istruzione; if espressione logica then istruzione else istruzione; if (x mod i = 0) and (y mod i = 0) then mcd := i; if x>y then x := x-y else y := y-x; Informatica Generale (CdL in E&C), A.A. 2000-2001 10 5 Istruzioni iterative for variabile := valore iniziale to valore finale do istruzione; for i := 1 to z do if (x mod i = 0) and (y mod i = 0) then mcd := i; while condizione logica do istruzione; while x<>y do if x>y then x := x-y else y := y-x; Informatica Generale (CdL in E&C), A.A. 2000-2001 11 Tipi di dati • Tipi predefiniti – integer (-231 ÷ 231-1, su macchine a 32 bit) – real (2.225E-308 ÷ 1.797E+308, con 64 bit) – char (‘a’,…,‘z’,‘0’, …,‘9’,‘.’,‘,’,…) – boolean (true e false) • Strutture dati: esempi – array [1..10] of integer – array [1..5,1..5] of real – array [1..30] of char – record giorno: integer; mese: array [1..9] of char; anno: integer end Informatica Generale (CdL in E&C), A.A. 2000-2001 12 6 Definizioni di tipi e variabili • Definizioni di tipi – type stringa = array [1..30] of char; – type data = record giorno: integer; mese: array [1..9] of char; anno: integer end; – type matrice = array [1..5,1..5] of real; • Definizioni di variabili – var i,j: integer; – var x,y,z real; – var oggi: data; – var m: matrice; – var m: array [1..5,1..5] of real; Informatica Generale (CdL in E&C), A.A. 2000-2001 13 Esempio completo di programma Intestazione Parte dichiarativa Parte esecutiva program euclide(input,output); var x,y: integer; begin read(x,y); while x<>y do if x>y then x := x-y else y := y-x; write(‘Il massimo comun divisore e’’’,x); end Informatica Generale (CdL in E&C), A.A. 2000-2001 14 7 Un programma per il problema III (parte I) program min_fra_n(input,output); var i,z,n: integer; var x: array [1..100] of integer; begin read(n); for i := 1 to n do read(x[i]); if x[1]<x[2] then z := 1 else z := 2; for i := 3 to n do if x[i] < x[z] then z := i; write(‘Il minimo e’’’,x[z]); end Limiti del programma ed “errori” possibili Informatica Generale (CdL in E&C), A.A. 2000-2001 15 8