Fondamenti di Informatica
ESERCIZI: ALGOBUILD
Prof. Marco Lombardi – malombardi@unisa.it
2 0 1 9/2020Diagrammi di Flusso
Un diagramma di flusso è composto da• Blocchi elementari che descrivono azioni e decisioni
• Archi orientati che collegano i vari blocchi e descrivono la sequenza di svolgimento delle azioni
Inizio Fine Azione generica Azione di I/O Blocco di decisione binaria ?
Blocco di inizio Blocco di fine Blocco di
connessione Blocco di azione generica Blocco di azione di input/output Esercitazione ALGOBUILD
AlgoBuild
AlgoBuild consente in maniera semplice ed efficace di:
◦ Disegnare diagrammi di flusso
◦ Generare automaticamente pseudocodice a partire dal diagramma di flusso
◦ Eseguire l’algoritmo Operatore Descrizione < Minore <= Minore o uguale > Maggiore >= Maggiore o uguale == Uguale != Diverso Operatore Descrizione + Addizione - Sottrazione * Moltiplicazione / Divisione
% Resto della divisione
intera
• Operatori Aritmetici • Operatori Relazionali
Operatore Descrizione && AND || OR ! NOT • Operatori Logici Esercitazione ALGOBUILD
Esercizio 1: AlgoBuild
Scrivere un algoritmo che legga da input finché non viene inserito un numero divisibile per 3 e mostri in output quanti numeri sono stati inseriti fino a quel momento.
Soluzione 1: AlgoBuild (ver 0.75)
Soluzione 1: AlgoBuild (ver 0.75)
Esercizio 2: AlgoBuild
Scrivere un algoritmo che legga da input 5 numeri e per ciascun numero n verificare se pari o dispari:
• se è pari allora mostrare il numero dispari più vicino tale che sia >n; • se è dispari allora mostrare il numero pari più vicino tale che sia <n. N.B. Se viene inserito un numero <=0 oppure >=100 viene ignorato. Esempio:
◦ n=3 → output: 2 ◦ n=10 → output: 11
Soluzione 2: AlgoBuild (ver 0.75)
Esercizio 3: AlgoBuild
Definire l’algoritmo che accetta massimo 5 numeri tali che il numero inserito al passo i sia sempre >= del numero inserito al passo precedente:
𝑛𝑖 ≥ 𝑛𝑖−1
Se il numero inserito è corretto allora mostra la differenza con il numero precedente altrimenti arresta l’algoritmo.
Esempio
◦ INPUT: 0, 2, 3, 1 # si ferma qui perché 1 è minore di 3
◦ OUTPUT: 2, 1 # (2-0), (3-2)
Soluzione 3: AlgoBuild (ver 0.75)
Esercizio 4: AlgoBuild
Definire l’algoritmo che prende in input un numero e scrive in output il relativo fattoriale.
Soluzione 1
Soluzione 4: AlgoBuild (ver 0.75) – 1/3
Soluzione 1 Soluzione 2
Soluzione 4: AlgoBuild (ver 0.75) – 2/3
Soluzione 1 Soluzione 2 Soluzione 3
Soluzione 4: AlgoBuild (ver 0.75) – 3/3
Soluzione 1 Soluzione 2 Soluzione 3
Soluzione 4: AlgoBuild (ver 0.75) – 3/3
Esercitazione ALGOBUILD
Esercizio 5: AlgoBuild
Scrivere un algoritmo che consenta di inserire in input quanti numeri si vogliono confrontare, legga tali numeri e scriva in output qual è il minimo tra essi e il relativo indice di apparizione (se è stato inserito come primo, secondo, terzo, …).
Esempio:
◦ INPUT: 5; 0, 2, -1, 3, 4
◦ OUTPUT: minimo -1, indice 3
Soluzione 5: AlgoBuild (ver 0.75) – 1/2
continua… Soluzione 1
Soluzione 5: AlgoBuild (ver 0.75) – 1/2
continua… Soluzione 1
Soluzione 5: AlgoBuild (ver 0.75) – 2/2
continua…
Soluzione 1 Soluzione 2
continua…