Fondamenti di Informatica

Documenti analoghi
Fondamenti di Informatica

Fondamenti di Informatica A.A. 2016/17

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Spazio Riservato alla Commissione. Seconda Prova Intracorso di Fondamenti di Informatica 15/06/2018

A.A. 2018/2019. Esercitazione 3 [Per Casa] Strutturazione del Codice Sorgente per la Risoluzione di Problemi mediante MATLAB

Fondamenti di Informatica

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Traccia C. Spazio Riservato alla Commissione Esercizio 2 (10 punti)

Traccia B. Spazio Riservato alla Commissione Esercizio 2 (10 punti)

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Traccia 4. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Totale

Seconda Prova Intracorso di Fondamenti di Informatica e Programmazione 04/12/2017

Fondamenti di Informatica

Programmazione in Java (I modulo) Lezione 11: Metodi della classe Math

Seconda Prova Intracorso di Fondamenti di Informatica e Programmazione 04/12/2017

Fondamenti di Informatica

Appello di Fondamenti di Informatica 12/09/2017

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

1. Calcolo dell indice di condizionamento di una matrice

Iterazione indeterminata

TEORIA DEI NUMERI. Progetto Giochi matematici. Mail:

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly

I Appello di Fondamenti di Informatica 03/01/2017

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b);

Laboratorio di Informatica

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Totale

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

Fondamenti di Informatica A.A. 2017/18

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi

Fondamenti di Informatica

Fondamenti di Informatica

PREPARAZIONE ALLE GARE DI MATEMATICA - CORSO BASE

RIGA COLONNA MATRICOLA

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Fondamenti di Informatica

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly

Traccia 2. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Totale

Prof. Marco Masseroli

Fondamenti di Informatica

Fondamenti di Informatica A.A. 2016/17

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

Laboratorio di Informatica

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Totale

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

Fondamenti di Informatica

= < < < < < Matematica 1

Teoria dei numeri. Number Theory. Congruenze mod n. Teorema della divisione. Concetti preliminari per RSA

Fondamenti di Informatica A.A. 2016/17

Fondamenti di Informatica A.A. 2017/18

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Laboratorio di Python

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

DIARIO DEL CORSO DI ALGEBRA A A.A. 2015/16 DOCENTE: ANDREA CARANTI

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

A.A. 2018/2019 FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Università degli Studi di Ferrara Corso di Laurea in Chimica - A.A

Teoria dei numeri 2. Alberto Saracco. Università di Parma Udine, 18 ottobre 2015

Elementi di Calcolo Scientifico per l Ingegneria A.A

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Corso di Programmazione

Matematica con Python

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

Obiettivi di questa esercitazione

Aritmetica di macchina

Fondamenti di Informatica T-1

DIVISORI E MULTIPLI DI UN NUMERO

Laboratorio di Python

Fondamenti di Informatica T-1 Modulo 2

Informatica B - A.A. 2018/2019

MAPPA MULTIPLI E DIVISORI

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

Confronto tra stringhe. (modulo) Calcolo della media e della varianza. Ecco un elenco di codici Matlab: - Calcolo valore assoluto (modulo)

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

Esercitazione 1 Conversione di base

Lezione 4: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive (2p) Venerdì 7 Ottobre 2009

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Esercitazione 7

Transcript:

Fondamenti di Informatica Strutture Selettive, Iterative e Gestione File in MATLAB: Esercitazione 2 Possibili Soluzioni Prof. Arcangelo Castiglione A.A. 2016/17

Esercizio 1 Scrivere una funzione che pra in input una matrice A e si comporti in maniera identica al comando sum(a)fornito da MATLAB Scrivere una funzione che pra in input una matrice A e si comporti in maniera identica al comando sum(a,2)fornito da MATLAB N.B. Si consiglia l uso del ciclo for

Esercizio 1 (Possibili Soluzioni) % Funzione per simulare sum(a) function [ sum_a ] = miasomma(a) [m,n] = size(a); for c = 1:n x = 0; for r = 1:m x = x + A(r,c); sum_a(c) = x;

Esercizio 1 (Possibili Soluzioni) % Funzione per simulare sum(a, 2) function [ sum_a ] = miasomma2(a) [m,n] = size(a); for c = 1:m x = 0; for r = 1:n x = x + A(c,r); sum_a(c) = x; sum_a = sum_a';

Esercizio 2 Scrivere una funzione chiamata mia_trasposta che pra in input una matrice A e restituisca in outputla relativa matrice trasposta A = 1 9 6 3 2 21 2 6 8 trasposta(a) = 1 3 2 9 2 6 6 21 8 N.B. Si consiglia l uso del ciclo for

Esercizio 2 (Possibile Soluzione) function [t] = mia_trasposta(m) [r,c]=size(m); for i=1:r for j=1:c t(j,i)=m(i,j);

Esercizio 3 (MCD Divisioni Successive) MassimoComun Divisore (MCD) Siano A e B due interi, non nulli (> 0), allora il MCD fra A e B è definito come il più grande intero positivo che divide A e B Si scriva una funzione che pra in input A e B e restituisca il relativo MCD Algoritmo Euclideo per il calcolo dell MCD (basato su divisioni successive) Se A < B Scambia A e B resto = mod(a, B) % mod(a, B) à Resto della divisione euclidea tra A e B Finché resto è diverso da 0 A = B B = resto resto = mod(a, B) Restituisci B Esempi d uso - MCD(9, 3) = 3 - MCD(11, 2) = 1 Confrontare l output della funzione con quello restituito dalla funzione gcd di MATLAB

Esercizio 3 (MCD Divisioni Successive) (Possibile Soluzione) function gcd = mcd(n,m) if n < m tmp = n; n = m; m = tmp; r = mod(n,m); while r ~= 0 n = m; m = r; r = mod(n,m); gcd=m;

Esercizio 4 (MCD Sottrazioni Successive) MassimoComun Divisore (MCD) Siano A e B due interi, non nulli (> 0), allora il MCD fra A e B è definito come il più grande intero positivo che divide A e B Si scriva una funzione che pra in input A e B e restituisca il relativo MCD Algoritmo Euclideo per il calcolo dell MCD (basato su divisioni successive) Se A < B Scambia A e B Finché A è diverso da B Se A > B A = A - B Else B = B - A Restituisci A Esempi d uso - MCD(9, 3) = 3 - MCD(11, 2) = 1 Confrontare l output della funzione con quello restituito dalla funzione gcd di MATLAB

Esercizio 4 (MCD Divisioni Successive) (Possibile Soluzione) function gcd = mcd2(n,m) if n < m tmp = n; n = m; m = tmp; while n ~= m if n > m n = n-m; else m= m-n; gcd=n;

Esercizio 5 (minimo comune multiplo) (Metodo 1) Il minimo comune multiplo (mcm) tra due numeri e può essere ottenuto mediante la fattorizzazione in primi di ciascun numero Dove i sono tutti i fattori primi di e. Se non compare in una fattorizzazione, allora il relativo esponente è considerato 0. Il mcm può essere calcolato attraverso la formula seguente Per esempio, si consideri

Esercizio 6 (minimo comune multiplo) (Metodo 2) Sfruttando i risultati derivanti dal Teorema Fondamentale dell aritmetica (Corollario del Primo Teorema di Euclide), il minimo comune multiplo (mcm) tra due numeri può essere calcolato, utilizzando il massimo comune divisore (mcd), mediante la seguente formula È consigliato l utilizzo delle funzioni create per l esercizio precedente Per entrambi i metodi dell Esercizio 5, confrontare l output della funzione con quello restituito dalla funzione lcm di MATLAB

Esercizio 6 (minimo comune multiplo) (Metodo 2 Possibile Soluzione) function lcm = mcm(n,m) lcm = (m * n) / gcd(m,n);

Esempio A à M = 4 N = 3 Camera1 Camera2 Camera3 Camera4 Piano 1 3 2 0 1 Piano 2 1 3 2 2 Piano 3 1 3 0 0 Esercizio 7 OspitiAlbergo (Parte 1) Nei seguenti esercizi, le funzioni richiederanno in input una generica matrice A, di dimensione M x N, che rappresenterà il numero di ospiti in un albergo in una certa data, per ciascuna camera (colonne) su ogni piano della struttura (righe) In ogni cella di A sarà contenuto il numero di ospiti di una camera specifica (0 à camera vuota) Per semplicità si assuma che tutti i piani abbiano lo stesso numero di camere Esercizio 7.1 Scrivere una funzione che pre in input A e restituisce in output il numero totale di ospiti (nell esempio, la funzione restituirà 18) Esercizio 7.2 Scrivere una funzione che pre in input A e restituisce in output il numero di camere libere (nell esempio, la funzione restituirà 3) Esercizio 7.3 Scrivere una funzione che pre in input A e individua il piano con più ospiti, restituo inoltre il numero di ospiti stessi all interno di tale piano (nell esempio, la funzione restituirà 8) Esercizio 7.4 Scrivere una funzione che pre in input A e restituisce il numero massimo di ospiti che alloggiano in una camera della struttura (nell esempio, la funzione restituirà 3) N.B.: Le funzioni di tali esercizi possono invocare ulteriori funzioni, sia viste a lezione che contenute negli esercizi precedenti, oppure altre funzioni da voi definite

Esercizio 7 Ospiti Albergo (Parte 2) Esercizio 7.5 Esempio A à M = 4 N = 3 Camera1 Camera2 Camera3 Camera4 Piano 1 3 2 0 1 Piano 2 1 3 2 2 Piano 3 1 3 0 0 Suppono di avere il seguente file ospiti.txt, memorizzato all interno della Current Directory, quali sono le istruzioni necessarie per caricare il file suddetto nella matrice A? 3 2 0 1 1 3 2 2 1 3 0 0 ospiti.txt N.B.: Le funzioni di tali esercizi possono invocare ulteriori funzioni, sia viste a lezione che contenute negli esercizi precedenti, oppure altre funzioni da voi definite

Esercizio 7 (Possibili Soluzioni) Esercizio 7.1 function [totale_ospiti] = numero_totale_ospiti(a) totale_ospiti = sum(sum(a)); Esercizio 7.2 function [num_camere_libere] = numero_camere_libere(a) [nr, nc] = size(a); num_camere_libere = 0; for r = 1:nr for c = 1:nc if a(r, c) == 0 num_camere_libere = num_camere_libere+1;

Esercizio 7 (Possibili Soluzioni) Esercizio 7.3 function [piano_max_osp] = piano_max_ospiti(a) piano_max_osp = max(sum(a, 2)); Esercizio 7.4 function [max_ospiti] = max_ospiti(a) max_ospiti = max(max(a));

Esercizio 7 (Possibili Soluzioni) Esercizio 7.5 >> A = importdata('ospiti.txt',' ');