Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
concetti di base
( 2022/10/03 )
Informatica
Definizione
informale
(per capire di cosa
stiamo parlando)
Algoritmo
INPU OUTPUT
“ l'insieme di passi che
T
specificano come
eseguire un dato
compito “ Prende in ingresso (INPUT) un insieme di oggetti,
item e li trasforma in un nuovo set di oggetti/item
(OUTPUT).
Algoritmo & Linguaggi
Quelli per gli UMANI hanno il vantaggio di esser facili da capire (per noi, by-design) ma
sono spesso imprecisi; quelli progettati per essere interpretati da COMPUTER sono più
criptici, sono disambigui, formali, ma hanno il vantaggio di poter essere interpretati in
maniera automatica.
Algoritmo & Linguaggi
Sono linguaggi particolarmente comodi quando vogliamo comunicare con degli esseri
umani (attività MOLTO frequente in informatica)
PSEUDOCODICE
Algoritmo
A,B B
Pseudocodice
Se dovessimo definirne una sintassi, potremmo ad esempio 1- acquisisci il primo addendo (a)
elencare delle regole del tipo: 2-
3-
acquisisci il secondo addendo (b)
a = a + 1
4- b = b -1
5- se b > 0 torna a 3-
•Una riga è composta come <numero di riga> - <testo> 6- mostra il contenuto di a
Possiamo identificare quindi alcuni elementi LESSICALI del linguaggio ed alcuni elementi
SINTATTICI (che dicono come costruire ‘testi’, in questo linguaggio) ma la SEMANTICA, il
significato di quanto contenuto in ogni riga è per lo piu’ relegato al’interpretazione umana.
La maggior parte degli PSEUDOCODICI, per tale motivo, nonostante siano strutturati in
maniera ordinata, ereditano l’AMBIGUITA’ tipica del LINGUAGGIO NATURALE e non si prestano
ad essere eseguiti as-they-are da un COMPUTER.
Questo perchè i COMPUTER non sono (ad ora) in grado di risolvere la complessità/ambiguità
del linguaggio naturale e pertanto è necessario utilizzare, se ci rivolgiamo a loro, dei linguaggi
meno ambigui (piu’ complessi)
DIAGRAMMA DI FLUSSO
PSEUDOCODICE
DIAGRAMMA
DI FLUSSO
DIAGRAMMA DI FLUSSO
•In un grafo vi possono essere:[0,n] nodi END,1! Nodo START, [0,n] nodi Azione,
[0,n] nodi Condizione;
•Ogni nodo azione ha [1,n] archi in ingresso ed 1! Arco in uscita;
•Il nodo START ha 0 archi in ingresso ed 1! arco in uscita; I nodi END hanno
[1,n] archi in ingresso e 0 archi in uscita;
•I nodi condizione hanno[1,n] archi in ingresso e tanti archi in uscita quanti I
possibili valori della condizione
Esempio di
Diagramma di
flusso per farsi
una limonata
Costrutti del
linguaggio:
Pseudocode
1. Prendi il limone
2. Taglialo con il coltello
3. Se il limone non è buono, torna a 1.
4. Spremilo
5. Versa il succo in un bicchiere
Algoritmi – Diagramma di Flusso: graphical enrichments
Tuttavia:
Noi vorremmo usare I COMPUTER come ROBOT (schiavo, servitore, dall’antico slavo
ecclesiastico), ma perchè siano loro ad eseguire gli algoritmi è quindi necessario che
vengano tradotti in un linguaggio per loro comprensibile.
#include <stdio.h>
int main() {
1- acquisisci il primo addendo (a) int a,b;
2- acquisisci il secondo addendo (b) printf("Inserisci il valore di a: ");
3- a = a + 1 scanf("%d", &a);
printf("Inserisci il valore di b: ");
4- b = b -1 scanf("%d", &b);
5- se b > 0 torna a 3-
6- mostra il contenuto di a label:
a = a + 1;
b = b - 1;
if( b > 0) goto label;
PSEUDOCODICE C
Algoritmi – Linguaggi di Programmazione
#include <stdio.h>
int main() {
int a,b;
printf("Inserisci il valore di a: ");
scanf("%d", &a); 1- acquisisci il primo addendo (a)
printf("Inserisci il valore di b: "); 2- acquisisci il secondo addendo (b)
scanf("%d", &b);
label:
a = a + 1; 3- a = a + 1
b = b - 1; 4- b = b -1
https://www.onlinegdb.com/online_c_compiler
Algoritmi – Linguaggi di Programmazione
a = int(input("Inserisci A : "))
1- acquisisci il primo addendo (a)
b = int(input("Inserisci B : "))
2- acquisisci il secondo addendo (b)
3- a = a + 1
for i in range(1,b):
4- b = b -1
a = a + 1
5- se b > 0 torna a 3-
6- mostra il contenuto di a
print("Il risultato e' ",a)
PSEUDOCODICE PYTHON
https://www.programiz.com/python-programming/online-compiler/
Saper programmare