Document information
- University
- Politecnico di Milano
- Degree programme
- Computer Engineering
- Subject
- Ingegneria del Software
- Material language
- Italian
- Classification
- Other study material
- Original format
- Text
- Searchable text
Study material for Ingegneria del Software, shared by the Studwiz community and reviewed by moderators.
Study material for Ingegneria del Software, shared by the Studwiz community and reviewed by moderators.
Import quality: text was extracted directly from the original document.
Representative passages recognised in different parts of the material. The full extracted text remains available to search, while this compact preview makes the page easier to read.
Politecnico di Milano Anno accademico 2012-2013 Ingegneria del Software – Appello del 19 luglio 2012 Cognome: Nome: Matricola: Sezione (segnarne una): □ Baresi □ Ghezzi □ San Pietro Istruzioni 1. La mancata indicazione dei dati anagrafici e della sezione comporta l‘annullamento del compito. 2. Al termine, consegnare solo i fogli distribuiti utilizzando il retro delle pagine in caso di necessit `a. Non separare questi fogli. Eventuali fogli di brutta, ecc. non verranno in nessun caso presi in considerazione. `E possibile scrivere in matita. 3. `E possibile consultare liberamente libri, manuali o appunti. `E proibito l’uso di ogni dispositivo elet- tronico (quali calcolatrici tascabili, telefoni cellulari, ecc.). 4. Non `e possibile lasciare l’aula conservando il tema della prova in corso. 5. Tempo a disposizione: 2h. Esercizio 1: Esercizio 2: Esercizio 3: Esercizio 4: 1 Esercizio 1 Si scrivano in JML le pre- e post- condizioni del seguente metodoSubstrings. Questo prende in ingresso due array di caratteri x e y e restituisce, in un array di interi, l’elenco, in ordine qualunque, di tutti e soli gli indici in cui y compare come sottostringa di x. Ad esempio, se x = [ abbbbbabbbabbbabb] e y = [ abb], il metodo restituisce l’array [0 6 10 14] . Soluzione: //@assignable \nothing; //@requires x!=null && y!=null; //@ensures \result != null && // \result contiene solo indici da cui inizia // una comparsa di y in x: //@ (\forall int i; 0 \le i && i< \result.length; //@ (\forall int j; 0\le j && j < y.length; //@ \result[i]+j< x.length && x[\result[i]+j]== y[j])) && // \result contiene tutti gli indici in cui compare y: //@ (\forall int i; 0 \le i && i< x.length; //@ (\forall int j; 0\le j && j < y.length; //@ i+j< x.length && x[i+j]== y[j]) //@ ==> //@ (\exists k; 0 \le k &&…
First page of the document.