informatica generale scienza della comunicazione paolo amico problemi e programmi
TRANSCRIPT
![Page 1: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/1.jpg)
Informatica generale Scienza della Comunicazione
Paolo Amico
Problemi e ProgrammiProblemi e Programmi
![Page 2: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/2.jpg)
CARATTERISTICHE FONDAMENTALI DI CARATTERISTICHE FONDAMENTALI DI UN ESECUTOREUN ESECUTORE
Un’azione fondamentale presente in un processo eseguito da un calcolatore è l’assegnamento.
V 9
V E
EEspressione, cioè una formula che specifica sempre un valore.Ogni espressione è composta da operandi e operatori
Gli operandi possono essere costanti, espressioni o variabili
Gli operatori possono essere di tre tipi: aritmetici, di relazione e logici
![Page 3: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/3.jpg)
CARATTERISTICHE FONDAMENTALE CARATTERISTICHE FONDAMENTALE DI UN ESECUTOREDI UN ESECUTORE
Operatori aritmetici
+ addizione
- sottrazione
* moltiplicazione
div Divisione tra numeri interi
/ Divisione tra numeri reali
mod Calcolo del resto della divisione tra interi
^ Elevamento a potenza
![Page 4: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/4.jpg)
CARATTERISTICHE FONDAMENTALE CARATTERISTICHE FONDAMENTALE DI UN ESECUTOREDI UN ESECUTORE
Operatori di relazione
< Minore di
<= Minore o uguale di
> Maggiore
>= Maggiore o uguale di
<> Diverso
![Page 5: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/5.jpg)
CARATTERISTICHE FONDAMENTALI CARATTERISTICHE FONDAMENTALI DI UN ESECUTOREDI UN ESECUTORE
Operatori logici
And Per il prodotto logico (congiunzione)
Or Per la somma logica (disgiunzione)
Not Per la negazione
Xor Per l’OR esclusivo
![Page 6: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/6.jpg)
Diagrammi di flusso• Per la descrizione degli algoritmi si utilizzano particolari rappresentazioni
grafiche denominate diagrammi di flusso, schemi a blocchi o flowchart
• Questa descrizione costituisce un efficace strumento per la descrizione degli algoritmi, più valido di una esposizione di tipo discorsivo (troppo generica e ambigua)
• Qualsiasi algoritmo può essere decomposto in poche funzioni elementari
Trasferimento dati
Blocco operativo
Blocco decisionale
Inizio o fine
Simbolo di connessione
![Page 7: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/7.jpg)
LA PSEUDOCODIFICALA PSEUDOCODIFICALa pseudocodifica è la descrizione di un algoritmo ottenuta utilizzando termini e parole del linguaggio comune, ma applicando una serie di regole che permettono di organizzare un tipo di testo formalmente rigoroso e strettamente orientato alla stesura degli algoritmi.
La pseudocodifica utilizza delle regole per strutturare il testo: Le parole chiave che aprono e chiudono il testo di un algoritmo sono INIZIO e FINE. Altre parole chiave sono A, ALLORA, ALTRIMENTI, CASO, DA, DI, ESEGUI, FINCHE’, MENTRE, PASSO, PER, RIPETI, SE.
Ogni istruzione è indicata con una frase del linguaggio corrente e può contenere un’espressione di tipo aritmetico o logico
Le istruzioni leggi(lista di variabili) e scrivi(variabili e costanti) vengono utilizzate per descrivere le operazione di immissione ed emissione dei dati
La richiesta all’utente per acquisire i dati necessari all’elaborazione può essere indicata con chiedi(lista dei dati che servono) Le variabili, le costanti vengono indicate da parole in minuscolo dette identificatori
![Page 8: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/8.jpg)
ESEMPIOESEMPIO
h
bA= b h
Dati input
Base e altezza del rettangolo
Dati output Area del rettangolo
Algoritmo rettangolo
INIZIO
Chiedi(base, altezza)Leggi(base, altezza)Area base * altezzaScrivi area
FINE
![Page 9: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/9.jpg)
ESEMPIOESEMPIO
h
bA= b h
Dati input
Base e altezza del rettangolo
Dati output Area del rettangolo
Inizio Inizio
Fine Fine
Chiedi base, altezzaChiedi base, altezza
Leggi base altezzaLeggi base altezza
Scrivi areaScrivi area
Area base * altezzaArea base * altezza
![Page 10: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/10.jpg)
La programmazione strutturata è una tecnica di programmazione che ha lo scopo di semplificare la struttura di un algoritmo disciplinando l'organizzazione di uno schema a blocchi
In particolare prevede l'uso di un numero limitato di strutture di controllo fondamentali
Struttura di controllo: flowchart parziale da assumere come modello di computazione, con un ingresso ed una uscita
La programmazione strutturata vincola quindi l'utilizzo delle strutture di controllo, ma offre i seguenti vantaggi:
rende possibile una progettazione di tipo Top-Down permette la definizione di algoritmi più leggibili, essendo più facile individuare i moduli corrispondenti alle varie parti di cui si compone l'algoritmo test, correzione e manutenzione del programma sono perciò più semplici
Programmazione Strutturata
![Page 11: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/11.jpg)
Programmazione strutturata
• Si assumono come strutture di controllo fondamentali:
A
B
Falsop
Vero
A B
p A
Vero
Sequenza
Selezione binaria
While do (ripeti mentre)
![Page 12: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/12.jpg)
Istruzioni per il controllo di flusso• Forniscono al programmatore il meccanismo per decidere se e come
eseguire blocchi di istruzioni condizionatamente a meccanismo decisionali definiti all’interno della applicazione
Istruzioni per il controllo di flusso
Istruzione Descrizione
if Esegue o no un blocco di codice a seconda del valore restituito da una espressione booleana
if-else Esegue permette di selezionare tra due blocchi di codice quello da eseguire a seconda del valore restituito da una espressione booleana
while Esegue ripetutamente un blocco di codice controllando il valore di una espressione booleana
do-while Esegue ripetutamente un blocco di codice controllando il valore di una espressione booleana
![Page 13: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/13.jpg)
Sequenza
• Flowchart della struttura sequenza– Due azioni eseguite in ordine
somma l’inverso del cubo di i ad s
Incrementa il contatore
![Page 14: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/14.jpg)
Ciclo while
p A
Vero
Esegue una istruzione mentre una condizione è verificata
![Page 15: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/15.jpg)
Ciclo do-while
Esegue una istruzione finché una condizione diventa falsa
A
p
FalsoVero
![Page 16: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/16.jpg)
La selezione binaria if
• È usata per scegliere fra due alternative– Pseudocodice
• Se il voto è maggiore di 18 allora l’esame è superato
Falsovoto>=18
Vero
stampa
Esempio di flowchart della struttura if
if è una struttura con un solo punto di uscita
![Page 17: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/17.jpg)
La selezione binaria if/else
• Strutture di selezione– if
• Esegui una singola operazione se la condizione è vera– if/else
• Esegui operazioni diverse quando la condizione è vera o quando è falsa
• Pseudocodice
• Se il voto è maggiore o uguale di 18Stampa “Esame superato”
altrimenti
Stampa “Esame non superato”
![Page 18: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/18.jpg)
La selezione binaria if/else
verofalso
Stampa “Esame non superato” Stampa “Esame superato”
voto >= 18
![Page 19: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/19.jpg)
stampa 30 volte la parola TRE
START
END
C := 1
C := C + 1
stampa “TRE”
C = 30V F
Ciclo controllato da un contatore
![Page 20: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/20.jpg)
Ciclo controllato da un contatore
• Media dei voti:– Descrizione del problema:
• Una classe di 10 studenti affronta un quiz. I risultati sono interi fra 0 e 100. Calcolare la media complessiva.
• È una iterazione controllata da un contatore– Il ciclo viene ripetuto finché un contatore non
raggiunge un determinato valore– Il numero di iterazioni è noto: si usa un contatore
![Page 21: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/21.jpg)
• Descrizione a parole:
1. azzera somma parziale - accumulatore
2. azzera il contatore dei numeri già introdotti
3. leggi un dato
4. somma il dato all’accumulatore
5. incrementa il contatore
6. se il numero di dati letti (contatore) è minore di 10 torna a 3, altrimenti continua
7. stampa la media
Falso
Inizio
I = 0S = 0
I<10
Letturadato Di
S: = S + Di
I = I + 1
Stampa media
Fine
Vero
I contatore
S accumulatore
![Page 22: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/22.jpg)
somma due numeri avendo a
disposizione solo l’operazione di
incremento unitario
(macchina a strati)
START
END
dati A B
RIS := A; CON := 1
stampa RIS CON := CON + 1
CON = BV F
RIS := RIS + 1
A e B > 0
![Page 23: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/23.jpg)
moltiplica due numeri avendo a disposizione
solo l’operazione di
somma (macchina a
strati)
START
END
dati A B
RIS := 0; CON := 1
stampa RIS CON := CON + 1
CON = BV F
RIS := RIS + A
A e B > 0
![Page 24: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/24.jpg)
Ciclo controllato da una sentinella
Problema: costruire un algoritmo che, assegnati N dati numerici
A1, A2, A3, …, AN
Con N non noto a priori, sia capace di:
1) Contare i dati, ossia determinare N2) Calcolare la somma S dei Dati
Occorre un contatote Ct che, inizialmente azzerato, viene incrementato di unaunità ogni volta che uno dei dati viene introdotto in memoria
Occorre una sentinella (flag) adibita a segnalare il momento in cui si realizzaL’evento: “la lettura dei dati è terminata”
![Page 25: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/25.jpg)
A tale scopo si usa una variabile che chiameremo spia e che manterremoSpenta (spia=0) per tutta la durata della lettura dei dati eche accenderemo(spia=1) subito dopo l’immissione dell’ultimo dato
Algoritmo
INIZIOSpia:=0Ct:=0S:=0RipetiIntroduzione del dato in AIntroduzione di 0 o 1 in spia a seconda che la lettura dei dati non sia, o siaterminataIncrementa il contatoreIncrementa la sommaFinché (spia=1)Visualizza contatoreVisualizza sommaFINE
![Page 26: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/26.jpg)
Inizio
Spia: = 0Ct: = 0S:=0
Spia=1
Letturadato A, spia
Fine
Ct: = Ct+1S:=S+A
N=CtSomma=S
falso
vero
![Page 27: Informatica generale Scienza della Comunicazione Paolo Amico Problemi e Programmi](https://reader035.vdocuments.net/reader035/viewer/2022062701/5542eb58497959361e8c27ff/html5/thumbnails/27.jpg)
MCD(m,n) m,n >0
1. Leggi m e n;
2. considera il minore tra i due numeri (min)
3. verifica se min è divisore sia di m che di n. In caso positivo min è il MCD cercato altrimenti
3.1 sottrai 1 a min e torna al punto 3
Leggi n
Leggi m
Stampa min
r1m mod min
si
(r1=0 and r2=0)
minmin-1si
r2n mod min
m>n
minnminm