Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizi con Python, Esercizi di Elementi di Informatica

Esercizi vari con python parte 2

Tipologia: Esercizi

2019/2020

Caricato il 29/04/2020

el-ch
el-ch 🇮🇹

2 documenti

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Esercitazione di Informatica- Esercizi in Python
23. Medie in contemporanea
Scrivete un programma che richiede in input 5 numeri e calcola:
la media dei numeri positivi (>=0)
la media dei numeri negativi (<0)
Le due medie devono essere visualizzate a video. Nota: i 5 numeri non devono essere richiesti una
seconda volta per calcolare la seconda delle due medie. Stampa le due medie. Suggerimento:
utilizzate i contatori.
24. Medie in contemporanea con valori nulli
Come l’esercizio precedente, tuttavia considerate anche il caso in cui non
sia possibile calcolare una delle due medie (es. si sono inseriti solo numeri
positivi o solo numeri negativi).
25. Sequenza di Fibonacci
Scrivete un programma che calcoli i primi 20 numeri della sequenza di Fibonacci. La sequenza di
Fibonacci è una sequenza di numeri che inizia con i numeri 0 ed 1 e ogni numero successivo è la
somma dei due numeri precedenti. Un esempio della sequenza di Fibonacci è: 0 1 1 2 3 5 8 13 21 …
26. Indovina il numero
Scrivete un programma che implementa il gioco descritto qui di seguito:
Il programma genera casualmente un numero intero compreso tra 1 e 100, l’utente deve cercare di
indovinare il numero andando a tentativi. Ad ogni tentativo l’utente deve scrivere un numero a tastiera
e il programma deve comunicare all’utente se il numero inserito è rispettivamente, più grande, più
piccolo del numero da indovinare oppure se è stato indovinato il numero. Il computer deve andare
avanti a chiedere numeri fino a quando l’utente non indovina il numero. Per generare numeri casuali,
usate le seguenti istruzioni:
import random # da inserire all’inizio del programma python, importa la
# libreria contenente le funzioni per generare casualmente il numero
number = random.randint(0,100) #assegna alla variabile number un numero intero casuale compreso
tra 1 e 100
27. Tabellina delle moltiplicazioni
Scrivete un programma che stampi a video la tabellina della moltiplicazione, dei numeri compresi tra
1 e 10.
Il programma dovrebbe produrre un output simile al seguente:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Il programma deve utilizzare due cicli annidati (il ciclo più interno deve stampare i singoli numeri di
una riga, il ciclo più esterno deve ripetere l’operazione di stampa per più righe). Consigli: nel
comando print aggiungete una virgola finale, come nell’esempio: print( …), in questo modo l’output
Account provvisorio:
Username: lezione
PWD: 123.ciao
Account provvisorio:
Username: lezione
PWD: 123.ciao
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Esercizi con Python e più Esercizi in PDF di Elementi di Informatica solo su Docsity!

Esercitazione di Informatica- Esercizi in Python

23. Medie in contemporanea

Scrivete un programma che richiede in input 5 numeri e calcola:

  • la media dei numeri positivi (>=0)
  • la media dei numeri negativi (<0) Le due medie devono essere visualizzate a video. Nota: i 5 numeri non devono essere richiesti una seconda volta per calcolare la seconda delle due medie. Stampa le due medie. Suggerimento: utilizzate i contatori.

24. Medie in contemporanea con valori nulli

Come l’esercizio precedente, tuttavia considerate anche il caso in cui non sia possibile calcolare una delle due medie (es. si sono inseriti solo numeri positivi o solo numeri negativi).

25. Sequenza di Fibonacci

Scrivete un programma che calcoli i primi 20 numeri della sequenza di Fibonacci. La sequenza di Fibonacci è una sequenza di numeri che inizia con i numeri 0 ed 1 e ogni numero successivo è la somma dei due numeri precedenti. Un esempio della sequenza di Fibonacci è: 0 1 1 2 3 5 8 13 21 …

26. Indovina il numero

Scrivete un programma che implementa il gioco descritto qui di seguito: Il programma genera casualmente un numero intero compreso tra 1 e 100, l’utente deve cercare di indovinare il numero andando a tentativi. Ad ogni tentativo l’utente deve scrivere un numero a tastiera e il programma deve comunicare all’utente se il numero inserito è rispettivamente, più grande, più piccolo del numero da indovinare oppure se è stato indovinato il numero. Il computer deve andare avanti a chiedere numeri fino a quando l’utente non indovina il numero. Per generare numeri casuali, usate le seguenti istruzioni: import random # da inserire all’inizio del programma python, importa la

libreria contenente le funzioni per generare casualmente il numero

number = random.randint(0,100) #assegna alla variabile number un numero intero casuale compreso tra 1 e 100

27. Tabellina delle moltiplicazioni

Scrivete un programma che stampi a video la tabellina della moltiplicazione, dei numeri compresi tra 1 e 10. Il programma dovrebbe produrre un output simile al seguente: 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 Il programma deve utilizzare due cicli annidati (il ciclo più interno deve stampare i singoli numeri di una riga, il ciclo più esterno deve ripetere l’operazione di stampa per più righe). Consigli: nel comando print aggiungete una virgola finale, come nell’esempio: print( …), in questo modo l’output Account provvisorio: Username: lezione PWD: 123.ciao Account provvisorio: Username: lezione PWD: 123.ciao

della print successiva sarà stampato sulla stessa riga senza andare a capo (questo escamotage funziona solo con Python 2, non con Python 3).

28. Conta i numeri

Scrivete un programma python che calcola quanti numeri pari e quanti dispari sono presenti in un insieme di numeri immessi da tastiera. Il programma deve richiedere le dimensioni dell’insieme (cioè di quanti numeri dovrà essere composto) in anticipo, cioè prima di richiedere a tastiera i singoli valori. Stampate a video i due sotto-insiemi (quanti pari e quanti dispari) e la loro somma.

29. Sette e mezzo

Scrivete un programma python che implementa il gioco di carte “Sette e mezzo”. Lo scopo del gioco è quello di realizzare il punteggio più alto possibile senza mai sballare , vale a dire senza superare il 7 e mezzo. Il programma svolge il ruolo del mazziere, e genera casualmente un numero intero (la carta) compreso tra 1 e 10. Le carte dall' 1 al 7 valgono tanti punti quanto è il loro valore numerico ( vale 1 punto, il 2 vale 2 punti, ecc.) le carte dall’8 al 10 valgono mezzo punto. Il programma genera una carta per volta e chiede all’utente se vuole continuare a giocare fino a quando l’utente non ha vinto o ha superato il 7 e mezzo (in tal caso ha perso). Per generare numeri casuali, usate le seguenti istruzioni: import random # da inserire all’inizio del programma python, importa la

libreria contenente le funzioni per generare casualmente il numero

carta = random.randint( 1 ,10) #assegna alla variabile carta un numero intero casuale compreso tra 1 e

30. Lista 1

Modificate l’esercizio 28 in modo da lavorare su una lista di numeri precaricata (la lunghezza della lista a vostra scelta) al posto dei valori immessi da tastiera e calcolate quanti numeri pari e quanti dispari ci sono.

31. Maggiore e minore

Scrivete un programma che a partire da una lista contenente 10 numeri già inseriti, cerca il minore ed il maggiore tra i numeri presenti. Per comodità potete copiare ed incollare nel vostro programma il seguente comando: li=[30, 18, 54, 90, 6, 150, 114, 162, 72, 78]

32. Moltiplicazione di una matrice riga per una matrice colonna.

Date due liste: r = [2, 4, 10, 22, 5] c= [10, - 1, 5, 3, 12] supponete che le due liste rappresentino due matrici, rispettivamente una matrice riga di dimensioni [1,5] ed una matrice colonna di dimensioni [5,1]. Scrivete un programma che calcola il prodotto delle due matrici. Il prodotto in questo caso è un intero pari alla somma dei prodotti degli elementi corrispondenti delle due liste. Il programma dovrà stampare alla fine il risultato trovato. Se non conoscete il calcolo matriciale chiedete al docente.

33. Controllo divisori

Scrivete un programma che crea due liste con 10 numeri interi l’una (scegliete voi se inserire i numeri da tastiera oppure inizializzare le liste con dei numeri direttamente dentro il programma). Il programma dovrà costruire una (terza) lista di dieci valori booleani, ognuno di questi dirà se il corrispondente elemento della seconda lista è un divisore intero del corrispondente elemento della prima lista (cioè se il resto della divisione dei due elementi è nullo). Il programma dovrà stampare poi le tre liste.

34. Dati su tuple

Scrivete un programma che richiede il cognome, il nome e l’età di una persona. Queste informazioni devono essere memorizzate in una tupla, la quale sarà aggiunta in coda ad una lista. Il programma

necessari scambi, l’algoritmo di ordinamento avrà terminato. Vi conviene utilizzare una variabile flag per verificare se durante un controllo sono stati effettuati o meno degli scambi

41. Ordinamento per selezione

Scrivere un programma che richiede all’utente di inserire 10 numeri da tastiera, li inserisce in una lista, ordina la lista in modo crescente (dal numero più piccolo al numero più grande) e stampa la lista ordinata. Si consiglia, durante la stesura del programma, per fare le prove, di utilizzare una lista di numeri precaricata, come quella riportata nell’esercizio precedente. Per ordinare la lista, implementate l’algoritmo di ordinamento per selezione. L’algoritmo è descritto qui di seguito:

  • Cercate nella lista la posizione dell’elemento più piccolo. Scambiate l’elemento più piccolo con l’elemento di indice 0 (il primo elemento della lista). In questo modo si sposta a sinistra l’elemento più piccolo della lista.
  • Cercate l’elemento più piccolo tra gli elementi rimanenti (si tratta di tutti gli elementi della lista ad esclusione di quello di indice 0; detto in altro modo, la ricerca deve essere effettuata a partire dall’elemento di indice 1 fino all’ultimo elemento della lista). Scambiate l’elemento trovato con l’elemento di indice 1.
  • Ripetete il procedimento descritto nei punti precedenti cercando l’elemento più piccolo a partire dalla posizione i fino alla fine della lista, e una volta trovato, scambiandolo con l’elemento in posizione i. Questa operazione va ripetuta per tutti i valori di i compresi tra 0 e la lunghezza della lista. Di fatto ogni volta si cerca l’elemento minimo tra quelli rimanenti e lo si sposta a sinistra. Quando si raggiunge la fine della lista, la lista è ordinata

42. Calcolo della moda

Scrivete un programma che richiede in ingresso una sequenza di numeri e li memorizza in una lista. La sequenza può essere composta da una quantità arbitraria di numeri, la sequenza termina quando l’utente inserisce il numero 0. Il programma deve stampare a video la moda (il numero che appare più spesso, o a parità di numero di apparizioni, il numero più piccolo). Attenzione, questo esercizio è complicato. Consigli:

  • Utilizzate un dizionario di contatori per contare la numerosità con cui appaiono i diversi numeri: per ogni numero di cui occorre contare la numerosità, nel dizionario si inserisce una coppia formata dal numero (chiave) e dal contatore associato (variabile associata alla chiave)
  • Una volta terminato il conteggio delle numerosità, individuate il massimo tra le diverse numerosità
  • cercate il numero (o i numeri perché possono essere più di uno) che hanno come numerosità la numerosità massima precedentemente individuata

43. Media e varianza di numeri generati casualmente

Scrivete un programma che generi 1'000 numeri casuali interi (di valore compreso tra 0 e 100) e li memorizzi in un dizionario. I numeri casuali devono essere inseriti nel dizionario per mezzo di una coppia chiave:valore dove la chiave è un numero progressivo che va da 0 a 999 e il valore è il numero casuale. Successivamente il programma deve calcolare media, varianza e scarto quadratico medio dei numeri generati casualmente presenti nel dizionario. Per generare numeri casuali, usate le seguenti istruzioni: import random # da inserire all’inizio del programma python, importa la

libreria contenente le funzioni per generare casualmente il numero

numero = random.randint( 1 ,10 0 ) #assegna alla variabile numero un numero intero casuale compreso tra 1 e 100. Ripetete lo stesso esercizio generando 10'000 numeri casuali.

44. Combinazioni di nomi e cognomi

Create una lista di 5 nomi. Successivamente create una lista di 5 cognomi. Create un dizionario nel quale saranno inserite delle coppie chiave:valore così costituite: la chiave è un numero progressivo, il valore è una tupla formata da un nome e un cognome. Nel dizionario dovranno essere inserite tante tuple quante sono le possibili combinazioni di nomi e cognomi.

45. Funzioni: calcolo della radice quadrata

Scrivete una funzione che accetta in ingresso due valori numerici (di tipo float) che chiameremo rispettivamente A e B. A rappresenta un numero del quale deve essere calcolata la radice quadrata (potete assumere che A sia un numero non negativo). Il valore numerico di B invece rappresenta la “precisione” con il quale dovrà essere calcolata la radice quadrata (vedi il proseguimento della spiegazione). Il programma che scriverete dovrà calcolare la radice quadrata di A, non utilizzando le funzioni matematiche già presenti in Python (cioè non potete utilizzare il metodo già visto a lezione), ma dovrà utilizzare un algoritmo scritto da voi. L’algoritmo che dovrete implementare è il seguente: Utilizzate due variabili aggiuntive (es. top e bottom) che rappresentano l’intervallo nel quale può trovarsi la soluzione. All’inizio a bottom deve essere assegnato il valore 0 e a top deve essere assegnato il valore di A. Ripetete più volte il gruppo di operazioni descritte qui di seguito:

  • Calcolate il valore mediano tra top e bottom (es. tra 8 e 0 il valore mediano è 4; tra 10 e 2 il valore mediano è 6).
  • Elevate il mediano al quadrato e confrontatelo con A, se il mediano al quadrato è superiore ad A, il mediano diventerà il nuovo valore di top, se invece il mediano al quadrato è inferiore ad A, il mediano diventerà il nuovo valore di bottom. Come già detto, le variabili top e bottom rappresentano un intervallo nel quale si trova la soluzione cercata. Ripetendo più volte la sequenza di operazioni descritta sopra, i valori di top e bottom si avvicinano tra loro sempre più. Quando la differenza tra top e bottom diventa inferiore alla “precisione” (cioè al secondo valore fornito in input dall’utente) l’algoritmo deve terminare fornendo come risultato della radice quadrata il valore mediano calcolato sugli ultimi valori di top e bottom.

46. Trova i duplicati

Scrivere una funzione che riceve in ingresso una lista di interi (di lunghezza non nota a priori) e restituisce il numero di elementi duplicati (cioè quanti numeri sono presenti 2 o più volte). Per esempio nella lista [1, 5, 5, 5, 4, 4, 0, 8, 7, 7] i numeri duplicati sono 3 (cioè i numeri 5, 4, 7). Suggerimento: è più semplice individuare i duplicati dopo aver ordinato la lista (tutti i duplicati di uno stesso numero si vengono a trovare in posizioni adiacenti).

47. Differenza di due liste

Scrivete una funzione che accetta due liste di numeri interi come parametri in ingresso. La funzione dovrà restituire in uscita una lista formata da tutti i numeri presenti nella prima e non presenti nella seconda. Nella lista restituita dalla funzione, ogni numero deve apparire una sola volta. Per esempio, se si forniscono in ingresso le liste L1=[9, 1, 1, 3, 5, 4, 5] e L2=[1,3] la funzione dovrà restituire la lista [9, 4, 5]. Non è richiesto che la lista fornita in uscita sia ordinata. Suggerimento: si consiglia di usare il comando “in” per testare l’inclusione di un elemento in una lista.

48. Elenco dei divisori

Scrivete una funzione, che accetta come parametri due liste di numeri intere la ed lb , aventi entrambe lunghezza non nota a priori. La funzione deve restituire una lista che contiene gli elementi di lb che sono divisori di tutti gli elementi di la. Per esempio, se la =[12, 6, 36] e lb =[2, 3, 4, 5, 10, 11], la lista restituita dovrà essere [2, 3]. Se vi può essere d’aiuto potete implementare più di una funzione. Testate la vostra funzione richiamandola e passandogli alcuni valori.