Esercizi

  1. Scrivere una funzione print_triangular_numbers(n) che stampa i primi n numeri triangolari (Cercare sul web cosa è un numero triangolare). Una chiamata a print_triangular_numbers(5) produrrebbe il seguente risultato:

    1       1
    2       3
    3       6
    4       10
    5       15
    
  2. Leggere tre reali e stampare il massimo il minimo e la somma dei tre.

  3. Leggere venti reali in input, calcolare il massimo, il minimo e la somma di tutti i valori e stamparli.

  4. Leggere una serie di reali terminata dal valore 0.0. Calcolare il massimo, minimo e somma totale dei reali nella serie e stamparli.

  5. Si scriva una funzione con un parametro intero n che calcola la somma dei numeri dispari nell’intervallo (0, n).

  6. Scrivere un programma che legga da tastiera un numero intero x e stampi il valore di x!. Per x! si intende x fattoriale

  7. Si scriva una funzione che, dati 2 parametri n ed m interi positivi, calcola e stampa il loro prodotto senza usare l’operatore * ma usando solo le operazioni di somma, sottrazione e gli operatori di confronto.

  8. Si scriva una funzione che, dati 2 parametri n ed m naturali (n maggiore o uguale a 0 e m maggiore di 0), calcola la loro divisione intera senza usare gli operatori di divisione ma usando solo le operazioni di somma, sottrazione e gli operatori di confronto.

  9. Si scriva una funzione che, dati 2 parametri n ed m, naturali (n maggiore o uguale a 0 e m maggiore di 0), calcola il resto della divisione intera di n ed m senza usare gli operatori di divisione e il modulo ma usando solo le operazioni di somma, sottrazione e gli operatori di confronto.

  10. Si scriva una funzione che, dati 2 parametri n ed m interi positivi, calcola n**m. Non usare funzioni di libreria e **, ma solo le operazioni aritmetiche.

  11. Si scriva un programma che legge in input un valore k e poi legge k valori uno alla volta. Il programma deve stampare il messaggio “Zero contenuto nella sequenza” oppure “Zero non contenuto nella sequenza” a seconda che il valore 0 sia o meno contenuto tra i k valori letti.

  12. Leggere una serie di reali terminata dal valore 0.0. Stampare in output la parola “Ordinata” se la sequenza e’ ordinata in modo crescente e “Non ordinata” altrimenti.

  13. Estendere il programma in modo da riconoscere se la sequenza è ordinata in modo crescente o descrescente e stampare “Ordinata crescente” o “Ordinata decrescente”.

  14. Scrivere un programma che legge da tastiera un intero x e stabilisce se il numero è primo. Il programma stampa in output 1 se x è primo, 0 altrimenti.

  15. Scrivere un programma che prende in ingresso tre reali a, b e c e stampa le due soluzioni dell’equazione a*x**2 + b*x + c = 0 usando la formula standard. Controllare che il delta sia maggiore o uguale a 0.

  16. Scrivere un programma che legge in input un numero intero positivo x rappresentato in base 10 e converte x nella sua rappresentazione binaria stampando il risultato.

  17. Scrivere un programma che legge in input un numero intero positivo x rappresentato in base 10 e una base b anch’essa rappresentata in base 10 e converte x nella sua rappresentazione posizionale in base b stampando il risultato.

  18. Scrivere un programma che legge due numeri m e n e calcola il massimo comun divisore MCD(m,n) utilizzando il metodo di Euclide che funziona come segue, supponendo senza perdita di generalità che m>n. Se m = nk + r (con 0<r< m), allora MCD(m,n)=n se r=0, altrimenti MCD(m, n) = MCD(r, n) se r>0. Dunque, dobbiamo dividere max{m,n} per min{m,n}: se il resto è 0 allora MCD(m,n)=min{m,n}; altrimenti l’iterazione successiva considererà come nuovi m e n i valori n e r.

  19. Consideriamo la funzione f(x)= 5*x**3 + 4*x**2 + 7*x +5. Si vuole calcolare l’integrale di f(x) su un intervallo [a,b] dividendo l’intervallo in n intervalli di lunghezza (b−a)/n e calcolando l’integrale come somma dell’area di n trapezi, come spiegato in questo pdf.

    Il programma chiede all’utente due reali positivi a e b e un intero positivo nmax numero di intervalli in cui suddividere l’intervallo [a, b]. Il programma deve calcolare le approssimazioni dell’ integrale di f(x) ottenute con il procedimento dei trapezio per n=2,3,4,...,nmax. Stampare i valori ottenuti e la differenza con l’integrale esatto calcolato analiticamente.

Note

La finestra sotto può essere usata per fare delle prove.




(scratch_02)

Next Section - Cosa è la Ricorsione?