Fondamenti di Informatica
|
|
|
- Serafino Vitale
- 9 anni fa
- Visualizzazioni
Transcript
1 Fondamenti di Informatica lesson 25 Exercises 2013/06/23 Prof. Emiliano Casalicchio
2 Esami n Appelli (Prova Scritta - Prova Pratica) 1 Luglio (ore 9:00) 3 Luglio (ore 14) 15 Luglio (ore 9:00) 17 Luglio (ore 14) n Regole Alla prova scritta non è consentito consultare ne libri, ne appunti, ne dispositivi elettronici di alcun genere (telefoni, palmari, etc ) Alla prova pratica si accede solo se si supera la prova scritta, ossia si consegue un voto >= 18/30 2
3 Esercizi n n n Dato l andamento giornaliero dello spread degli ultimi 2 anni costruire la top 10 ordinata per valore assunto dallo spread e la relativa data Ordinare gli elementi dell agenda (nome, cognome, numero di telefono) in ordine alfabetico cresente per cognome Dato un sudoku completato, verificare che la soluzione sia corretta. Regole: matrice 9x9 divisa in sottomatrici 3x3 ogni sottomatrice deve contenere elementi da 1 a 9 senza ripetizioni ogni riga deve contenere numeri da 1 a 9 senza ripetizioni ogni colonna deve contenere i numeri da 1 a 9 senza ripetizioni 3
4 Esercizi: Spread n Dato l andamento giornaliero dello spread degli ultimi 2 anni si chiede di determinare la top 10 ordinata per valore assunto dallo spread la top 10 ordinata per data in entrambi I casi restituire sia il valore dello spread sia la data 4
5 Analisi del problema: Spread n rappresentazione dei dati (data,spread) n rappresentazione della data gg, mm, aaaa in struttura? aaaammgg come numero? n rappresentazione della collezione dei dati array di strutture? matrice 2xn? 2 array? n scegliamo una matrice 2xn n rappresentazione della data aaaammgg n operazioni sort + filter 5
6 Soluzione: spread.m spreads=[ ! !! ! ! ! ];! spreads_sorted=mybubblesort(spreads,1,'des');! if length(spreads_sorted)>=10! top10(1,:)=spreads_sorted(1,1:10);! top10(2,:)=spreads_sorted(2,1:10);! else top10=spreads_sorted;! 6
7 mybubblesort function v = mybubblesort( v, row,order)! %Sort the array v along the row specified in the input.! %INPUT: a vector of numbers v! % a row index (1 or 2)! % order 'asc' ascending 'des' descending! %OUTPUT: a vector v of number sorted in descending order!! for i=1:length(v)-1! scambio=false;! for j=2:length(v)-i+1! switch order! case 'des'! if v(row,j-1)<v(row,j)! x1=v(1,j);! x2=v(2,j);! v(1,j)=v(1,j-1);! v(2,j)=v(2,j-1);! v(1,j-1)=x1;! v(2,j-1)=x2;! scambio=true;! 7
8 mybubblesort!case 'asc'! if v(row,j-1)>v(row,j)! x1=v(1,j);! x2=v(2,j);! v(1,j)=v(1,j-1);! v(2,j)=v(2,j-1);! v(1,j-1)=x1;! v(2,j-1)=x2;! scambio=true;! if ~scambio! break;! 8
9 Esercizi n Ordinare gli elementi di un agenda (nome, cognome, numero di telefono) in ordine alfabetico cresente per cognome 9
10 Analisi del problema n reppresentazione dell agenda struct n operazioni sort su stringhe 10
11 confronto tra stringhe >> s1='asfsae ;! >> s2='werdf';! >> s1>s2!??? Error using ==> gt! Matrix dimensions must agree.!! >> s1(1:min(length(s1),length(s2)))>s2(1:min(length(s1),le ngth(s2)))! ans =! ! >> strcmp(s1,s2)! ans =! 0!! 11
12 Soluzione del problema % Inizio Script! %Ordinamento agenda! clear;! agenda=builddata('agenda.xls');! agenda=mysortcognome(agenda);! % Fine Script! 12
13 mysortcognome function v = mysortcognome(v)! %Sort the array v along the row specified in the input.! %INPUT: a struct vector containing strings! %OUTPUT: a vector v of number sorted in descending order! for i=1:length(v)-1! scambio=false;! for j=2:length(v)-i+1! if gtstr(v(j-1).cognome,v(j).cognome)! x=v(j);! v(j)=v(j-1);! v(j-1)=x;! scambio=true;! if ~scambio! break;!! 13
14 Esercizi n Dato un sudoku completato, verificare che la soluzione sia corretta matrice 9x9 divisa in sottomatrici 3x3 ogni sottomatrice deve contenere elementi da 1 a 9 senza ripetizioni ogni riga deve contenere numeri da 1 a 9 senza ripetizioni ogni colonna deve contenere i numeri da 1 a 9 senza ripetizioni 14
15 Analisi del problema n Input: matrice 9x9 regole Sudoku n Output True or False n Operazioni (fold di fold) analisi righe: fold analisi colonne: fold analisi sottomatrici: fold 15
16 Sudoku.m %Sudoku! clc;! clear;! sudoku =...; % MATRICE OMESSA PER MANCANZA DI SPAZIO. VEDI CODICE! %! if ~isempty(find(sudoku>9)) ~isempty(find(sudoku<1))! %controllo se gli elementi del sudoku sono complresi da 1 a 9! fprintf(' Sudoku errato. \n Il sudoku contiene valori >9 o < 1');! elseif controllorighe(sudoku) &&...! controllocolonne(sudoku) &&...! controllosottomatrici(sudoku)! fprintf(' Sudoku corretto ');! else! fprintf(' Sudoku errato. Ci sono duplicati non ammessi (righe, colonne sottomatrici)');! 16
17 controllorighe.m function r = controllorighe( s )! %Data una matrice s controlla che nelle righe! %non ci siano elementi ripetuti.! %INPUT: matrice s! %OUTPUT: r=true se non ci sono ripetizioni. Altrimenti r=false! r=true;! for i=1:size(s,1) % scorro righe! for j=1:size(s,2) % scorro colonne! if length(find(s(i,:)==s(i,j)))>1! r=false;! break;! if r==false! break;!! 17
18 controllocolonne.m function r = controllocolonne( s )! %Data una matrice s controlla che nelle colonne! %non ci siano elementi ripetuti.! %INPUT: matrice s! %OUTPUT: r=true se non ci sono ripetizioni. Altrimenti r=false! r=true;! for i=1:size(s,2) %scorro colonne! for j=2:size(s,1) %scorro righe! if length(find(s(:,i)==s(j,i)))>1! r=false;! break;! if r==false! break;! 18
19 controllosottomatrici.m function r = controllosottomatrici(s)! %Data una matrice s di dimensione 9x9 controlla che nelle sottomatrici! %di dimensione 3x3 (mod 3) non ci siano elementi ripetuti.! %INPUT: matrice s! %OUTPUT: r=true se non ci sono ripetizioni. Altrimenti r=false! r=true;! if size(s,1)~=9 && size(s,2)~=9! r=false;! else! for i=1:3:size(s,1)! for j=1:3:size(s,2)! if ~controllomatrice(s(i:i+2,j:j+2))! r = false;! break;! if r == false! break;! 19
20 controllomatrice.m function r = controllomatrice(m)! r=true;! for i=1:size(m,1)! for j=1:size(m,2)! if length(find(m==m(i,j)))>1! r=false;! break;! if r == false! break;! 20
21 Simmetrica n Verifica se e una matrice simmetrica iterativa ricorsiva 21
22 Esercizi n Scrivere una funzione che verifichi la simmetricità di una matrice n Realizzare una funzione per il calcolo delle disposizioni semplici Dnk=n!/(n-k)! n Scrivere una funzione che, dati in input due interi N1 ed N2, restituisca la somma di tutti gli interi compresi tra N1 ed N2. n Sia assegnato un vettore A di interi di dimensione N. Scrivere una funzione ricorsiva che calcoli il massimo valore degli elementi di A n Scrivere una funzione che verifichi se una parola e un palindromo, ossia se letta in senso inverso, sia da sinistra sia da destra, rimane identica (per es. oro) n Scrivere una funzione che verifichi se un numero intero è palindromo, ovvero se letto in senso inverso, sia da sinistra sia da destra, rimane identico (ad es. 101) 22
Scrivi una funzione ricorsiva che prende in input un vettore V e restituisce un vettore V2 della dimensione doppia di V, che
Script su vettori Realizza uno script che chiede in input una dimensione d e crea un vettore di d numeri interi casuali. Poi calcola la somma dei due numeri più alti presenti nel vettore. Script su matrici
12 Function Handles e Ricorsione in MATLAB
1 Function Handles e Ricorsione in MATLAB Un function handle è una variabile il cui valore è una funzione. Data una funzione esistente, il suo function handle è dichiarato come handle = @nome dove nome
Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale
Nome Cognome Matricola Firma Traccia 1 Spazio Riservato alla Commissione Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale Appello di Fondamenti di Informatica 12/09/2017 POSSIBILI SOLUZIONI
Appello di Fondamenti di Informatica 12/09/2017
Nome ognome Matricola Firma Traccia 1 Spazio Riservato alla ommissione Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale Appello di Fondamenti di Informatica 12/09/2017 Ingegneria Meccanica
Introduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
Esercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
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
Strutture di controllo in C++
Strutture di controllo in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Il controllo: selezione Spesso la sequenza delle istruzioni non e prevedibile a priori ma dipende strettamente dalle configurazioni
Esercitazione 10. 21 Dicembre 2010 (2 ore)
Esercitazione 10 21 Dicembre 2010 (2 ore) Riassunto Nell'esecitazione di oggi abbiamo lavorato ancora sulle funzioni. Abbiamo inoltre introdotto alcune delle seguenti funzioni per tracciare i grafici.
Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio
Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione
FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Slide (rielaborate) del prof. Emiliano Casalicchio
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Slide (rielaborate) del prof. Emiliano Casalicchio Fondamenti di Informatica a.a. 15/16- A. Accattatis 2 Dimensioni (Size) di vettori e matrici Problema:
Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A
Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono
Fondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Fondamenti di Informatica
Fondamenti di Informatica Strutture Selettive, Iterative, Gestione File e Grafici in MATLAB: Esercizi (Magazzini) rof. Arcangelo Castiglione A.A. 2016/17 antalone (ind. 1) Camicia (ind.
1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso
Domanda 1 1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso x n+1 = x n f(x n), n = 0, 1, 2,... K dove x 0 è il punto iniziale, f(x) = x 3 cos(x) e K è una costante assegnata.
Fondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
Fondamenti di Programmazione
A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri [email protected] Esercitatore: Dott. Roberto Petroccia [email protected] Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome
Informatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Laboratorio di Python
25 marzo 2015 Sommario 1 2 Esercizi a casa Scrivere un unico programma, che attraverso un menù di selezione restituisca i risultati delle funzioni che seguono, senza uscire dal programma se non selezionando
Fondamenti di Informatica
Fondamenti di Informatica Introduzione alla programmazione in MATLAB: Parte 3 Possibili Soluzioni per gli Esercizi Prof. Arcangelo Castiglione A.A. 2016/17 Esercizio 1 (Possibile Soluzione) Scrivere un
Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 18 luglio 2012 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi
Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento
Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:
Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:
