Informa(ca Appun% dal laboratorio 4

Documenti analoghi
Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Informa(ca. Appun( della lezione 4

Si può scrivere un programma anche utilizzando un editor di testo (Blocco Note, WordPad, ) ricordandosi comunque di salvarlo con l estensione.py.

STRUTTURE DI CONTROLLO DEL C++

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Laboratorio di Python

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Le Istruzioni di Controllo

Fondamenti di Programmazione. Strutture di controllo

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

If Statement. Il costrutto condizionale if ha la seguente sintassi:

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

VARIABILI, ASSEGNAZIONE, DECISIONI

Costrutti iterativi. Utilizzo dei costrutti iterativi

Le strutture di controllo in C++

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Laboratorio 04. Programmazione - CdS Matematica. Michele Donini 17 Novembre 2015

PROGRAMMAZIONE: Le strutture di controllo

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

PROGRAMMAZIONE STRUTTURATA

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Sviluppo di programmi

Programmazione in Java (I modulo)

Programmazione è gestione di eventi

La ripetizione. Cicli ed iterazioni. Flusso di esecuzione ciclico. La ripetizione. Flusso di esecuzione ciclico. Errore frequente

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Linguaggio C. Condizioni composte (operatori logici)

Tipi di dato strutturati: Array

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Appunti di informatica. Lezione 7 anno accademico Mario Verdicchio

Sistemi Web per il turismo - lezione 3 -

Costrutti condizionali e iterativi

Le basi del linguaggio Java

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Esercitazione 3. Espressioni booleane I comandi if-else e while

Strutture di controllo decisionali

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Laboratorio Progettazione Web Il linguaggio PHP Variabili e Istruzioni. Andrea Marchetti CNR/IIT AA 2016/2017

Programmazione, 5 a lezione

ISTRUZIONI DI ITERAZIONE

Laboratorio di programmazione

Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli

Diagrammi a blocchi 1

CORSO DI PROGRAMMAZIONE

Rappresentazione degli algoritmi

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al

Strutture di controllo iterative

Modulo 1 Concetti di base della Tecnologia dell Informazione

Programmazione. Valerio Perticone, Sergio Perticone

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Fondamenti di Informatica

Strutture dati e loro organizzazione. Gabriella Trucco

C espressioni condizionali

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013

Laboratorio di Python

Il linguaggio di programmazione Python

Università di Roma Tor Vergata L6-1. iterazione: struttura di controllo per ripetere più volte uno stesso comando

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

Laboratorio di Matematica e Informatica 1

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Programmazione web lato client con JavaScript. Marco Camurri 1

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Esercitazione gennaio 2015

Laboratorio di Python

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

5 - Istruzioni condizionali

Riepilogo MATLAB. Esercitatore: Daniel Dubois

MINIMANUALE VBA PER CREARE MACRO NEI FOGLI EXCEL

Istruzioni semplici e strutturate

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Metodi statici. Dichiarazione e chiamata di metodi statici

PASCAL standard. Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Excel & VBA. Excel e Visual Basic for Application

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Corso di Fondamenti di Informatica Classi di istruzioni 2

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Programmazione Funzionale

Cosa si intende con stato

Informa(ca Appun% dal laboratorio 2

Introduzione all'algoritmica. 1 Primo esempio: il massimo di una sequenza.

Gestione dei compiti

Strutture di controllo iterative

Problema: calcolare il massimo tra K numeri

Laboratorio di Informatica

Iterazione (introduzione)

Strutture di Controllo

Domande di Reti Logiche compito del 29/1/2016

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI

Lezione 2 I Dizionari

Transcript:

Informa(ca Appun% dal laboratorio 4

Esercizio Scrivere un programma Python che estragga in con%nuazione 6 numeri a caso compresi tra 0 e 9 (estremi inclusi) finché non si obene una ses%na di numeri tub uguali tra di loro. Il programma deve mostrare tuee le estrazioni su schermo ed eseguirne il conteggio*. *In data 19 novembre 2015 è stato raggiunto l insuperabile (leeeralmente: questo record può essere solo eguagliato) risultato di avere sei volte 3 al primo colpo.

Numeri pseudocasuali In un computer, che per sua natura è completamente determinis%co, non esistono numeri estrab a caso. Esistono, però, funzioni matema%che parametriche che sono in grado di generare sequenze di numeri che agli occhi dell utente appaiono come casuali, ma che in realtà sono determinis%ci. Numeri di questo %po si dicono pseudocasuali In par%colare, un %pico parametro che concorre alla loro generazione è l istante (con precisione al decimillesimo di secondo) in cui viene lanciato il programma (valore segnato dall orologio del computer, chiamato clock )

Random Per usare i numeri pseudocasuali in un programma bisogna importare il modulo random Importare un modulo vuol dire rendere disponibili tub quei comandi precedentemente scrib da altri programmatori e inseri% nell ambiente di programmazione Python Il faeo che non tub i moduli siano resi disponibili in maniera automa%ca è dovuto a mo%vazioni di prestazione Le funzioni del modulo random si invocano con la dot nota%on In par%colare usiamo la funzione randint(x,y) che fornisce un numero intero compreso tra x e y (estremi inclusi)

While True + break Quando si deve ripetere un istruzione un numero non prevedibile di volte, ma dipendente da una condizione, la si inserisce %picamente in ciclo while Potremmo pensare di scrivere un codice del genere while (i 6 numeri estrab non sono tub uguali): estrai 6 numeri a caso aumenta il contatore stampa i 6 numeri su schermo

Questo modo di procedere ha un problema: la prima volta che la condizione del while viene controllata, non è stata faea ancora alcuna estrazione, quindi la condizione non ha valore di verità Ovviamente un essere umano è in grado di capire che la prima volta il controllo va omesso, ma un computer no Ecco quindi che può venire u%le il ciclo while True, ovvero un loop in cui si entra in maniera incondizionata, visto che la condizione ha valore di verità vero Dal loop, però, a un certo punto bisogna uscire, altrimen% il programma non terminerebbe mai L esecuzione di un istruzione break provoca l uscita dal ciclo in cui tale istruzione è inserita

Il codice diventerebbe quindi: while True: estrai 6 numeri a caso aumenta il contatore stampa i 6 numeri su schermo if (i 6 numeri sono tub uguali): break Si entra nel ciclo itera%vo in ogni caso e vi si rimane finché non viene eseguita l istruzione break L istruzione break viene eseguita nel caso in cui è vero che i 6 numeri estrab sono tub uguali

While con variabile booleana Un modo alterna%vo di procedere è quello di usare una variabile booleana (che assume solo i valori True e False ) che possiamo chiamare vinto per indicare se sono sta% estrab 6 numeri uguali o meno Il valore iniziale di tale variabile sarà naturalmente False: vinto = False while not vinto: estrai 6 numeri a caso aumenta il contatore stampa i 6 numeri su schermo if (i 6 numeri sono uguali) vinto = True

La condizione di uscita dal while Come si specifica in Python la condizione i 6 numeri estrab sono uguali? Un modo molto semplice è quello di fare una catena di uguaglianze Tale soluzione, però, non è scalabile: se anziché estrarre 6 numeri dovessimo estrarne 20, o 100, la condizione diventerebbe molto lunga da scrivere Per mantenere la scalabilità del programma anziché usare 6 variabili e una sequenza di uguaglianze per confrontarle, introduciamo una lista e un ciclo for per confrontare i valori al suo interno

Soluzione from future import print_func%on import random count = 0 vinto = False while not vinto: giocata = [] for i in range(0,6): giocata.append(random.randint(0,9)) count = count + 1 print( giocata no., count, :, giocata) vinto = True for j in range(0,5): vinto = vinto and (giocata[j]==giocata[j+1])

La condizione di uscita dal while Dopo l estrazione dei 6 numeri e la loro visualizzaione, la variabile vinto viene posta a True, non perché siamo sicuri che i 6 numeri estrab siano tub uguali, ma appunto per controllare se questa condizione è vera vinto viene messa in congiunzione con la condizione giocata[j]==giocata[j+1], con j che varia da 0 a 4 (estremi inclusi) se tuee le coppie consecu%ve di valori in giocata sono uguali, vinto uscirà dal ciclo for ancora col valore True se anche una sola coppia è formata da valori diversi, vinto assume il valore False e tale rimarrà fino alla fine del ciclo (False in congiunzione con qualunque condizione dà False)

Esercizi Scrivere un programma Python che chieda in input all utente una ses%na di numeri compresi tra 0 e 9 e gli mostri quante estrazioni sono state necessarie per fare uscire tale ses%na Scrivere un programma Python che chieda in input all utente una ses%na di numeri da giocare con le regole del SuperenaloEo, faccia un estrazione di 6 numeri (tra 1 e 90, tub diversi tra loro), e dia il punteggio oeenuto dalla giocata dell utente