![Page 1: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/1.jpg)
CorsoInformaticadiBase
FlowChart
![Page 2: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/2.jpg)
AbbiamodettoChe..• INFORMATICA:scienzaetecnicachetrattal'elaborazioneautomaticadeidatiedeiprocedimentidicalcolo
• CALCOLATOREOELABORATORE ELETTRONICO:macchinaelettronicaingradodimanipolareautomaticamenteinformazioni,eseguendooperazionisudatifornitiiningresso(input),perotteneredeirisultatiemessicomedatiinuscita(output)
• PROGRAMMA: insiemediistruzionichepossonoessereeseguitedaunelaboratoreelettronico.
• PROGRAMMATORE: Sioccupadirealizzareoperativamenteleapplicazioni,scrivendoleistruzionisottoformadilineedicodicebasatesuspecificilinguaggidiprogrammazione.
![Page 3: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/3.jpg)
ModellodiComputer(semplificato)
Dati In Ingresso
Elaborazione dei Dati
Dati in Uscita
![Page 4: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/4.jpg)
Informatica
SecondolaACM(AssociationforComputingMachinery)…L’InformaticaèloStudiosistematicodeglialgoritmi chedescrivonoetrasformanol’Informazione:laloroteoria,analisi,progetto,efficienza,realizzazioneeapplicazione.
![Page 5: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/5.jpg)
RisoluzionediunProblema
Problema
Algoritmo
Programma
Linguaggio Macchina
Input Macchina Output
L’uomo descrive l’algoritmo che lamacchina deve seguire per risolvere ilproblema (ad esempio con i Diagrammidi flusso)
La descrizione viene tradotta inLinguaggio di alto livello (adesempio il linguaggio C)
Il programma di alto livelloviene tradotto in linguaggioMacchina, ovvero codice binario(ad esempio dalcompilatore)
![Page 6: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/6.jpg)
EsempidiAlgoritmi
Ricettapercucinareglispaghetti
➔Mettil’acquanellapentola➔ Faibollirel’acqua➔Mettilapastanell’acqua➔ Aggiungiunpo’ disale➔ Attendi6minuti➔ Scolalapasta
![Page 7: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/7.jpg)
EsempidiAlgoritmi
Verificaseunnumeroèpariodispari➔ Prendiilnumero➔ Calcolailrestodelladivisioneinteradelnumeroper2➔ Seilrestoèzero
– Allorailnumeroèpari– Altrimentiilnumeroèdispari
![Page 8: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/8.jpg)
AlgoritmiConilterminealgoritmo siintende,ingenere,unmetodoperlarisoluzionediproblemiutilizzandounnumerofinitodipassi.
Daquestadefinizionesievinconolequattroproprietàfondamentalidell'algoritmo:
• lasequenzadiistruzionideveesserefinita(finitezza);• essadeveportareadunrisultato(effettività);• leistruzionidevonoessereeseguibilimaterialmente(realizzabilità);
• leistruzionidevonoessereespresseinmodononambiguo(nonambiguità).
![Page 9: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/9.jpg)
Caratteristichediunalgoritmo• Azionieseguibilienonambigue
– Nonsonoammessi“unpò” e“apiacere”,chenonsonotermini adattiadunamacchina
• Deterministico– Fattounpasso,ilsuccessivoèunoedunosolo,bendeterminato.Alternativesonopossibili,malasceltadeveessereunica
• Numerofinitodipassi• Terminazione
– L’esecuzioneprimaopoidevefinireeprodurreunrisultatointempofinito
– Osservazione:la3nonimplicala4
![Page 10: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/10.jpg)
Esempiodinonterminazione
SiconsideriilnumeroN• ScrivereN• ScrivereilnumerosuccessivoadN• Ripetereilpassoprecedente
![Page 11: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/11.jpg)
Esempiodinonterminazione
Trovailpiùgrandenumeroprimo.
Nonesisteunprogrammacheriesceadareunarispostaintempofinito(Numerofinitodipassi)
![Page 12: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/12.jpg)
Tuttiiproblemisonorisolvibili???
No..
Unproblemarisolvibileconunalgoritmosidicecomputabile
![Page 13: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/13.jpg)
Risoluzionediunproblema
Generalmentelarisoluzionediunproblemaconsistenelprenderealcunidatiiniziali(input)relativialproblemaenelfornireunrisultato(output)cherisolvequest’ultimo.
Input Esecutore Output
Algoritmo
![Page 14: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/14.jpg)
NonècosìFacilePerscriverelagiusta“sequenzadipassi”bisognaessereunbravocuoco!
PrepararegliSpaghetti:• Ingredienti(acqua,Sale,Spaghetti)• Eseguirelaricetta• ServiregliSpaghetti
![Page 15: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/15.jpg)
Codificadell’AlgoritmoAffinchèunamacchinariescaacomprendereedeseguireipassispecificatidaunalgoritmo,quest’ultimodeveessereprimacodificatoinunopportunoprogramma scrittoinunlinguaggioadaltolivello (cheverràsuccessivamentecompilato/interpretato)
Algoritmo Traduzione Programma
![Page 16: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/16.jpg)
Rappresentazionedeglialgoritmi
E’ necessariofarriferimentoadeiformalismiche:• nonintroducanoambiguità• sianouniversalmentericonosciutiedinterpretatiallostessomododaungenericoesecutore
• permettanodirappresentareinmodoefficaceunalgoritmo
• Costituiscanounutilestrumentoperpoipoterpassareallafasedicodificainunlinguaggiodiprogrammazione
![Page 17: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/17.jpg)
Rappresentazionedeglialgoritmi
1. Rappresentazionegrafica– Diagrammiablocchi/FlowChart
2. Rappresentazionetestuale– NotazioneLineareStrutturata/PseudoCodice
![Page 18: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/18.jpg)
Algoritmi:operazionibase
Leoperazioniprimariesono:• Trasferimentodiinformazioni(istruzionidiI/O)
• letturadati,scritturarisultati,visualizzazionedatiintermedi
• Esecuzionedicalcoli(valutazioneespressioni)• Istruzionidiassegnamento• Strutturedicontrollo(chemodificanoilflussosequenzialediesecuzionedelleoperazioni)
![Page 19: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/19.jpg)
DiagrammidiFlusso
Idiagrammiablocchi (dettianchediagrammidiflusso)sonounlinguaggiodimodellazionegraficoperrappresentarealgoritmi(insensolato).
Essoconsentedidescrivereledifferentioperazionisottoformadiunoschemaincuilediversefasidelprocessoeledifferenticondizionichedevonoessererispettatevengonorappresentatidasimboligraficidettiblocchielementari.Iblocchisonocollegatitralorotramitefreccecheindicanolacronologia.
![Page 20: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/20.jpg)
DiagrammidiFlussoOgniazioneelementareèrappresentatadaunblocco.Esistono5tipidiblocchielementari:
Blocco iniziale Blocco finale
Blocco I/O
Blocco ControlloBlocco Elaborazione
![Page 21: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/21.jpg)
IstruzionidiI/O
• letturadidatiininput• scritturadeirisultatiinoutput
![Page 22: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/22.jpg)
Connettori
Isingolidiagrammidevonoessereunititramiteiconnettori.
L’esecuzionedelleistruzionideveesserefattasequenzialmente,ovveroseguendoiconnettori.
Quandosiscrivel’algoritmobisognafaremoltaattenzionealladirezionedelflussodiesecuzione.
![Page 23: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/23.jpg)
IstruzionediAssegnamento
Concettodivariabile• Identificatadaun’etichetta/identificatoresimbolico
• Puòesserecomodopensareallavariabilecomeaduncontenitoreincuipossiamomemorizzareoreperiredeidatiutilizzatiduranteilcalcolo
• L’istruzionediassegnamentopermettediassegnareunvaloreadunavariabile
![Page 24: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/24.jpg)
IstruzionediAssegnamento
Unavariabilenumerica èunaentitàcaratterizzatada• Unnome• Unvalore(contenuto)• PuòcambiareneltempoUnacostantenumerica èunaentitàcaratterizzatada• Unnome• Unvalore(contenuto)• Nonpuòcambiareneltempo
![Page 25: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/25.jpg)
IstruzionediAssegnamento
A = 5Alla Variabile Aassegno il valore 5
![Page 26: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/26.jpg)
Espressione
Un’espressione èunacombinazionedioperatoriaritmetici,costantievariabilichepuòesserecalcolatagenerandounsingolovalorenumerico
Es:X+1X+(Y*5)
![Page 27: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/27.jpg)
IstruzionediAssegnamento
• Istruzionediassegnamento:“ ”
• VariabileEspressioneX5YX+4
AssegnoallaVariabilexilvalore5LaVariabileYconterràilvaloredellasommatrailnumero4edilvaloreassegnatoallavariabileX
X = 5 Y=X+4
![Page 28: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/28.jpg)
Esempio
Descriveremediantediagrammidiflusso,unalgoritmochecalcolilasommadiduenumerilettiininput
![Page 29: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/29.jpg)
Diagrammadiflusso:Somma
Inizio
Leggi Y
Leggi X
Z X + Y
Scrivi Z
Fine
![Page 30: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/30.jpg)
Esempio2
Descrivere,mediantediagrammidiflusso,unalgoritmochescambiivalorididuevariabililetteininput.
![Page 31: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/31.jpg)
Diagrammadiflusso:Scambio
Inizio
Leggi X
Leggi Y
Aux Y
Y X
X Aux
Scrivi Y
Scrivi X
Fine
![Page 32: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/32.jpg)
Flussodiesecuzione
Sipossonoaverecasiincuinelflussodiesecuzionesidevesceglieretradiversedirezioni
Ladirezionedascegliereèsubordinataalverificarsidiunacondizione
Lacondizionepuòassumereduestati:– Vero– Falso
Inquesticasisiparladiistruzionecondizionale
![Page 33: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/33.jpg)
StrutturedicontrolloTuttiglialgoritmidevonoadattarsiadunaclassediproblemiperessereapplicatialmondorealeeleoperazionidaeffettuareperraggiungerelasoluzionespessodifferisconoasecondadeicasichesipresentano.
Perquestoesistonodelleparticolaristrutturedellinguaggiochepermettonodicontrollareilflussodiesecuzione(quindidelleoperazioni),ovverodieseguireunacertaseriediistruzionianchepiu'voltenelmomentoincuisiverificadiunaseriedicondizioni.
Questestrutturesonoassolutamenteindispensabili,infattinonesisteunlinguaggiodiprogrammazioneincuinone'possibilecontrollareilflussodelprocesso.
![Page 34: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/34.jpg)
StrutturedicontrolloQuasilatotalitàdeiprogrammihalanecessitàdisvolgerealcuneistruzioniocompieredeterminateoperazioni(oppureevitaredicompierealcuneoperazioni)asecondadeidatidipartenza.
Peresempiounprogrammacheesegueunadivisionetraduenumeria/bdovràevitaredicompierel'effettivaoperazionearitmeticaseildatob=0.
Perquestointuttiilinguaggidiprogrammazioneesistonodeiparticolaricostruttichegeneralmentepermettonodi:- Scegliereseeseguireomenounacertaporzionedicodice,oppure- Eseguirepiùvolteunacertapartedicodice.
![Page 35: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/35.jpg)
Strutturedicontrollo
![Page 36: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/36.jpg)
IstruzioniCondizionaliLa selezione (o scelta) permette a un programma di proseguire secondo uno tra due (o più) flussi di istruzioni alternative, a seconda del risultato di un test o del verificarsi di una condizione.
L’iterazione (o ciclo, o loop) consiste nella ripetizione di una o più istruzioni, e si può ottenere collegando il flusso in uscita da un blocco con il flusso in entrata nel blocco stesso o in uno precedente.In tal modo si possono eseguire compiti ripetitivi senza specificare uno per uno un gran numero di singoli passi, ma scrivendo per esempio un’istruzione del tipo: “esegui il prossimo passo 1.000 volte”.
![Page 37: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/37.jpg)
IstruzioniCondizionaliSelezionebinaria.Nellaselezioneiltestolacondizionesonotipicamentecostituitidaunavariabilelogica,scrittadentroilsimbolodidecisione,(bloccocontrollo)dalqualeesconoduefrecce.Questeindicanolepossibiliazionidacompiersiasecondadelvaloredellavariabile,comemostralafigura.
![Page 38: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/38.jpg)
IstruzioniCondizionali
Sipuòanchevolerecompiereunacertaazioneseiltestolacondizionehannounvalorevero,enessunaazionenelcasocontrario.
![Page 39: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/39.jpg)
Esempio
Descriveremediantediagrammadiflusso,unalgoritmochedeterminiilmassimotraduenumerilettiininput
![Page 40: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/40.jpg)
DiagrammadiFlusso:Max
Inizi
Leggi X
Leggi Y
X>Y Scrivi X
Scrivi Y
Vero
Falso
Fine
![Page 41: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/41.jpg)
StrutturaIF-ELSEL’istruzionecondizionaleif-else ècostruitapersceglierel’esecuzionediun’istruzioneinalternativaaun’altraasecondadelvaloreassuntodaunadatacondizione.
if(condizione){operazione}L'operazionepuòanchenonessereracchiusatraparentesigraffe.
Vediamounsempliceesempio.if($a==5) {echo"Lavariabileavale5";}Inquestocasoverràstampatalastringa"Lavariabileavale5"soloquando$asaràugualea5.
![Page 42: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/42.jpg)
StrutturaIF-ELSEAbbiamointrodottoilcontrolloreelse:aggiungelapossibilitàdi
eseguireun'istruzionealternativanelcasolacondizionenonsiavera.
if(condizione){operazione1}else{operazione2}
Vediamooradiapplicaretuttiicasifinoravisti,utilizzandol'annidamentodipiùif:l'importanteèricordarsidichiuderesempreunacondizionechesièaperta.
if($a>$b){echo"aèmaggioredib";}else{if($a<$b){echo"aèminoredib";}else{if($a==$b){echo"aèugualedib";}}}
![Page 43: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/43.jpg)
StrutturediControlloIterattiveLestrutturedicontrollo"iterative"consentonodispecificarecheunadataistruzioneoundatobloccodiistruzionidevonoessereeseguitiripetutamente.Essevengonoanchedettecicli.
Ognistrutturadicontrollodiquestotipodeveconsentiredispecificaresottoqualicondizionil'iterazione(ripetizione)ditaliistruzionidebbaterminare,ovverolacondizionediterminazionedelciclo oppure,equivalentemente,lacondizionedipermanenzanelciclo.
![Page 44: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/44.jpg)
StrutturaWhileIlciclowhile (mentre,ofintantoché)èindicatoquandolacondizionedipermanenzainuncicloèunagenericacondizionebooleana,indipendentedalnumerodiiterazionieseguite.Leformetradizionalidiciclowhilepossonoessereparafrasatecome"ripeti(ilcodicecontrollato)fintantochérestaveralacondizioneC".Unesempiotipicoèlaletturadidatidaunfiledicuinonsiconoscaaprioriladimensione;essopotrebbeassumerelaforma"leggiilprossimodatofinchénonincontrilafinedelfile".
![Page 45: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/45.jpg)
StrutturaWhile
Vediamounsempliceesempio:$i=1;while($i<=10){echo$i;$i++;
}Questociclocontinuaadincrementarelavariabile$ifinoaquandononsaràugualea10edognivoltastampailsuovalore.Inpraticaverràstampatalastringa"12345678910".
![Page 46: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/46.jpg)
StrutturaDo-WhileUnmodoalternativopereseguirelastessacosasaràricorrerealciclo
do..while.L'unicadifferenzaècheilvaloredellacondizionevienecontrollatoallafinedelcicloenonall'inizio.Inpraticalaprimaoperazionevienesempreeseguita,siachelacondizionesiaveraofalsa.do{operazione}while(condizione)
Vediamol'esempio:$i=1;do{echo$i;$i++;
}while($i<=10)
![Page 47: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/47.jpg)
StruttureDatiUnastrutturadati èun'entitàusataperorganizzareuninsiemedidatiall'internodellamemoriadelcomputer,edeventualmentepermemorizzarliinunamemoriadimassa.Lasceltadellestrutturedatidautilizzareèstrettamentelegataaquelladeglialgoritmi.
La strutturadatièunmetododiorganizzazionedeidati,quindiprescindedaidatieffettivamentecontenuti.
Ciascunlinguaggiodiprogrammazioneoffrestrumenti,piùomenosofisticati,perdefinirestrutturedati,ovveroaggregaredatiditipoomogeneooeterogeneo.
![Page 48: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/48.jpg)
GliArrayUnarrayèunastrutturadatiomogenea,checontieneunnumerofinitodielementidellostessotipo,adesempiounvettoredi10interi.Questielementisonoindividuatiattraversounindicenumerico,chetipicamentevada0alnumeromassimodielementimenouno.Ladimensionedelvettoredeveesseredichiarataalmomentodellasuacreazione.Vettorididimensionediversacostituisconotipididatidiversi.
Glielementidell'array(levariabilichelocostituiscono)sonoidentificatedallostessonomedell'arrayedaunoopiùindici,cheindicanolaposizionedell'elementoall'interodelvettoreodellamatrice.
![Page 49: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/49.jpg)
GliArrayArraymonodimensionale:Unarrayadunadimensioneècostituitodauninsiemefinitodielementiomogeneiincorrispondenzabiunivocaconuninsiemediindici.
Arraybidimensionale puòessereconsideratounarraydiarraymonodimensionalicioèognicomponentedell’arrayèessostessounarray
L’accessoadognicomponentediunarraybidimensionalesihatramiteunacoppiadiindici(i,j)
Ilprimoindicesiriferisceallarigaedilsecondoallacolonna
![Page 50: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/50.jpg)
GliArray
X[0] X[1] X[2] X[3] X[4] X[5] X[6] X[7]
Array Monodimensionale
X
A[0][0] A[0][1] A[0][2] A[0][3] A[0][4]A[1][0] A[1][1] A[1][2] A[1][3] A[1][4]A[2][0] A[2][1] A[2][2] A[2][3]
Array Bidimensionale
A
COLONNE
R
I
G
H
E
![Page 51: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/51.jpg)
GliArray
Essigodonodelleseguentiproprietà:• Gliarraysonounodeitipididatostrutturato• Sonocompostidaelementiomogenei• Ognielementoèidentificatoall’internodelvettore
daunnumerod’ordinedettoancheindicedell’elemento
• E’ possibileriempireoleggereunasolaposizionepervolta
• Ilnumerodeglielementièdettodimensione olunghezza delvettore
![Page 52: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/52.jpg)
GliArray
Adesempio,pensiamodivolermemorizzareinomideigiornidellasettimanaall'internodell'arrayditipostringachiamatogiorno;avremolaseguentestruttura:
$giorno[0]="lunedi'"$giorno[1]="martedi'"$giorno[2]="mercoledi'"$giorno[3]="giovedi'"$giorno[4]="venerdi'"$giorno[5]="sabato"$giorno[6]="domenica"
![Page 53: Flow Chart - Pop.itsvariando.it/infobase/lezione10.pdf · – Notazione Lineare Strutturata / PseudoCodice. ... ciclo while possono essere parafrasate come "ripeti (il codice controllato)](https://reader031.vdocuments.mx/reader031/viewer/2022031415/5c67784a09d3f2bb148bb675/html5/thumbnails/53.jpg)
Array
Esercizisugliarray