INTRODUZIONE ALLA PROGRAMMAZIONE C LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "INTRODUZIONE ALLA PROGRAMMAZIONE C LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT"

Transcript

1 INTRODUZIONE ALLA PROGRAMMAZIONE C LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT

2 AMBIENTE ED EDITOR DI RIFERIMENTO Utilizziamo editor a linea di comando: nano o vim Ci permettono di programmare anche su dispositivi remoti, senza avere un interfaccia grafica Nano: più semplice, Vim: più complesso Ambiente Linux Se hai Mac OSX, installa VMWare, Parallels o VirtualBox e quindi installa Linux su macchina virtuale Se hai Windows: installa il programma VirtualBox e quindi installa Linux su macchina virtuale Versione di Linux consigliata: xubuntu Compilatore: GNU GCC Ci servirà il pacchetto il pacchetto build-essentials

3 I LINGUAGGI Un computer è in grado di comprendere solo il proprio linguaggio macchina: tipicamente numeri binari in sequenza I linguaggi assember mappano con dei nomi queste istruzioni elementari, e un traduttore (assemblatore) li converte in linguaggio macchina I linguaggi di alto livello introducono un livello di astrazione maggiore: una singola istruzione per compiti complessi. Devono essere compilati per produrre linguaggio macchina Linguaggio Macchina mov ax,'00' mov di,counter mov cx,digits+cntdigits/2 cld rep stosw inc ax mov [num1 + digits - 1],al mov [num2 + digits - 1],al mov [counter + cntdigits - 1],al jmp.bottom Linguaggio Assembler #include <stdio.h> int main() { printf( ciao\n ); return 0; } Linguaggio alto livello (C)

4 CREARE UN PROGRAMMA C Editor Scriviamo il programma in dei file di testo, Ad es. prova.c Preprocessore Pre-elabora il nostro codice, in accordo a direttive Ad es. #include file.h, include un file Compilatore Traduce in linguaggio macchina e genera codice oggetto (con riferimenti a funzioni) Ad es: prova.o Linker Collega più codici oggetto, risolvendo i riferimenti e creando un immagine eseguibile

5 IL C E LE FUNZIONI La programmazione C è una programmazione basata su funzioni, ri-uso del codice, scomposizione, nascondere i dettagli F(INPUT) -> OUTPUT Funzione Principale (main) Funzione mia Istruzioni Chiamata ad Altra Funzione Funzioni di libreria

6 IL NOSTRO PRIMO PROGRAMMA IN C #include <stdio.h>! // il nostro primo programma in C! //...e questo è un commento! int main() {!!printf( Hello World!\n );! }! file: hello_world.c direttiva di preprocessore: includiamo un file contentente la funzione che ci permette di stampare a video (printf). Appartiene alla libreria standard. Funzione principale di ogni programma in C. Il corpo della funzione è incluso in un blocco, delimitato dalle parantesi graffe Printf: funzione che stampa a schermo la stringa di ingresso. Come ogni istruzione, questa chiamata di funzione termina con ;. Per renderlo più leggibile, indentiamo il corpo della funzione

7 GCC Compiliamo il file precedente con il comando gcc hello_world.c o hello_world la precedente istruzione chiama automaticamente preprocessore, compilatore e linker creato l eseguibile, lanciamolo con./hello_world Opzioni utili di gcc: -Wall : fa vedere tutti i warning -g: include informazioni per il debug -o: come si chiama l output prodotto (default a.out )

8 LA COMPILAZIONE DI UN PROGRAMMA (PER STEP) cpp hello_world.c > hello_world.i output del preprocessore gcc S hello_world.i produce codice assembler specifico del nostro processore as o hello_world.o hello_world.s Genera il codice oggetto ld o hello_world hello_world.o [librerie] Linking

9 LO STILE E LA LEGGIBILITÀ Lo stesso programma può essere scritto in più modi: #include <st\! dio.h>! int ma\! in(){pr\! intf( Hello Wor\! ld!\n );}! Le buone pratiche di programmazione ci aiutano a rendere il programma leggibile (anche da altri) e mantenibile. Consigli: Indentare i codici dei blocchi Mettere dei commenti prima di ogni funzione per spiegare cosa fa

10 src:

11 LE FUNZIONI // Commento che descrive l obiettivo della funzione output NOME_FUNZIONE(ARGOMENTI DI INPUT) { // Corpo della funzione Definizione della funzione } Blocco.. variabile = NOME_FUNZIONE(ARGOMENTI DI INPUT); Invocazione della funzione

12 ACCETTARE GLI INPUT DALL UTENTE #include stdio.h // Esegue la somma tra due numeri, chiesti all utente int main( void ) { int intero1; int intero2; int somma; definizione delle variabili printf( Inserire un numero: ); scanf( %d, &intero1); printf( Inserire un altro numero: ); scanf( %d, &intero2); Stampiamo e richiediamo input somma = intero1 + intero2; printf( la somma fa %d\n, somma); Operazione di assegnamento }

13 PRECISAZIONI 1. Cosa succedeva se chiamavamo le variabili pippo1, pippo2 e pippo3? 2. Potevamo definire la variabile somma subito prima del suo utilizzo? 3. Cosa succede se scriviamo: intero1 + intero2 = somma 4. Cosa succede se non inseriamo un intero ma una stringa? 5. Cosa vuol dire \n? \n: newline ; \t tab ; \\ backslash; \ doppie virgolette 6. Perchè nella scanf c è il carattere &?

14 DICHIARAZIONE DI VARIABILI: NOME, TIPO E VALORE int intero1; tipo: intero nome: intero1 Indirizzo memoria Valore 0xFF6CE intero1 = 4; valore non inizializzato, allocazione dello spazio Indirizzo memoria 0xFF6CE 4 Valore Scrittura intero2 = Intero1; Indirizzo memoria Valore 0xFF6CE 4 intero1 = ciao ; Lettura Errore in compilazione

15 ARITMETICA Operazione Addizione Sottrazione Moltiplicazione Divisione Resto (modulo) Sintassi a + b a b a * b a / b a % b Esempio: intero1 = 2 * (5 + (3 * 2) ) risultato= 22 precedenza: prima le parentesi (dalla più interna) poi moltiplicazione, divisione e modulo (da sinistra a destra) poi addizione e sottrazione (da sinistra a destra) Infine assegnazione

16 istruzioni di selezione ISTRUZIONE IF if (CONDIZIONE) { // fai queste operazioni } else if (ALTRA_CONDIZIONE) { } else { //fai altre operazioni //altrimenti fai queste operazioni } NOTE E possibile creare if annidati if (numero == 0) { Se si omettono le parentesi graffe, viene eseguita solo un istruzione if ternario (ottimizzato su alcune architetture), esempio: numero_maggiore_di_dieci = numero > 10? 1 : 0 printf( Il numero e zero\n ); } else if (numero >0 && numero <= 10) { printf( Il numero e tra 1 e 10\n ); } else { printf( Il numero e negativo o maggiore di 10\n ); } Esempio

17 IF E GLI OPERATORI RELAZIONALI E DI UGUAGLIANZA Operazione Uguaglianza Disuguaglianza Maggiore e minore Maggiore o uguale e minore o uguale Sintassi a == b a!= b a > b ; a < b a >= b ; a <= b Operatori (precedenza) () * / % + - < <= > >= ==!= = Esercizio: Modificare l esempio precedente e stampare se la somma dei numeri immessi è pari o dispari

18 SOLUZIONE #include stdio.h // Esegue la somma tra due numeri, chiesti all utente int main( void ) { int intero1, intero2, somma; printf( Inserire un numero: ); scanf( %d, &intero1); printf( Inserire un altro numero: ); scanf( %d, &intero2); } somma = intero1 + intero2; printf( la somma fa %d\n, somma); if (somma % 2 == 0 ) { printf( La somma è pari\n ); } else { printf( La somma è dispari\n ); }

19 istruzioni di selezione ISTRUZIONE SWITCH switch(espressione) { case valore: istruzione case valore:... istruzione break; default: istruzione } NOTE I vari case funzionano da etichette Il flusso continua al case corrispondente L istruzione break fa uscire dal controllo switch(mio_numero) { case 1: printf( Il numero e uno\n ); break; case 2: ; case 3: printf( Il numero e due o tre\n ); break; default: } Esempio printf( Il numero non e uno due o tre\n );

20 GOTO Effettua salti incodizionati nel codice Esempio if (qualcosa) { // fai delle operazioni } else { goto MIO_ERRORE; } MIO_ERRORE: printf( c e un errore\n );

21 GOTO E. Dijkstra : Go TO Considered Harmful

22 SPAGHETTI CODE Spaghetti code è un termine dispregiativo per quei programmi per computer che hanno una struttura di controllo del flusso complessa e/o incomprensibile, con uso esagerato ed errato di go to, eccezioni, thread e altri costrutti di branching (diramazione del controllo) non strutturati. (wikipedia)

23 istruzioni di ripetizione ISTRUZIONE WHILE Esempio while(espressione vera) { while (mio_numero > 10 ) { //ripeti operazione mio_numero = mio_numero - 1; } } NOTE Se l istruzione non è mai vera, il programma non entra mai nel ciclo while Attenzione ad I cicli while infiniti Cosa succede se mio_numero è -1?

24 GIOCHIAMO A MORRA CINESE Un affinamento Top-Down consiste nello specificare le operazioni da fare ed il loro ordine (algoritmo) introducendo un livello di dettaglio crescente. Per programmi complicati ci puo essere utile scrivere il flusso in pseudocodice Livello TOP 1. Giocare a morra cinese Primo affinamento: 1. Ricevi un valore tra sasso, forbici e carta 2. Crea un valore random per il computer Struttura Sequenziale 3. Con le regole di morra cinese, determina se l utente ha vinto o perso

25 GIOCHIAMO A MORRA CINESE 1. Stampa le istruzioni di gioco 2. Ricevi un numero che corrisponda a sasso, forbici e carta 3. Crea un valore random per il computer 4. Se l utente ha selezionato sasso 1. se il pc ha selezionato sasso, scrivi Pari! 2. se il pc ha selezionato forbici, scrivi Hai vinto! 3. se il pc ha selezionato carta, scrivi Hai perso! 5. Altrimenti se l utente ha selezionato carta : 1. se il pc ha selezionato sasso, scrivi Hai vinto! 2. se il pc ha selezionato forbici, scrivi Hai perso! 3. se il pc ha selezionato carta, scrivi Pari! 6. Altrimenti se l utente ha selezionato forbici : 1. se il pc ha selezionato sasso, scrivi Hai perso! 2. se il pc ha selezionato forbici, scrivi Pari! 3. se il pc ha selezionato carta, scrivi Hai vinto! 7. Altrimenti scrivi un messaggio di errore Aumentiamo il dettaglio

26 GIOCHIAMO A MORRA CINESE (FRAMMENTO DI DIAGRAMMA DI FLUSSO) utente: sasso vero pc: sasso vero Stampa Pari falso falso pc: carta vero Stampa Hai Perso falso pc: forbici vero Stampa Hai Vinto

27 #include <stdio.h> #include <stdlib.h> #define CARTA 0 #define SASSO 1 #define FORBICI 2 int main(void) { int user_choice = -1; int pc_choice = -1; printf("benvenuto a morra cinese:\n\nseleziona 0 per CARTA:\nSeleziona 1 per SASSO:\nSeleziona 2 per FORBICI:\n"); scanf("%d", &user_choice); #include <stdio.h> #include <stdlib.h> #define CARTA 0 #define SASSO 1 #define FORBICI 2 pc_choice = rand() % 3; if (user_choice == CARTA) { // carta if (pc_choice == CARTA) { printf("pari!"); } else if (pc_choice == SASSO) { printf("hai vinto!"); } else if (pc_choice == FORBICI) { printf("hai perso!"); } } else if (user_choice == SASSO) { // sasso if (pc_choice == SASSO) { printf("pari!"); } else if (pc_choice == CARTA) { printf("hai perso!"); } else if (pc_choice == FORBICI ) { printf("hai vinto!"); } } else if (user_choice == FORBICI) { // forbici if (pc_choice == FORBICI ) { printf("pari!"); } else if (pc_choice == SASSO) { printf("hai perso!"); } else if (pc_choice == CARTA) { printf("hai vinto!"); } int main(void) { int user_choice = -1; int pc_choice = -1; printf("benvenuto a morra cinese:\n \nseleziona 0 per CARTA:\nSeleziona 1 per SASSO:\nSeleziona 2 per FORBICI:\n"); scanf("%d", &user_choice); pc_choice = rand() % 3; } else { printf("errore, devi inserire 0, 1 o 2\n\n"); } return 0; }

28 #include <stdio.h> #include <stdlib.h> #define CARTA 0 #define SASSO 1 #define FORBICI 2 int main(void) { } int user_choice = -1; int pc_choice = -1; printf("benvenuto a morra cinese:\n\nseleziona 0 per CARTA:\nSeleziona 1 per SASSO:\nSeleziona 2 per FORBICI:\n"); scanf("%d", &user_choice); pc_choice = rand() % 3; if (user_choice == CARTA) { // carta if (pc_choice == CARTA) { printf("pari!"); } else if (pc_choice == SASSO) { printf("hai vinto!"); } else if (pc_choice == FORBICI) { printf("hai perso!"); } } else if (user_choice == SASSO) { // sasso if (pc_choice == SASSO) { printf("pari!"); } else if (pc_choice == CARTA) { printf("hai perso!"); } else if (pc_choice == FORBICI ) { printf("hai vinto!"); } } else if (user_choice == FORBICI) { // forbici if (pc_choice == FORBICI ) { printf("pari!"); } else if (pc_choice == SASSO) { printf("hai perso!"); } else if (pc_choice == CARTA) { printf("hai vinto!"); } } else { } printf("errore, devi inserire 0, 1 o 2\n\n"); return 0; if (user_choice == CARTA) { // carta if (pc_choice == CARTA) { printf("pari!"); } else if (pc_choice == SASSO) { printf("hai vinto!"); } else if (pc_choice == FORBICI) { printf("hai perso!"); } } else if (user_choice == SASSO) { // sasso if (pc_choice == SASSO) { printf("pari!"); } else if (pc_choice == CARTA) { printf("hai perso!"); } else if (pc_choice == FORBICI ) { printf("hai vinto!"); } } else if (user_choice == FORBICI) { // forbici if (pc_choice == FORBICI ) { printf("pari!"); } else if (pc_choice == SASSO) { printf("hai perso!"); } else if (pc_choice == CARTA) { printf("hai vinto!"); } } else { printf("errore, devi inserire 0, 1 o 2\n\n"); } return 0;

29 GIOCHIAMO A MORRA CINESE: MODIFICHIAMOLO 1. Stampa le istruzioni di gioco 2. Ricevi un numero dall utente 3. Finchè se il valore immesso dall utente corrisponde a sasso, forbici e carta 1. Crea un valore random per il computer 2. Determina se hai vinto o perso 3. stampa a schermo 4. Ricevi un numero dall utente Nota: la funzione rand() ritorna un numero intero casuale.

30 CURIOSITÀ SU MORRA CINESE (ROCK PAPER SCISSORS) Non è solo un gioco di fortuna Ci sono algoritmi più intelligenti di tirare a caso. Provate a sfidare il computer: science/rock-paper-scissors.html?_r=0 Strategie: how_to_win_at_r/ Migliorare il programma! E c e qualcuno che con la tecnologia bara technology/video/2012/jun/27/rockpaper-scissors-robot-video

31 ERRORI Errori di sintassi: avete scritto male il programma, il compilatore vi genera un errore (leggerlo!) Generalmente facili da individuare Non viene creato l eseguibile Esempio: aquilante:programmi orazio$ gcc morra_cinese.c -o morra_cinese morra_cinese.c: In function 'main': morra_cinese.c:33: error: expected ';' before '}' token

32 ERRORI Errori logici : Avete pensato male il programma Viene creato l eseguibile, ma non si comporta come dovrebbe Piu difficili da inviduare! Esempio: 1. Stampa le istruzioni di gioco 2. Ricevi un numero dall utente 3. Finchè se il valore immesso dall utente corrisponde a sasso, forbici e carta 1. Crea un valore random per il computer 2. Determina se hai vinto o perso 3. stampa a schermo 4. Ricevi un numero dall utente

33 ERRORI Errori runtime: Durante l esecuzione, il programma si blocca (crash) Viene creato l eseguibile Difficile da inviduare Per trovare gli errori di runtime si usano i debugger Esempio: quando faremo i puntatori li vedrete in abbondanza

34 src:

35 ALCUNI ERRORI SONO NOSTRI AMICI! Gli errori (e i warning) generati in fase di compilazione ci aiutano a prevenire altri errori più difficili da individuare ad esempio durante l esecuzione del programma Quando appare un errore, leggere sempre e con attenzione il tipo di errore/warning Il caso: Random_number_generator_attack#Debian_OpenSSL The security weakness was caused by changes made to the openssl code by a Debian developer in response to compiler warnings of apparently redundant code.[12] This caused a massive worldwide regeneration of keys, and despite all attention the issue got, it could be assumed many of these old keys are still in use.

INTRODUZIONE ALLA PROGRAMMAZIONE C LORENZO BRACCIALE

INTRODUZIONE ALLA PROGRAMMAZIONE C LORENZO BRACCIALE INTRODUZIONE ALLA PROGRAMMAZIONE C LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT AMBIENTE ED EDITOR DI RIFERIMENTO Utilizziamo editor a linea di comando: nano o vim Ci permettono di programmare anche

Dettagli

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili 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 Corso di

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

----------------------------------------------------------------

---------------------------------------------------------------- ---------------------------------------------------------------- utilizzo frequente di chiamate a.. A differenza del Pascal, il C permette di operare con assegnamenti e confronti su dati di tipo diverso,

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Introduzione a GCC: GNU Compiler Collection

Introduzione a GCC: GNU Compiler Collection Introduzione a GCC: GNU Compiler Collection Caratteristiche di GCC Compilatore multipiattaforma modulare Disponibile per tutti i principali sistemi operativi Può produrre programmi per la maggior parte

Dettagli

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli

Appunti di Sistemi Elettronici

Appunti di Sistemi Elettronici Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi

Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

Compilare il primo programma. Primo programma in C. Esercizio Somma due numeri. Compilare il primo programma. Analisi. Analisi

Compilare il primo programma. Primo programma in C. Esercizio Somma due numeri. Compilare il primo programma. Analisi. Analisi Primo in C Un semplice L ambiente di sviluppo Dev-C++ Codifica del Compilazione e correzione errori Esecuzione e verifica 2 Esercizio Somma due numeri Si realizzi un in linguaggio C che acquisisca da tastiera

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003 Informatica B Breve introduzione all ambiente di programmazione Politecnico di Milano IV Facoltà di Ingegneria 2003 Dal sorgente all eseguibile File Sorgente.C Compilatore File Oggetto.OBJ Librerie.lib

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Il linking tra i moduli di un programma e le librerie da esso utilizzate può essere Statico

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Introduzione a Dev-C++

Introduzione a Dev-C++ Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI Diagramma di flusso L algoritmo può essere rappresentato in vari modi, grafici o testuali. Uno dei metodi grafici più usati e conosciuti è il cosiddetto diagramma

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Dispensa 3. 1.1 YACC: generalità

Dispensa 3. 1.1 YACC: generalità Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un

Dettagli

Linguaggio C. Fondamenti. Struttura di un programma.

Linguaggio C. Fondamenti. Struttura di un programma. Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli

ToolChain: Come Generare Applicazioni in Linguaggio Macchina

ToolChain: Come Generare Applicazioni in Linguaggio Macchina ToolChain: Come Generare Applicazioni in Linguaggio Macchina Luca Abeni e Luigi Palopoli March 30, 2015 La Lingua della CPU Una CPU capisce e riesce ad eseguire solo il linguaggio macchina Linguaggio di

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Algoritmi. Maurizio Palesi. Maurizio Palesi 1 Algoritmi Maurizio Palesi Maurizio Palesi 1 Cos è Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Un algoritmo è un metodo per la soluzione

Dettagli

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans Prima di tutto va installato il compilatore, ottenibile scaricando ed installando MinGW o CygWin. MinGW: http://www.mingw.org/download.shtml CygWin:

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica

Dettagli

NOZIONI BASE PER ESERCITAZIONI

NOZIONI BASE PER ESERCITAZIONI NOZIONI BASE PER ESERCITAZIONI Shahram Rahatlou Laboratorio di Calcolo, Anno Accademico 2015-16 http://www.roma1.infn.it/people/rahatlou/labcalc/ Sistema Operativo Hardware Software n Routine e programmi

Dettagli

Linguaggio C - Funzioni

Linguaggio C - Funzioni Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche

Dettagli

Elementi di Architettura e Sistemi Operativi

Elementi di Architettura e Sistemi Operativi Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 15 Giugno 2015 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 4 problema 2 6 problema

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

puntatori Lab. Calc. AA 2007/08 1

puntatori Lab. Calc. AA 2007/08 1 puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Scrivere un programma in Java

Scrivere un programma in Java Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

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

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi) Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) 3. (testo di riferimento: Bellini-Guidi) Ing. Agnese Pinto 1 di 28 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

Dettagli

Il programmatore che c e in noi Lezione 12 Statements

Il programmatore che c e in noi Lezione 12 Statements Il programmatore che c e in noi Lezione 12 Statements Mi sveglio, vado in bagno, doccia, colazione. Per colazione, preparo il caffe, accendo il gas, se e acceso metto la caffettiera sopra il fornello ed

Dettagli

http://www.programmiamo.altervista.org/c/oop/o...

http://www.programmiamo.altervista.org/c/oop/o... PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

RICERCA DI UN ELEMENTO

RICERCA DI UN ELEMENTO RICERCA DI UN ELEMENTO Si legga da tastiera un array di N elementi (N stabilito dall utente) Si richieda un elemento x il programma deve cercare l elemento x nell array Se l elemento è presente, deve visualizzare

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

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 E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti

Dettagli

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console Il compilatore per i linguaggi c e c++ chiamato lcc-win32 è un prodotto gratuito scaricabile dal sito http://www.cs.virginia.edu/~lcc-win32/

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

Alcune regole di base per scrivere un programma in linguaggio C

Alcune regole di base per scrivere un programma in linguaggio C Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza

Dettagli

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Gli elaboratori utilizzano memoria per Dati da elaborare Istruzioni eseguite dall elaboratore software differenti risoluzione problemi differenti Algoritmo

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Introduzione versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli