• Non ci sono risultati.

Fondamenti di Informatica

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti di Informatica"

Copied!
19
0
0

Testo completo

(1)

Fondamenti di Informatica

ESERCIZI: ALGOBUILD

Prof. Marco Lombardi – [email protected]

2 0 1 9/2020

(2)

Diagrammi 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

(3)

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 AritmeticiOperatori Relazionali

Operatore Descrizione && AND || OR ! NOT • Operatori Logici Esercitazione ALGOBUILD

(4)

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.

(5)

Soluzione 1: AlgoBuild (ver 0.75)

(6)

Soluzione 1: AlgoBuild (ver 0.75)

(7)

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

(8)

Soluzione 2: AlgoBuild (ver 0.75)

(9)

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)

(10)

Soluzione 3: AlgoBuild (ver 0.75)

(11)

Esercizio 4: AlgoBuild

Definire l’algoritmo che prende in input un numero e scrive in output il relativo fattoriale.

(12)

Soluzione 1

Soluzione 4: AlgoBuild (ver 0.75) – 1/3

(13)

Soluzione 1 Soluzione 2

Soluzione 4: AlgoBuild (ver 0.75) – 2/3

(14)

Soluzione 1 Soluzione 2 Soluzione 3

Soluzione 4: AlgoBuild (ver 0.75) – 3/3

(15)

Soluzione 1 Soluzione 2 Soluzione 3

Soluzione 4: AlgoBuild (ver 0.75) – 3/3

Esercitazione ALGOBUILD

(16)

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

(17)

Soluzione 5: AlgoBuild (ver 0.75) – 1/2

continua… Soluzione 1

(18)

Soluzione 5: AlgoBuild (ver 0.75) – 1/2

continua… Soluzione 1

(19)

Soluzione 5: AlgoBuild (ver 0.75) – 2/2

continua…

Soluzione 1 Soluzione 2

continua…

Riferimenti

Documenti correlati

(10 punti) Si scriva in linguaggio assembler la funzione INTPOW che riceve in R1 e R2 due numeri interi e restituisce in R0 il valore R1 R2. Suggerimento: si scriva e utilizzi

- atoi: scrivere in linguaggio macchina una funzione che scriva nel registro R0 il valore intero positivo rappresentato dalla stringa ASCII presente in memoria a

Scrivere un programma in linguaggio C che chieda all’utente di immettere due numeri interi, ottenga i numeri dall’utente e visualizzi la loro somma, prodotto, differenza, quoziente

Esercizio 1 (6 punti) Scrivere un metodo di classe che prende in ingresso (come parametro) una matrice di numeri interi mat e due ulteriori numeri interi h e k, e che restituisce

Scrivere un metodo di classe contaCifre che prende in ingresso (come parametro formale) un array num di numeri interi positivi e che restituisce un array cifre di numeri interi

Esercizio 2 Scrivere un programma Java che chiede all’utente di inserire due stringhe e che visualizza all’utente true se le stringhe sono uguali e false se sono diverse.. Esercizio

Scrivere inoltre una classe ProvaCoppiaDiStringhe, avente il solo metodo main, che fa inserire all’utente due stringhe e che testa tutti i metodi della classe CoppiaDiStringhe,

Scrivere la classe ProvaEsercizio, che fa inserire all’utente tre array di interi (a sua scelta) e che visualizza all’utente l’array calcolato e restituito dal metodo