6 Maggio 2024

Esercizi – Algoritmi e Programmi

Struttura Sequenziale

  1. Calcolare Somma, sottrazione, moltiplicazione e resto di 2 numeri immessi da tastiera
  2. Immesso il raggio calcolare area e circonferenza di un cerchio
  3. Dato il lato, calcolare area e perimetro di un quadrato
  4. Calcolo dell’incremento o decremento percentuale del fatturato di un’azienda dati in input i fatturati di 2 anni successivi
  5. La popolazione di un comune, due anni fa, era di 6340 abitanti, l’anno scorso ha registrato un incremento del 5%. Calcolare la popolazione attualeVengono forniti da tastiera il numero di iscritti, numero dei votanti, numero di si, numero di no, calcolare la percentuale dei votanti sul totale degli iscritti e le percentuali dei si e dei no rispetto al numero dei votanti
  6. Calcolo dell’età media di 3 persone
  7. Dato il raggio, calcolare circonferenza e area di un cerchio
  8. Determinare la percentuale di sconto, dati importo lordo ed importo scontato
  9. Calcolare l’ipotenusa date le misure dei cateti di un triangolo rettangolo
  10. Calcolo di una bolletta telefonica considerando
    – 0,15 di scatto alla risposta
    – 15,00 di canone mensile
    iva del 21% sul totale
  11. Una famiglia di 2 adulti + bambino deve effettuare un trasferimento in aereo.
    Il bambino ha diritto allo sconto del 15% sul prezzo del biglietto
    • Quali dati saranno immessi in input?
    • Calcolare la spesa totale
    • Calcolare la spesa media per persona
  12. Dati in input numero di ore di lavoro ed tariffa oraria,
    calcolare lo stipendio detraendo una percentuale P di trattenute previdenziali ed una percentuale F di trattenute fiscali. P e F saranno immessi da tastiera
  13. Dati in input i km percorribili con un litro di carburante, il costo a litro del carburante ed i km totali percorsi, calcolare il totale di una nota spese di un agente di commercio.
  14. Scambiare i contenuti di 2 variabili A e B, immesse da tastiera.
    Visualizzare le 2 variabili nell’ordine A e B.. Soluzione (*)
  15. Calcolare il numero minimo di banconote per un importo in euro, tenendo conto dei diversi tagli da 500, 200, 100, 50, 20, 10, 5 euro
  16. Scrivere una funzione che ricevuto un intero N restituisca TRUE se esso è primo.
  17. Scrivere un prg che, facendo uso della suddetta funzione, visualizzi 20 numeri primi compresi tra 1 e 100000 generati casualmente. Il prg finirà dopo aver visualizzato il 20° numero ma sarà necessario generarne molti di più. Quelli non primi non devono essere visualizzati. Alla fine visualizzare quanti numeri sono stati generati complessivamente.
  18. Immessi i double n ed e, calcolare la potenza di n elevato e. Usare la funzione pow().

Struttura Condizionale

  1. Calcolare il maggiore tra 2 numeri immessi
  2. Determinare se un numero immesso e pari o dispari
  3. Immessi i nomi di 2 persone e le rispettive età, visualizzare prima il nome del più piccolo e poi quello del più grande
  4. Calcolare il maggiore tra 3 numeri immessi da tastiera
  5. Immessi nomi e tempi di 3 corridori, visualizzare il nome del più veloce (Soluzione)
  6. Date 2 rette nel formato ax+by=c (cioé immessi a, b, c per ognuna di esse), determinare se le rette sono parallele perpendicolari o coincidenti e se possibile, trovare le coordinate del punto di intersezione
  7. Calcolare e visualizzare le tasse da pagare su un reddito.
    Considerare le seguenti percentuali:0% fino a € 2000
    27% fino a € 20.000
    33% oltre
  8. Calcolare il conto da pagare in copisteria. Considerare un costo a copia variabile in base alla quantità:
    € 0,10 per quantità fino a 19 copie
    € 0,08 per quantità tra 20 e 100 copie
    € 0,05 per quantità da 101 copie in su
    Inoltre, se richiesta, leventuale rilegatura costerà ulteriori € 2
  9. Immesso un anno a 4 cifre determinare se è bisestile
  10. Immessi base, altezza e tipo di triangolo scelto tra Equilatero/Isoscele/Scaleno, calcolare area e perimetro. Cercare di richiedere allutente il minor numero di input.
  11. Immessi il tipo di camera e il numero di notti di permanenza in albergo,
    calcolare il costo di un soggiorno in albergo considerando:
    -un costo giornaliero di € 60 euro per una camera singola;
    -un costo giornaliero di € 90 euro per una camera doppia;
    -un costo giornaliero di € 110 euro per una camera tripla;
    -lo sconto del 20% per soggiorni di almeno 3 notti.
  12. Immessi i 2 operandi ed un operatore (+, -, *, /, %, ^),
    creare una calcolatrice capace di effettuare le seguenti 6 operazioni.
    L’input deve avvenire nell’ordineli numero, operatore, numero.
    Esempio:
    Primo numero: 5
    Operatore: *
    Secondo numero: 18
    Risultato = 90
  13. Scrivere un algoritmo che determini se una data di calendario, immessa in 3 variabili nel formato gg  mm  aa, è CORRETTA o NON VALIDA.
  14. Facendo uso di funzioni scrivere un algoritmo che determini se una data di calendario, immessa in 3 variabili nel formato gg  mm aaaa, è CORRETTA o NON VALIDA.

Struttura iterativa

  1. Scrivi un programma che controlli che un numero immesso da tastiera sia compreso tra 1 e 10 e che conti il numero di tentativi effettuati
  2. Scrivi un programma che consenta di immettere (o generare) 10 numeri dispari e ne calcoli la somma. Eventuali numeri dispari immessi (o generati) erroneamente non dovranno essere conteggiati e sommati. Allavvio il programma chiederà allutente se vuole immettere o generare i numeri.
  3. Visualizzare i numeri da 10 a 1 con ciclo while
  4. Visualizzare i numeri da 10 a 1 con ciclo for
  5. Calcolare quoto intero e resto tra 2 numeri a e b, immessi da tastiera, con una serie di sottrazioni
    • Esempio:
    • a=14
    • b=4
    • 1) 14-4=10
    • 2) 10-4=6
    • 3) 6-4=2
    • Quoto 3 (3 sottrazioni effettuate)
    • Resto 2 (residuo positipo)
  6. Calcolare prodotto con una serie di somme tra 2 numeri immessi da tastiera
    • Esempio:
    • a=4
    • b=3
    • p= a*b = a+a+a = 12
    • cioè l’accumulo di 4 ripetuto 3 volte
    • cioè l’accumulo di a ripetuto b volte
  7. Immessi gli interi n ed e, calcolare la potenza di n elevato e. Usare il ciclo for
  8. Calcolare la potenza di un numero b elevato ad un numero e immessi da tastiera.
    b deve essere compreso tra 2 e 10
    e deve essere un numero maggiore di 0 e non superiore a 1.
  9. Scrivere un algoritmo che a scelta dellutente effettui un prodotto o una divisione procedendo comunque con una serie di addizioni (interpretare attentamente il testo)
  10. Generazione dei primi 10 numeri pari (e dispari)
  11. Somma di 10 numeri immessi da tastiera
  12. Determinare il minore tra 10 numeri immessi da tastiera
  13. Generare un linea di asterischi con lunghezza immessa da tastiera
  14. Generare un rettangolo di asterischi con altezza e larghezza immessi da tastiera
  15. Calcolare la somma degli n numeri successivi ad n immesso da tastiera (interpretare attentamente il testo)
  16. Generare n numeri della serie di Fibonacci
  17. La serie buffa: 1,1,1,2,3,4,6,9,13,…
    I primi 3 numeri della serie sono 1,1,1. Ogni successivo è calcolato sommando lultimo ed il terzultimo.       Generare ln-esimo numero della serie.
  18. Immesso un numero intero da tastiera, convertirlo in binario.
  19. Immessa una nazione in input, calcolare la media delle reti segnate dai giocatori di detta nazione, selezionando tra una serie di N nazioni e numero goal di calciatori, immessi da tastiera.
  20. Immessi eta e sesso degli studenti di una classe, calcolare la media delleta delle femmine e quella dei maschi. L’input finisce quando si immette eta = 0.
  21. Una statistica su N città, prevede per ognuna di esse la determinazione dellindice di attività con il calcolo abitanti attivi/abitanti*100 con nome città, abitanti ed abitanti attivi immessi da tastiera.
    Visualizzare i nomi delle città con indici minimo e massimo determinati.
  22. Premi ai dipendenti: Unazienda decide di incentivare la produttività dei propri dipendenti mediante lattribuzione di premi. Tali premi dipendono da più fattori combinati fra loro:
    • le assenzela quantità di pezzi prodottilusura degli utensiligli scarti di produzione
    I premi risulteranno essere assegnati secondo i seguenti criteri:
    • Premio A: produzione maggiore di 2000 unità
    • Premio B: assenze minori di 10 e produzione maggiore di 2000
    • Premio C: coeff. usura minore di 0,5 o scarti minori di 20
    • Premio D: assenze minori di 10 e coeff.usura minore di 0,5 oppure produzione maggiore di 2000 e scarti minori di 20

Array

  1. Verifica di una partita iva immessa in un campo di tipo stringa
  2. Caricamento di un vettore di 11 cifre con numeri casuali
  3. Caricamento di 10 numeri immessi da tastiera in un vettore
  4. Visualizzazione di un vettore caricato
  5. Ricerca: Inserire N numeri interi in un vettore VET e successivamente un numero NUM; stampare la posizione di NUM se presente in VET
  6. Somma degli elementi di un vettore
  7. Ricerca e stampa dell’elemento maggiore di un vettore caricato con numeri casuali
  8. Ricerca e stampa degli elementi maggiore e minore di un vettore caricato con numeri casuali
  9. Dopo aver popolato un array di n interi casuali, contare e visualizzare quanti sono i numeri compresi tra i valori a e b. I valori di a, b e n devono essere immessi da tastiera. I numeri casuali devono essere compresi tra 1 e 1000. n non deve essere maggiore di 100.
  10. Dopo aver popolato un array di n interi casuali, calcolare e visualizzare la media dei valori pari e quella dei valori dispari presenti nell’array. n deve essere immesso da tastiera. I numeri casuali devono essere compresi tra 10 e 100.
  11. Somma degli elementi in posizione pari (o dispari) di un vettore caricato in modo casuale
  12. Inversione degli elementi presenti in un vettore caricato in modo casuale
  13. Caricare un vettore di 100 elementi in modo casuale con numeri interi, senza ripetizioni
  14. Caricare un vettore di 100 elementi in modo casuale con numeri interi, con eventuali ripetizioni e stampare i suoi elementi distinti, senza ripetizioni
  15. Caricare un vettore in modo casuale con numeri interi minori di 100, azzerare gli elementi contenenti numeri pari, shiftare nelle posizioni più basse gli elementi rimanenti.
    • Esempio: 67 55 32 44 65 92 54 77
    • 67 55 0 0 65 0 0 77
    • 67 55 65 77 0 0 0 0
  16. Servendosi di 2 vettori in cui memorizzare 2 numeri binari di 5 cifre, determina e memorizza in un terzo vettore, la loro somma
  17. Caricare un array con n numeri della serie buffa vista tra gli esercizi iterativi
  18. Conta tra -5 e 5: Dato un array di N interi generati casualmente scrivere un algoritmo (o programma Java) per contare gli elementi pari compresi tra -5 e 5.
  19. 3 elementi uguali: Dato un array di 100 interi generati casualmente, visualizzarne il contenuto e verificare se ci sono 3 elementi consecutivi uguali visualizzando un messaggio adeguato.
  20. 3 caratteri uguali: Data una stringa scrivere un programma per verificare se contiene almeno tre caratteri qualsiasi consecutivi uguali.
  21. Sottoinsieme: Dati due array di interi A e B (di dimensione N e M diverse) scrivere un programma Java per verificare se tutti i valori di B appaiono in A.
  22. Stringa casuale: Generare una stringa o array di N caratteri casuali con lettere maiuscole e minuscole e numeri.Suggerimenti: char c; c=84; System.out.print(c); // stampa una T maiuscolaAnalizzate la tabella dei codici ASCII
  23. Dato un array di N caratteri scrivere un programma Java per verificare se l’ordine dei caratteri determina una sequenza palindroma (cioè che non cambia se letta al contrario; ad esempio le sequenze ACECA e ANNA sono palindrome).
  24. Dato un array di N interi scrivere un algoritmo (o programma Java) per verificare se gli elementi seguono l’ordine crescente.
  25. Disporre i caratteri di una stringa in un array memorizzando i caratteri iniziali nelle posizioni dispari e quelli finali, da sx a dx, nelle posizioni pari.
  26. Inserire da tastiera in 2 variabili una stringa ed un carattere. Scrivere una funzione che ricerchi il carattere nella stringa e restituisca la posizione in cui questo è stato trovato e restituisca -1 nel caso di insuccesso.
  27. Array+Thread
    • Istanziare un array di 1 milione di char.
    • Avviare 5 thread della stessa classe, che chiamerete VowelGenerator e che ricopino ognuna una vocale diversa nell’array.
    • (Riempito l’array, i thread dovranno essere fermati)
    • Determinare quante a, e, i, o, u sono presenti nell’array.
    • Determinare quante volte, e in quali posizioni, sia presente la sequenza a,e,i,o,u.
  28. Disporre i caratteri di una stringa in una matrice bidimensionale composta da C colonne ed R righe.
  29. Numeri in lettere: Immesso un importo tra 1 e 999, scriverlo in lettere.
    • Esempio:
    • Importo: 259 >>> duecentocinquantanove
  30. Numeri in lettere: Immesso un importo tra 1 e 999.999.999, scriverlo in lettere.
    • Esempio:
    • Importo: 1737 >>> millesettecentotrentasette
  31. Scrivere una funzione che ricevuto un intero positivo restituisca una stringa binaria corrispondente.
  32. Scrivere un main() e provare la funzione precedente.