Laboratorio di programmazione
|
|
|
- Annabella Torre
- 9 anni fa
- Visualizzazioni
Transcript
1 Laboratorio di programmazione 9 novembre 2016 Sequenze di Collatz Considerate la seguente regola: dato un numero intero positivo n, se n è pari lo si divide per 2, se è dispari lo si moltiplica per 3 e si aggiunge 1 al risultato. Quando n è 1 ci si ferma. Questa semplice regola permette di costruire delle sequenze: la sequenza che si costruisce a partire dal numero n è detta sequenza di Collatz di n. Ad esempio, la sequenza di Collatz di 7 è: È un noto problema aperto stabilire se ogni sequenza di Collatz termina (cioè, se arriva a 1). Scrivete un programma che chiede all utente un numero e mostra la sequenza di Collatz del numero (con tanto di lunghezza). Esempio di funzionamento Numero: Lunghezza: 17 Numero: Lunghezza: 20 Medie Data una sequenza di numeri reali x1, x2,..., xn, sono dette rispettivamente: 1
2 Scrivete un programma che legga una sequenza di numeri reali in input. L inserimento va terminato appena l utente inserisce il valore -1. Per ogni valore inserito (xi) il programma controlla che esso sia STRETTAMENTE positivo, ovvero xi > 0; se ciò non accade il valore non viene considerato. Altrimenti il programma utilizza anche xi per il calcolo delle 4 medie. Per svolgere l esercizio usate Math.sqrt(double), Math.exp(double) e Math.log(double), che calcolano, rispettivamente, la radice quadrata, l esponenziale e il logaritmo naturale del loro argomento. Suggerimento. Naturalmente, per leggere la sequenza di numeri reali dovete usare un ciclo. Durante questo stesso ciclo potete: - Controllare che l input sia strettamente positivo - aggiornare i valori che vi servono per calcolare le varie medie utilizzando il nuovo valore letto (solo se esso è maggiore di zero). Per esempio, per poter calcolare la media aritmetica vi servirà una variabile (che indicheremo con n in questo suggerimento) in cui tenere il numero di valori letti fino a quel momento e una variabile (detta accumulatore, e indicata con tot in questo suggerimento) contenente la somma dei valori letti fino a quel momento (di che tipo devono essere queste due variabili?). Ogni volta che viene letto un nuovo valore si incrementa di uno la variabile n e si incrementa la variabile accumulatrice tot del valore letto (entrambe le variabili devono essere inizializzate a 0 prima del ciclo). State attenti a non incrementare né n né tot quando leggete un valore nullo o negativo o, nello specifico, il valore -1, che ha come unico scopo quello di terminare la sequenza degli input. Esempio di input senza valori da scartare Esempio di output Media aritmetica: Media geometrica: Media quadratica:
3 Media armonica: Notate che avrei ottenuto lo stesso output se i valori inseriti fossero stati: Numeri perfetti A) Un numero è perfetto se è uguale alla somma dei suoi divisori propri. Per esempio, 6 = è perfetto. Scrivete un programma che, dato un intero in input scriva se esso è perfetto. : numero: non è perfetto numero: 6 6 è perfetto B) Estendete il programma in modo che esso legga un numero limite e scriva quindi i numeri perfetti minori dell intero dato. Suggerimento: per fare ciò potete inserire il programma precedente in un ciclo che per ogni intero minore del limite controlla se esso è perfetto e in tal caso lo stampa. Limite?
4 Numeri amichevoli A) Due numeri interi (x, y) sono detti amichevoli se la somma dei divisori di ciascuno è uguale all altro (fra i divisori è compreso l 1 escluso il numero stesso). Ad esempio (220,284) è una coppia di amichevoli, essendo 284 = (che sono i divisori di 220) 220 = (che sono i divisori di 284). Gli antichi greci ritenevano che le coppie di numeri amichevoli avessero certe proprietà mistiche. Scrivete un programma che, chieda in ingresso all utente due numeri interi, che chiameremo n1 e n2; il programma deve quindi controllare e comunicare all utente se n1 e n2 sono amichevoli. SUGGERIMENTO: dovete cercare i divisori di n1 (con un ciclo.), sommarli man mano che li trovate (con un accumulatore ) e controllare se la somma totale dei divisori di n1 è uguale a n2. SE la risposta è negativa, allora n1 e n2 non sono amichevoli (fine programma), ALTRIMENTI procedete controllando se anche la somma dei divisori di n2 è uguale a n1. Esempio di funzionamento richiesto: Inserire primo intero: 220 Inserire secondo intero: 228 Divisori di 220: Somma = 284 Divisori di 284: Somma = e 284 sono numeri amichevoli Inserire primo intero 3 Inserire secondo intero: 7 Divisori di 3: 1 2 Somma 3 3 e 7 non sono numeri amichevoli B) Estendete il programma in modo che, letto un intero limite, stampi le coppie di numeri amichevoli minori del limite. 4
5 Primi gemelli A) Due primi p e q sono gemelli se p = q + 2. Scrivete un programma che calcola se due numeri sono primi gemelli. ( A tal fine dovete controllare che: p e q siano primi e che p=q+2 se p è il maggiore tra q e p) Numeri? 3 5 Sono primi gemelli Numeri? 7 11 Non sono primi gemelli B) Estendete il programma precedente in modo da sviluppare un programma che stampi primi gemelli minori di un intero limite fornito dall utente. (Suggerimento: usate un ciclo che scorra i numeri da 1 al limite e, per ogni numero primo q minore del numero dato, controlli se anche q+2 è primo ed è minore del numero dato come limite: in tal caso i due primi trovati sono gemelli. Alternativamente il ciclo può partire da limite-1 e decrementare fino a 1: per ogni primo p trovato, può controllare se anche q = p-2 è primo. INSOMMA CI SONO TANTE STRADE DIVERSE ma BUONE e GIUSTE per la risoluzione del problema!) Numero? Stampa sequenza di numeri al contrario Scrivere un programma che prenda in ingresso una sequenza di numeri interi strettamente positivi x1, x2,..., xn (l inserimento termina al primo numero negativo inserito e scarta eventuali zeri inseriti dall utente). Letta la sequenza, il programma la stampa in ordine invertito e ne calcola quindi il valore xn-xn-1+x n-2-x n-3+ x n-4- x1. Inserisci i numeri:
6 9-6 Termine inserimento. Sequenza in ordine inverso: Valore da calcolare=4 6
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 06 Array" Lab06 1 Esercizio 1" n Creare un programma che legga da input un numero non noto a priori di interi
Lab 04 Programmazione Strutturata"
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 04 Programmazione Strutturata" Lab04 1 Valutazione in cortocircuito (1)" In C, le espressioni booleane sono valutate
Esercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array 2 Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0.
Parte 1: tipi primitivi e istruzioni C
Parte 1: tipi primitivi e istruzioni C Esercizio 1 Scrivere un programma che stampa la somma di una sequenza di N numeri inseriti dall utente. Esercizio 2 Scrivere un programma che stampa la somma di una
1 Massimo pari e dispari di una sequenza
Laboratorio di programmazione, 18 Novembre 2016 1 Massimo pari e dispari di una sequenza Si scriva un programma (sequenza_max_pari_dispari.java) che legga in input una sequenza di interi terminata da 0.
Laboratorio di informatica Ingegneria meccanica
Laboratorio di informatica Ingegneria meccanica Esercitazione 6 7 novembre 2007 Correzione di un programma Un programma può contenere errori sintattici e/o errori logici. Gli errori sintattici vengono
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate
Schemi ricorrenti nei cicli. Contatori Accumulatori Flag Esistenza e universalità
Cicli ed iterazioni Schemi ricorrenti nei cicli Contatori Accumulatori Flag Esistenza e universalità 2 Schemi ricorrenti nei cicli Contatori Spesso in un ciclo è utile sapere Quante iterazioni sono state
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono
Esempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo!
Esercizio 1 Scrivere un programma che acquisisca da tastiera una sequenza di caratteri terminata da! e riporti sul monitor una sequenza derivata dalla precedente secondo le regole dell alfabeto farfallino
Programmazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly
Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly Scrivere il codice ARM che implementi le specifiche richieste e quindi verificarne il comportamento usando il simulatore
Lezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago [email protected] Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.
HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono
laboratorio di python
laboratorio di python iterazione in python 22 Marzo 2019 1/31 Correzione esercizi per oggi esercizio 1 per casa Scrivere una funzione che restituisce True se una stringa passata come parametro è palindroma
LEZIONE 3: SELEZIONE
LEZIONE 3: SELEZIONE CON TIPI NUMERICI Esercizio 1 Scrivere un'applicazione che richieda l'immissione di un numero intero e comunichi all'utente se il numero e' pari o dispari. Nota. Utilizzare l'operatore
Esercitazione. Esercizio 1 Scrivere un programma che calcoli e visualizzi la somma degli interi pari da 2 a 1000 (estremi compresi)
Esercitazione Oggi dovremo di nuovo usare funzioni sui reali. Ma il C non ha operatori nativi del linguggio per queste operazioni, come la radice quadrata, l'elevamento a potenza o l'arrotondamento. Per
PROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
Laboratorio di Programmazione Laurea in Bioinformatica
Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.
PROGRAMMAZIONE: La selezione
PROGRAMMAZIONE: La selezione Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l altra, riga per
L ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
24 : 3 = 8 con resto 0 26 : 4 = 6 con resto 2
Dati due numeri naturali a e b, diremo che a è divisibile per b se la divisione a : b è esatta, cioè con resto 0. In questo caso diremo anche che b è un divisore di a. 24 : 3 = 8 con resto 0 26 : 4 = 6
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Equazioni di 2 grado
Equazioni di grado Tipi di equazioni: Un equazione (ad una incognita) è di grado se può essere scritta nella forma generale (o forma tipica o ancora forma canonica): a b c con a, b e c numeri reali (però
Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:
Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione
Esercizi. Filtraggio
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia Filtraggio L utente inserisce un array di numeri reali non negativi (un numero negativo indica la fine della fase di inserimento)
ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 -
ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 - Elementi di Informatica e Programmazione Università di Brescia 1 1: ESERCIZI DI BASE - di livello di difficoltà inferiore rispetto all
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi
PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara
LICEO SCIENTIFICO STATALE "FILIPPO LUSSANA" V i a A n g e l o Ma j, 1 2 4 1 2 1 B E R G AMO 035 237502 Fax: 035 236331 Sito e contatti: www.liceolussana.com Codice fiscale: 80026450165 PROGRAMMA SVOLTO
a.a Codice corso: 21012, HOMEWORKS
HOMEWORKS Questi esercizi saranno proposti ogni 2 settimane e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di
10 Funzioni MATLAB. dove: output1, output2,.. sono gli output (opzionali), che, se dichiarati, devono essere inizializzati dalla funzione
Le funzioni in un programma sono utilizzate per strutturare il codice in sottoparti e per evitare di replicare inutilmente il codice. In MATLAB le funzioni vengono identificate con la parola chiave function
Elaborazione dell informazione
Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione
I.T.I.S L. Da Vinci G. Galilei Progetto: Diritti a Scuola - Matematica - Anno 2016
Si ringrazia il gentilissimo Prof. Nicola Filipponio per la sua disponibilità, per aver tenuto delle brillanti lezioni presso il nostro istituto e per l utilizzo del suo materiale relativo alla costruzione
Esercizi 2. Marco Anisetti
Esercizi 2 Marco Anisetti Verifica del funzionamento con RAPTOR Implementare in RAPTOR i seguenti programmi visti a lezione Moltiplicazione per somme (la versione più efficiente) Divisione per sottrazione
Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI
Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI DIAGRAMMA A BLOCCHI: SWITCH DIAGRAMMA BLOCCHI: WHILE DIAGRAMMA BLOCCHI: FOR for (inizializzazione contatore, condizione, incremento) { istruzioni ; }
0 Insiemi, funzioni, numeri
Giulio Cesare Barozzi, Giovanni Dore, Enrico Obrecht Elementi di analisi matematica - Volume 1 Zanichelli 0 Insiemi, funzioni, numeri Esercizi 0.1. Il linguaggio degli insiemi 0.1.1. Esercizio Poniamo
Primo modulo: Aritmetica
Primo modulo: Aritmetica Obiettivi 1. ordinamento e confronto di numeri;. riconoscere la rappresentazione di un numero in base diversa dalla base 10; 3. conoscere differenza tra numeri razionali e irrazionali;
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 18.III.2015 VINCENZO MARRA Indice Parte 1. L algoritmo euclideo 3 Esercizio 1 3 L algoritmo euclideo
Moltiplicazione. Divisione. Multipli e divisori
Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini
R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010
1 11. Data link layer: codici di rilevazione di errore, gestione degli errori La rilevazione di errore Un codice a rilevazione di errore ha lo scopo di permettere al ricevente di determinare se vi sono
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra
#include <iostream> using namespace std; // int main ( ) { // --- Dichiarazione delle variabili int N ; float A, Pot;
Dati A e N (A reale >0 e N intero >=0) comunica il valore di A elevato alla N. CL 3 - Es_11.cpp Variabili di Input: N di tipo intero, A di tipo reale Variabili di Output: Pot di tipo reale Variabili di
L ELABORATORE ELETTRONICO!
L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
Soluzioni dei quesiti di matematica (3)
Facoltà d Ingegneria - Università Roma Tre 1 Soluzioni dei quesiti di matematica (3) 1) Anche senza usare i criteri di classificazione delle curve del second ordine, è possibile rendersi conto che l equazione
Problemi, algoritmi e oggetti
Fondamenti di informatica Oggetti e Java Luca Cabibbo Capitolo 5 Marzo 2007 1 Fondamenti di informatica: Oggetti e Jav Contenuti... Problemi e algoritmi comprensione del problema identificazione di un
