Fondamenti di informatica

Размер: px
Начинать показ со страницы:

Download "Fondamenti di informatica"

Транскрипт

1 Fondamenti di informatica Estendere un linguaggio nuovi domini di dati (II) Obiettivi di apprendimento generali uso del meccanismo list per costruire rappresentazione di oggetti strutturati in particolare, matrici bi-dimensionali strategia di soluzione basata su ripartizione di un problema in sottoproblemi (divide et impera) ognuno risolto da una specifica funzione riuso di soluzioni (algoritmi) caso di studio sudoku 2

2 Caso di studio: giocare a sudoku griglia 9x9 da riempire con cifre da 1 a 9 senza ripetizioni in righe, colonne, senza ripetizioni in nessuno dei 9 blocchi 3x3 un tipico enigma sudoku e la sua soluzione 3 Giocare a sudoku In effetti, il nostro obiettivo non è costruire un risolutore di enigmi sudoku ma un verificatore automatico della correttezza di una soluzione proposta abbiamo bisogno di : una rappresentazione della griglia di gioco un algoritmo per il controllo della correttezza 4

3 Una griglia è una matrice Disposizione bi-dimensionale di elementi matrici numeriche utilizzate in algebra lineare ogni elemento individuato dalle sue coordinate (riga,colonna) esempio di matrice matrice di valori interi con 4 righe e 5 colonne l elemento (0,0) è 3 l elemento (0,2) è 1 l elemento (2,3) è 5 nota : le matrici di pixel usate per rappresentare immagini avevano le loro righe coordinate invertite!!! 0" 1" 2" colonne " 3" 5" 1" 0" 9" 12" 16" 12" 34" 2" 0" 0" 23" 5" 11" 3" 7" 51" 8" 0" 33" 5 Rappresentazione di matrici idea rappresentare una matrice come un aggregato di righe 1a riga 2a riga n-ma riga e ogni riga come un aggregato di valori (tutti dello stesso tipo) 1 valore m-esimo valore 2 valore 6

4 Uso di liste per rappresentare matrici bi-dimensionali Il meccanismo list può essere usato per costruire rappresentazioni di aggregati e liste di liste (sotto-liste annidate dentro altre liste) possono essere usate per rappresentare aggregati di aggregati e così via costruzione di una matrice (con tutti gli elementi inizializzati a 0) def matrix(numrows, numcolumns) :" numrows: int; number of rows" numcolumns: int; number of columns" matrix (with the specified number of rows and columns" # all matrix entries are initialized to 0)" mat = []" for i in range(0, numrows) :" mat.append([])" for j in range(0, numcolumns) :" mat[i].append(0)" return mat " >>> my_matrix=matrix(2,3)" >>> print my_matrix" [[0, 0, 0], [0, 0, 0]]" 7 Esempi stampare le righe su linee separate def print_mat(matrix) :" for row in matrix :" print row" >>> my_matrix=matrix(2,3)" >>> print_mat(my_matrix)" [0, 0, 0]" [0, 0, 0]" assegnare un valore a un elemento di una matrice usando la notazione m[i][j] >>> my_matrix[0][1]=3" >>> print_mat(my_matrix)" [0, 3, 0]" [0, 0, 0]" >>> my_matrix[1][2]=1+4" >>> print_mat(my_matrix)" [0, 3, 0]" [0, 0, 5]" 8

5 Esempi costruzione di una matrice e lettura interattiva del valore dei suoi elementi def read_matrix(numrows, numcolumns) :" numrows: int; number of rows" numcolumns: int; number of columns" matrix; the matrix read from input" #" # builds a matrix with the specified number of rows and columns" # and initializes its entries with values taken from input" # one row at a time, specified as a list of numcolumns values" m = matrix(numrows, numcolumns)" for i in range(0, numrows) :" m[i] = input("write a row as a list of values (enclosed in square brackets): ")" return m" 9 Esempi algebra matriciale: somma di due matrici def add(m1, m2) :" m1: matrix;" m2: matrix; " matrix; (m1+m2)" # m1 and m2 must have same number of rows and same number of columns" # NOTE: len(mx) is the number of rows of mx" # NOTE: len(mx[0]) is the number of columns of mx" if len(m1)==len(m2) and len(m1[0])==len(m2[0]) :" s = matrix(len(m1),len(m1[0]))" for i in range(0,len(m1)) :" for j in range(0,len(m1[0])):" s[i][j] = m1[i][j]+m2[i][j]" else :" s = [] " print "matrix dimensions do not match"" return s " 10

6 Torniamo al sudoku Problema: controllo della correttezza di una soluzione Input: soluzione proposta Strategia di soluzione: decomposizione in sottoproblemi quali? Algoritmo sudoku_check controlla le righe controlla le colonne controlla i blocchi se un qualunque controllo fallisce, la soluzione proposta non è corretta altrimenti è corretta 11 sudoku check: codice Python def sudoku_check(sudoku_mat) :" sudoku_mat: matrix; (usually 9x9) it contains the proposed sudoku solution" none" # the called xxx_check() functions return a negative value when the check is OK" # otherwise a non negative integer indicating the error location" ##### row check" result = row_check(sudoku_mat)" if result >= 0 :" print "error at row " + str(result) #str(n) converts n to a string" else : ##### column check" result = col_check(sudoku_mat)" if result >= 0 :" print "error at column " + str(result) #str(n) converts n to a string" else : ##### block check" result = block_check(sudoku_mat)" if result >= 0 :" controllo righe controllo colonne controllo blocchi print "error at block " + str(result) #str(n) converts n to a string" #### final response" if result >= 0 :" print "your solution is not correct; try again"" else :" print "your solution is correct; you are a good sudoku player" " 12

7 Controllo righe: algoritmo proposizione logica da verificare: riga della matrice : corretta(riga) == vero (pseudo) codice Python : for riga in matrice : if not corretta(riga) :? return matrice non OK return matrice OK 13 Controllo righe: codice Python (1) controllo su tutte le righe (quantificatore universale) def row_check(sudoku_mat) :" sudoku_mat: matrix; a square matrix (usually 9x9) that contains the " # proposed sudoku solution " int; a negative value if sudoku_mat is correct by row, " # otherwise a value>=0 indicating the first found incorrect row" row_num = len(sudoku_mat)" for i in range(0, row_num) :" if not vect_check(sudoku_mat[i]) : # row i is not correct" corretta(riga) return i # stop execution and return row index" return -11 # it could be any negative value" 14

8 Controllo singola riga Algoritmo [7,2,8,1,8,9,1,3,4]scorretta [7,2,8,1,5,9,6,3,4]corretta errore! in posizione 7 (8-1) è già presente il valore TRUE (indica che il valore 8 è stato già incontrato in precedenza) 15 Controllo singola riga: codice Python def vect_check(vect) :" vect: list; representing a uni-dimensional vector" bool; TRUE if vect contains all integer values from 1 to len(vect), in any order; " # FALSE otherwise" bool_vect = []" # build a vector with same number of entries as vect, all initialized to false, " for i in range(0,len(vect)) :" bool_vect = bool_vect + [false]" ok = true" # start setting bool_vect entries to true, according to values contained in vect" # if an entry of bool_vect results already true, then a value in vect is repeated at least twice (error)" i = 0" ok = true" while ok and i<len(vect) :" if bool_vect[vect[i]-1] == false :" bool_vect[vect[i]-1] = true" else :" ok = false" i = i+1" 16 return ok"

9 Controllo colonne: algoritmo Concettualmente identico al controllo righe ma gli elementi di una colonna non fanno parte della stessa lista! nella rappresentazione di matrici che abbiamo adottato [ [7, 2, 4, 8, 1, 9, 1, 3, 8], [5, 5, 8, 8, 6, 4, 3, 6, 3], [5, 1, 9, 5, 6, 7, 7, 7, 7], [1, 1, 2, 7, 5, 8, 3, 4, 4], [6, 7, 4, 1, 4, 8, 9, 6, 7], [4, 5, 8, 8, 4, 7, 7, 9, 9], [5, 2, 4, 9, 3, 8, 4, 3, 5], [5, 7, 2, 4, 7, 8, 7, 8, 2], [1, 1, 1, 8, 3, 2, 9, 8, 5] ] Possiamo scrivere una soluzione ad hoc oppure riusare (in modo appropriato) la soluzione già usata per il controllo righe 17 def matrix_col_to_vect(mat, j) :" mat: matrix; a bi-dimensional matrix" j: int; a column index for mat " list; a uni-dimensional vector (represented as a list) built with all entries of the j-th column" v = []" for i in range(0, len(mat)): # len(mat) is the number of rows of mat" v = v + [mat[i][j]]" return v" def col_check(sudoku_mat) :" sudoku_mat: matrix; a square matrix (usually 9x9) that contains the " # proposed sudoku solution " int; a negative value if sudoku_mat is correct by column, " # otherwise an index j>=0 indicating the first found incorrect column" col_num = len(sudoku_mat[0])" for j in range(0,col_num) :" col = matrix_col_to_vect(sudoku_mat,j)" if not vect_check(col) : # column j is not correct" return j # stop execution and return column index" return -11 # it could be any negative value" 18

10 Controllo blocchi: algoritmo Concettualmente identico ai controlli precedenti (righe / colonne) ma gli elementi di un blocco sono disposti su due dimensioni! [ [7, 2, 4, 8, 1, 9, 1, 3, 8], [5, 5, 8, 8, 6, 4, 3, 6, 3], [5, 1, 9, 5, 6, 7, 7, 7, 7], [1, 1, 2, 7, 5, 8, 3, 4, 4], [6, 7, 4, 1, 4, 8, 9, 6, 7], [4, 5, 8, 8, 4, 7, 7, 9, 9], [5, 2, 4, 9, 3, 8, 4, 3, 5], [5, 7, 2, 4, 7, 8, 7, 8, 2], [1, 1, 1, 8, 3, 2, 9, 8, 5] ] Possiamo scrivere una soluzione ad hoc oppure riusare (in modo appropriato) la soluzione già usata per righe / colonne 19 Controllo blocchi: codice Python (1) 1: costruzione di una lista da un blocco (3x3) della matrice def matrix_block_to_vec (mat, i, j) :" mat: matrix; a bi-dimensional (9x9) matrix" j: int; " j: int; i,j are the coordinates of the upper-left entry of the 3x3 block" list; a uni-dimensional vector (represented as a list) built with all entries of the block" b = []" for h in range(i,i+3):" for k in range(j,j+3):" b = b + [mat[h][k]]" return b " 20

11 Controllo blocchi: codice Python (2) 2: e poi controllo di tutti i blocchi (analogo a quello per righe / colonne) def block_check(sudoku_mat) :" sudoku_mat: a square matrix (usually 9x9) that contains the proposed sudoku solution " a negative value if sudoku_mat is correct by block, " # otherwise an index i>=0 indicating the first found incorrect block" # blocks are numbered (starting from 1) from left to right, from top to bottom" row_num = len(sudoku_mat)" col_num = len(sudoku_mat[0])" block_num = 1" for i in range(0,row_num,3) : # i takes value in [0, 3, 6]" for j in range(0, col_num,3) : # j takes value in [0, 3, 6] " block = matrix_block_to_vec(sudoku_mat,i,j)" if not vect_check(block) : # block block_num is not correct" return block_num # stop execution and return block number" block_num = block_num+1" return -11 # it could be any negative value" 21 infine Costruite una soluzione def random_sudoku():" a 9x9 matrix randomly filled with values from 1 and 9" # Note: it is quite unlikely that you will get a correct sudoku solution :-)" from random import *" mat = matrix(9,9)" for i in range(0,9):" for j in range(0,9):" mat[i][j] = 1 + int(9*random())" return mat" e poi controllatela! >>> m = random_sudoku()" >>> sudoku_check(m)" error at row 0" your solution is not correct; try again" 22

12 Che cosa abbiamo appreso Obiettivi di apprendimento generali uso del meccanismo list per costruire rappresentazione di oggetti strutturati in particolare, matrici bi-dimensionali strategia di soluzione basata su ripartizione di un problema in sottoproblemi (divide et impera) ognuno risolto da una specifica funzione riuso di soluzioni (algoritmi) caso di studio sudoku 23

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Matrici con Liste Lab09 5 Aprile 2017 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che verifica se una

Подробнее

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Capitolo 6 - Array Array Array Gruppo di locazioni di memoria consecutive Stesso nome e tipo Per riferirsi a un elemento, specificare Nome dell array Posizione Formato: arrayname[ position number ] Primo

Подробнее

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Подробнее

REGISTRATION GUIDE TO RESHELL SOFTWARE

REGISTRATION GUIDE TO RESHELL SOFTWARE REGISTRATION GUIDE TO RESHELL SOFTWARE INDEX: 1. GENERAL INFORMATION 2. REGISTRATION GUIDE 1. GENERAL INFORMATION This guide contains the correct procedure for entering the software page http://software.roenest.com/

Подробнее

Downloading and Installing Software Socio TIS

Downloading and Installing Software Socio TIS Object: Downloading and Installing Software Socio TIS compiler: L.D. Date Revision Note April 17 th 2013 --- For SO XP; Win 7 / Vista step Operation: Image A1 Open RUN by clicking the Start button, and

Подробнее

Capitolo 5 - Funzioni

Capitolo 5 - Funzioni Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente

Подробнее

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica lesson 25 Exercises 2013/06/23 Prof. Emiliano Casalicchio [email protected] Esami n Appelli (Prova Scritta - Prova Pratica) 1 Luglio (ore 9:00) 3 Luglio (ore 14)

Подробнее

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Подробнее

Italian 102 Daily Syllabus

Italian 102 Daily Syllabus * = Instructor may choose to do the Strategie DVD activities in class. Italian 102 Daily Syllabus AR 26 aterial covered in class (in text unless otherwise indicated) WEEK 1 Introduzione al corso e ripasso

Подробнее

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di

Подробнее

WELCOME. Go to the link of the official University of Palermo web site www.unipa.it; Click on the box on the right side Login unico

WELCOME. Go to the link of the official University of Palermo web site www.unipa.it; Click on the box on the right side Login unico WELCOME This is a Step by Step Guide that will help you to register as an Exchange for study student to the University of Palermo. Please, read carefully this guide and prepare all required data and documents.

Подробнее

Fiori di campo. Conoscere, riconoscere e osservare tutte le specie di fiori selvatici più note

Fiori di campo. Conoscere, riconoscere e osservare tutte le specie di fiori selvatici più note Fiori di campo. Conoscere, riconoscere e osservare tutte le specie di fiori selvatici più note M. Teresa Della Beffa Click here if your download doesn"t start automatically Fiori di campo. Conoscere, riconoscere

Подробнее

Espressioni aritmetiche

Espressioni aritmetiche Espressioni aritmetiche Consideriamo espressioni costruite a partire da variabili e costanti intere mediante applicazione delle operazioni di somma, sottrazione, prodotto e divisione (intera). Ad esempio:

Подробнее

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Подробнее

Laboratorio di Python (con Linux)

Laboratorio di Python (con Linux) 8 a lezione Università di Bologna 2, 4 maggio 2012 Sommario 1 2 3 Diversi Python 2.6 vs 2.7 v.s 3.x La versione di Python installata sulle macchine del laboratorio è la 2.6 (per l esattezza 2.6.6 ). Versioni

Подробнее

CONFIGURATION MANUAL

CONFIGURATION MANUAL RELAY PROTOCOL CONFIGURATION TYPE CONFIGURATION MANUAL Copyright 2010 Data 18.06.2013 Rev. 1 Pag. 1 of 15 1. ENG General connection information for the IEC 61850 board 3 2. ENG Steps to retrieve and connect

Подробнее

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Подробнее

A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio

A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio A.A. 2006/2007 Laurea di Ingegneria Informatica Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio Obbiettivi Acquisire familiarità con la nozione di oggetto Apprendere le proprietà

Подробнее

I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO

I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO READ ONLINE AND DOWNLOAD EBOOK : I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO

Подробнее

Programmazione in Python. Moreno Marzolla

Programmazione in Python. Moreno Marzolla Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative

Подробнее

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

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

Подробнее

UNIVERSITÀ DEGLI STUDI DI TORINO

UNIVERSITÀ DEGLI STUDI DI TORINO STEP BY STEP INSTRUCTIONS FOR COMPLETING THE ONLINE APPLICATION FORM Enter the Unito homepage www.unito.it and click on Login on the right side of the page. - Tel. +39 011 6704425 - e-mail [email protected]

Подробнее

Quando usiamo Python in modo interattivo in genere e' lo shell utilizzato che gestisce l'indentazione e la deindentazione.

Quando usiamo Python in modo interattivo in genere e' lo shell utilizzato che gestisce l'indentazione e la deindentazione. INDICE Indentazione note sull'indentazione in script e moduli scritti con un editor di testo. istruzione if Truth testing in cicli if e while istruzione for istruzione while Uscita dai cicli for e while

Подробнее

MANUALE DI ISTRUZIONI MOVIMENTO VD51 Cronografo con secondi e minuti

MANUALE DI ISTRUZIONI MOVIMENTO VD51 Cronografo con secondi e minuti MANUALE DI ISTRUZIONI MOVIMENTO VD51 Cronografo con secondi e minuti FUNZIONAMENTO VD51 DISPLAY E PULSANTI DELLA CORONA Lancetta minuti Lancetta ore Lancetta secondi Lancetta minuti cronometro Lancetta

Подробнее

Pensiero computazionale. Lezione 10 MIT AppInventor

Pensiero computazionale. Lezione 10 MIT AppInventor Pensiero computazionale Lezione 10 MIT AppInventor Ripetizioni Dov è Ripeti 10 volte? Cosa succede: La variabile number assume i valori 1,2,.,9,10 by è l incremento A quel punto il ciclo termina Potete

Подробнее

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Подробнее

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

Подробнее

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo del determinante Difficili Soluzione di sistemi lineari È veramente difficile? 1 Matrici.h

Подробнее

MATLAB:Condizionamento Sistemi Lineari.

MATLAB:Condizionamento Sistemi Lineari. 1 Francesca Mazzia Dipartimento Interuniversitario di Matematica Università di Bari MATLAB:Condizionamento Sistemi Lineari. Innanzitutto vediamo qual è la funzione Matlab che ci permette di calcolare il

Подробнее

THIS DOCUMENT WILL GUIDE YOU STEP BY STEP THROUGH THE DONATION PROCESS RELATED TO THE CROWDFUNDING CAMPAIGN MADE BY STANZE AL GENIO S HOUSE MUSEUM.

THIS DOCUMENT WILL GUIDE YOU STEP BY STEP THROUGH THE DONATION PROCESS RELATED TO THE CROWDFUNDING CAMPAIGN MADE BY STANZE AL GENIO S HOUSE MUSEUM. QUESTO DOCUMENTO TI GUIDA PASSO PASSO NELLA PROCEDURA DI DONAZIONE NELL AMBITO DELLA CAMPAGNA DI RACCOLTA FONDI PROMOSSA DALLA CASA MUSEO STANZE AL GENIO. THIS DOCUMENT WILL GUIDE YOU STEP BY STEP THROUGH

Подробнее

Programmazione Funzionale

Programmazione Funzionale 1/9 Programmazione Funzionale Esercizio sulle variabili locali Davide Mottin - Themis Palpanas March 12, 2014 OCaml Funzioni preparatorie Sommario 2/9 Funzioni preparatorie Costruire una funzione val even

Подробнее

Esercizi Programming Contest

Esercizi Programming Contest Esercizi Programming Contest Alberto Montresor 22 maggio 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Подробнее

LE MACRO DI EXCEL PER TUTTE PDF

LE MACRO DI EXCEL PER TUTTE PDF LE MACRO DI EXCEL PER TUTTE PDF ==> Download: LE MACRO DI EXCEL PER TUTTE PDF LE MACRO DI EXCEL PER TUTTE PDF - Are you searching for Le Macro Di Excel Per Tutte Books? Now, you will be happy that at this

Подробнее

REGISTRATION. Area Ricerca

REGISTRATION. Area Ricerca REGISTRATION Note: former students can skip the registration process and log in using their account (id123456) 1.1 HOW TO REGISTER: please, go to web page www.univr.it/applicationphd and select the item

Подробнее

UNIVERSITÀ DEGLI STUDI DI TORINO

UNIVERSITÀ DEGLI STUDI DI TORINO How to register online for exams (Appelli) Version updated on 18/11/2016 The academic programs and the career plan Incoming students can take exams related to the courses offered by the Department where

Подробнее

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Подробнее

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Stored Procedures Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Progetto di Applicazioni Software Stored Procedure e User Defined

Подробнее

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

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09 Introduzione all ambiente MATLAB Richiami II Programmazione MATLAB MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche strutture

Подробнее

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Подробнее

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

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

Подробнее

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

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 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Подробнее

Introduzione a Matlab

Introduzione a Matlab Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie dell Informazione via Bramante 65, 26013 Crema (CR), Italy [email protected] Perché? MATLAB is a high-level technical computing

Подробнее

Note sul Sudoku. Marco Liverani. Dicembre 2005

Note sul Sudoku. Marco Liverani. Dicembre 2005 Note sul Sudoku Marco Liverani Dicembre 2005 1 Introduzione Il gioco del Sudoku è un rompicapo giapponese che sta riscuotendo un successo notevole nel cosiddetto grande pubblico : pur essendo un gioco

Подробнее

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Подробнее

VBA Principali Comandi

VBA Principali Comandi VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,

Подробнее

Costo di esecuzione e complessità. Modello di costo e complessità di un algoritmo

Costo di esecuzione e complessità. Modello di costo e complessità di un algoritmo Costo di esecuzione e complessità Modello di costo e complessità di un algoritmo Il costo di esecuzione di un algoritmo quantifica le risorse necessarie per l esecuzione dell algoritmo stesso numero di

Подробнее

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Подробнее

Ordinamenti per confronto: albero di decisione

Ordinamenti per confronto: albero di decisione Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto

Подробнее

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Подробнее

La classe std::vector della Standard Template Library del C++

La classe std::vector della Standard Template Library del C++ La classe std::vector della Standard Template Library del C++ Alberto Garfagnini Università degli studi di Padova 23 Ottobre 2013 Programmazione generica in C++ : i Template I templates sono probabilmente

Подробнее

Programmazione dinamica

Programmazione dinamica Programmazione dinamica Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 29/21 I. Castelli Programmazione dinamica, A.A. 29/21 1/35

Подробнее

Laboratorio di Python

Laboratorio di Python , Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono

Подробнее

ESISTENZA DI INFINITI NUMERI PRIMI REGOLARI. Francesco Di Noto, Michele Nardelli. In this paper we describe about the regular prime

ESISTENZA DI INFINITI NUMERI PRIMI REGOLARI. Francesco Di Noto, Michele Nardelli. In this paper we describe about the regular prime ESISTENZA DI INFINITI NUMERI PRIMI REGOLARI Gruppo B. Riemann * Francesco Di Noto, Michele Nardelli *Gruppo amatoriale per la ricerca matematica sui numeri primi, sulle loro congetture e sulle loro connessioni

Подробнее

Ottimizza la somma. Supponete di avere in input un vettore di n interi positivi distinti V [1... n] e un valore W. Scrivere un algoritmo che:

Ottimizza la somma. Supponete di avere in input un vettore di n interi positivi distinti V [1... n] e un valore W. Scrivere un algoritmo che: Ottimizza la somma Supponete di avere in input un vettore di n interi positivi distinti V [1... n] e un valore W. Scrivere un algoritmo che: 1 restituisca il massimo valore X = n i=1 x[i]v [i] tale che

Подробнее

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi:

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Vettore(int n): crea un oggetto Vettore contente n elementi, inizializzati

Подробнее

Laboratorio di Python

Laboratorio di Python Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di

Подробнее

Guida utente User Manual made in Italy Rev0

Guida utente User Manual made in Italy Rev0 Guida utente User Manual Rev0 made in Italy Indice/Index Informazioni generali General Info... 3 Guida Rapida per messa in funzione Start Up procedure... 3 Login Login... 3 Significato dei tasti Botton

Подробнее

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Подробнее

4.5 Metodo del simplesso

4.5 Metodo del simplesso 4.5 Metodo del simplesso min z = c T x s.v. Ax = b x PL in forma standard Esamina una sequenza di soluzioni di base ammissibili con valori non crescenti della funzione obiettivo fino a raggiungerne una

Подробнее

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa Array di array A. Miola Febbraio 8 http://www.dia.uniroma.it/~java/fondinf/ Array di array Contenuti Array bidimensionali creazione

Подробнее

Introduzione al MATLAB c Parte 3 Script e function

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

Подробнее

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Подробнее

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Подробнее

Corso di Informatica 1 Esercitazione n. 4

Corso di Informatica 1 Esercitazione n. 4 Corso di Informatica 1 Esercitazione n. 4 Marco Liverani Esercizio n. 1 Letti in input due numeri interi n > 0 e k > 1 costruire un array A di n numeri interi casuali minori di 100 che non siano multipli

Подробнее

U Corso di italiano, Lezione Quindici

U Corso di italiano, Lezione Quindici 1 U Corso di italiano, Lezione Quindici U Buongiorno, anche in questa lezione iniziamo con qualche dialogo formale M Good morning, in this lesson as well, let s start with some formal dialogues U Buongiorno,

Подробнее

AVERE 30 ANNI E VIVERE CON LA MAMMA BIBLIOTECA BIETTI ITALIAN EDITION

AVERE 30 ANNI E VIVERE CON LA MAMMA BIBLIOTECA BIETTI ITALIAN EDITION AVERE 30 ANNI E VIVERE CON LA MAMMA BIBLIOTECA BIETTI ITALIAN EDITION READ ONLINE AND DOWNLOAD EBOOK : AVERE 30 ANNI E VIVERE CON LA MAMMA BIBLIOTECA BIETTI ITALIAN EDITION PDF Click button to download

Подробнее

R.M.Dorizzi, Strumenti per interpretare gli esami di laboratorio? Forlì, 9 ottobre 2012

R.M.Dorizzi, Strumenti per interpretare gli esami di laboratorio? Forlì, 9 ottobre 2012 1 Half of what you are taught as medical students will in 10 years have been shown to be wrong. And the trouble is, none of your teachers know which half. Sydney Burwell, Dean Harvard Medical School 1935-1949

Подробнее

MySQL Command Line Client: operazioni fondamentali

MySQL Command Line Client: operazioni fondamentali MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge

Подробнее

Quando mi collego ad alcuni servizi hosting ricevo un messaggio relativo al certificato di protezione del sito SSL, come mai?

Quando mi collego ad alcuni servizi hosting ricevo un messaggio relativo al certificato di protezione del sito SSL, come mai? IT FAQ-SSL Quando mi collego ad alcuni servizi hosting ricevo un messaggio relativo al certificato di protezione del sito SSL, come mai? Il certificato SSL relativo ai servizi hosting è stato rinnovato

Подробнее

Informatica B

Informatica B 2013-2014 Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli: [email protected] Luigi Malago : [email protected] Materiale di laboratorio reperibile all indirizzo: www.gianlucadurelli.com

Подробнее

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento

Подробнее

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Подробнее

Multidimensionali. Array Multidimensionali. Tipi di array. Matrice: array bidimensionale. Array multidimensionale. Dichiarazione di una matrice

Multidimensionali. Array Multidimensionali. Tipi di array. Matrice: array bidimensionale. Array multidimensionale. Dichiarazione di una matrice Tipi di array Array Multidimensionali Antonella Santone Monodimensionali (vettore) Multidimensionali Array multidimensionale Un array multidimensionale è un array, i cui elementi sono a loro volta degli

Подробнее