Parte Teorica 1 compitino di Linguaggi per la Sicurezza Ipotesi di Domande

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Parte Teorica 1 compitino di Linguaggi per la Sicurezza Ipotesi di Domande"

Transcript

1 Parte Teorica 1 compitino di Linguaggi per la Sicurezza Ipotesi di Domande versione 1.1 1) A cosa servono i tipi nei linguaggi di programmazione? In primo luogo servono per organizzare; cioè attribuire un concetto ad untipo appunto. Inoltre, servono per fare in modo che nella memoria i bit vengano interpretati nel modo corretto. Infine per dare delle informazioni al compilatore su come manipolare i dati. 2) Cosa è un errore hardware: fare un esempio. Un errore di tipo Hardware può essere per esempio x(); dove x() non è un procedura ma invece è un intero. 3) Cosa è un errore semantico: fare un esempio. Un errore di tipo semantico è per esempio la funzione int_add(3, 4.5); 4.5 viene interpretato come int ma che valore restituisce la funzione?: questo è un errore semantico 4) Cosa significa dangling pointers: fare un esempio in Linguaggio C. struct Point *result = malloc(sizeof(struct Point)) 5) Cosa singifica che un type checking è Compile time o Run Time? Significa che il controllo dei tipi viene fatto durante la compilazione come nel Java o nel C oppure che come in Lisp viene fatto durante l esecuzione 6) Vantaggi e svantaggi Run Time / Compile Time Se il controllo dei tipi viene fatto durante l esecuzione del programma, rallenta la sua esecuzione,al contrario, il controllo fatto durante la compilazione limita molto fortemente il programmatore. Es.: in Java come in C un array deve essere per forza composto da elementi delle stesso tipo. Alcuni programmi corretti Run time non lo sono Compile time. 7) E possibile creare un compile type cheker che faccia passare tutti i programmi run time? si/no perchè? Con dangling pointers, intendiamo un punttore che magari utilizzato la prima volta da un risultato corretto e funzionante poi però richiamato una seconda volta in un altra zona del programma, fa riferimento a dati inattesi Esempio in C: struct Point {int x; int y;; struct Point *newpoint (int x,int y){ struct Point result={x,y; return &result; int main (){ struct Point *p=newpoint(1,2); p ->y = 1234; Nell esempio riportato, p punta ad una zona di memoria che è stata dealocata all uscita da newpoint! Una soluzione è, qulla di usare la malloc: 1 No!, non è possibile: è un problema indecidibile! Non esiste infatti la possibilità di creare un compile type cheker che sia in grado di accettare programmi safe run time. 8) Vantaggi e svantaggi tra C e Java. I vantaggi del linguaggio C sono: la possibilità di avere accesso alla memoria e di poterla gestire manualmente, possibilità di lavorare a basso livello; tutto questo porta in generale a delle performance superiori rispetto a programmi scritti in Java. Mentre Java, suo vantaggio, è un linguaggio sicuro questo tuttavia abbassa le performance, per la pulizia della memoria viene utilizzato il garbage collector; Java necessita di più memoria, controllo dei tipi e controllo dello sforamento per ogni array; le dimensioni degli array sono tutte mantenute in memoria.

2 9) Cosa è Cyclone, SafeC, CCured come funzionano? Sono tutti programmi per rendere il linguaggio C (che non è safe), sicuro. Sia SafeC che CCured, prendo come input programmi in C nel caso di CCured anche con annotazioni particolari (opzionali) e li rendono sicuri, con il contro di minor performance durante l esecuzione. Mentre nel caso di Cyclone, come input riceve programmi in C modificati e quindi l esecukzione non viene rallentata come ngli altri programmi, però, come svantaggio bisogna modificare i file originali. 10) Nell ambito del testing di programmi cosa si intende per Validazione e Verifica? Per Validazione di un programma si intentde: che risponda alle specifiche in genere informali date dall utente; in altre parole soddisfi i bisogni del utente. Mentre per verifica si intende il controllo che l implementazione corrisponda alle specifiche fatte da noi, dal progettista, che spesso vengono rappresentate con 11) Che differenze ci sono tra il testing Statico e Dinamico? Con il testing statico, si testa il programma senza la sua esecuzione ma solo guardando il codice. Mentre con il testing dinamico si testa il programma in esecuzione: input Programma output 12) Cosa si intende per Failure, Guasto, Malfunzionamento? Con questi termini si indica un funzionamento non corretto da parte del programma legato al comportamento. 13) Per Anomalia, difetto o bug? Questi termini stanno ad indicare che un elemento del programma produce dati inattesi 14) Mentre per errore cosa si intende? Con errore si intende un problema umano che causa una deviazione tra software prodotto e software ideale, dimenticanza, errore di battitura... 15) Qual è lo scopo del testing? Lo scopo del Testing è quello di trovare i difetti mediante i malfunzionamenti 16) Descrivere i vari tipi di testing. I vari tipi di Testing sono: 1. Accettazione: serve per vedere se il programma è conforme alle specifiche date dall utente 2. Conformità: serve per vedere se rispetta le specifiche fatte da noi Es.: con UML. 3. Sistema: controlla il comportamento dell intero sistema come se fosse monolitico 4. Integrazione: controllo sul modo di operare delle unità 5. Unità: controllo funzionamento delle singole unità 6. Regressione: controllo sul comportamento delle release successive 17) Fare un esempio di Unit Testing. Attraverso il Test unit, si esamina una sola unità, una parte del codice grazie ad un test driver che passa i valori alla funzione per vedere come si comporta. 18) Descrivi e discuti i limiti del Testing. Il testing anche quelo più selettivo non garantirà mai l assenza di errori in un software 19) Cosa si intende per Black-Box e White-Box? Per Black-Box si intende un software su cui fare test di cui non si conosce l implementazione ma si vede soltanto input e output; mentre white-box, l implementazione è nota e quindi si vede il codice. 20) Descrivi brevemente la teoria del Testing? La teoria del testing dice che: un programma P : D R d D, ok(p, d) se produce P(d). P correttose d D risulta ok(p, d). Un Test set è un sottoinsieme di D quindi, ok(p, T)se d T, ok(p, d) 21) Cosa si intende per Test Idelale e Test esaustivo? Con il test esaustivo si provano tutte le possibilità, de D è l insieme degli interi si provano tuti gli interi. Con test ideale, T ideale se ok(p, T) ok(p) 22) Cosa è un Test Criteria? E una funzione che dato il programma e la sua specifica restituisce vero o falso cioè un predicato sull insieme dei possibili T 2

3 23) Quando si dice che un criterio è affidbile? Mentre quando e valido? Si dice che un criterio è affidabile quando per ogni coppia di test T1 e T2 di un criterio C se si trova un malfunzionamento con T1, lo si trova anche con T2 e viceversa. Mentre si dice che un criterio è valido su un programma con un errore quando almento un test conformae al criterio trova l errore del programma. 24) Il testing strutturale dei programmi basato sul flusso di controlo, da quali parti e formato? Statement Coverage - copertura delle istruzioni Branch Coverage - copertura delle decisioni Condidion Coverage - copertura delle decisioni Path Coverage - copertura dei cammini 25) Cosa si intende per Statement Coverage? Con lo statement Coverage, si intende: un test è adeguato per testare un programma, se per ogni istruzione esiste un caso di test che esegue quella istruzione. C 0 = numerodi istruzioni eseguite numero di istruzioni eseguibili 26) Cosa si intende per Branch Coverage? espressioni di ogni decisione; Es. (x > 2 y < 2) la prima deve essere valutata vera e poi falsa allo stesso modo la seconda. 29) Multipre condition coverage: qual è il suo limite? Il principale limite di questa tecnica è avere tutte le combinazioni delle condizioni su n condizioni, 2 n casi. Quindi un problema esponenziale, intrattabile al crescere di n. 30) Cosa si intende con Modified Condition/decision coverage criteria? Con MC/DC, si vuole testare, ogni condizione di una decisione in modo che il cambiare indipendentemente una condizone produca un risultato finale diverso. 31) Esempio di uso del Modified Condition / Decision Coverage? Come cambiano le condizioni nel caso di una decisione con due condizioni AND e nel caso OR. AND OR T T T T T T T F F T F T F T F F T T F F F F F F Con il branch coverage, si intende un test che esegua ogni ramo del programma lmeno una volta C path = numerodi branch eseguiti numero di branch eseguibili 27) Differenze tra Statement e Branch Coverage. Lo Statement coverage è più debole rispetto al Branch, in quanto lo S.C. può eseguire tutte le istruzioni ma in alcuni casi,non copre ogni ramo del grafo del programma. 28) Cosa si intende per Decision e Conditions Coverage? Con Decision Coverage, è equivalente al branch Coverage, mentre il Conditions coverage, valuta le singole if ((a! = b) && (a < b)) Primo caso, valuto C1, metto a True C1 e cambio le altre: [T,T] - [T,F] Nel secondo caso, valuto C2, metto a True C2 e cambio le altre[t,t] - [F,T] if ((a! = b) (a < b)) Primo caso, valuto C1, metto a False C1 e cambio le altre: [F,F] - [F,T] Nel secondo caso, valuto C2, metto a False C2 e cambio le altre[f,f] - [T,F] Da n condizioni ottengo sempre n 1 test. 3

4 Esempio di Copertura 1: while (a>=0) { if ( (a>b) && (b!=0)) a=b-2; else b=b-1; Statement Coverage: Bisogna coprire tutte le istruzioni Il caso di test {(a = 5, b = 2);(a = 2, b = 0);(a = 1, b = 0) copre tutte le istruzioni. Branch Coverage: Il caso di test {(a = 5, b = 2);(a = 2, b = 0);(a = 1, b = 0) copre tutte le decisioni. Decision Coverage: Il caso di test {(a = 5, b = 2);(a = 2, b = 0);(a = 1, b = 0) copre tutte le decisioni. Condition Coverage: Bisogna coprire tutte le condizioni una volta true e una volta false if ((a > b) && (b! = 0)) while (a >= 0) C3 Prima iterazione le condizioni vengono valutate C3 [V] C1 [V] e C2[V] perchè a = 5 quindi maggiore di zero,e poi maggiore di b che vale 2; C2 è vera perchè è diversa da zero. Seconda iterazione C3 [V] perchè a = 0 e C1 [F] perchè a = 0 mentre C2 [V] infatti b = 2 [...] Quarta iterazione C3 [V] perchè a = 0 e C1 [F] perchè a = 0 mentre C2 [F] infatti b = 0 [...] Alla Sesta iterazione, a = 3 e b = 1 quindi C3 [F] il programma termina. Per ola condizione C3, ho ottenuto sia V (nella prima iterazione) che F (nella sesta iterazione) quindi OK; per C1 ho ottenuto V (nella prima iterazione) e F (nella seconda iterazione); per C2, ho ottenuto V (nella prima iterazione) e F (nella quarta iterazione). Conclusione: ho coperto tutti i casi!. Modified Condition/Decision coverage: 4

5 Devo far variare una condizione tenendo fisse le altre in modo tale che il risultato finale cambi. if ((a > b) && (b! = 0)) Il caso di test {(a = 5, b = 2) copre Testo C1: [V,V], [F,V] Testo C2: [V,V], [V,F] [V,V] - Questa condizione è verificata nella prima iterazione [F,V] - Questa condizione è verificata nella seconda, terza iterazione [V,F] - Questa condizione non è verificata! Al test dovrei aggiungere a > b vera e b! = 0 falsa. E questo è proprio il caso {(a = 2, b = 0). Così anche MC/DC è coperto. 5

6 Esempio di Copertura 2: if ( (a>b) && (b!=0)) a=b-2; else b=b-1; Statement Coverage: Bisogna coprire tutte le istruzioni Il caso di test {(a = 5, b = 2);(a = 2, b = 0) copre tutte le istruzioni. Branch Coverage: Il caso di test {(a = 5, b = 2);(a = 2, b = 0) copre tutte le decisioni. Decision Coverage: Il caso di test {(a = 5, b = 2);(a = 2, b = 0) copre tutte le decisioni. Condition Coverage: Bisogna coprire tutte le condizioni una volta true e una volta false if ((a > b) && (b! = 0)) Il caso di test {(a = 5, b = 2) copre Le condizioni vengono valutate C1 [V] e C2[V] perchè a = 5 quindi è maggiore di b che vale 2 e C2 è vera perchè è diversa da zero. if ((a > b) && (b! = 0)) Il caso di test {(a = 2, b = 0) copre Le condizioni vengono valutate C1 [V] e C2[F] perchè a = 2 quindi è maggiore di b che vale 0 e C2 è false perchè è uguale a zero. Aggiungo un nuovo caso di Test: {(a = 2, b = 0) Le condizioni vengono valutate C1 [F] e C2[F] perchè a = 2 quindi è minore di b che vale 0 e C2 è false perchè è uguale a zero. Ho coperto il condition coverage! NUOVO TEST SUITE: {(a = 5, b = 2);(a = 2, b = 0);(a = 2, b = 0) Modified Condition/Decision coverage: 6

7 Devo far variare una condizione tenendo fisse le altre in modo tale che il risultato finale cambi. Testo C1: [V,V], [F,V] Testo C2: [V,V], [V,F] [V,V] - Questa condizione è verificata con il test: {(a = 5, b = 2) [V,F] - Questa condizione è verificata con il test: {(a = 2, b = 0) [F,V] - Questa condizione non è verificata! Al test dovrei aggiungere a > b falsa e b! = 0 vera. Quindi aggiungo il test {(a = 2, b = 1). Così anche MC/DC è coperto. NUOVO TEST SUITE: {(a = 5, b = 2);(a = 2, b = 0);(a = 2, b = 0);(a = 2, b = 1) Il test suite riportato sopra può essere ottimizzato. 7

8 Esempio di Copertura 3: 1 public static int metodo(int x, int[] a) %2 { if (x == 0) { // x è 0 : if (a.length == 0){ return 0; else { return a[0]; else { if (a.length == 0) { return x; else{ int max = a[0]; 33 for (int i = 1; i < a.length; i++){ if (a[i] > max){ max = a[i]; if (max > x){ return max; else { return x;

9 Statement Coverage: Bisogna coprire tutte le istruzioni Il caso di test {(x = 0, a = []) ; (x = 0, a = [1]);(x = 2, a = []);(x = 2, a = [5, 6, 3]);(x = 8, a = [5, 6, 3]) La prima coppia copre le istruzione dalla 5 alla riga 10. La seconda coppia, copre l istruzioni 16. Quindi il primo if è a posto. La terza coppia, copre le istruzione da 25 a 29. La quarta coppia, copre dalla 29 alla 47. La quinta coppia, copre dalla 47 alla 51. Ho coperto tutte le istruzioni! Branch Coverage: Il caso di test Il caso di test: {(x = 0, a = []) ; (x = 0, a = [1]);(x = 2, a = []);(x = 2, a = [5, 6, 3]); (x = 8, a = [5, 6, 3]) copre tutte le decisioni. Decision Coverage: Il caso di test Il caso di test: {(x = 0, a = []) ; (x = 0, a = [1]);(x = 2, a = []);(x = 2, a = [5, 6, 3]); (x = 8, a = [5, 6, 3]) copre tutte le decisioni. Condition Coverage: Bisogna coprire tutte le condizioni una volta true e una volta false Condizione C6: x == 0 C6[V], C6[F]. Condizione C10: a.length == 0 C10[V], C10[F]. Condizione C26: a.length == 0 C26[V], C26[F]. Condizione C34: i < a.length C34[V], C34[F]. Condizione C36: a[i] > max C36[V], C36[F]. Condizione C44: max > x C44[V], C44[F]. Ho coperto il condition coverage! TEST SUITE: {(x = 0, a = []) ; (x = 0, a = [1]);(x = 2, a = []);(x = 2, a = [5, 6, 3]); (x = 8, a = [5, 6, 3]). Modified Condition/Decision coverage: Tutte le decisioni hanno solo una condizione. Non serve applicare MC/DC 9

cap.6 del testo a cosa servono i tipi nei linguaggi di programmazione cos è un linguaggio type safe

cap.6 del testo a cosa servono i tipi nei linguaggi di programmazione cos è un linguaggio type safe cap.6 del testo a cosa servono i tipi nei linguaggi di programmazione cos è un linguaggio type safe 1 tipi statici e tipi dinamici in generale i LP hanno tipi statici, cioè ogni variabile ha un tipo dichiarato

Dettagli

Collaudo del software

Collaudo del software Collaudo del software Il software deve essere testato con il preciso scopo di trovare degli errori prima di essere consegnato al cliente Il collaudo è un insieme di attività pianificate per testare il

Dettagli

Analisi statica. Analisi Statica 1

Analisi statica. Analisi Statica 1 Analisi statica Analisi Statica 1 Tecniche di Verifica e Validazione Analisi statica: processo di valutazione di un sistema o di un suo componente basato sulla sua forma, struttura, contenuto, documentazione

Dettagli

Concetti base programmazione. Antonio Gallo

Concetti base programmazione. Antonio Gallo Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

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[]

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

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

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

Il C nel C++: Funzioni

Il C nel C++: Funzioni Il C nel C++: Funzioni Funzioni (1) il concetto -> spezzare il programma in parti (procedure) una funzione è un parte di programma dotata di un nome che può essere richiamata in altri punti del programma

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama

Dettagli

Sviluppo dei Programmi

Sviluppo dei Programmi Programmazione I a.a 2009-2010 docente: Carmine Gravino Sviluppo dei Programmi Presentazione realizzata dal Prof. Andrea De Lucia 1 Analisi e Specifica Sviluppo dei programmi Progettazione Codifica Verifica

Dettagli

TRADUZIONE STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+

TRADUZIONE STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+ TRADUZIONE DI STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+ a cura di: Eleonora Antonelli Simone Maletta Stefano Novara INDICE 1. Grammatica di TLA+ a cura di Eleonora Antonelli

Dettagli

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

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Introduzione alla programmazione. Walter Didimo

Introduzione alla programmazione. Walter Didimo Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali

Dettagli

Informatica 1. Prova di recupero 21 Settembre 2001

Informatica 1. Prova di recupero 21 Settembre 2001 Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo

Dettagli

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Esercizi sui metodi Carla Limongelli Maggio 2010 Esercizi 1 Passaggio di parametri di tipo primitivo Indicare che cosa viene visualizzato sullo

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Strutture Dinamiche. Fondamenti di Informatica

Strutture Dinamiche. Fondamenti di Informatica Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));

Dettagli

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Introduzione ai puntatori in C Definizione

Introduzione ai puntatori in C Definizione Introduzione ai puntatori in C Definizione Un puntatore è una variabile che contiene l indirizzo di un altra variabile Tramite i puntatori si può quindi accedere a un oggetto indirettamente (si usa il

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Informatica B Istruzioni condizionali #include int main() char c; printf("inserire il carattere maiuscolo: "); scanf("%c", &c); printf("la traduzione e' %c\n",c+32); return

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

Java: loading dinamico e reflection

Java: loading dinamico e reflection Java: loading dinamico e reflection Scopo del corso integrativo: Presentare le caratteristiche avanzate di Java che lo rendono un linguaggio molto flessibile pur senza rinunciare ai vantaggi di un typechecking

Dettagli

Dalla tabella alla funzione canonica

Dalla tabella alla funzione canonica Dalla tabella alla funzione canonica La funzione canonica è la funzione logica associata alla tabella di verità del circuito che si vuole progettare. Essa è costituita da una somma di MinTerm con variabili

Dettagli

Algoritmi e Linguaggi

Algoritmi e Linguaggi Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e

Dettagli

Corso di Laurea in Matematica Corso di Informatica Prova d Esame del 02/02/2010

Corso di Laurea in Matematica Corso di Informatica Prova d Esame del 02/02/2010 Esercizio 1. Si deve modellare con una classe Java il contenuto di un portamonete, con delle opportune semplificazioni. Le monete da considerare sono di soli 4 tagli: 10, 20, 50 e 100 centesimi (cioè 1

Dettagli

Silvia Crafa

Silvia Crafa Introduzione ai Sistemi di Tipi Silvia Crafa silvia@dsi.unive.it Come nascono i tipi in informatica Cos è un tipo? Perché servono i tipi nei linguaggi di programmazione? Vediamo come nascono i tipi partendo

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi Metodologie di Programmazione ovvero, Principi e Tecniche per la costruzione di programmi 1 In questo corso Sviluppo in piccolo: Tempi: mesi/uomo v.s. anni/uomo Strumenti: personal v.s. professional Programmazione

Dettagli

Usare il tool emma. info3 angelo unibg

Usare il tool emma. info3 angelo unibg Usare il tool emma info3 angelo gargantini @ unibg Cosa vuol dire copertura Quando si scrivono dei test è importante: 1) controllare mediante assert che il ns programma si comporti come atteso 2) valutare

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine astratte, linguaggi, interpretazione, compilazione Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta

Dettagli

5. Codifica degli Algoritmi in C

5. Codifica degli Algoritmi in C 40 5. Codifica degli Algoritmi in C La traduzione di algoritmi in linguaggi di programmazione rende posbile l esecuzione di programmi da parte del calcolatore. In questo corso codificheremo gli algoritmi

Dettagli

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

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti Tipi di dati Tipo = insieme di valori + insieme di operazioni Es. int: valori:, -2, -1, 0, 1, 2, operazioni:: +,-,*,/,

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Dettagli

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test Espressioni logiche Espressioni Logiche e Istruzione di Test Fondamenti di Informatica 1 Massimo Di Nanni Gennaio, 2001 Espressioni logiche nelle Istruzioni di Test e di Iterazione Calcolo del massimo

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Unità Didattica 2 I Linguaggi di Programmazione

Unità Didattica 2 I Linguaggi di Programmazione Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche

Dettagli

STORIA E CARATTERISTICHE

STORIA E CARATTERISTICHE IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori

Dettagli

Gestione dinamica della memoria

Gestione dinamica della memoria Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.

Dettagli

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=

Dettagli

Programmazione web lato client con JavaScript. Marco Camurri 1

Programmazione web lato client con JavaScript. Marco Camurri 1 Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Programmazione. Andrea Passerini Informatica. Programmazione

Programmazione. Andrea Passerini Informatica. Programmazione Andrea Passerini passerini@disi.unitn.it Informatica Linguaggi di programmazione Il calcolatore è in grado di comprendere solo istruzioni in linguaggio macchina. Il linguaggio macchina non è adatto alla

Dettagli

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:

Dettagli

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

Dettagli

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

Dettagli

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Enumerativi

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Enumerativi Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Enumerativi Finora abbiamo creato enumerativi

Dettagli

Formalismi per la descrizione di algoritmi

Formalismi per la descrizione di algoritmi Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano

Dettagli

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da

Dettagli

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta YYY02 Esercizi per Teoria Esercizi per preparazione alla prova scritta Esercizio YYY02_02 - Busy Waiting In linguaggio ANSI C, siano dichiarate le seguenti variabili, e siano queste variabili debitamente

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di

Dettagli

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol. Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 1) Dato un diagramma di flusso quali sono le condizioni necessarie perché si possa costruire un programma corrispondente?

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Dettagli

Asserzioni in Java fondamenti

Asserzioni in Java fondamenti Asserzioni in Java fondamenti Cosa è un asserzione? Una assertion è una espressione booleana che deve essere true se e solo se il codice sta funzionando correttamente. Se l asserzione risulta falsa, viene

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 4 Implementazioni delle partizioni Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio 2016.

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Informatica Generale Andrea Corradini I linguaggi di programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi

Dettagli

Informatica, Algoritmi, Linguaggi

Informatica, Algoritmi, Linguaggi Elementi di Informatica e Applicazioni Numeriche T Informatica, Algoritmi, Linguaggi Cos'è l'informatica? Che cos'è l'informatica? Cos'è l'informatica? Che cos'è l'informatica? Dell'informatica possiamo

Dettagli

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo

Dettagli

Modulo 2: Strutture fondamentali della programmazione Java

Modulo 2: Strutture fondamentali della programmazione Java Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti

Dettagli

Le Funzioni e la Ricorsione

Le Funzioni e la Ricorsione Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html

Dettagli

Debug di un programma

Debug di un programma Debug di un programma Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente

Dettagli

prova.c #include <stdio.h> char funzione(char); codice oggetto del main()

prova.c #include <stdio.h> char funzione(char); codice oggetto del main() prova.c #include char funzione(char); {char c= a ; printf( Ecco il carattere: %c\n,c); c=funzione(c); printf( Ecco il carattere modificato: %c\n,c); char funzione(char tmp) {if(tmp

Dettagli

Decima Esercitazione. Accesso a risorse condivise tramite Monitor Java

Decima Esercitazione. Accesso a risorse condivise tramite Monitor Java Decima Esercitazione Accesso a risorse condivise tramite Monitor Java 1 Agenda Esempio 1 La banca: gestione di una risorsa condivisa da più thread, con politica prioritaria Esercizio 2 da svolgere Accesso

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Allocazione dinamica di memoria

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Allocazione dinamica di memoria di Cassino e del Lazio Meridionale Corso di Informatica Allocazione dinamica di memoria Anno Accademico 2015/2016 Francesco Tortorella Allocazione dinamica di memoria Finora abbiamo considerato variabili

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli