• Non ci sono risultati.

Programmazione:Circoli viziosiovvero Un eterna ghirlanda brillan

N/A
N/A
Protected

Academic year: 2022

Condividi "Programmazione:Circoli viziosiovvero Un eterna ghirlanda brillan"

Copied!
17
0
0

Testo completo

(1)

Programmazione:

Circoli viziosi ovvero

Un’eterna ghirlanda brillante

Eugenio Omodeo

Trieste, 29.03.2021

(2)

Programmazione:

Circoli viziosi ovvero

Un’eterna ghirlanda brillante

Eugenio Omodeo

Trieste, 29.03.2021

(3)

Bello o conturbante ?

(4)

Il paradosso del mentitore ( Epimenide di Creta, 600 a.C. )

Lettera di San Paolo a Tito I, 12-13:

“[11]A questi tali bisogna chiudere la bocca, perch´e mettono in scompiglio intere famiglie, insegnando per amore di un guadagno disonesto cose che non si devono insegnare. [12]Uno dei loro, proprio un loro profeta, gi`a aveva detto: I Cretesi son sempre bugiardi, male bestie, ventri pigri. [13]Questa testimonianza `e vera. Perci`o correggili con fermezza,”

(5)

Il paradosso del mentitore ( Epimenide di Creta, 600 a.C. )

Lettera di San Paolo a Tito I, 12-13:

“[11]A questi tali bisogna chiudere la bocca, perch´e mettono in scompiglio intere famiglie, insegnando per amore di un guadagno disonesto cose che non si devono insegnare. [12]Uno dei loro, proprio un loro profeta, gi`a aveva detto: I Cretesi son sempre bugiardi, male bestie, ventri pigri. [13]Questa testimonianza `e vera.

Perci`o correggili con fermezza,”

(6)

Test ricorsivo di palindromicit` a

1

in Java

private

public static boolean palindroma( String s ) { return s.length() 6 1 ||

s.charAt( 0 ) == s.charAt( s.length() - 1 ) &&

palindroma( s.substring( 1, s.length() - 1 ) ) ;

}

La stringa vuota e le stringhe di lunghezza 1 sono il caso base. Se una stringa non `e vuota, richiediamo che abbia il primo carattere uguale all’ultimo e che, mutilata di questi due caratteri, rimanga palindroma.

1Esempi: “narici di Ciran”, “Avevi visioni d’un evo dove nudi noi si viveva”.

(7)

Test ricorsivo di palindromicit` a

1

in Java

private

public static boolean palindroma( String s ) { return s.length() 6 1 ||

s.charAt( 0 ) == s.charAt( s.length() - 1 ) &&

palindroma( s.substring( 1, s.length() - 1 ) ) ;

}

La stringa vuota e le stringhe di lunghezza 1 sono il caso base. Se una stringa non `e vuota, richiediamo che abbia il primo carattere uguale all’ultimo e che, mutilata di questi due caratteri, rimanga palindroma.

1Esempi: “narici di Ciran”, “Avevi visioni d’un evo dove nudi noi si viveva”.

(8)

Ricorsione mutua ( Es. istruzioni / espressioni )

(9)

Ricorsione mutua, in Java

public static boolean pari( int p ) { assert p > 0;

return p == 0 || dispari( p - 1 );

}

public static boolean dispari( int d ) { assert d > 0;

return d != 0 && pari( d - 1 );

}

( Anche questi metodi andrebbero ‘privatizzati’ )

(10)

Simulazione del test ricorsivo di disparit` a

L’esecuzione di

System.out.println( dispari( 2 ) );

‘scatena’ le invocazioni I dispari( 2 ) I pari( 1 ) I dispari( 0 )

che forniscono (da sotto in su) i risultati I false

I false

I false( questo verr`a stampato a video )

(11)

Simulazione del test ricorsivo di parit` a

L’esecuzione di

System.out.println( pari( 2 ) );

‘scatena’ le invocazioni I pari( 2 ) I dispari( 1 ) I pari( 0 )

che forniscono (da sotto in su) i risultati I true

I true

I true ( questo verr`a stampato a video )

(12)

Due esercizi sulla ricorsione

I Implementate in modo ricorsivo il confronto lessicografico fra stringhe.

I Implementate come metodo ricorsivo che abbia il suo caso base nei numeri primi la scomposizione dei numeri interi nonnegativi come somme di quattro quadrati.

(13)

Un esempietto liberamente riadattato da Peano

public static long fatt( int n ){

return ( n == 0 ) ? 1 : n * fatt( n - 1 );

}

Queste definizioni rigorose sono adottate nei trattati sco- lastici del prof. Catania.

(Giuseppe Peano, “Le definizioni in matematica”, 1921)

(14)

Esempietto analogo: numeri di Fibonacci ( 1170–1240 ca. )

(15)

E poi i numeri del triangolo di Tartaglia ( 1499 ca.–1557 )

(16)

E poi i numeri del triangolo di Tartaglia ( 1499 ca.–1557 )

Il coefficiente binomiale nk esprime in quanti modi posso prelevare k elementi da un insieme di n elementi.

(17)

E poi i numeri del triangolo di Tartaglia ( 1499 ca.–1557 )

Il coefficiente binomiale nk esprime in quanti modi posso prelevare k elementi da un insieme di n elementi.

Riferimenti

Documenti correlati

Ispezione tecnico specializzato, progettazione di rinforzi, sottofondazioni locali, eliminazione delle cause delle eventuali modifiche geomorfologiche del terreno.. -

Il problema è stato brillantemente risolto nei MOS ad alta velocità (serie HC, HCT, AC, ACT) dove il ritardo di propagazione è ormai confrontabile con quello dei

Possa io sempre essere un oggetto di godimento per tutti gli esseri senzienti secondo il loro desiderio e senza interferenza, come lo sono la terra,.. l’acqua, il fuoco, le erbe e

(2) quando l’algoritmo costruito per la risoluzione del problema risulta instabile: ci` o si verifica quando la sequenza delle singole operazioni elementari che definiscono

3 – Le iscrizioni alle gare dovranno essere inviate a questo Dipartimento Sport, entro il 22 luglio p.v., compilate sul modulo allegato e dovranno indicare chiaramente: cognome e

7) RACCOLTA CONTATTI TRAMITE FIERE ED ESPOSIZIONI (Per proporre loro i Prodotti o l’Opportunità lavorativa).. POTENZIALI CONTATTI:. 8) RACCOLTA NUOVI CONTATTI ISCRIVENDOSI

(Matteo 7:15- 20) Man mano che hanno acquistato accurata conoscenza della Bibbia, hanno fatto i dovuti cambiamenti nella propria vita e nel proprio modo di pensare per poter

Posta questa premessa, egli continua, « si perverrà alla conclusione che il problema dell’aggiornamento scientifico del medico non attiene solo alla tecnica, ma