FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso"

Transcript

1 FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso 4 Introduzione alla programmazione in linguaggio C Indice 1. Sviluppo del software 2. Sistema operativo 3. Linguaggi di basso livello (LLL) 4. Linguaggi di alto livello (HLL) 5. Generazione di un programma eseguibile 6. Gli elementi del linguaggio C 7. La struttura di un programma in C 4 Introduzione alla programmazione in linguaggio C - 1

2 SVILUPPO DEL SOFTWARE SI parte dalle specifiche (descrizione dei requisiti) per arrivare ai programmi eseguibili (prodotti) Programmazione: analisi del problema scomposizione funzionale definizione degli algoritmi codifica degli algoritmi e del programma: descrizione in un linguaggio di programmazione I programmi eseguibili in linguaggio macchina (binario) sono estremamente scomodi e macchinosi da scrivere per l uomo. Per venire incontro alle attitudini umane sono stati introdotti i linguaggi di programmazione ad alto livello. Consentono formulazioni rigorose ma con costrutti e formalismi simili a quelli abituali per l uomo. Un calcolatore corredato di compilatore e di sistema operativo si presenta al programmatore come una macchina virtuale in grado di eseguire programmi scritti con un linguaggio ad alto livello. Il compilatore provvede a tradurre in codice macchina Il sistema operativo si fa carico di eseguire funzioni complicate, attivate mediante la semplice invocazione di funzioni da parte del programma. 4 Introduzione alla programmazione in linguaggio C - 2

3 IL SISTEMA OPERATIVO Il Sistema Operativo è un insieme organico di programmi che svolgono funzioni di servizio nel calcolatore. Il sistema operativo fa parte del cosiddetto software di base (o di sistema) in quanto esso non svolge funzioni applicative, ma ne costituisce un supporto. Lo scopo del sistema operativo è quello di: fornire servizi utili all operatore umano, mettere a disposizione dei programmi applicativi un insieme di servizi di sistema (detti anche primitive), facendosi carico delle complesse operazioni necessarie per una corretta gestione delle risorse del sistema di calcolo. FUNZIONI DEL SISTEMA OPERATIVO Gestione del calcolatore Gestione delle unità periferiche Gestione dei file Gestione dell esecuzione dei programmi Gestione dell interfaccia con l utente Nei calcolatori collegati in rete tramite un sistema di comunicazione è necessario un ulteriore insieme di programmi di sistema, che costituiscono un estensione del sistema operativo per operazioni di: Gestione delle comunicazioni in rete 4 Introduzione alla programmazione in linguaggio C - 3

4 BOOTSTRAP (avviamento) All accensione del calcolatore parte l esecuzione di una piccola parte del Sistema Operativo residente in ROM (porzione non volatile della memoria di lavoro), che esegue le seguenti operazioni: verifica del funzionamento di parti del calcolatore, in particolare della RAM caricamento da memoria di massa a memoria di lavoro delle altre parti componenti del Sistema Operativo salto all esecuzione della parte (interprete comandi) che gestisce l interazione con l utente. A questo punto l interprete comandi emette su video il prompt (o la videata detta desktop con la freccina del mouse) indicando all utente di essere pronto a ricevere ed eseguire comandi. 4 Introduzione alla programmazione in linguaggio C - 4

5 Linguaggi di programmazione di basso livello I linguaggi di basso livello sono il linguaggio macchina e la corrispondente forma simbolica, detta linguaggio Assemblatore, specifici per ogni tipo di processore, essendo legati alla sua architettura interna. Con questi linguaggi il programmatore ha una visione dei dettagli architetturali del calcolatore: Celle della memoria di lavoro Registri della CPU Registri delle porte di I/O Operazioni elementari a due operandi della ALU Salti ad istruzioni specificandone l indirizzo Quindi l uso dei linguaggi di basso livello consente al programmatore il completo controllo di tutte le operazioni su tutte le risorse, ma al prezzo di dover conoscere e tener conto esplicitamente di tutti i relativi dettagli. Parte del software di sistema (sistema operativo, librerie di funzioni) deve essere scritto con linguaggio Assemblatore. 4 Introduzione alla programmazione in linguaggio C - 5

6 Linguaggi di programmazione di alto livello (HLL) FORTRAN (FORmula TRANslator) - seconda metà anni 50, versioni successive FORTRAN COBOL (Common Business Oriented Language) - anni 60 PASCAL e Modula 2 C e C++ ADA Java linguaggi basati su altri paradigmi di programmazione Linguaggio C sviluppato negli anni 70 (poi diventato C standard ANSI). Molto diffuso e adatto ad un ampio spettro di applicazioni scientifiche gestionali industriali: acquisizione dati, controllo di processo. informatiche: software di base (SO Unix), strumenti (CAD), pacchetti 4 Introduzione alla programmazione in linguaggio C - 6

7 I linguaggi artificiali di alto livello (HLL) Sono caratterizzati da: elementi: alfabeto o vocabolario del linguaggio sintassi: insieme di regole tramite le quali si compongono gli elementi per costruire frasi eseguibili (= istruzioni) semantica: significato degli elementi, delle istruzioni, del programma Regole sintattiche: devono essere prive di ambiguità sulla composizione delle frasi. si deve poter stabilire con certezza e in modo automatico se una frase è sintatticamente corretta, Correttezza sintattica: il rispetto delle regole sintattiche è condizione necessaria per l eseguibilità del programma (è necessaria per rendere possibile la traduzione da parte del compilatore). 4 Introduzione alla programmazione in linguaggio C - 7

8 I linguaggi artificiali di alto livello (HLL) Errori di un programma: sintattici: sono violate regole sintattiche sono errori di struttura, rilevati al tempo di compilazione (compile-time) Impediscono la traduzione in linguaggio macchina eseguibile. di esecuzione: sono indicate operazioni non possibili con l attuale valore degli operandi sono errori di comportamento, rilevati al tempo di esecuzione (run-time) Arrestano l esecuzione del programma logici: l algoritmo non rispetta le specifiche sono errori di comportamento, rilevati in sede di collaudo (debug) Producono risultati che non rappresentano una corretta soluzione del problema dato. 4 Introduzione alla programmazione in linguaggio C - 8

9 GENERAZIONE DI UN PROGRAMMA ESEGUIBILE - 1 Partendo da Un algoritmo descritto con un linguaggio simbolico, cioè un PROGRAMMA SORGENTE produce un algoritmo (semanticamente) equivalente rappresentato in codice macchina, cioè un PROGRAMMA ESEGUIBILE I linguaggi usati per i programmi sorgenti possono essere di basso livello (Assembler) o di alto livello (come C, Fortran, ecc.). Il programmatore viene spesso indicato come utente del linguaggio di programmazione Da non confondere con l utente del programma eseguibile, che potrebbe benissimo non saper programmare. Le operazioni necessarie per produrre un programma eseguibile utilizzano nelle varie fasi come strumenti molto utili, e praticamente indispensabili, appositi programmi eseguiti dallo stesso (o da un altro) calcolatore. Il programmatore è quindi utente di questi programmi. 4 Introduzione alla programmazione in linguaggio C - 9

10 GENERAZIONE DI UN PROGRAMMA ESEGUIBILE - 2 Algoritmo codifica su tastiera EDITOR File programma sorgente Traduttore Assembler Compilatore messaggi diagnostici di errori sintattici File programma oggetto File librerie LINKER messaggi diagnostici di errori di collegamento File programma eseguibile LOADER Programma in esecuzione nella memoria di lavoro Sistema Operativo messaggi di errori di esecuzione 4 Introduzione alla programmazione in linguaggio C - 10

11 GENERAZIONE DI UN PROGRAMMA ESEGUIBILE - 3 FASE DI EDITING Programma in esecuzione EDITOR Ingresso Caratteri da tastiera che vengono memorizzati in memoria centrale. L Editor consente all operatore di comporre e modificare un testo, composto da qualunque sequenza di caratteri. Uscita (salvataggio) File Programma Sorgente memorizzato in memoria di massa. Il file sorgente è un file di testo (caratteri ASCII) di nome: XXXX.ASM programmi in assembler XXXX.C programmi in C XXXX.CPP programmi in C++ FASE DI TRADUZIONE: di assemblaggio (linguaggio assembler) o di compilazione (linguaggi di alto livello) Programma in esecuzione COMPILATORE Ingresso File Programma Sorgente Il compilatore riconosce i simboli, le parole e i costrutti del programma e, se questi rispettano la sintassi del linguaggio, produce la forma binaria del codice macchina corrispondente. Uscita File Programma Oggetto è un file binario di nome XXXX.OBJ Uscite ausiliarie Eventuali messaggi diagnostici che segnalano gli eventuali errori sintattici che il compilatore ha rilevato nell analisi del programma sorgente. Gli errori sintattici, cioè le violazioni delle regole della sintassi del linguaggio, rendono il programma non correttamente associabile ad un significato e quindi ne rendono impossibile la traduzione. 4 Introduzione alla programmazione in linguaggio C - 11

12 GENERAZIONE DI UN PROGRAMMA ESEGUIBILE - 4 FASE DI LINKING (o collegamento) Programma in esecuzione LINKER Ingressi File programmi oggetto File di Librerie Il linker collega tra loro i file oggetto e le funzioni richieste, estraendole dalle Librerie, sistemando i riferimenti ad indirizzi dei vari elementi collegati. Uscita File Programma Eseguibile Il file programma eseguibile è un file binario che contiene il codice macchina del programma eseguibile completo, ed ha nome XXXX.EXE. Il programma sarà effettivamente eseguibile solo dopo che il contenuto del file sia stato caricato nella memoria operativa del calcolatore. Uscite ausiliarie Eventuali messaggi diagnostici di errori nel citare i nomi delle funzioni da collegare. FASE DI CARICAMENTO (loading) Programma in esecuzione LOADER (caricatore) Ingresso File Programma Eseguibile Il Loader è quella parte del Sistema Operativo che si incarica di individuare una porzione libera della memoria operativa, vi copia il contenuto del file programma eseguibile (codice macchina) e ne attiva l esecuzione della prima istruzione. Uscita Eventuale segnalazione di spazio di memoria insufficiente. 4 Introduzione alla programmazione in linguaggio C - 12

13 ESECUZIONE DEL PROGRAMMA Programma in esecuzione Il programma applicativo lanciato dal sistema operativo Ingressi I dati richiesti dal programma applicativo Il programma svolge le funzioni corrispondenti all algoritmo descritto dal codice macchina, che equivale a quello descritto dal programma sorgente. L uso di funzioni di libreria può di fatto richiamare funzioni del Sistema Operativo, in particolare nell uso dei file (memoria di massa) e delle unità periferiche (tastiera, video, stampante, ecc.). Uscite I risultati previsti in uscita dal programma applicativo, su video o file o stampante. ERRORI in esecuzione (run-time) possono essere: Calcoli con risultati scorretti Ad es. Overflow Calcoli impossibili Divisione per zero, logaritmo di numero negativo, radice quadrata di un negativo, arcoseno di valore > 1 (o < -1), ecc. rilevati e segnalati dalle funzioni di Libreria e dal Sistema Operativo. Errori di Algoritmo L algoritmo non fa quello che era richiesto, cioè non risolve il problema dato. Non possono essere rilevati da nessuno strumento ed è responsabilità del programmatore individuarli (con opportune prove) e correggerli (modificando i programmi sorgenti). Le prove per la verifica di correttezza e le eventuali correzioni di errori sono dette operazioni di debug, e devono essere eseguite dal programmatore. 4 Introduzione alla programmazione in linguaggio C - 13

14 Considerazioni sui linguaggi HLL e confronti con i LLL Un linguaggio HLL rispetto al linguaggio LLL consente significative astrazioni da molti dettagli, soprattutto per i seguenti aspetti. Variabili di vari tipi, in particolare anche aggregati, con verifica di corretto uso dei tipi (type checking) LLL solo byte e word senza verifiche nè limitazioni Costrutti di controllo strutturati ed espliciti (selezione e iterazione) LLL solo salti condizionati o non (jump = goto) Espressioni logiche e aritmetiche, combinabili con ricchezza di operatori e uso di parentesi, per esprimere in modo compatto ed usuale calcoli anche complicati, lasciando implicita la sequenza di operazioni e la gestione dei risultati intermedi LLL solo istruzioni con singole operazioni da concatenare in lunghe sequenze e con attento uso dei registri Funzioni come astrazione di valore, utilizzabili come operandi in espressioni Procedure come astrazione di operazioni 4 Introduzione alla programmazione in linguaggio C - 14

15 Considerazioni sui linguaggi HLL e confronti con i LLL (segue) Per funzioni e procedure HLL si fa carico dei meccanismi di passaggio parametri LLL richiedono esplicita (e consistente) gestione dei parametri tramite registri o stack Conversioni da sequenze di cifre decimali a codifiche binarie cpl2 e floating point. LLL richiedono l uso di espliciti algoritmi di conversione (eventualmente in librerie). Funzioni disponibili in librerie che a loro volta invocano servizi forniti dal sistema operativo (chiamabili anche da LLL) Allocazione automatica di aree di memoria Gestione di unità periferiche classiche (ingresso di caratteri da tastiera, uscita di caratteri su video e su stampante). La gestione del mouse e del video a finestre richiede apposite librerie più complesse. Gestione dell organizzazione a file della memoria di massa. 4 Introduzione alla programmazione in linguaggio C - 15

16 ELEMENTI LESSICALI DEL LINGUAGGIO C parole chiave (riservate) proprie del linguaggio sono le istruzioni oppure hanno un significato particolare predefinito identificatori costituiti da sequenze di lettere... rappresentano nomi di variabili, costanti, (tipi nuovi), funzioni, procedure sono definiti dal programmatore applicativo oppure dal programmatore di sistema (di libreria) valori costanti (numerici o caratteri) operatori (unari: un operando, o binari: due operandi) di assegnamento = aritmetici + - * / relazionali (confronto) > < <= ==... logici! (not) && di chiamata di funzione/procedura ( ) di referenziazione & altri separatori (delimitatori) di identificatori di variabili e costanti, di istruzioni ; commento /* */ di blocco di istruzioni { } in espressioni ( ) 4 Introduzione alla programmazione in linguaggio C - 16

17 Il preprocessore del linguaggio C Il programma sorgente, prima di essere passato in ingresso al compilatore vero e proprio, viene modificato e arricchito da una parte del compilatore detta preprocessore, che interviene nei punti in cui sono indicate con #, e specificate con apposite parole chiave, le direttive al preprocessore. direttive al preprocessore C #include <nome file> inserisce in quel punto il file (di testo) citato, in modo da renderlo parte integrante del programma sorgente da tradurre #define <nome simbolico> <costante> sostituisce il valore costante in tutte le occorrenze del nome simbolico 4 Introduzione alla programmazione in linguaggio C - 17

18 Operandi Sono entità cui è associato un valore Variabili e costanti e funzioni Variabili e dichiarazione di variabili Le variabili sono contenitori di informazioni (cioè di valori) hanno un nome simbolico che rappresenta in modo univoco una locazione di memoria di lavoro hanno un tipo che denota il tipo di codifica usato per rappresentare i valori, quali valori possono assumere, quali operazioni sono lecite e come agiscono tali operazioni La dichiarazione di una variabile serve a dire che un identificatore corrisponde ad una variabile e come questa verrà utilizzata dal programma. definisce l identificatore simbolico (nome) definisce il tipo (codifica) adatto ai valori da contenere alloca la quantità di memoria adeguata a contenere il tipo associa in modo univoco l indirizzo di memoria al nome consente di rilevare errori sull uso improprio della variabile nel programma in compilazione Rappresentazione in memoria della variabile di nome A indirizzo di A A (nome) valore di A L indirizzo di A è quello del primo (ed eventualmente unico) byte della porzione di memoria che ne contiene il valore. 4 Introduzione alla programmazione in linguaggio C - 18

19 Uso delle variabili E importante distinguere i due diversi ruoli svolti dalle variabili: per assegnare loro un valore (istruzione di assegnamento). il nome di una variabile a sinistra del simbolo = indica dove memorizzare il valore che è descritto a destra del simbolo =. In questo caso il nome è associato all indirizzo Scrittura di un valore nella variabile come operandi in espressioni. il nome di una variabile in un espressione indica che se ne deve usare il valore contenuto in quel momento. In questo caso il nome è associato al contenuto Lettura del valore contenuto nella variabile Visibilità delle variabili (scope) Non tutte le variabili (ed in generale gli identificatori) sono visibili, cioè usabili, in tutte le parti di un programma. Esistono precise regole di visibilità. Vita delle variabili Alcune variabili, all interno di sottoprogrammi, restano in vigore solo fino a quando è in esecuzione il sottoprogramma stesso. 4 Introduzione alla programmazione in linguaggio C - 19

20 I TIPI (type) - 1 Il tipo di una variabile rappresenta il modello astratto dei dati associato alla variabile Un tipo identifica la codifica e la classe dei valori ammissibili, le operazioni lecite, e la modalità con cui agiscono le operazioni Tipi predefiniti (built-in) : sono i tipi già disponbili nel linguaggio Tipi definiti dal programmatore (user defined): è possibile definire dei nuovi tipi basati su quelli built-in tramite dei costruttori di tipo. Un costruttore di tipo è una parola chiave del linguaggio I nuovi tipi saranno caratterizzati da classe di valori ammissibili operazioni lecite operazioni associate al costruttore 4 Introduzione alla programmazione in linguaggio C - 20

21 I TIPI -2 TIPI SEMPLICI: scalari, elementari, non strutturati. una variabile di tipo semplice è caratterizzata da un valore atomico, l informazione associata al tipo è indivisibile un tipo semplice può essere predefinito oppure definito dal programmatore sulla base dei tipi predefiniti TIPI STRUTTURATI (aggregati): sono composti da elementi una variabile di tipo strutturato è costituita da un insieme di elementi. per definire un tipo strutturato si usa il costruttore di tipo strutturato: (che definisce il tipo della variabile) un costruttore definisce come sono composti gli elementi: in sede di uso sono necessari degli operatori per accedere ai singoli elementi della variabile ad ogni elemento è associato un tipo (tipo dell elemento) che può essere semplice o, a sua volta, strutturato ad ogni elemento è associato un valore (l informazione associata alla variabile è quindi composta dal gruppo dei valori dei singoli elementi) Compatibilità tra i tipi: determina la legalità delle operazioni (operatori) e delle istruzioni che agiscono sugli identificatori di variabili. operazioni (espressioni) istruzioni di assegnamento Il tipo di un espressione deve essere compatibile con quello della variabile cui viene assegnato il suo risultato. 4 Introduzione alla programmazione in linguaggio C - 21

22 TIPI SEMPLICI PREDEFINITI DEL C I nomi di questi tipi sono delle parole chiave del linguaggio: char: (8 bit - 1 byte) Valori da 0 a 255 che rappresentano la codifica ASCII estesa del carattere corrispondente int (16bit - 2 byte) Rappresentano gli interi relativi. Valori in complemento a 2 da a float (32 bit - 4 byte). Rappresentano i razionali espressi in virgola mobile (buona approssimazione dei reali). Valori espressi tramite mantissa e esponente (standard IEEE). Intervallo di valori rappresentabili: circa da a ) double (8 byte). Sono float in doppia precisione. Indirizzo di una variabile operatore: valori assunti: &.. &nome_var interi >= 0 (unsigned) &nome_var rappresenta l indirizzo di memoria del primo byte allocato per la variabile di nome nome_var. 4 Introduzione alla programmazione in linguaggio C - 22

23 TIPI ENUMERATIVI Sono tipi semplici user-defined che implicano l enumerazione esplicita dei valori che la variabile potrà assumere. Sintassi C enum {v1, v2, v3,... vn} nome_var; v1, v2,...vn sono tutti e soli i valori che la variabile potrà assumere, elencati in ordine crescente di valore. i valori sono espressi tramite nomi simbolici l ordine di enumerazione definisce le relazioni di ordinamento tra i valori (v1 < v2 < v3...< vn) ad ogni valore enumerativo viene automaticamente associato in sede di compilazione un valore di tipo integral enum {lu, ma, me, gi, ve, sa, do} giorno; enum {verde, giallo, rosso} semaforo; 4 Introduzione alla programmazione in linguaggio C - 23

24 COSTANTI E DICHIARAZIONE DI COSTANTI Costanti esplicite esprimono direttamente dei valori 23 costante di tipo int costante di tipo double A costante di tipo char Costanti simboliche sono nomi simbolici che il programmatore adotta convenzionalmente per indicare dei valori prefissati hanno un tipo espresso implicitamente dal valore La dichiarazione di una costante simbolica definisce il nome associa un valore (e tipo implicito) In C la dichiarazione (definizione) di costante viene fatta tramite direttiva al preprocessore C #define nmaxp 10 #define vmax #define FALSE #define TRUE 0 1 In fase di compilazione, viene effettuata dal preprocessore una sostituzione letterale del nome simbolico con il valore associato. Note Le costanti non hanno memoria allocata e possono essere usate solo in espressioni. La definizione e l uso di costanti simboliche, invece che esplicite, migliorano notevolmente la qualità dei programmi, facilitando Leggibilità Modificabilità 4 Introduzione alla programmazione in linguaggio C - 24

25 ESPRESSIONI E OPERATORI Un espressione contiene identificatori (di variabili, di costanti, di funzioni), costanti esplicite, operatori e parentesi ( ) Semantica Un espressione descrive il modo con cui ottenere dal valore degli operandi e dall applicazione degli operatori (operazioni) il valore dell espressione. Nelle espressioni complesse la sequenza di esecuzione delle operazioni è dettata dalla Precedenza e associatività predefinita degli operatori forzatura mediante l uso delle parentesi tonde L ordine con cui sono eseguite le operazioni può influire sulla esistenza e sulla precisione dei risultati: ricordare la limitazione del supporto fisico circuitale delle operazioni Esistenza del risultato evitando overflow su interi (e float) Esempio (A, B, C siano int semplice precisione - 16 bit) Se A=20000, B=20000, C=10000 A+B-C dà overflow (A+B > 32767) A-C+B risulta correttamente in Precisione del risultato per operazioni floating point (e troncamenti per divisione di interi) Esempio (A, B siano float semplice precisione 32 bit) Se A= , B= A+1-B risulta pari a 0 A-B+1 risulta correttamente pari a 1 4 Introduzione alla programmazione in linguaggio C - 25

26 Problema Scrivere un programma che cerca e stampa il massimo valore di tipo float (su 32 bit) che non può più essere incrementato di una sola unità. #include <stdio.h> main () { float x, p; char ca; x=0.0; p=1.0; while (p!=x) //finquando succ. è diverso { x=p; p=p+1.0; } printf("max = %f",p);//stampa valore max scanf("%c",&ca);//aspetta prima di terminare } Il risultato stampato dal programma è: max = Quindi il valore è il primo (cioè minimo) valore intero non rappresentabile con la codifica float su 32 bit. 4 Introduzione alla programmazione in linguaggio C - 26

27 Operatori Sono indicatori di operazioni da eseguire sugli operandi TIPI DI OPERATORI unari binari si applicano ad un solo operando si applicano a due operandi Operatori aritmetici (+ - * / %) operandi aritmetici e risultato aritmetico le operazioni sono eseguite in dipendenza del tipo degli operandi (overloading). Operatori di confronto ( < <= > >= == (eguale)!= (diverso)) operandi entrambi dello stesso tipo qualsiasi risultato valore logico Valori logici: in C non esiste un tipo logico che assuma solo i valori False e True, ma per tale scopo viene usato il tipo int il valore FALSE (falso) è associato al valore zero il valore TRUE (vero) è associato ad ogni valore diverso da zero Operatori logici operandi logici e risultato logico && (AND) (OR)! (NOT) operatore unario (con un solo operando) Esempio (num > valmin) && (num <= valmax) Questa espressione logica vale TRUE solo se il valore di num è compreso tra valmin (escluso) e valmax (compreso). Operatori orientati ai bit Operatori di referenziazione (indirizzamento o accesso) 4 Introduzione alla programmazione in linguaggio C - 27

28 ISTRUZIONI DI ASSEGNAMENTO Indicano l operazione che assegna un valore ad una variabile Sintassi C: <nome_variabile> = <espressione>; <nome_variabile> indica il nome della variabile cui si vuole assegnare un valore, in sostituzione di quello precedentemente contenuto in essa = è il simbolo di assegnamento <espressione> descrive come ottenere il valore da assegnare alla variabile Significato (semantica): si eseguono prima le operazioni descritte in <espressione> utilizzando i valori degli operandi, il valore ottenuto viene poi inserito nella posizione di memoria indicata dal nome della variabile a sinistra del simbolo di assegnamento. Compatibilità tra i tipi: il compilatore controlla la compatibilità tra tipi. In alcune situazioni, risolve la non compatibilità adottando delle regole di conversione implicita e automatica tra tipi. 4 Introduzione alla programmazione in linguaggio C - 28

29 STRUTTURA DI UN PROGRAMMA C - 1 programma sorgente C parte dichiarativa globale programma principale funzione main ( ) funzione f1 ( ) funzione f2 ( ) Stile di scrittura di un programma leggibilità Ottenuta con: scelta significativa degli identificatori (mnemonici) indentazione: struttura topologica che rispecchia la struttura logica uso appropriato dei commenti 4 Introduzione alla programmazione in linguaggio C - 29

30 STRUTTURA DI UN PROGRAMMA C - 2 Parte dichiarativa globale: contiene servizi (funzioni) importate da altri moduli (file), cioè definite e codificate in altri file oggetti (tipi di dati, variabili, costanti simboliche, prototipi di funzioni) visibili (utilizzabili) da tutto il programma, cioè da main e dalle altre funzioni. Programma principale: main ( ) { parte dichiarativa locale parola riservata (identificatore di funzione) appare una e una sola volta nel programma definisce l inizio dell esecuzione è (formalmente) una funzione definisce l insieme di oggetti usati dal programma principale per l esecuzione. sono oggetti visibili (locali) a main. } parte esecutiva insieme di istruzioni che costituiscono il programma principale 4 Introduzione alla programmazione in linguaggio C - 30

31 STRUTTURA DI UN PROGRAMMA C - 3 Parte dichiarativa locale 1.dichiarazione di costanti 2.definizione di nuovi tipi definiti dall utente (o eventuale ridenominazione di tipi già definiti) 3.dichiarazione di variabili 4.prototipi di funzioni Regole sintattiche sulle dichiarazioni sia locali che globali: ogni identificatore usato deve essere prima definito ogni variabile usata deve essere prima dichiarata Parte esecutiva: istruzioni (qui elencate per tipologia) istruzioni di assegnamento ed espressioni istruzioni composte (sono racchiuse tra { } ) costrutti di (modifica del flusso di) controllo (costrutti di selezione, costrutti ciclici) chiamate di sottoprogrammi (procedure) istruzioni di ingresso e uscita (funzioni e procedure di sistema) 4 Introduzione alla programmazione in linguaggio C - 31

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

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

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

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

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

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

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

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

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

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

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

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

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

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

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

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

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Linguaggi per COMUNICARE Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Sintassi e semantica dei linguaggi Un informazione può : Essere

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

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

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

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

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

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

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

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

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

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Logica e codifica binaria dell informazione

Logica e codifica binaria dell informazione Politecnico di Milano Corsi di Laurea in Ingegneria Matematica e Ingegneria Fisica Dipartimento di Elettronica ed Informazione Logica e codifica binaria dell informazione Anno Accademico 2002 2003 L. Muttoni

Dettagli

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio

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

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

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

PROVA INTRACORSO TRACCIA A Pagina 1 di 6 PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

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

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1

Dettagli

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Lab 02 Tipi semplici in C Obiettivo dell esercitazione Acquistare familiarità con i tipi di dato semplici supportati

Dettagli

Definizione di nuovi tipi in C

Definizione di nuovi tipi in C Definizione di nuovi tipi in C typedef Ancora sui tipi di dato Ogni elaboratore è intrinsecamente capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema

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

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

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Università Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)

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

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

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

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

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1 Ernesto Cappelletti (ErnestoCappelletti) IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 6 April 2012 1. Requisiti per la scrittura del software secondo la norma UNI EN ISO 13849-1:2008

Dettagli

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE hardware Firmware, software memorizzato su chip di silicio Sistema Operativo venduto con l, comprende vari programmi di gestione del sistema Applicativo,

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

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Programmi. Algoritmi scritti in un linguaggio di programmazione

Programmi. Algoritmi scritti in un linguaggio di programmazione Programmi Algoritmi scritti in un linguaggio di programmazione Sistema operativo:programma supervisore che coordina tutte le operazioni del calcolatore Programmi applicativi esistenti Sistemi di videoscrittura

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

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

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Architettura dei calcolatori e sistemi operativi Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Sommario Il processo di assemblaggio Il collegatore (linker) 2 Assemblatore: traduzione

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

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per Tecnico Ortopedico 03 Sistemi di Elaborazione delle Informazioni Corso di Laurea per "Tecnico Ortopedico" a.a. 2002-03 03 Prof. Luigi Borrelli Facoltà di Medicina e Chirurgia Università degli Studi di Napoli - Federico II a.a.

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

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

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Memorie ROM (Read Only Memory)

Memorie ROM (Read Only Memory) Memorie ROM (Read Only Memory) Considerando la prima forma canonica, la realizzazione di qualsiasi funzione di m variabili richiede un numero di porte AND pari al numero dei suoi mintermini e di prolungare

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015 COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio Non si possono consultare manuali, appunti e calcolatrici. Esercizio 1: [3 punto] Rappresentare i numeri 36 e 91 (in base 10) in notazione binaria

Dettagli

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti

Dettagli

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione Fondamenti di Informatica Michele Ceccarelli Università del Sannio ceccarelli@unisannio.it Angelo Ciaramella DMI-Università degli

Dettagli

2. Codifica dell informazione

2. Codifica dell informazione 2. Codifica dell informazione Codifica Una codifica è una regola per associare in modo univoco i valori di un dato da codificare con sequenze di simboli. La corrispondenza definita dalla codifica è arbitraria,

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Sistemi di Numerazione Binaria NB.1

Sistemi di Numerazione Binaria NB.1 Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

FORMULE: Operatori matematici

FORMULE: Operatori matematici Formule e funzioni FORMULE Le formule sono necessarie per eseguire calcoli utilizzando i valori presenti nelle celle di un foglio di lavoro. Una formula inizia col segno uguale (=). La formula deve essere

Dettagli

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 : Un Sistema Operativo è un insieme complesso di programmi che, interagendo tra loro, devono svolgere una serie di funzioni per gestire il comportamento del computer e per agire come intermediario consentendo

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

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15 WG TRANSLATE Pagina 1 di 15 Sommario WG TRANSLATE... 1 1.1 INTRODUZIONE... 3 1 TRADUZIONE DISPLAY FILE... 3 1.1 Traduzione singolo display file... 4 1.2 Traduzione stringhe da display file... 5 1.3 Traduzione

Dettagli

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro 6 Giugno 2007 Felice Iavernaro (Univ.

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli