Skip to content
Problemi, algoritmi e coding

Problemi, algoritmi e coding

Le magie dell'informatica

  • Home
  • Capitoli
    • Uno
    • Due
    • Tre
    • Quattro
    • Cinque
  • Errata corrige
  • Oltre il libro
    • Uno
      • Il metodo algoritmico
      • Colora la mappa
      • Colorazione di una mappa: il codice
      • Ordinamento per selezione: il codice
      • Indovina il numero
      • L’algoritmo T3: il codice
      • Ordinamento per fusione: il codice
      • Ricerca esaustiva: il codice
    • Due
      • Le domande a Google
      • Shmoogle
    • Quattro
      • Il metodo dei fattori nascosti: visualizzazione
    • Cinque
      • La macchina di Turing
      • Il gioco dell’imitazione
      • L’algoritmo del percettrone: il codice
      • Lost in translation
      • A proposito di traduttori
    • Video
      • Domande e risposte
      • Errare coding est
  • Il metodo PAC
    • Il rompicapo di Guarini
    • Come funziona il time-lapse
    • Fellini e la crittografia
    • Il problema delle donazioni di reni
  • Lucidi
    • Due
    • Tre
    • Quattro
    • Cinque
  • Parlano di noi
  • Chi siamo
  • Toggle search form

Uno

Gli ingredienti di base

Di cosa si parla

Il ping-pong e il calcio per introdurre i concetti fondamentali dell’informatica. Le mappe, le carte e le monete per imparare i suoi ingredienti di base.

Incipit

  1. Apri il rubinetto.
  2. Controlla che la temperatura dell’acqua sia giusta.
  3. Togli tutti i vestiti.
  4. Entra sotto la doccia.
  5. Insaponati.
  6. …

Dato un insieme di giocatori, di cui si conosce il valore, come possiamo determinare il campione?

Svolgere un torneo a eliminazione diretta dove il giocatore che vince (ovvero che ha il valore maggiore) procede a incontrare uno dopo l’altro i giocatori che non hanno mai giocato prima.

function trovamax(s)
    max = s[1]
    for i = 2:length(s)
        if s[i]>max
            max = s[i]
        end
    end
    return max
end
Esegui e sperimenta

Eseguire tante ricerche di valori numerici o alfabetici in un insieme che non cambia nel tempo (come, ad esempio, un elenco telefonico).

Ordinare l’insieme una volta per tutte. Eseguire poi le ricerche confrontando il valore cercato con l’elemento centrale dell’insieme e procedendo “ricorsivamente” a sinistra o a destra nell’insieme a secondo di quale sia il valore più grande.

function ricBin(a,k)
    s = 1
    d = length(a)
    t = false
    i = 0
    while (s<=d && !t)
        c = div(s+d,2)
        if s[c]>k
            d = c-1
        elseif s[c]<k
            s = c+1
        else
            i = c
            t = true
        end
    end
    return i
end
Esegui e sperimenta

Copyright © 2025 Problemi, algoritmi e coding.

Powered by PressBook WordPress theme