Codifica degli algoritmi in linguaggio di alto livello

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Codifica degli algoritmi in linguaggio di alto livello"

Transcript

1 Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Codifica degli algoritmi in linguaggio di alto livello Ing. Agnese Pinto 1 di 44 Codifica degli algoritmi in linguaggio di alto livello

2 Sommario Obiettivi della programmazione in linguaggi di alto livello La macchina astratta C Struttura di un programma in C Istruzioni principali del linguaggio C Esempi di programmi in quasi C 2 di 44 Codifica degli algoritmi in linguaggio di alto livello

3 Linguaggi di alto livello Colmano il gap tra i due requisiti fondamentali di un linguaggio per la descrizione di algoritmi: Precisione ed assenza di ambiguità interpretativa per l esecuzione di operazioni (requisito richiesto dalla macchina) Sintesi per la facilità di comprensione del programmatore (requisito richiesto dall uomo) Vantaggi: Possibilità di riferirsi agli elementi del programma (celle di memoria, istruzioni, valori costanti) con identificatori (nomi simbolici) Es. a cella di memoria Possibilità di esprimere le istruzioni e il controllo della sequenza della loro esecuzione in modo vicino al linguaggio naturale 3 di 44 Codifica degli algoritmi in linguaggio di alto livello

4 Macchina astratta C La macchina astratta del (nucleo) del linguaggio C è: in grado di comprendere ed eseguire programmi in C un astrazione della macchina di Von Neumann 4 di 44 Codifica degli algoritmi in linguaggio di alto livello

5 Macchina astratta C Componenti: CPU Memoria centrale: divisa in celle elementari, contenenti un dato (valore numerico o carattere), con numero di bit variabile Bus Astrazione delle interfacce con le periferiche: Standard Input: unica unità di ingresso diviso in celle elementari, contenenti un dato (valore numerico o carattere), con numero di bit variabile Standard Output: unica unità di uscita diviso in celle elementari, contenenti un dato (valore numerico o carattere), con numero di bit variabile 5 di 44 Codifica degli algoritmi in linguaggio di alto livello

6 Elementi e terminologia di base Stringa: successione finita di caratteri, supposti immagazzinati in celle consecutive Variabili: contenitore di informazioni - celle di memoria, il cui contenuto può cambiare durante l esecuzione del programma Identificatori simbolici: successione di lettere e cifre (come separatore si usa il simbolo _ ), che comincino per lettera N.B. il C è case sensitive Identificatori predefiniti e riservati: associati a priori ad elementi del linguaggio e non utilizzabili per le variabili Parole chiave: altri termini del linguaggio predefiniti e riservati 6 di 44 Codifica degli algoritmi in linguaggio di alto livello

7 Struttura di un programma in C Un programma C è composto da un intestazione seguita da una sequenza di istruzioni racchiusa tra i simboli { e } L intestazione è costituita dall identificatore predefinito main seguito da una coppia di parentesi ( ) (che conterranno i parametri da passare al programma) Le istruzioni corrispondono a costrutti (statement) del linguaggio di programmazione; ognuna di esse termina con il simbolo ; 7 di 44 Codifica degli algoritmi in linguaggio di alto livello

8 C: principali istruzioni 1. Istruzioni di sequenza: Istruzioni di assegnamento x = 23; x = x+1; w = 'a'; y = z; area_trap = (base_min+base_mag)*h/2; Istruzioni di ingresso e uscita scanf(): identificatore predefinito di input; le parentesi contengono informazioni relative alla variabile da leggere printf(): identificatore predefinito di output; le parentesi contengono informazioni relative alla variabile da scrivere printf((a-z)/10); temp = (a-z)/10; printf(temp); printf( a ); printf( alfa ); printf( a ); printf( l ); printf( f ); printf( a ); 8 di 44 Codifica degli algoritmi in linguaggio di alto livello

9 Istruzioni composte 2. Istruzioni composte (diramazioni e cicli) producono effetti diversi a seconda del verificarsi o meno di condizioni sul valore delle variabili condizione (espressione booleana): espressione su variabili booleane il cui valore può essere vero o falso costruita tramite: operatori relazionali (==;!=; <; >; <=; >=) operatori logici (!; ; &&) esempi: x == 0 alfa > beta && x!= 3!((a + b)*3 > x a < c) 9 di 44 Codifica degli algoritmi in linguaggio di alto livello

10 Diramazioni e cicli 2.1 Istruzioni di diramazione (o selezione) if(x == 0) z = 5; else y = z + w*y; if(x == 0) {z = 5;} else {y = z + w*y;} if ((x+y)*(z-2) > (23+v)) {z = x + 1; y = 13 + x;} if ((x == y && z >3) w!= y) z = 5; else {y = z + w*y; x = z;} Istruzioni di selezione non corrette: if (x == 0) else y = z; y = 34; if (x == 0) a; else b + c; 10 di 44 Codifica degli algoritmi in linguaggio di alto livello

11 Diramazioni e cicli 2.2 Istruzioni di ciclo (o loop o iterazione) while (x >= 0) x = x 1; while (z!= y) {y = z x; x = x*3;} 11 di 44 Codifica degli algoritmi in linguaggio di alto livello

12 Esempi in pseudo C main() { scanf(x); scanf(y); if (x > y) z = x; else z = y; printf(z); } /*Programma NumeroMaggiore prima versione */ /*Programma NumeroMaggiore seconda versione */ main() { scanf(x); scanf(y); if (x > y) printf(x); else printf(y); } 12 di 44 Codifica degli algoritmi in linguaggio di alto livello

13 Esempi in pseudo C main() { zero = 0; scanf (dato); while (dato!=0) } scanf(dato); printf( uno ); /*ProgrammaCercaIlPrimoZero */ 13 di 44 Codifica degli algoritmi in linguaggio di alto livello

14 Esempi in pseudo C /*ProgrammaSommaSequenza */ main() { somma = 0; scanf(numero); while (numero!= 0) { somma = somma + numero; scanf(numero); } printf(somma); } 14 di 44 Codifica degli algoritmi in linguaggio di alto livello

15 Esempi in pseudo C main() { scanf(x); scanf(y); scanf(z); /*Programma per la valutazione di un triangolo */ /*Lettura dei dati di ingresso */ } /*Verifica che i dati possano essere le lunghezze dei lati di un triangolo */ if ((X < Y + Z) && (Y < X + Z) && (Z < X + Y)) /*Distinzione tra i vari tipi di triangolo */ if (X == Y && Y == Z) printf("i dati letti corrispondono a un triangolo equilatero"); else if (X == Y Y == Z X == Z) printf("i dati letti corrispondono a un triangolo isoscele"); else printf("i dati letti corrispondono a un triangolo scaleno"); else printf("i dati letti non corrispondono ad alcun triangolo"); 15 di 44 Codifica degli algoritmi in linguaggio di alto livello

16 Variabili strutturate Arricchiscono il corredo di base della macchina astratta C Consentono di trattare l informazione aggregata 16 di 44 Codifica degli algoritmi in linguaggio di alto livello

17 Variabili strutturate: array Array: sequenza di celle di memoria consecutive ed omogenee identificabile come una qualsiasi altra variabile composto da elementi che sono a loro volta variabili, accessibili mediante un indice (in C il primo elemento di ogni array è sempre lo 0-esimo) elemento indicato tra parentesi quadre dopo l identificatore dell array esempi: scanf(s[2]); a[3] = s[1] + x; if (a[4] > s[1] + 3) s[2] = a[2] + a[1]; x = a[i]; a[i] = a[i+1]; a[i*x] = s[a[j+1] 3]*(y a[y]); 17 di 44 Codifica degli algoritmi in linguaggio di alto livello

18 Dallo pseudo-c al C Che cosa manca per poter far girare i programmi precedenti: le direttive al compilatore la parte dichiarativa l I/O formalizzato in C nella parte esecutiva 18 di 44 Codifica degli algoritmi in linguaggio di alto livello

19 Struttura di un programma in C Un programma C deve contenere, nell ordine: Una sezione contenente direttive di precompilazione: servono per l inclusione delle librerie contenenti funzioni da utilizzare nelle parte esecutiva L identificatore predefinito main seguito dalle parentesi () Due sezioni, comprese all interno del blocco main tra parentesi {}: la sezione dichiarativa: esplicita tutti gli elementi che verranno adoperati nel programma, insieme alle loro principali caratteristiche la sezione esecutiva: consiste in una successione di istruzioni 19 di 44 Codifica degli algoritmi in linguaggio di alto livello

20 Direttiva di precompilazione In molti linguaggi (quali il C), molte operazioni vengono delegate a delle librerie Le funzioni sono divise in gruppi, quali I/O, gestione della memoria, operazioni matematiche e manipolazione di stringhe Per ogni gruppo di funzioni esiste un file sorgente, chiamato file header, contenente le informazioni necessarie per utilizzare le funzioni (Dichiarazione costanti, funzioni, parametri delle funzioni, etc.) I nomi dei file header terminano, per convenzione, con l estensione.h (ad es., stdio.h è il file header dello standard I/O nel linguaggio C) 20 di 44 Codifica degli algoritmi in linguaggio di alto livello

21 Sezione dichiarativa Tutto ciò che dovrà essere successivamente usato va dichiarato, in particolare: dichiarazione delle costanti dichiarazione delle variabili Perché questa fatica inutile? Aiuta la diagnostica (ovvero la individuazione di errori): x = alfa; alba = alfa + 1; Senza dichiarazione, alba è una nuova variabile! Principio importante: meglio un po più di fatica nello scrivere un programma che nel leggerlo e capirlo! 21 di 44 Codifica degli algoritmi in linguaggio di alto livello

22 Sezione dichiarativa Una dichiarazione di variabile consiste in: Uno specificatore di tipo, seguito da una lista di uno o più identificatori di variabili separati da virgola Ogni dichiarazione termina con ; Esempi: float x,y; int i,j; char simb; 22 di 44 Codifica degli algoritmi in linguaggio di alto livello

23 Sezione dichiarativa Dichiarazione di costante: const float PiGreco = 3.14; const float PiGreco = , e = 2.718; const int N = 100, M = 1000; const char CAR1 = 'A', CAR2 = 'B'; Un eventuale assegnamento a una costante sarebbe segnalato come errore dal compilatore. Esempi: AreaCerchio = PiGreco*RaggioCerchio*RaggioCerchio; è equivalente a: AreaCerchio = 3.14*RaggioCerchio*RaggioCerchio; (se si fa riferimento alla prima dichiarazione di PiGreco) 23 di 44 Codifica degli algoritmi in linguaggio di alto livello

24 Istruzioni di I/O Output: printf ( stringa di controllo, elementi da stampare); Stringa di controllo, costituita da: caratteri semplici: di stampa immediata caratteri di conversione: tramutati in speciali visualizzazioni (introdotti da \) caratteri di formato: specificano il tipo delle variabili da stampare (introdotti da %) L insieme degli elementi da stampare è una lista di variabili, di costanti o di espressioni composte con variabili e costanti Esempi: printf ("Lo stipendio annuo dei dipendenti di categoria %d è pari a %f", cat_dipend, stip_medio); printf("%s\n%c%c\n\n%s\n", "Questo programma è stato scritto da", iniz_nome, iniz_cognome, "Buon lavoro!"); 24 di 44 Codifica degli algoritmi in linguaggio di alto livello

25 Istruzioni di I/O Input: scanf ( stringa di controllo, elementi da leggere); La stringa di controllo contiene caratteri di formato, che specificano il tipo delle variabili da leggere Gli elementi da leggere sono indicati tramite i nomi delle variabili destinate a contenere la lettura preceduti dall operatore unario & Esempio: scanf("%c%c%c%d%f", &c1, &c2, &c3, &i, &x); 25 di 44 Codifica degli algoritmi in linguaggio di alto livello

26 Direttiva #include Per includere un file header in un programma in linguaggio C, occorre inserire nel codice sorgente: include <nomefile.h> La direttiva include è rivolta al preprocessore Si chiama: Direttiva di Precompilazione Esempio: Per utilizzare printf() e scanf() è necessario inserire nel sorgente la direttiva di precompilazione: include <stdio.h> 26 di 44 Codifica degli algoritmi in linguaggio di alto livello

27 Esempi /* PrimoProgrammaC */ #include <stdio.h> main() { printf("questo è il mio primo programma in C\n"); } NB: niente dichiarazioni! 27 di 44 Codifica degli algoritmi in linguaggio di alto livello

28 Esempi /* Programma SommaDueInteri */ #include <stdio.h> main() { int a, b, somma; printf ( Inserisci due addendi interi\n ); scanf("%d%d", &a, &b); somma = a + b; printf("la somma di a+b è:\n%d \narrivederci!\n", somma); } Se vengono inseriti i dati 3 e 5, l effetto dell esecuzione del programma sullo Standard Output è il seguente: La somma di a+b è: 8 Arrivederci! Se fossero stati omessi i primi due simboli \n nella stringa di controllo? 28 di 44 Codifica degli algoritmi in linguaggio di alto livello

29 Un vero programma in C #include <stdio.h> main() { int numero, somma; somma = 0; scanf("%d", &numero); while (numero!= 0) { somma = somma + numero; scanf("%d", &numero); } printf("la somma dei numeri digitati è: %d\n", somma); } /* Programma SommaSequenza */ 29 di 44 Codifica degli algoritmi in linguaggio di alto livello

30 Interpretazione e Compilazione Il programma di traduzione da un linguaggio di alto livello al linguaggio macchina può: tradurre ed eseguire frase per frase (interprete) tradurre tutte le frasi e solo successivamente eseguire (assemblatore o compilatore) 30 di 44 Codifica degli algoritmi in linguaggio di alto livello

31 Interpretazione Un Interprete è un programma che legge il programma sorgente e, per ogni istruzione: 1. verifica la correttezza sintattica 2. effettua la traduzione nella corrispondente sequenza di istruzioni in linguaggio macchina 3. esegue direttamente la sequenza di istruzioni in linguaggio macchina Svantaggio: istruzioni eseguite più volte (p. es. cicli) vengono verificate e tradotte più volte Vantaggio: facile sviluppo e correzione dei programmi 31 di 44 Codifica degli algoritmi in linguaggio di alto livello

32 Compilazione Un Compilatore è un programma che legge il programma sorgente e lo traduce interamente in un programma scritto in linguaggio macchina (programma oggetto). In particolare: 1. verifica la correttezza sintattica di ciascuna istruzione 2. il programma oggetto è generato solo in assenza di errori sintattici 3. la correttezza semantica è verificata solo in fase di esecuzione Svantaggio: difficile correzione dei programmi Vantaggio: istruzioni eseguite più volte (p. es. cicli) vengono verificate e tradotte solo una volta 32 di 44 Codifica degli algoritmi in linguaggio di alto livello

33 Interpretazione vs Compilazione Velocità di esecuzione: Bassa per i linguaggi interpretati Alta per i linguaggi compilati Facilità di messa a punto dei programmi: Alta per linguaggi interpretati Bassa per i linguaggi compilati 33 di 44 Codifica degli algoritmi in linguaggio di alto livello

34 Fasi della programmazione C Le fasi: 1. Editazione 2. Pre-elaborazione 3. Compilazione 4. Linking 5. Caricamento 6. Esecuzione 34 di 44 Codifica degli algoritmi in linguaggio di alto livello

35 Editazione Editazione del codice in un file: Il file dovrà terminare con l estensione.c Il programma che consente l editazione è detto editor Il programma editato è memorizzato su di un dispositivo di memorizzazione secondaria e viene detto programma sorgente (source program) Esempio: #include<stdio.h> void main() { int n1,n2,sum; printf( Inserire un numero intero ); scanf( %d,&n1); printf( Inserire un numero intero ); scanf( %d,&n2); sum=n1+n2; } Supponiamo di nominare il source file dell esempio somma.c 35 di 44 Codifica degli algoritmi in linguaggio di alto livello

36 Pre-elaborazione Precompilazione del programma ed espansione delle macro: Il programma che esegue la precompilazione è detto preprocessore e viene eseguito in maniera automatica prima che avvenga la compilazione Il preprocessore obbedisce a comandi detti direttive del preprocessore o macro che indicano le manipolazioni da effettuare sul programma prima della compilazione: Inclusione di altri file in quello da compilare Sostituzione di simboli speciali con un testo del programma Le linee per il preprocessore di macro iniziano con il simbolo # Esempio: #define max 40 #include<stdio.h> Prima della compilazione del programma ogni occorrenza di max è sostituita con il valore 40 La riga #include<stdio.h> viene sostituita dal contenuto del file stdio.h. Ciò consente al programma di usare le funzioni di libreria printf e scanf 36 di 44 Codifica degli algoritmi in linguaggio di alto livello

37 La libreria standard del C Principali componenti: <stdef.h> definizioni comuni <assert.h> diagnostica <ctype.h> gestione di caratteri <local.h> localizzazione <math.h> funzioni matematiche <stdio.h> I/O <stdlib.h> utilità generiche <string.h> gestione di stringhe 37 di 44 Codifica degli algoritmi in linguaggio di alto livello

38 Traduzione Il traduttore (compilatore o interprete) trasforma le istruzioni del programma in istruzioni in linguaggio macchina In particolare, il compilatore traduce il codice sorgente C nel codice in linguaggio macchina, detto codice oggetto 38 di 44 Codifica degli algoritmi in linguaggio di alto livello

39 Traduzione: codice oggetto Un programma può essere suddiviso in parti, dette moduli Ciascun modulo può essere compilato separatamente La compilazione separata dei vari moduli genera moduli oggetto distinti Nel codice oggetto di ciascun modulo di programma solo i nomi delle variabili definite nel modulo (indirizzi simbolici) verranno trasformati in indirizzi rilocabili: espressi in forma logica, indipendente dall allocazione fisica del programma in memoria calcolati come se il programma fosse caricato a partire dall indirizzo zero 39 di 44 Codifica degli algoritmi in linguaggio di alto livello

40 Linking Il collegamento tra moduli è eseguito dal linker, che: trasforma i vari moduli oggetto in un unico programma eseguibile collega il programma dell utente a librerie di utility disponibili nell ambiente di programmazione di ciascun linguaggio: librerie standard librerie definite dal programmatore risolve riferimenti a variabili definite esternamente a ciascun modulo trasformando i relativi indirizzi simbolici in indirizzi rilocabili Il linker produce il codice o programma eseguibile 40 di 44 Codifica degli algoritmi in linguaggio di alto livello

41 Indirizzi di un programma Indirizzamento di un programma eseguibile: assoluto: indirizzi calcolati a partire da una specifica cella di memoria; si attua se: la memoria è partizionata staticamente e i programmi vengono allocati in modo rigido tutta la memoria è assegnata ad un unico programma utente rilocabile: calcolati come se il programma debba essere caricato in memoria a partire dalla cella zero 41 di 44 Codifica degli algoritmi in linguaggio di alto livello

42 Caricamento in memoria Il caricamento in memoria centrale necessario all esecuzione è effettuato da un programma detto loader Il loader preleva dal disco il programma eseguibile e lo trasferisce in memoria gestendone gli indirizzi: se il programma è in formato assoluto il loader lo deve caricare in una specifica zona di memoria se il programma oggetto è in formato rilocabile il loader effettua la rilocazione 42 di 44 Codifica degli algoritmi in linguaggio di alto livello

43 Rilocazione degli indirizzi Tipi di rilocazione degli indirizzi: Statica: avviene al momento del caricamento (loading) in memoria modificando istruzione per istruzione gli indirizzi che compaiono nel programma in indirizzi assoluti non richiede ulteriori elaborazioni in esecuzione sugli indirizzi caricati come assoluti Dinamica: non comporta una modifica del codice, caricato in formato rilocabile gli indirizzi assoluti sono calcolati durante l esecuzione utilizzando il registro base che contiene l indirizzo assoluto della cella di memoria a partire dalla quale è caricato il programma 43 di 44 Codifica degli algoritmi in linguaggio di alto livello

44 Esecuzione del programma L esecuzione del programma eseguibile in memoria (in linguaggio macchina) è effettuata dalla CPU 44 di 44 Codifica degli algoritmi in linguaggio di alto livello

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Primi passi col linguaggio C

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

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

Linguaggi di alto livello, compilatori e interpreti

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

Dettagli

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

LINGUAGGI DI ALTO LIVELLO

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

Dettagli

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

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

Dettagli

COMPILAZIONE. Tarsformazione di linguaggi

COMPILAZIONE. Tarsformazione di linguaggi COMPILAZIONE Tarsformazione di linguaggi Le fasi della compilazione File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File

Dettagli

Linguaggio C Struttura dei programmi

Linguaggio C Struttura dei programmi FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struttura dei programmi 2001 Pier Luca Montessoro - Davide

Dettagli

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

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

Dettagli

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Calcolatori Elettronici Parte VIII: linguaggi assemblativi Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche.

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche. Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche. APPUNTI SUL LINGUAGGIO C I computer elaborano i dati sotto il controllo

Dettagli

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

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

Dettagli

Espressione di chiamata di funzione

Espressione di chiamata di funzione Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

Informatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale

Informatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale Informatica A A.a. 2006/2007 Allievi Ingegneria Gestionale Il linguaggio C Tecnologia Software Il SW come Interfaccia Tra Utente e Macchina Fisica Programma dell utente (software applicativo) Gestione

Dettagli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo

Dettagli

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

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

Dettagli

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/05/08 Nota Questi lucidi sono tratti

Dettagli

Le direttive del Preprocessore

Le direttive del Preprocessore Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza

Dettagli

Il linguaggio Assembly

Il linguaggio Assembly Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly

Dettagli

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B Linguaggi di programmazione Il linguaggio base di un elaboratore è il linguaggio macchina. Linguaggio macchina: insieme di istruzioni espresse nel formato numerico (binario) di un particolare processore.

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri Concetti di Base sulla Programmazione Prof.Ing.S.Cavalieri 1 La Programmazione Dato un problema INFORMATICO, programmare significa: Definire i dati in ingresso e il risultato che si vuole raggiungere Definire

Dettagli

Primo passo: il preprocessor. Il preprocessore. Esempi di direttive al preprocessore: #include. Esempi di direttive al preprocessore: #define

Primo passo: il preprocessor. Il preprocessore. Esempi di direttive al preprocessore: #include. Esempi di direttive al preprocessore: #define Primo passo: il preprocessor Source code Preprocessor Pre-processed source code Compiler Libraries Linker Executable code 1 Il preprocessore Il preprocessore compie delle manipolazioni sul codice del programma.

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

Unità Didattica 2 I Linguaggi di Programmazione

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

Dettagli

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Dettagli

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C... Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema

Dettagli

Istruzioni iterative (o cicliche)

Istruzioni iterative (o cicliche) Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

STRUTTURA DI UN PROGRAMMA

STRUTTURA DI UN PROGRAMMA STRUTTURA DI UN PROGRAMMA File prova1.c #include ... int m; int f(int); int g(int x){ Area globale Direttive Dichiarazioni globali e prototipi di funzioni Definizioni di funzioni.../*ambiente

Dettagli

Introduzione al linguaggio C

Introduzione al linguaggio C INFORMATICA B Ingegneria Elettrica Introduzione al linguaggio C Introduzione Linguaggio di programmazione ad alto livello Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali

Dettagli

Cenni sul preprocessore e il suo utilizzo

Cenni sul preprocessore e il suo utilizzo Alessio Bechini - Corso di - Cenni sul preprocessore e il suo utilizzo Il preprocessore: cenni Il preprocessore Storicamente, i compilatori C operavano con passaggi multipli. Il primo passaggio eseguiva

Dettagli

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base Istituto Tecnico Industriale M. M. Milano Polistena Classe III D a.s. 2015/2016 C++ Guida Base Prof. Rocco Ciurleo - ITIS M. M. Milano Polistena - 3 D a.s. 2015/2016 1 Le Origini Il Linguaggio C++ è il

Dettagli

Definizione di metodi in Java

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

Dettagli

LA CODIFICA DELLE INFORMAZIONI

LA CODIFICA DELLE INFORMAZIONI LA CODIFICA DELLE INFORMAZIONI Linguaggio Elaborazione delle informazioni: operazioni che possono essere effettuate sulle informazioni: inserimento, archiviazione, modifica, ordinamento, calcolo, ecc.

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

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file Compilazione separata Come realizzare correttamente un piccolo progetto su piu' file 1 Programmi C su più file Tutti i programmi che abbiamo visto finora erano composti da un unico file.c Nel caso di programmi

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

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

Dettagli

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

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

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

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

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

Dettagli

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

Dettagli

CAPITOLO2 PROGRAMMA: PRINTING UN GIOCO DI PAROLE FONDAMENTI DI C FORMA DI UN SEMPLICE PROGRAMMA COMPILAZIONE E LINKING. directive

CAPITOLO2 PROGRAMMA: PRINTING UN GIOCO DI PAROLE FONDAMENTI DI C FORMA DI UN SEMPLICE PROGRAMMA COMPILAZIONE E LINKING. directive PROGRAMMA: PRINTING UN GIOCO DI PAROLE CAPITOLO2 FONDAMENTI DI C printf( C, o non C: Questo è il problema.\n"); Scrivere questo programma e chiamarlo pun.c Usare l estensione.c per i programmi C. 1 2 COMPILAZIONE

Dettagli

Fondamenti di Algoritmi

Fondamenti di Algoritmi Fondamenti di Algoritmi Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Indice Algoritmi: Definizione Diagrammi di Flusso Esempi ed esercizi

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

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

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

Dettagli

Variabili e Istruzioni

Variabili e Istruzioni Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome

Dettagli

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto

Dettagli

Tempo di vita e scope delle variabili

Tempo di vita e scope delle variabili Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):

Dettagli

linguaggio di programmazione e programma

linguaggio di programmazione e programma I/O bus CPU memoria elementi di Sistemi Informatici il segnale digitale: conversione analogico-numerica esempi di supporti di memorizzazione dell informazione computer: definizione e struttura (modello

Dettagli

Corso di Informatica 1 Esercitazione n. 4

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

Dettagli

Informatica (A-K) 7. Linguaggio C - 1

Informatica (A-K) 7. Linguaggio C - 1 Storia del linguaggio C Informatica (A-K) 7. Linguaggio C - 1 Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Linguaggio C 1972, nato come evoluzione

Dettagli

Corso sul linguaggio C Modulo Tipi di dato

Corso sul linguaggio C Modulo Tipi di dato Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola. Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi

Dettagli

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma Istituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS Dall'Algoritmo al Programma Pr.: 002 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti

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

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

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

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

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Introduzione alla programmazione. Walter Didimo

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

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del

Dettagli

5. Codifica degli Algoritmi in C

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

Dettagli

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi

Dettagli

Esercizio 1: calcolo del massimo di una sequenza (versione 1)

Esercizio 1: calcolo del massimo di una sequenza (versione 1) Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 2 Esercitazione: 12 ottobre 2005 Primi esercizi in C Esercizio 1: calcolo del massimo di una sequenza (versione 1) Si legga

Dettagli

Sviluppo dei Programmi

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

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull

Dettagli

Corso di Linguaggi di Programmazione + Laboratorio

Corso di Linguaggi di Programmazione + Laboratorio Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

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

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Ingegneria Meccanica Lezione 3, 8 ottobre 2007 versione 9 ottobre 2007 Renato Menicocci Interi in complemento a 2 (I) Con N bit

Dettagli

Informatica! Appunti dal laboratorio 1!

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

Dettagli

Lezione 10. L arte della programmazione

Lezione 10. L arte della programmazione Lezione 10 Linguaggi di programmazione: il C Le variabili e le costanti L assegnazione Gli operatori La documentazione L input/output L arte della programmazione La soluzione di un problema tramite un

Dettagli

Corso di Informatica di Base

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

Dettagli

Programmazione in Java (I modulo)

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

Dettagli

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

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

Dettagli

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa

Dettagli

NB L uso delle istruzioni condizionali annidate causa rischio di ambiguità quando qualcuna di loro manca del ramo else:

NB L uso delle istruzioni condizionali annidate causa rischio di ambiguità quando qualcuna di loro manca del ramo else: Si vuole costruire un programma che legga tre numeri dall ingresso, quindi verifichi che questi possano essere la lunghezza dei tre lati di un triangolo (la lunghezza di ogni lato deve essere minore della

Dettagli

TUTORATO di LINGUAGGI I

TUTORATO di LINGUAGGI I TUTORATO di LINGUAGGI I Enrico Vianello TUTORATO di LINGUAGGI I contatti utili LE LEZIONI SI TERRANNO: VENERDI 12.30-14.30 PER INFORMAZIONI e DOMANDE: enrico.vianello@student.unife.it IL MATERIALE UTILIZZATO

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Esercitazione 6. Array

Esercitazione 6. Array Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione

Dettagli

La programmazione nel linguaggio C

La programmazione nel linguaggio C 3 La programmazione nel linguaggio C 3.0 La programmazione nel linguaggio C c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 3.0 0 Introduzione ai programmi

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

Programmazione strutturata

Programmazione strutturata Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22 Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)

Dettagli