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