APRENDA PYTHON VOL 6–REPETIZIONE PER CONTEGGIO (FOR)
ISTITUTO DI INFORMATICA–ICOMP–UFAM
Esercizi risolti di Linguaggio Python.
Cardoso, A. K. S.
1 - CONTEGGIARE OCCORRENZE (2): APPROVAZIONE IN DISCIPLINA
All'Università Federale di Amazonas (UFAM), uno studente è approvato in una
disciplina si attiene a due criteri:
[Link] finale uguale o superiore a 5,0.
Frequenza uguale o superiore al 75% del carico orario.
Se la frequenza è inferiore al 75%, lo studente è bocciato per frequenza.
indipendentemente dalla sua nota.
Lo studente è bocciato per voti, avendo partecipato al numero minimo di
aule, non ha raggiunto la media richiesta.
Scrivi un programma che legga le seguenti informazioni su una disciplina,
nella seguente ordine:
1. Um vetor contendo médias finais de cada aluno;
2. Un vettore contenente la presenza (numero di ore) degli studenti in un
disciplina;
3. Il carico orario della disciplina.
Come uscita, stampa un vettore di tre posizioni, in quest'ordine:
1. Numero di alunni approvati;
2. Numero di alunni bocciati per voto;
3. Numero di studenti bocciati per frequenza.
Considera che le voci fornite sono sempre valide:
• Le votazioni variano tra 0,0 e 10,0;
• La frequenza tra 0 e il carico orario;
• I vettori di voti e di frequenza hanno dimensioni uguali.
2 - CONTARE OCCORRENZE (1): SQUADRA DI CALCIO
Os resultados das partidas de um time de futebol ao longo de um campeonato
sono memorizzati in due vettori della stessa dimensione:
• Il primo vettore conserva il numero di gol effettuati da questa squadra in
ogni partita.
• Il secondo vettore conserva il numero di gol realizzati dalla squadra
avversario.
Una posizione di ciascun vettore indica la i-esima partita svolta.
Scrivi un programma che legga questi due vettori, nell'ordine in cui sono stati
spiegati. Come uscita, stampare un vettore di tre posizioni, contenente i
seguenti dati, in ordine, in relazione alla squadra:
Numero di vittorie;
2. Numero di pareggi;
3. Numero di sconfitte;
Considera che le voci fornite sono sempre valide, cioè:
• I due vettori di ingresso sono di dimensioni uguali;
• Ogni elemento del vettore, che indica il numero di gol, è un intero non-
negativo.
Consigli
• Completa le linee 7, 9, 11, 13, 15, 17 e 20 sostituendo le
interrogazioni per comandi Python validi che risolvano il problema.
• Questo codice:
1. Utilizza un vettore per contare il numero di occorrenze di ogni situazione
elencata.
2. Usa la funzione zeros(x, dtype=int), del modulo numpy, per creare un
vetor di elementi uguali a zero, di tipo intero.
3. Esempio (non esaustivo): per l'input [4, 0, 2, 3, 1, 3] [0, 0, 2, 5, 1, 2],
l'uscita dovrebbe essere [2 3 1]. Questo significa che la squadra:
oha vinto due volte (4×0 e 3×2, prima e ultima partita)
oempatò tre volte (0×0, 2×2 e 1×1, nel secondo, terzo e
quinto gioco
ofu sconfitto una volta (3×5, nella quarta partita).
3-FORZAACCUMULATAPER
Il professore di Introduzione alla Programmazione di Computer desidera separare
una classe in due gruppi. Ha deciso di usare la punteggiatura della forza accumulata
due studenti, del gioco utilizzato nel Codebench, come criterio di separazione della
turma nella seguente forma:
1. Se la forza accumulata dallo studente è pari, lo studente fa parte del Gruppo 1.
2. Se la forza accumulata dallo studente è dispari, lo studente fa parte del Gruppo
2.
L'input deve essere un vettore contenente la forza accumulata di ogni studente. A
l'uscita deve essere un vettore con solo le forze accumulate del Gruppo 1.
Suggerimenti
1. Usa due cicli for distinti:
Il primo ciclo deve percorrere il vettore di ingresso per contare
quanti studenti appartengono al Gruppo 1.
2. Il secondo ciclo deve percorrere nuovamente il vettore di ingresso
identificando quali elementi appartengono al Gruppo 1 e attribuendo-
os ao vetor di uscita.
Usa la funzione zeros() per creare un vettore di uscita con la quantità di
alunni del Gruppo 1.
4 - VEICOLI IN TRANSITO AD ALTA VELOCITÀ
Obiettivo: Contare le multe gravi su una determinata avenue.
La Superintendencia Municipale dei Trasporti Urbani (SMTU) ha installato un
radar mobile in punti della città per identificare e multare i conducenti che
superano il limite di velocità della strada monitorata.
Scrivi un programma che legga il vettore con il registro delle velocità misurate
pelo radar mobile. Il primo valore del vettore indica il limite di velocità della via.
I restanti valori sono i registri di velocità delle auto che circolano nella
via.
Come uscita, determina quanti conducenti hanno violato il limite di
velocità superiore al 20% e inferiore al 50% rispetto alla velocità massima
consentita per la strada.
Suggerimenti
1. Utilizza una variabile accumulatrice per memorizzare la quantità di
infrazioni.
2. Considera che i valori inseriti come input siano sempre validi,
cioè, sono reali positivi.
3. Esempio (non esaustivo): per l'input [60.0, 73.9, 22.9, 72.1, 72.0,
100.6], l'uscita sarà:
1
3
2
Questo significa che la velocità massima su questa strada è di 60 km/h (posizione 0
do vettore di ingresso) e per questo i seguenti conducenti hanno circolato in
alta velocità: quello con indice1 e quello con indice3, per un totale di 2 conducenti.
5 - ESCLUDENDO VOWELLE
Fai un programma che legga una stringa come input. Come output, stampa
ess string escludendo la lett r, mai scola o mai scola, se ci s i.
Consigli
1. Crea una stringa vuota come output.
2. Utilizza un ciclo di ripetizione for per scorrere ogni carattere della stringa
di ingresso
oSe il carattere letto è diverso da A (maiuscolo o minuscolo),
quindi concatenalo alla stringa di output.
oIn caso contrario, leggi il carattere successivo.
6 - PRODUTTIVO
Scrivi un programma che legga un vettore di numeri reali x = (x1, x2, ..., xn)de
dimensione.
Come uscita, determina il seguente valore:
ondemé a média do vetorx.
Stampa il risultato con al massimo 03 cifre decimali di precisione.
Suggerimenti
1. Utilizza un ciclo di ripetizione for per percorrere ogni elemento del vettore
di ingresso.
2. Usa la funzione round(x, n) per arrotondare il valore x con até n cifre.
decimali.
3. Usa la funzione abs() per trovare il valore assoluto di ciascun termine del
prodotto.
7 - SERIE DI TERMINI CON MODIFICA DEL SEGNALE
Scrivi un programma in Python che legga il numero (N) di termini
appartenenti a una serie di elementi e stampa il valore di H, essendo:
1−1/2+1/3−1/4+...+1/N
Stampa il risultato con una precisione di fino a 06 cifre decimali.
8 - ARTE ASCII (1)
Scrivi un programma che stampi una figura simile a quella rappresentata
di seguito, a partire dalla lettura del numero di asterischi presenti nella base. Per
esempio, per un input uguale a 5, il risultato prodotto sarà uguale a quello di
figura sotto.
Suggerimenti
• Utilizza cicli di ripetizione.
• Dividi per conquistare: vedi che la figura è composta da due triangoli.
Usa un ciclo per disegnare il primo e un altro ciclo per disegnare il
secondo triangolo.
• Utilizzare operazioni con stringhe.
9 - ELEMENTI PARI
QUANTOS ELEMENTOS SÃO PARES?
Scrivi uno script che legga dalla tastiera un vettore di qualsiasi dimensione. In
seguire, determinare:
• Quanti elementi sono pari?
• Quanti sono dispari?
• Qual è la quantità di elementi?
Il tuo script deve ripetere questa procedura indefinitamente per diversi
vettori, di dimensioni varie, fino a quando non ci sia un vettore con un solo elemento
inserito, terminando l'esecuzione dello script.
Suggerimenti
• Completa le righe 7, 13, 17, 20 e 23, sostituendo i punti interrogativi con
comandi Python validi che risolvono il problema.
• Il programma fornito adotta i seguenti passaggi per risolvere il
problema:
1. Ler um vetor, a partir do teclado.
2. Se il vettore contiene solo un elemento, allora terminare l'esecuzione del
script (linea 7).
3. Se il vettore ha più elementi, dobbiamo determinare:
a. Quanti di essi sono pari;
b. Quanti di essi sono dispari, il che è equivalente alla dimensione del vettore
meno la quantità di elementi pari;
c. Totale degli elementi del vettore.
4. Torna al passo 1.
10 - LO STUDENTE PUÒ ESSERE TUTOR?
APPROVATO, MA NON PUÒ ESSERE MONITOR
Alla UFAM, affinché uno studente possa essere tutor di una disciplina è necessario che
ele deve essere stato approvato in questa materia con un voto minimo di 7.
Scrivi uno script che legga un vettore contenente le medie finali degli studenti
immatricolati in una disciplina. Successivamente, determina la quantità di
alunni approvati nella disciplina (voto maggiore o uguale a 5), ma che non hanno
condizioni per essere un monitor (voto inferiore a 7).
Il tuo script deve ripetere questa procedura indefinitamente per diversi
vettori, di dimensioni variabili, corrispondenti ad altre discipline, fino a che
un vettore di solo un elemento viene inserito, terminando l'esecuzione del
copione.
11 - TIPI DI INTRATTENIMENTO
Uno studente ha condotto una ricerca per raccogliere le preferenze di
entretenimento dos colegas de turma, entre as seguintes opções: TV, Netflix e
Youtube.
Scrivi un programma che legga un vettore di stringhe, dove ogni posizione
rappresenta il tipo di intrattenimento preferito dello studente intervistato tra le
opzioni disponibili.
Come uscita, stampa un vettore di tre elementi interi, corrispondenti a
quantità di studenti che hanno scelto ogni intrattenimento, in questo
ordine:TV,NETFLIXeYOUTUBE.
Suggerimenti
1. Use a funçãozeros(3, dtype=int)para inicializar um vetor de contagem
com 3 elementi uguali a zero (intero).
2. Ogni elemento del vettore deve essere utilizzato per contare il numero di
ocorrências de cada opção de entretenimento.
3. Usa il metodo .upper() per standardizzare l'input.
12 - LINGUAGGIO INTERNET
Con l'avvento di Internet è emersa una nuova lingua, chiamata
Internetês. In questa lingua, gli utenti tendono a scrivere molte parole
d frm rdz, nrmlmnt rmmvnd l vgl d plvr.
Ad esempio, la frase “tutto bene con te?” può essere rappresentata da “td
bm cm vc?
Fai uno script che legga una parola qualsiasi e la stampi in "internetese".
Pr t drzr n prl p l ntrnt s, b st rmvr l vgl.
Consigli
1. Usa un vettore di vocali e verifica se qualche elemento del vettore è
presente nella stringa;
2. Utilizza il [Link]() per rimuovere le vocali.
13 - VALIDATORE DI PASSWORD
All'Università Federale dell'Amazzonia (UFAM), uno studente deve iscriversi
non sito doecampus tramite la tua email e password. Uno dei prerequisiti per
finalizzare la registrazione è che la password deve contenere almeno 01 carattere
maiúsculo, 01 carattere minuscolo e almeno 8 caratteri in totale.
Scrivi un programma che convalidi la password. Data una stringa di lunghezza N >= 8
come input, verifica se essa:
• Contienealmeno 01 carattere maiuscolo
• Contém pelo menos 01 caractere minúsculo
• Deve avere almeno 8 caratteri
Come risultato, stampa PASSWORD VALIDA nel caso in cui la password sia valida. Caso
contrario, stampare PASSWORD NON VALIDA.
Suggerimenti
1. Usa i metodi .islower() e .isupper() per sapere se un carattere è
minuscolo o maiuscolo. Ad esempio: senha[i].islower()
2. Usa la funzione len() per determinare la quantità di caratteri di una
STRINGA.
14 - SERIE ARMONICA
La serie armonica è definita così:
cioè:
Fai un programma che legga un intero N e stampi la somma dei primi N
termini della serie armonica. Il risultato deve essere stampato con fino a 2 decimali.
decimali.
Suggerimenti
1. Non utilizzare il comando for, usa la funzione range(0, N) per generare numeri da 0 a N-
1.
2. Usa la funzione round(x, n) per arrotondare il valore x con fino a n cifre.
decimali.
15 - STANDARD DI SOMMA
Fai un programma che calcoli e scriva il valore di S:
H = 1/1 + 3/2 + 5/3 + 7/4 + ... + 99/50
L'uscita deve contenere al massimo due decimali.
Come input, riportare "Calcule" solo a fini di esecuzione del programma.
16 - SERIE DI MACLAURIN DEL COSSENO
Dato un angolo x∈ R|−1 <x< + 1, il suo coseno è dato dalla seguente serie di
Maclaurin:
Scrivi un programma che legga le seguenti variabili:
1. Un angolo x, misurato in radianti.
2. Un numero intero k, la quantità di termini della serie.
Come uscita, stampare il valore della serie sopra per l'angolo x e con k termini,
con fino a dodici cifre decimali di precisione.