laboratorio di informatica - unibas.it...sistema operativo un programma è una sequenza di...

90
LABORATORIO DI INFORMATICA Lezione 4/11/2016 Lezione 11/11/2016

Upload: others

Post on 26-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

LABORATORIO DI INFORMATICA Lezione 4/11/2016

Lezione 11/11/2016

Page 2: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

DefinizionediS.O.Sipotrebbeado2arequellapercuiilS.O.èquelprogrammasempreinesecuzione,ilkernel(nucleo)cioèilcuoredelsistemaso?waredellamacchina

●ilprogrammacheagiscecomeintermediariotral'hardwaredellamacchinael'utentedelcomputerIlSOsifrapponetraidisposiFvifisicieiprogrammiapplicaFviuFlizzaFdagliutenFrealizzandol’astrazionenecessariaperchéiprogrammipossanoprescinderedall’hardwareso2ostanteesipossafornirelorounlivellodiservizicomune

GliobieJvidelS.O.sono:●eseguireiprogrammiutenteesemplificarelasoluzionedei“problemi”dell'utente●rendereil“sistemacomputer”agevoledauFlizzare●sfru2arel'hardwaredelcomputernellamanierapiùefficientepossibile●controllareecoordinarel'usodell'hardwaredapartedeidiversiapplicaFvideidiversiutenF

SISTEMA OPERATIVO

Page 3: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

UnodegliscopifondamentalidelSOèlages(oneefficientedellerisorsediunsistemadicalcolo,intendendoperrisorseiltempodiCPU,lamemoria,idisposiFvidiI/Oecc.NellagesFonedellerisorseilSOdevedirimerequesFonirelaFveallaconfli2ualitàdellerichiestesiadapartedeiprogrammichedegliutenFmantenendosemprealtal’efficienzadelsistema

IprimiSOeranomoltosemplicielalorofunzionesiriducevaadeseguireinsequenzaloJ(batch)dilavoro(job=insiemedilavori)LaconsiderazionecheunsingoloutentenonriesceatenerecostantementeimpegnatalaCPUportòallacreazionediSObatchmulFprogrammaFincuilacoesistenzadipiùlavoriinmemoriaoJmizzal’uFlizzodellaCPUdatochedurantel’a2esadiI/O(lento)dapartediunlavorolaCPUneportaavanFunaltroina2esacheilprimosiaprontoperlesuccessiveelaborazioni

SISTEMA OPERATIVO

Page 4: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

SISTEMA OPERATIVO

Unprogrammaèunasequenzadiistruzionielementarichepossonoessereeseguitedalsistemadielaborazione;ogniprogrammalavorasudiunaseriediinformazionichecosFtuisconol’inputeforniscedeirisulta0chevengonode4output.Unprogrammainesecuzionevienede2oprocesso.Sidefiniscecomeso7warel’insiemedeiprogrammichepossonooperaresulcalcolatore,cioèlacomponentelogicadiunelaboratore,incontrapposizioneallapartefisicade<ahardware.

Ilso?warediunsistemainformaFcovienenormalmentesuddivisoinduecategorie:-So?waredibase:dedicatoallagesFonedellefunzionielementaridell’elaboratore;taleso?warelavoradire2amentesullivellofisico(hardware)dellamacchina;-So?wareApplica0vo:dedicatoallarealizzazionediparFcolariesigenzedell’utenteecheriesceadagiresull’elaboratoresoloconiltramitedelso?waredibase.

Page 5: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

software

applicativo sistema

prog. utilità sist. Operativo

shell kernel

So7wareapplica(vo:Programmiperl’esecuzionedicompiFparFcolari:excel,word,etc;

So7waresistema:Ambienteincuirisiedeilso?wareapplicaFvo

Programmidiu(lità:eseguonoaJvitàfondamentaliperlagesFonedelcomputer,ovveroswcheaumentanolefunzionalitàdelS.O.es:forma2azione,copiadiunfile,etc

SISTEMA OPERATIVO

Lasuccessivaevoluzioneèquelladel Fme sharing (parFzione ditempo) o mul0tasking chea g g i u n g e v a a i s i s t e m imulFprogrammaF a loJ lapossibilità di interazione conl’utente durante la lavorazionedeijob.Nei sistemi Fme sharing la CPUviene dedicata ciclicamente adogni processo inmodo che ogniutente abbia l’impressione didisporre completamente delcomputer.

Page 6: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

6

UFlizzodellaCPUneiprocessi

UFlizzodellaRAM

Page 7: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Shell:(guscio)èriservatalacomunicazionecongliutenFdelcomputer,PromtdelDOS

OggisonofornitetramiteleGUI(GraphicalUserInterface),icone,dialog,comboboxetc.

Lashellèsemplicementeunainterfacciatral’utenteedilkerneldelSitemaOperaFvo.

Kernel:conFenecomponenFso?warecheeseguonolefunzionidibasedelcomputer,coordinamentodellamemoriadimassa,collocazionedeifiletramitecartelleinstru2urede2eadalbero,comeilfilemanager

Ilkernelècompostodaunaraccoltadidriverdiperiferica,unitàso?warechecomunicanoconicontrollerdelleperiferiche.

Unulteriorecomponenteèilmemorymanager,chehailcompitodicoordinarel’uFlizzodellamemoriaprincipaledelcomputer.

SISTEMA OPERATIVO

Page 8: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Lamemoriacentrale,similmenteall’unitàdielaborazione,èunarisorsadisistemageneralmentescarsa,dasuddivideretraivariprocessiincompeFzione.IlsistemaoperaFvodevequindioccuparsidelmodoincuiisingoliprogrammioccupanolamemoria,inmodocheogniprocessoabbial’illusionediunarisorsamemoriavirtualmenteinfinita.Inrealtà,lamemoriacentraleèpiu2ostodeficitariarispe2oalleesigenzedelprocessoodeiprocessichevoglionoandareinesecuzione;diconseguenzavienecaricatainmemoriacentralesolounapartediprogramma,mentreilrestopermanenellamemoriasecondaria.

Quandoilprocessorerichiedeulterioriistruzionivienecaricataun’altrapartedelprogrammaecosìviafinoadesaurireilprogrammastesso.InquestomodogliutenFlavoranocomeseavesseroinmemoriacentraletuJiprogrammidalororichiesFvedendounamemoriamoltopiùgrandediquellarealede2a,appunto,memoriavirtuale.Ladimensionedellapartediprogrammadatenereinmemoriacentraleèunparametrocri(co:unapiccolaquan(tàrichiederebbemol(trasferimen(dallamemoriasecondariaperterminarel’esecuzione,mentreunagrandequanFtàdiminuirebbeilnumerodeipossibiliprocessipresenFinmemoria.

Page 9: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

• Perpoterorganizzarecorre2amentel’enormemoledidaFchepuòesserecontenutanellamemoriadimassasiricorreadunaunitàastra2adimemorizzazionede2afile;unfileèunasequenzadicaraJericheraggruppaunaseriedida(omogenei,comeleistruzionidiunprogrammaoiltestodiunarelazione.L’insiemediprogrammidelsistemaoperaFvochesioccupanodellagesFonedellamemoriasecondaria,siadalpuntodivistalogicochefisico,vienequindide2ofilesystem.• Scopoprincipalediunfilesystem,dalpuntodivistadell’utente,èquellodiconsen0reunaorganizzazionelogicadeivarifileraggruppandolisecondocriteristabiliFdall’utentestesso.Unfilesystemdeve,inoltre,dareanchelapossibilitàdiassociareadognifileunnome,devegesFrelacorrispondenza fra talenomee laposizionefisica realmenteoccupata (indefiniFva trasformare leoperazionilogichesufileinoperazionifisichesublocchidimemoriadimassa),fornendogliopportunimetodiperaccedereaidaFinmododaoJmizzareitempidireperimentodelleinformazioni;deve,infine,gesFredeimeccanismidiprotezionedellariservatezzadeidaFelospazioliberoderivantedafilecancellaF.• Ilmodoincuiunfilesystemorganizzaivaridocumen0contenu0all’internodellamemoriadimassapuòesserespiegatoricorrendoalparagonedeicontenitori.Immaginiamoche lamemoriasecondariasiaungrandecontenitoredoveriporre inmodoordinatoalcunioggeJpresenFinunacamera(ifile);all’internodiquestocontenitorepossonotrovarepostoaltricontenitoripiùspecifici:adesempio,unoperigiochi,unoperglioggeJdicancelleria

Page 10: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Ilcontenitoreprincipaleprendeilnomediradice(root),mentreglialtricontenitorivengonodeJdirectoryelalorodipendenzagerarchicapuòessereevidenziatadaquellachesichiamastru<uraadalbero.

Page 11: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Normalmente,perspecificareilFpodifile,sifausodiquellachevienede2aestensione;l’estensioneèungruppodicara2eri(usualmente3)chesegueilnomedelfileedèseparatodaquestodaunpunto.Talicara2erispecificano,tramiteuncodice,ilcontenutodeldocumento;fileconestensione.COMo.EXEconterrannodeiprogrammi,altriconestensione.DOCdeidocumen0genera0dalprogrammaWordecosìvia(lasuccessivatabellariportaalcunedelleestensionipiùcomuni).

/docx

Page 12: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Programma di bootstrap

Sistema Operativo

ROM

RAM

Il programma di bootstrap dirige il trasferimento del sistema operativo nella memoria principale e poi trasferisce a questa il controllo

Il programma di bootstrap viene eseguito quando accendiamo il computer

L’avvio del sistema operativo si attua per mezzo di una procedura detta bootstrap che il computer esegue ogni volta che viene accesso. Questa procedura trasferisce il sistema operativo dalla memoria di massa (HD) in quella principale (RAM).

SISTEMA OPERATIVO

Page 13: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

13

IlTermineBasicInput-OutputSystemoBIOSèuninsiemedirouFneso?ware,generalmentescri2esuROM,FLASHoaltramemoriaRAMnonvolaFle,chefornisceunaseriedifunzionidibaseperl'accessoall'hardwareealleperifericheintegratenellaschedamadredapartedelsistemaoperaFvoedeiprogrammi.NeiprimiPCIBMilBIOSsupportavatu2eleperifericheeilDOSfacevacompletoaffidamentosudiessoperleoperazioniabassolivello,maconl'evoluzionetecnologicasuccessivalecapacitàoffertedallerouFnedigesFonedelBIOS(all'epocanonaggiornabili,perchéscri2einROM)divennerorapidamenteinsufficienF.A2ualmenteimodernisistemioperaFvi(AdesempioWindowsoLinux)nonusanopiùilBIOSperlelorooperazionidiI/Omaaccedonodire2amenteall'hardware.IlBIOSèscri2odisolitonellinguaggioassemblynaFvodellafamigliadiCPUuFlizzata.A2ualmenteilBIOSdeiPCèscri2osumemorieEEPROMriscrivibili,quindipuòesseremodificatoeaggiornato:generalmenteicostru2orime2onoadisposizionenuoveversionidiBIOSpercorreggeredifeJoaggiungeresupportoaperiferichehardwarenonprevisteinizialmente.L'operazionediaggiornamentovaeseguitaconcautela,perché,senonvaabuonfine,peresempioacausadiunblackout,puòrenderelaschedamadreinuFlizzabile.BIOS:richiamoallaparolagrecaβιος(bios)vita.

Page 14: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Programma:insiemestaFcodiistruzioni.

Processo:AJvitàdinamicalecuiproprietàcambianoconilpassaredeltempo.IlprocessoFenetracciadellostatocorrentedell’aJvità,ovveroèunafotografiaistantaneadelcomputerinquelmomento.

LeaJvitàassociatealcoordinamentodeiprocessisonogesFtedalloscheduleredaldispatcher,chefannopartedelkerneldelSO.

LoschedulerFenetracciadeiprocessiinternidelsistema,neaggiungenuovierimuovequelligiàterminaF.(tabelladeiprocessi).

Dispatcher:verificacheiprocessisianorealmenteeseguiFassegnandoundatotempoperciascunodiessi(50msecperogniquantoditempo),allafinediognitempovieneinviatounsegnalediinterrupt.L’effe2oèquellodiinterromperemomentaneamenteilprocesso(comequantosileggeunlibro)inmododaeseguiresempreilprocessoconlaprioritàpiùalta!

Uninterruptèunsegnaleinviatodauncontrollerperrichiederel'a2enzionedapartedellaCPUmentreèinesecuzioneunaltroprocesso

SISTEMA OPERATIVO

Page 15: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

UncompitoimportantedelsistemaoperaFvoèl’assegnazionedellerisorsedelcomputeraiprocessi.

1)  Ilfilemanager:assegnal’accessoaifileelospaziodeldiscoperlacreazionedinuovifile

2)  Ilmemorymanager:assegnalospazioinmemoria

3)  Loscheduler:assegnalospazionellatabelladeiprocessi.4)  Ildispatcher:assegnaleporzioniditempoperciascunprocesso

Esistonomol(problemiinsistemiprogeJa(inmodosoddisfacente.Ricordatesempreche“almomento”uncomputernonpensamaeseguesolamentedelleistruzioni;pertantopercrearesistemiopera(viaffidabilidobbiamosvilupparealgoritmiaffidabilichetraJanoqualunqueproblema,apar(redalquellopiùelementare

SISTEMA OPERATIVO

Page 16: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

16

ImmaginiamodiuFlizzareunamacchinacuiècollegataunasolostampante:QuandounprocessodevestamparechiedealS.O.l’uFlizzodeidriversdellastampante:

Printer free?

SI No

MeJina2esafinoaquandolastampantenonèpronta

Stampa

SipossonouFlizzaredeiflag(bandieruole)1(impegnata)e0(libera)PeruFlizzarequestoprocessosonoindipensabilinumeroseistruzionimacchinacheperlaloroesecuzionerichiedonouncertotempodiesecuzione>interrupt

Page 17: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

17

IlrisultatoèchedueprocessiuFlizzanocontemporaneamentelastampante.UnasoluzionepotrebbeesserequelladiuFlizzaredeisemaforicheaJvanoodisaJvanogliinterruptmentrevieèqualcosainesecuzione,unsistemadiquestoFpoèmoltoanalogoaisistemiuFlizzaFinferrovia.Unaltroproblemanell’assegnazionedellerisorseèlostallo:Ovveronessunodeidueprocessivainesecuzioneperchéa2endel’assegnazionedellerisorsedesFnateall’altro.EssisipossonoverificaresolosesonosoddisfaJetrecondizioni:

1)CompeFzionetrarisorse2)Lerisorsesonorichiestesubaseparziale(ovveronepuòchiederealtreinunsecondomomento)3)Unavoltacheèstataassegnata,nonpuòessererimossaforzatamente

Page 18: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

18

Laragioneperevidenziarequestetrecondizionièchelostallopuòessererisoltorimuovendounadelletre.

Amministratoreeliminaunodeiprocessi(kill)

Page 19: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

IL PROMPT DEI COMANDI •  MS-DOS è l'acronimo di "Microsoft - Disk Operating

System“ •  Il primo di una lunga serie di sistemi operativi della

Microsoft •  E’ un sistema operativo commercializzato dal giugno

1982 al 2001 •  Fino alla commercializzazione di Microsoft Windows

95, MS-DOS è stato il sistema operativo per personal computer più diffuso al mondo.

Page 20: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

20

MSDOS(Microso?DiskOpera0ngSystem)ènatopericomputerdellaserieIBM(ecompaFbili).QuesFcomputersonobasaFsuiimicro-processoriprodoJdaIntel.

L'IBMPCfùprodo2onel1981,aveva640KdiRAM,uninterfacciaacasse2eedillinguaggioBASICinROM,ilmicroprocessoreeraun8088dell'Intel,elamemoriaeralimitataa1Mbyte,dicui640KdiRAM,eglialtririservaFperleperiferichehardwarecomeschedegraficheedespansioni.Ilprocessore8088eraad8bitprocessor,ilsuoclockeraa4.77Mhz.Insiemeconl'IBMPCfuintrodo2ol'MSDOS(prodo2odallaMicroso?,edispiratoalCP/MdellaDigital),cheancoranonsupportavalastru2uragerarchicadelledirectory.Nel1984IBMiniziaacommercializzarel'IBMAT(AdvancedTechnology),basatosulIntel80286a16bit,ad8MHz.Nel1987esconoiprimiPCbasaFsull'Intel80386(prodoJdaCompaq)a32bit.MSDOS,seppurnotevolmenteaggiornato,presentaisuoilimiF,inparFcolareperlagesFonedellamemoriaelamancanzadiuninterfacciagrafica.Sumacchinebasatesul80386(esuisuccessivi80486eprocessoridellafamigliaPenFum)possonogirarealtrisistemioperaFvi:Windows3.1(semprebasatosuMS-DOS),OS-2edUnix.Afine1994esceunUnixfreepericomputerconprocessoriIntel(LINUX),nel1995Microso?rilasciaunnuovosistemaoperaFvoa32bitcompletamenteindipendentedalDOS:Windows95.Ilsuo"fratellomaggiore",piùorientatoallereF(edinparteispiratoadUnix)WindowsNTèdisponibiledal1994.

Page 21: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

21

LaparteprincipaledelsistemaMSDOSècontenutaintrefile:MSDOS.SYSIO.SYSCOMMAND.COMIO.SYSsioccupadelrapportoconl'hardwareeconFeneidriverperleseguenFperifericheconsoledisplayetasFerastampantecomunicazioneserialeclockbootdiskdriveMSDOS.SYSsioccupadelrapportotraMSDOSeleapplicazioni.GesFscequindi:organizzazionedifileerecordorganizzazionedellamemoriainputandoutputdeicara2eriesecuzionedeiprogrammiCOMMAND.COMèilprogrammadelloshell,interpretaicomandiinviaFdall'utente,presentailprompt,econFeneicomandiinterni.Undische2odoveèpresenteilsistemaMSDOSdevecontenerequesFtrefile.IlrestodelsistemaoperaFvoconsisteinunaseriediuFlityocomandiesterni.

Page 22: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

•  Come praticamente tutti i sistemi operativi per personal computer del periodo, l'MS-DOS era un sistema operativo monoutente e monotask •  La digitazione dei comandi consente di eseguire

attività nel computer senza utilizzare l'interfaccia grafica di Windows •  Viene generalmente utilizzato solo dagli utenti

più esperti. •  Nonostante oramai sembri vecchio e superato dai

nuovi e potenti sistemi operativi, Dos ancora oggi può risultare utile

Page 23: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

•  Il termine prompt dei comandi è riferito alla parentesi angolare chiusa ‘>’ che indica che l'interfaccia della riga di comando è pronta per accettare comandi

•  Tutto ciò che c’è scritto prima del segno ‘>’ indica la

directory corrente di lavoro •  Esempio: Se all'apertura della finestra del prompt

dei comandi viene visualizzato il prompt: C:\documenti> significa che i comandi che immetteremo verranno eseguiti nella cartella documenti dell’unità C del computer.

Page 24: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

•  PeraccedereallalineadicomandodelDosomeglioallafinestradiWindowscheconFeneilprompt,occorre:•  cliccaresu“Start->Esegui”edigitarecmd• oppurecliccaresu“Start>Programmi>Accessori>Promptdeicomandi”

•  Pervisualizzareunelencodicomandicomuni,dalpromptdeicomandidigitarehelpepremereINVIO•  Primadiimparareicomandi,èimportateconoscerelasintassi

Page 25: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

• OgnicomandoDossiavvalediopzioni(switch)•  Leopzionisonounaseriedicodiciche,aggiunFallafinediciascuncomando,perme2onodiestendernelefunzioni• esempio:del/P(chiedeconfermaprimadieliminareognifile)

•  Perconoscerel'elencodelleopzioni,e'statapredispostaun’opzionegenericachepuo'essereuFlizzatapertuJicomandi:• occorredigitarenelpromptilnomedelcomandoseguitoda/?

•  Esempio:del/?

Page 26: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

ALCUNICOMANDIUTILI:•  cdnome_cartella•  Ilcomandocdperme2edicambiarecartella.• ATTENZIONE:cd..ecd.

•  chdirnome_cartella•  Ilcomandochdircambialadirectorycorrenteenevisualizzailnome

•  chkdsk•  Ilcomandochkdskverificaildiscoevisualizzaunarelazionesulsuostato.

Page 27: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

•  copy •  Il comando copy permette la copia di file o

gruppi di file. •  del nome_file •  Il comando del elimina uno o piu' file.

•  rd nome_cartella •  Il comando rd elimina uno o piu' directory.

•  dir •  Il comando dir visualizza l'elenco dei file e delle

sotto directory di una directory.

Page 28: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

• mkdir•  ipconfig•  Ilcomandoipconfigperme2ediconoscereilproprioindirizzoIP,quellodelSUBNETMASKedelGATEWAY.•  Ilcomandomkdircreaunanuovadirectory

•  edit•  IlcomandoeditavviaMS-DOSEditorpercreareomodificareifileASCII

• move•  Ilcomandomovespostafileocartellesuunnuovopercorso.

Page 29: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

•  type•  Ilcomandotypevisualizzailcontenutodiunfileditesto.

•  cls•  Ilcomandoclscancellailcontenutodellaschermata.

Cara2eriJolly•  Perme2onodiriferirsiapiùfilecontemporaneamente.•  CosFtuisconounostrumentoperspecificareparzialmenteunnomedifileinmodotalechepiùfilecorrispondanoallespecificheenunciate.•  Esistonoduediversicara2erispeciali:‘*’e‘?’• “*”sosFtuisceintereparoleogruppidicara2eri• Ades.*.BAT;LET*.DOC;PIPPO.*;*.*

Page 30: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

•  Ilcara2ere‘?’sosFtuisceunsingolocara2erenellaposizioneincuivieneinserito•  E’possibileinserirepiùcara2eri“?”:• ades.???.*(visualizzatuJifileconunnomedi3cara2eriequalunqueestensione);•  LETT?RA.TXT(visualizzaades.ifileLETTERA.TXTeLETTURA.TXT).

•  Terminareunaesecuzione:•  Sesivuolebloccarel’esecuzionediuncomando,ènecessariopremereitasF

“CTRL”+“C”contemporaneamente.•  Ilcomandononpuòriprenderel’esecuzione

Page 31: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

31

•  Alcuni tasti utili: •  tasto F3: scrive sul prompt l'ultimo comando

eseguito, senza però eseguirlo. •  tasto F7: visualizza la cronologia dei comandi

scritti precedentemente nel prompt. I comandi si possono riutilizzarli senza doverli scrivere. •  tasto F8: scorre i comandi eseguiti a ritroso,

partendo dal più recente. Se prima di premere F8 si digitano alcuni caratteri vengono mostrati solo i comandi che così iniziano. •  tasto tabulazione: completamento automatico

del comando

Page 32: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

32

FILE BATCH •  Un file di testo contenente una sequenza di

comandi interpretabili dal prompt dei comandi si chiama file batch •  Il prompt dei comandi esegue ad uno ad uno i

comandi elencati nel file. •  Nei sistemi Unix, i file batch si chiamano shell

script •  I comandi batch di MS-DOS devono avere

estensione .bat •  Percreareunfilebatch:• avviareuneditorditesto(adesempioBloccoNote)•  inserireicomandinell’ordineincuivogliamosianoeseguiF•  salvareilfileconnomeconestensione.bat•  lanciareloscriptdalpromptdeicomando

Page 33: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

•  Percreareunfilebatch:• avviareuneditorditesto(adesempioBloccoNote)•  inserireicomandinell’ordineincuivogliamosianoeseguiF•  salvareilfileconnomeconestensione.bat•  lanciareloscriptdalpromptdeicomando

•  Comandiprincipali:LINUX• man:manualecomandi•  ls:perelencareilcontenutodiunadirectory•  cd:perspostarsiall'internodelledirectorydelfilesystem• mkdir:percrearedirectoryall'internodelfilesystem•  cp:percopiarefileodirectory•  rmermdir:percancellarefileodirectorydalfilesystem.

Page 34: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

cd\ (porta in C: ) cd nome_cartella “cambia directory” cd.. “Riporta alla percorso precedente” dir “esegue il listato dei file contenuto nella cartella” mkdir nome_cartella “crea una cartella nuova” del nome_file “cancella un file” help “listato delle istruzioni”

La shell di DOS istruzioni fondamentali:

34

Page 35: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

35

ComandiprincipaliUncomandohaunasuasintassiossiahadelleregoleprecisecheperme<onoalDOSl’esa<ainterpretazionediquantovogliamofare.Lasintassivieneindicataintalmodo:<nomecomando>[parametri][opzioni]sinoFchesièusato<>e[];leprimeindicanol’obbligatorietàdiquellochecontengono,lesecondeinvececiinformanocheilcampoèopzionale.SinoFanchecheicampisonoseparaFdaspazi.TuJicomandihannoun’opzionesempredisponibile“/?”.Essafornisceunaiutoinlineadelcomandostesso.

Page 36: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

36

DIRVisualizzal'elencodeifileedelleso2odirectoryinunadirectory.SintassiDIR[unità:][percorso][nomefile][/P][/W][/O[[:]ordinamento]][/S]

[/B][/L][/V]Parametriunità:Specifical’unitàdicuisidesideravisualizzarel’elenco.percorsoSpecificaladirectorydicuisidesideravisualizzarel’elenco.nomefileSpecificailfileoilgruppodifiledicuisidesideravisualizzarel’elenco.Opzioni/PVisualizzal’elencounaschermatapervolta.Perpassareallaschermatasuccessiva,èsufficientepremereuntasto./WVisualizzal’elencoinformatoampio,elencandofinoacinquefileodirectoryperriga./OElencaifilesecondounordinamentospecificato.ordinamentoNPernome(alfabeFco).SPerdimensione(dalpiùpiccolo).EPerestensione(alfabeFco).DPerdataeora(dalpiùrecente).GDirectoryprimadeifile.Prefisso“-“perinverFrel’ordine./SVisualizzaifilenelladirectoryspecificataeintu2eleso2odirectory./BUsailformatosemplice(solonomi,senzaintestazioni)./LUsalele2ereminuscole./VVisualizzazionecompleta.

Page 37: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

37

MDCreaunadirectory.SintassiMKDIR[unità:]percorsoMD[unità:]percorsoParametripercorsoSpecificaladirectorychesidesideracreare.unità:Indical’unitàsucuicreareladirectory.RDRimuove(elimina)unadirectory.SintassiRMDIR[unità:]percorsoRD[unità:]percorsoParametripercorsoSpecificaladirectorychesidesideraeliminare.unità:Indical’unitàsucuieliminareladirectoryspecificata.IlcomandohaesitoposiFvosoloseladirectoryspecificatanonconFenealcunfile.COPYCopiaunoopiùfileinun’altraposizione.SevengonocopiaFpiùfile,MS-DOSvisualizzailnomediciascunfilemanmanochevienecopiato.SintassiCOPYorigine[des0nazione][/V]

Page 38: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

38

FORMATForma2aildisconell’unitàspecificataperacce2areifilediMS-DOS.IlcomandoFORMATcreaunanuovadirectoryprincipaleeunatabelladiassegnazionedeifileperildisco.E’anchepossibilecontrollareleareedanneggiatesuldiscoedeliminaretuJidaFsuldisco.PerconsenFreaMS-DOSdiuFlizzareundisconuovo,uFlizzareinnanzitu2oquestocomandoperforma2areildisco.SintassiFORMATunità:[/V[:e@cheBa]][/Q][/F:dimensione][/S]Parametriunità:Specifical’unitàcheconFeneildiscochesidesideraforma2are.Opzioni/V:eFche2aSpecifical’eFche2adelvolume.Un’eFche2adelvolumeidenFficaildiscoepuòcontenereunmassimodi11cara2eri.Sesiome2el’opzione/VolasiuFlizzasenzaspecificarel’eFche2adelvolume,MS-DOSrichiedel’eFche2adelvolumedopochehaterminatolaforma2azione.Sesiforma2apiùdiundiscouFlizzandoilcomandoFORMAT,verràassegnatalastessaeFche2adivolumeatuJidischi./QSpecificaunaforma2azionevelocediundisco.Tramitequestaopzione,FORMATeliminalatabelladiassegnazionedeifile(FAT)eladirectoryprincipalediundiscoforma2atoinprecedenza,manonesaminaildiscoperverificarelapresenzadiareedanneggiate.SidovrebbeuFlizzarel’opzione/Qperforma2aresolodischigiàforma2aFinprecedenzachenonsonosicuramentedanneggiaF./F:Specificaladimensionedeldiscofloppydaforma2are.UFlizzareunodeiseguenFvaloriper“dimensione”:720indicadischida3,5pollicidicapacità720Kb,adoppiafacciaedoppiadensità;1440indicadischida3,5pollicidicapacità1,44Mb,adoppiafacciaequadrupladensità(ormaiipiùdiffusi).Avvertenza:NonformaJareundiscofloppyinmisuramaggioreaquellastabilita./SCopiaifiledisistemainusoIO.SYS,MSDOS.SYSeCOMMAND.COMdall’unitàdiscodiavviodelsistemasuundiscoforma2atochepuòessereuFlizzatocomediscodiavviodelsistema.

Page 39: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

39

CHKDSKControllaildiscoeneriassumeidaFriguardanFlostato.SintassiCHKDSK[unità:][[percorso]nomefile][/F][/V]Parametriunità:Specifical’unitàdacontrollare.percorsoSpecificaladirectorydacontrollare.nomefileIl/ifiledicuicontrollarelaframmentazione.Opzioni/FCorreggeglierroritrovaFneldisco./VVisualizzailnomeeilpercorsocompletodiognifilecontrollato.NoteDigitareCHKDSKsenzaparametripercontrollareildiscocorrente.CLSCancellaloschermoSintassiCLS

Page 40: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

40

Filebatch·Unprogrammabatchèunfileditesto,ASCII,checonFeneunasequenzadicomandiDOS·Ifilebatchhannoestensione.BAT·IcomandiDOS,all’internodeiprogrammibatch,sonoeseguiFsequenzialmenteQuindiunprogrammabatchèunfileASCIIconunacorrispondenza1a1frarigaecomando.CiòvuoldirecheognicomandodevestareinunarigaecheicomandiverrannoeseguiFnell’ordineincuisonostaFinseriF.IlDOSriconoscecomeprogrammabatchifileconestensione.BAT.Pereseguireunprogrammabatchbastadigitareilnomedelfile(anchesenzaestensione).Unavoltaeseguitoilprogrammabatchilcontrolloritornaall’utente.Percreareilfilebatchsipuòusarel’EDITdelDOS.Nelnostrocasoadesempiopotremodigitare.C:\>EDITSALVA.BATAquestopuntobasteràscriverelelinee:COPYA:*.*C:\LAVORO\OLDCOPYC:\LAVORO\*.*A:\esalvareilfile.

Page 41: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

41

L’harddiskdelcomputerècomeunagrandebiblioteca:setuJilibrifosseromessiallarinfusasenzauncriterio,trovarlisarebbeimpossibile.Aimmagazzinarecorre2amenteidaFsulcomputercipensailFileSystem(diseguitochiamato“FS”percomoditàdiscri2ura).InquestaguidaspiegheremocomescegliereilFSdauFlizzare.QUALISONOIFILESYSTEMEsistonovariFpidiFS:ilprimoepiùuFlizzatonellastoria(cometempodiuFlizzo)èilFAT(FileAllocaFonTable),FAT32aparFredaWindows98.QuestoFSèstatoproge2atoinizialmenteperpia2aformeDOSecelotrasciniamodietrotu2’oggi.QuandoMicroso?halanciatosulmercatoisistemiNT,hasviluppatounnuovoFS,chiamatoNTFS(NTFileSystem)cheimplementavanuovefunzionalitàrispe2oalprecedenteedèpiùindicatopersistemiorientaFallereF.FILESYSTEMESISTEMIOPERATIVIIlFAT32èunFScheètu2’oggiinuso,sebbenelatendenzasiaquellaaprediligerel’NTFS.QuandoinstalliamounsistemaoperaFvoWindows95/98/MElasceltaèobbligata:FAT32.QuandoinveceinstalliamounsistemaoperaFvoWindowsNT/2000/XPèpossibilescegliereilFSdauFlizzare:inquestocasoabbiamosiaFAT32cheNTFS.

Page 42: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

42

FAT32:rappresentaunaversioneavanzatadellaFATchepuòessereuFlizzatacondischirigidida512MBa32GB,edoffrelacompaFbilitàcontuJisistemioperaFvi.NelcasolaparFzionesiapiùgrandedi2GBuFlizzareFAT32;SelaparFzionesuperai32GBbisognanecessariamenteuFlizzarel'NTFS.NTFS:sicuramenteraccomandatoperuFlizzareWindowsXP,presentatu2elepotenzialitàdibasedellaFATconinpiùiseguenFvantaggi:-maggiorsicurezza,-migliorecompressionedisco,-supportopergrandiharddisk,finoa2TB(TeraBytes).

Page 43: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

SVILUPPO DI UN SOFTWARE LE FASI analisi

progettazione

implementazione

test

documentazione

Page 44: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Analisi: L’obiettivo principale è identificare quali servizi il sistema proposto dovrebbe eseguire ed identificare eventuali condizioni di funzionamento. Una volta identificato il probabile utente, si passa a formare l’insieme dei requisiti che il nuovo sistema dovrà soddisfare (es: accesso dei dati ad un numero limitato di utenti) Progettazione: Mentre l’analisi si concentra su ciò che il sistema deve fare, la progettazione si focalizza sul modo in cui il software raggiungerà questi obiettivi. E’ in questa fase che viene decisa la struttura del sistema software Implementazione: effettiva scrittura del programma, processo di tipo top-down, in cui vengono sviluppati i singoli moduli e poi combinati. Test: Il processo di testing avviene in due forme 1) la prima, chiamata test di validazione, serve a confermare che il sistema implementato sia conforme ai requisiti e alle specifiche identificati nella fase di analisi. 2) test degli errori, individuazione e correzione degli errori. Attualmente viene immessa nel mercato una versione chiamata beta testing: i vantaggi sono duplici: verificare il funzionamento corretto del sistema e strategie di mercato tramite il giudizio dei clienti.

Page 45: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

I primi approcci all’ingegneria del software insistevano sull’esecuzione strettamente sequenziali delle fasi di analisi, progettazione, implementazione e test. Ovvero si attendeva il completamento della fase precedente, prima di passare a quella successiva il modello era di tipo a cascata. In anni recenti in contrapposizione al modello a cascata si è sviluppato il modello incrementale, in tale modello vengono di volta in volta aggiunti nuovi componenti, ovvero la versione iniziale è una versione semplificata del modello finale. I sistemi operativi open source (sorgente aperta) sono di tipo incrementale es LINUX XP (extreme programming) sono l’evoluzione del modello a cascata, secondo il quale tale modello viene sviluppato da un team di max 10 persone

Page 46: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Ciclo di vita del software Il ciclo di vita illustrato in basso mostra come il software, una volta sviluppato, entri in un ciclo di uso e modifica continua per il resto della sua esistenza. Il software al contrario di altri prodotti industriali non si consuma, ma passa ripetutamente dalla fase di modifica, poiché tramite il suo utilizzo si scoprono errori non previsti o si modifica in base alle esigenze

sviluppo uso

modifica

Page 47: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Paradigma di programmazione: Con il termine paradigma si intende un insieme di regole, procedure utili al processo di programmazione: I due paradigmi fondamentali sono il paradigma procedurale: secondo il quale la programmazione consiste in una sequenza di comandi che, una volta eseguiti dalla macchina elaborano i dati per produrre il risultato desiderato. E’ compito del programmatore trovare un algoritmo per risolvere un dato problema ed esprimerlo poi come sequenza di comandi Paradigma ad oggetti: E’ il paradigma secondo il quale oggi si sviluppano programmi OOP (Object-oriented programming). Secondo quest’approccio un sistema software è considerato come una collezione di unità chiamate oggetti ognuna delle quali può eseguire di immediato interesse per sé ma anche inviare richieste di azioni agli altri oggetti. Tutti insieme collaborano interagendo per svolgere l’elaborazioni richieste. Le icone che compaiono nel programma saranno implementate come oggetti, ognuno dei quali comprende le procedure chiamate metodi. L’intero programma ha la forma di un insieme di oggetti in grado di rispondere agli eventi causati dall’utente.

Page 48: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

In linea generale senza entrare nel dettaglio un oggetto può essere costituito da dati e da un insieme di metodi per l’esecuzione di determinate attività (es. elenco di nomi, inserimento di nuovi nomi). La descrizione dei dati e dei metodi di un programma sono raccolte in un’unità di programma detta classe. (immaginiamola come una estensione di un struttura, solo che al suo interno sono presenti anche procedure). Dopo che una classe è stata costruita, essa può essere riutilizzata ogni volta che occorre un oggetto con quelle caratteristiche. I fautori di questo paradigma sostengono che esso fornisca un ambiente naturale per un approccio allo sviluppo del sw fondato sull’aggregazione di componenti. Poiché le procedure all’interno di un oggetto sono delle piccole unità di programma procedurale, la maggior parte dei linguaggi orientati ad oggetti sono una estensione dei linguaggi procedurali conosciuti, ad esempio C++ è stato sviluppato aggiungendo funzioni orientate ad oggetti al linguaggio procedurale C.

Page 49: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

IlprogrammaècosFtuitodanclassiInciascunaclassevengonorealizzateleprocedure

L’eseguibileècosFtuitodanbo2oni,ciascunodeiqualirichiamaunadeterminataclasse.LaclassemaininqualchemodososFtuisceilmainnelC

I percorsi della programmazione sono percorsi che tendono ad emulare il pensiero umano…..concludiamo questo corso lasciandoci con qualche domanda:

Page 50: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Strutture dati: Array (vettore) Gli array, sono tipi di dati omogenei, che utilizzano variabili indicizzate e permettono la rappresentazione di un gran numero di dati. I programmi spesso usano dati omogenei: per esempio, volendo elaborare alcuni voti (esempio la media dei voti) è possibile dichiarare quanto segue: int voto0, voto1, voto2; e servirsi di queste variabili per calcolarne il valore medio Se il numero di voti è grande, l’utilizzo di identificatori unici diventa pesante e poco funzionale. Un array può essere pensato come una variabile indicizzata. Lo stesso risultato della dichiarazione precedente viene rappresentato tramite array come: int voto[3]; // viene riservato dal compilatore uno spazio di tre variabili

voto[0] ; voto[1]; voto[2];

Page 51: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

N.B. Onde evitare che il programma inserisca dei valori a caso all’interno dei vettori, è buona norma inizializzare sempre il vettore nella seguente maniera: Int voto[3]={0, 5, 10} N.B: l’indice iniziale dell’array è sempre 0 Il richiamo non può che essere ad una riga di excel: In questo caso l’indice della casella è una lettera

0 5 10

i=0

i=1

i=2

0 5 10

Page 52: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

52

Sichiamamatricemxn(de2aanchematricereJangolare).GlielemenFsonoElemenFcomenumeriperi=1,2,3,…,mej=1,2,3,…,n.LamatriceApuòessereancheindicatasinteFcamentecon.

MatriciedeterminanF

Page 53: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

53

DuematricimxnA=eB=sonougualisehannoglistessielemenFnelleposizionidirigaecolonnacorrispondenF,ovvero:FralematricimxnA=eB=sidefiniscelasommanelseguentemodo:

ovverofacendolasommadeglielemenFdelleduematricinelleposizionidirigaecolonnacorrispondenF.Esempio:Esistelamatricenulla0cosFtuitadatuJ0:

Page 54: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

54

FralamatricemxnA=elamatricenxpB=sidefiniscelamol(plicazionenelseguentemodo:Esempio:Sichiamadeterminante(detA)diunamatricequelnumeroassociatoallamatricestessa.Percalcolareildeterminantediunamatriceènecessariochelastessasiaquadrata,ovverocheilnumerodirighesiaugualealnumerodicolonne

Page 55: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

55

-1- determinantediunamatrice2x2

-2- determinantediunamatrice3x3

PerilcalcolodeideterminaF3x3ritornauFleilseguenteschemagrafico:

partendodall’altoasinistrasioJene1*5*9+2*6*7+3*4*8-7*5*3-8*6*1-9*4*2chedàappuntoildeterminatedellamatrice3x3.

Page 56: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

56

SiaAunamatricenxn.Essaèinver(bile,ovveroesistelamatriceinversa,seesolosedetA≠0.Inquestocasosiha:Ilrichiamodiunamatriceèadexceldovelecolonnesonolele2ereelerighesonoindicatedanumeri.(Ilvideoèunamatrice1280x800)

MATR.determinanteMATR.prodoJoMATR.inversaSonolefunzioniinexcel

Page 57: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

GRAFI Le strutture dati esaminate fino ad ora sono strutture di tipo lineare, ovvero ogni elemento della sequenza ha un successore ed un predecessore, eccetto per il primo ed ultimo. E’ possibile però pensare a qualcosa di più generale, in cui la relazione tra gli elementi della struttura non sia lineare. Utilizzeremo il termine nodo con il significato di elemento, ed il termine arco per indicare la connessione tra due nodi.

nodo arco

Algoritmi

Page 58: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Grafi: definizioni principali Un grafo G è un oggetto matematico definito come una coppia ordinata G = (V,A), dove V= {v1, …, vn } è l’insieme dei vertici (o nodi, o punti) ed A è l’insieme degli spigoli (o archi, o lati). Un grafo si dice orientato se l’arco presenta un verso. Un cammino C in un grafo G è una sequenza di archi (v0,v1)…(vn-1,vn) Con v0 vertice iniziale,vn vertice finale. Un grafo si dice connesso se per ogni coppia di nodi, esiste sempre un cammino che li connette.

Algoritmi

Page 59: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

GRAFI 1 2

4 3

Grafo Connesso

Un ciclo è un cammino chiuso, cioè un cammino in cui il vertice iniziale e quello finale coincidono.

4 3

5 6

1 2 Gli archi (1,3),(3,4),(4,5), (5,6) formano un cammino

Gli archi (1,2),(2,3),(3,1) formano un ciclo

Algoritmi

Page 60: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

GRAFI

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

1010000000010110

Forme matriciali per la rappresentazione di grafi nei calcolatori. Dato un grafo G(V,A) con |V|=n, si definisce la matrice di adiacenza di G, la matrice (n x n) così ottenuta:

2 4

1 3

1 se (i,j) appartiene a G

0 altrimenti

Algoritmi

Page 61: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

ALBERI

Gli alberi sono estremamente importanti per quel che concerne le applicazioni, soprattutto nel campo informatico, in molti casi il fatto che la struttura dei dati sia rappresentata da un albero garantisce una soluzione efficiente che altrimenti sarebbe impossibile. Definizione: Un Albero è un grafo connesso senza cicli.

1

2

5 6

3 4

7

Algoritmi

Page 62: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

TEOREMA: CONDIZIONE DI EQUIVALENZA DI UN ALBERO 1)  G è un albero. 2)  G non presenta cicli, ma se un qualsiasi nuovo arco viene

aggiunto, allora si forma un ciclo. 3)  Dati due qualsiasi nodi di G esiste un unico cammino che

connette i due nodi. 4)  G è connesso, ma se un qualsiasi arco viene eliminato , allora il

grafo risulta non connesso.

Un albero si dice binario se ogni nodo ha al più due sottoalberi, anch’essi binari

Algoritmi

Page 63: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

ALGORITMI SUI GRAFI INTENDIAMO AFFRONTARE IL PROBLEMA DELLA VISITA DI UN GRAFO, PARTENDO CIOÈ DA UN QUALUNQUE NODO, VOGLIAMO PASSARE PER TUTTI GLI ALTRI NODI DEL GRAFO. SE CHIARAMENTE SAPPIAMO RISOLVERE IL PROBLEMA DELLA VISITA, SAPPIAMO ANCHE RISOLVERE IL PROBLEMA DELLA CONNESSIONE DI UN GRAFO. INFATTI SE L’ALGORITMO HA VISITATO TUTTI I NODI DI DEL GRAFO, ALLORA POSSIAMO CONCLUDERE CHE IL GRAFO RISULTA CONNESSO. VENGONO PROPOSTI DUE METODI: VISITA IN PROFONDITÀ E VISITA IN AMPIEZZA.

Algoritmi

Page 64: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

VISITA IN PROFONDITÀ

Questa strategia studiata agli inizi degli anno 70 era gia stata introdotta nel diciannovesimo secolo come un algoritmo efficiente per l’attraversamento dei labirinti. (Matematica ricreazionale consultare Lucas [1882], Tarry[1895]). Consideriamo il seguente grafo:

La visita in profondità esplora il grafo in modo che il nuovo vertice da visitare è sempre scelto adiacente all’ultimo possibile dei vecchi vertici:

1

2 3

4

5 1

2 3

4

5

Algoritmi

Page 65: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

VISITA IN AMPIEZZA La visita in ampiezza esplora il grafo in modo da testare tutti i vertici adiacenti a quello preso in esame:

1

2 3

4

5

Teorema: E’ sempre possibile visitare un grafo di m archi in profondità con una complessità O(m)

Teorema: E’ sempre possibile visitare un grafo di m archi in ampiezza con una complessità O(m)

Teorema: L’algoritmo visita passa attraverso tutti i nodi del grafo se e soltanto se il grafo è connesso.

Algoritmi

Page 66: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

PROBLEMA DEL CAMMINO MINIMO Il problema che si cerca di affrontare riguarda una parte importante della teoria dei grafi e più in generale riguarda l’ottimizzazione combinatoria: Consideriamo due città A e B e immaginiamo che esitano diversi itinerari per raggiungere B partendo da A. Modelliamo questa situazione usando un grafo pesato, ovvero un grafo ai cui archi associamo un valore reale compreso tra (0, +∞). Ci chiediamo qual è il cammino di distanza minima tra A e B? Dato un grafo pesato G=(V,A,P). Definiamo costo da un nodo w ad un nodo z la somma dei pesi degli archi per andare da w a z. Si assegni il valore di infinito ad ogni coppia di nodi che non forma un arco. Chiamiamo il nodo iniziale con s

Algoritmi

Page 67: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Algoritmi

Algoritmo: Partendo dal nodo sorgente cominciamo a determinare un cammino minimo a partire dal nodo più vicino a quello sorgente. Al generico passo immaginiamo di aver già determinato i cammini minimi per un insieme di nodi chiamato I. Con D indichiamo il vettore per memorizzare il costo D[v]. Alla fine prenderemo il Min di D[v].

Start: I={s}; D{s}=0; for “ogni v V-{s}” do D[v]=P(s,v); while(I≠V) { w V-I tale che D[w] è minimo; aggiungi w I for ”ogni v V-I” do D[v]= Min(D[v], D[w]+P(w,v)); }

Page 68: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

L’algoritmo appena illustrato prende il nome di algoritmo di Dijkstra [1959] Teorema: L’algoritmi di Dijkstra determina il cammino minimo da un nodo sorgente a tutti gli altri nodi del grafo con una complessità O(n2).

s v1

v2

v4

v3

8

32

12

912

0 s - - 8 3 ∞ ∞

1 s,v2 v2 3 8 3 5 15

2 s,v2,v3 v3 5 6 3 5 14

3 s,v2,v3,v1

v1 6 6 3 5 10

4 s,v2,v3,v1,v4

v4 10 6 3 5 10

Iter I w D[w] D[v1] D[v2] D[v3] D[v4]

Algoritmi

Page 69: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

PROBLEMI DI RIDUZIONE Un’ applicazione assai frequente, che vede l’utilizzo delle strutture ad albero è quello della risoluzione dei problemi attraverso il metodo di riduzione. Tale metodo consiste nel ridurre il problema sotto esame in sottoproblemi dove questi al loro volta verranno ridotti in ulteriori sottoproblemi, finché il problema originale è ridotto in sotto problemi di tipo primitivi. Tali strategie vengono applicate nel campo dell’ Intelligenza Artificiale in modo particolare si possono trovare una varietà di problemi nel campo della teoria dei giochi.

A

B C

D E

A Problema da risolvere

C Problema primitivo B, D, E sottoproblemi

Page 70: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

TORRE DI HANOI Il problema delle Torri di Hanoi deriva da una antica leggenda indiana che recita così: «nel grande tempio di Brahma a Benares, su di un piatto di ottone, sotto la cupola che segna il centro del mondo, si trovano 64 dischi d'oro puro che i monaci spostano uno alla volta infilandoli in un ago di diamanti, seguendo l'immutabile legge di Brahma: nessun disco può essere posato su un altro più piccolo. All'inizio del mondo tutti i 64 dischi erano infilati in un ago e formavano la Torre di Brahma. Il processo di spostamento dei dischi da un ago all'altro è tuttora in corso. Quando l'ultimo disco sarà finalmente piazzato a formare di nuovo la Torre di Brahma in un ago diverso, allora arriverà la fine del mondo e tutto si trasformerà in polvere».

1 2 3 1 2 3

Configurazione Iniziale Configurazione Finale

Page 71: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Problema di riduzione per la torre di Hanoi: 1.  Per spostare tutti i dischi sull’asta 3, è necessario muovere il disco C (sez.

maggiore) , ciò impone che l’asta 3 sia vuota. 2.  Il disco C non può essere rimosso fintanto che non vengono rimossi A e B, che

dovranno essere rimossi sull’asta 2. 3.  Portiamo il disco sull’asta 3. Il problema principale è stato scomposto in tre sottoproblemi. 1.  Portare i dischi A e B sull’asta 2 2.  Portare il disco C sull’asta 3 (problema primitivo) 3.  Portare i dischi A e B dall’asta 2 all’asta 3

Page 72: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

72

Si voglia calcolare il valore della seguente formula: con X e Y due variabili reali (per esempio, X=2,7 e Y=0,4), ln(…) è la funzione logaritmo naturale e cos(…) è la funzione coseno (con argomento espresso in radianti):

)1ln(1.3)2.2cos(5.02.0

23

++−=

xyxxyR

Approfondimenti di Excel

Page 73: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

73

Risoluzione dell’equazione di II grado Supponiamo di voler creare un foglio di calcolo che ci consenta di risolvere l’equazione ax2+bx+c=0 con a, b e c costanti date. Come noto, perché l’equazione abbia soluzioni reali, il discriminante Δ=b2−4ac deve essere maggiore o uguale a zero. Conviene quindi calcolare il discriminante:

Page 74: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

74

A questo punto possiamo usare la funzione SE per calcolare le soluzioni: se il discriminante è maggiore o uguale a zero vengono calcolate le due soluzioni (-b±√Δ)/(2a), altrimenti viene scritto il messaggio “non vi sono soluzioni reali”:

Page 75: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

75

I GRAFICI I grafici da usare in Excel, dipendono dai dati che si hanno a disposizione: Tra quelli fondamentali ricordiamo il grafico a dispersione XY, utile per visualizzare i dati su assi cartesiani, come le funzioni etc.

Attraverso il tasto destro del mouse è possibile selezionare i dati e modificarli, di notevole importanza riveste il tasto AGGIUNGI, in modo da inserire nello stesso grafico più funzioni!

Page 76: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

76

Gli Istogrammi Tramite EXCEL® è possibile anche costruire degli istogrammi. Cominciamo con un semplice esempio. Supponiamo di creare una tabella con le spese sostenute da una famiglia in un mese:

Come si vede, a ciascuna voce è stata associata una barra la cui altezza è proporzionale al valore della tabella corrispondente. E’ possibile a questo punto anche cambiare il tipo di grafico, selezionando il grafico e premendo con il tasto destro del mouse. Apparirà un menù a tendina in cui sceglieremo “tipo di grafico”

Page 77: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

77

Avremo una “torta” in cui ogni fetta rappresenta l’incidenza della singola spesa.

Vi è un numero di opzioni molto grande per cambiare sia lo stile del grafico che le sue impostazioni. Non si vogliono qui elencare tutte le possibili opzioni. Lo studente è invitato a consultare i manuali ed ad esercitarsi e a provare personalmente le potenzialità del programma.

Page 78: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

78

Somma tra due matrici e di prodotto righe per colonne. Per esempio si supponga di voler fare la somma A+B. Per fare ciò, poiché il risultato della somma di due matrici 3×3 è ancora una matrice 3×3 occorre, per prima cosa, selezionare un’area 3×3:

Inserire la formula e fare un copia della formula in modo matriciale: occorre premere contemporaneamente ctrl+shift+invio (ctrl+〉+↵). Con questa operazione tutta l’area selezionata sarà interessata dal risultato della formula.

Page 79: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

79

In particolare si possono verificare alcune proprietà generali, per esempio det(A⋅B) = det(B⋅A) = det(A) ⋅ det(B) det(A-1) = 1/det(A) A⋅B ≠ B⋅A A-1⋅B-1 = (B⋅A) -1 Si invita lo studente a verificare anche che A-1⋅A = A⋅A-1=I, dove I è la matrice unitaria.

Page 80: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

80

Una applicazione delle matrici è quella della soluzione di sistemi lineari. Si supponga di avere il sistema di equazioni:

dove A è la matrice dei coefficienti, x è il vettore delle incognite e b è il vettore dei termini noti. Evidentemente questa equazione in forma matriciale ha una semplice soluzione:

Page 81: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

81

Page 82: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

I valori medi Quando lavoriamo con i dati abbiamo bisogno di indici descrittivi che ci diano informazioni sui dati stessi. L’indice sintetico più conosciuto è sicuramente la media che in forma generale assume la forma:

dove mi rappresentano i pesi Notiamo che per mi=1 otteniamo la media aritmetica. La media aritmetica, semplice o ponderata è detta media ferma ( in quanto per calcolarla si usano tutti i valori).

=

== n

ii

n

iii

m

mxx

1

1

Page 83: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

Esistono tuttavia in statistica delle medie, dette lasche, in quanto per calcolarle si usano solo una parte dei dati: fra di esse ricordiamo, la moda e la mediana. Moda: dato statistico che si presenta con maggior frequenza. Mediana: valore centrale di una distribuzioni di dati ordinata in modo crescente o decrescente. Gli indici visti hanno il pregio di sintetizzare una variabile statistica con un unico valore, tuttavia non forniscono alcuna informazione sulla loro distribuzione attorno al valore medio. Per questo motivo solitamente le medie sono accompagnate da altri indici che misurano la dispersione dei dati, tra questi ricordiamo lo scarto quadratico medio (σ).

Page 84: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

minore è questo indice, maggiore la rappresentatività del valor medio:

=

=

=

−=

+

−=

n

ii

n

iii

n

ii

m

mMx

n

Mx

0

0

2

0

2

)(

1

)(

σ

σ

2

21

21)(

⎟⎠

⎞⎜⎝

⎛ −−

= σ

πσ

mx

exf

NelcasodellamediaaritmeFca

Nel caso della media ponderata

Curva Gaussiana

M - Valore medio

LadistribuzionelimiteperunamisuracheèsoggeJaamol(piccolierroricasuali.Ladistribuzionehalaformadiunacampanaedècentratasulvaloreverodellagrandezzamisuratax

σ σM - M +

La probabilità che una misura cada entro una deviazione standard è del 68%

68%

M

Page 85: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

85

Campione Alt(m)1 10,2 Media 11,833332 12,2 Moda 12,23 11,5 Mediana 11,954 13,7 DevStd 1,6442875 13,1 Massimo 15,16 10,8 Minimo 8,77 12,58 12,29 11,710 13,511 14,212 9,813 15,114 13,715 12,216 14,217 13,118 10,819 8,720 9,821 10,122 10,623 12,424 13,225 13,126 9,227 10,328 11,329 10,730 11,1

0

2

4

6

8

10

12

1 2 3 4 5 6

Curva di Gauss ottenuta riscrivendo i dati in frequenza di intervalli

Page 86: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

86

Vogliamo qui esaminare un’altra funzione statistica utile per stabilire se vi sia una correlazione tra due serie di dati. Si supponga di avere due serie di dati {xi}i=1…n e {yi}i=1…n. Ci si chiede se tra questa serie di dati intercorra una relazione. Per esempio, si supponga che {xi}i=1…n rappresenti la concentrazione di monossido di carbonio misurata in certi giorni in una certa via e {yi}i=1…n il numero di automobili che ha percorso quella via negli stessi giorni. Ci si chiede se in qualche modo la concentrazione di inquinante è in correlazione con il numero di automobili, o se per esempio sia dovuto ad altre cause.

Page 87: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

87

Per verificare se tra le due serie di dati c’è correlazione si utilizza il cosiddetto indice di correlazione. Per prima cosa si definisce la covarianza tra le due serie di dati:

L’indice di correlazione è definito come

dove σx e σy sono del deviazioni standard dei due set di dati. L’indice di correlazione è per costruzione, un numero sempre compreso tra -1 e 1. Tanto più l’indice di correlazione è vicino all’unità, tanto più vi è correlazione tra i dati (in particolare se corr(X,Y)=±1 si ha che i dati sono in relazione lineare tra di loro). Se corr(X,Y) è vicino ad 1 si dice che le due serie di dati sono in correlazione diretta (ovvero vi è una buona probabilità che all’aumentare dell’uno aumenta anche l’altro), se è vicino a -1 si dice che sono in correlazione inversa (o in anticorrelazione). Se invece cov(X,Y) è zero o molto vicino a zero si dice che i due set di dati sono scorrelati tra di loro. Dal calcolo dell’indice di correlazione troviamo cov(X,Y)=0,98 che è molto vicino a 1. Questo ci farà sospettare che l’inquinante è dovuto in larga parte al passaggio delle auto.

Page 88: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

88

Ci chiediamo ora quali sono i valori di a e b per cui la curva teorica meglio approssima i dati sperimentali. Per fare questo utilizziamo il cosiddetto metodo dei minimi quadrati. Y=ax+b con a pendenza e b intercetta

Metodo dei minimi quadrati

Page 89: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

89

Con questa opzione è possibile visualizzare l’equazione della retta

Come si vede la curva approssima molto meglio i dati di origine. La curva teorica assume anche i nomi di linea di tendenza o di regressione o di best fit.

E’ possibile scegliere il tipo di curva teorica

Page 90: LABORATORIO DI INFORMATICA - unibas.it...SISTEMA OPERATIVO Un programma è una sequenza di istruzioni elementari che possono essere eseguite dal sistema di elaborazione; ogni programma

90

Si possono provare ad usare la diverse funzioni interpolanti. Per verificare quale di queste si adattano meglio ai dati si può ricorrere al coefficiente R2, il quale esprime la dispersione dei valori intorno alla curva di regressione. (corrispondere circa ad 1)