Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Documenti analoghi
Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione

COSTRUZIONE DI UN APPLICAZIONE

Linguaggio C: introduzione

LINGUAGGI DI PROGRAMMAZIONE

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

Unità Didattica 2 I Linguaggi di Programmazione

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

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

La programmazione nel linguaggio C

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Gli Operatori. Università degli Studi di Brescia

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Linguaggi di alto livello, compilatori e interpreti

LABORATORIO DI INFORMATICA 1

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

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Linguaggio C Espressioni e operatori

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

Linguaggi di programmazione

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

La rappresentazione dei dati

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

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

Problema: calcolare il massimo tra K numeri

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Array multidimensionali e stringhe

La codifica. dell informazione

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Definizione di metodi in Java

Fondamenti di Programmazione

linguaggio di programmazione e programma

Introduzione alla programmazione. Walter Didimo

Introduzione al Linguaggio C ed all IDE DEV-C++

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

La gestione dei caratteri in C

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

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

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

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

DISPENSE DI PROGRAMMAZIONE

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Il calcolatore. Architettura di un calcolatore (Hardware)

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

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

Fondamenti VBA. Che cos è VBA

1.2d: La codifica Digitale dei caratteri

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

Diagrammi a blocchi 1

Codifica dell Informazione

Bit, Byte, Word e Codifica Dati

Fortran in pillole : prima parte

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash

Introduzione al linguaggio C

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

Grandezze fisiche e loro misura

Fondamenti di Informatica T-1 Modulo 2

Linguaggio C. Fondamenti. Struttura di un programma.

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Esercizi di programmazione in C

Input/output in C e in C++

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Fac-simile TVI Informatica Facoltà di Economia Università degli studi di Bergamo

Unità Didattica 2 Rappresentazione dei Dati

Memoria Secondaria o di Massa

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

float somma_float(float a, float b) int get_ascii(char c)

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Il concetto di calcolatore e di algoritmo

Gestione di files Motivazioni

Concetti Introduttivi. Il Computer

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Informatica

L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Sommario. Note alla traduzione... xix

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

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

La Rappresentazione dell Informazione

Introduzione al linguaggio Fortran 90

Files in C++ Fondamenti di Informatica. R. Basili. a.a

Architettura dei calcolatori e Software di sistema

Gestione dei file. Linguaggio ANSI C Input/Output - 13

Laboratorio di Architettura degli Elaboratori

Modulo 1: Le I.C.T. UD 1.2d: La codifica Digitale dei caratteri

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

SQL Server Architettura Client-Server. SQL Server Introduzione all uso di SQL Server Dutto Riccardo.

Algebra di Boole Algebra di Boole

Informatica Teorica. Macchine a registri

Alcune regole di base per scrivere un programma in linguaggio C

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Mini-Corso di Informatica

Transcript:

Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi e Programmazione 2 Caratteristiche Esempio di programma in C basato su pochi concetti elementari dati (tipi primitivi, tipi di dato) espressioni dichiarazioni/definizioni funzioni istruzioni/blocchi #include <stdio.h> int main() { printf(" Hello World!! "); return 0; } FI - Algoritmi e Programmazione 3 FI - Algoritmi e Programmazione 4 Dati Un elaboratore è un manipolatore di simboli L architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di dati detti tipi primitivi dominio dei numeri interi dominio dei caratteri dominio dei numeri reali dominio delle stringhe di caratteri Tipi di dato primitivi in C Caratteri char caratteri ASCII (A<->65, {<->123,..), interi ([0,255], [-127,128] Interi con segno (più lunghi di 8 bit) short int long Naturali (interi senza segno) unsigned short unsigned unsigned long Reali float double long double I dati Booleani non esistono in C come tipo primitivo, si usano gli interi: 0 indica falso 1 indica vero (in realtà qualsiasi valore diverso da 0 indica vero) FI - Algoritmi e Programmazione 5 FI - Algoritmi e Programmazione 6

Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da: Un nome Un valore modificabile Il risultato di un espressione contenente delle variabili si ottiene sostituendo ad ogni variabile il suo valore. L assegnazione (simbolo = in C) consente di modificare il valore di una variabile Variabili e Costanti Inizializzazione variabile : è possibile assegnare un valore iniziale ad una variabile al momento della sua dichiarazione (obbligatoria! Non si possono usare variabili che non siano state dichiarate) int a = 0, b = 100; char a_capo = \n ; Costanti: è possibile dichiarare un dato come costante; il compilatore rifiuta un qualunque assegnamento successivo effettuato su di esso const float Pi_greco = 3.1415927; FI - Algoritmi e Programmazione 7 FI - Algoritmi e Programmazione 8 Costanti di tipi primitivi Stringhe Caratteri singolo carattere racchiuso fra apici A C caratteri speciali \n a capo \t tabulazione \ apice Una stringa è una collezione di caratteri delimitata da virgolette ciao hello\n In C le stringhe sono semplici sequenze di caratteri di cui l ultimo sempre presente in modo implicito è \0 (codificato come valore 0 su 8 bit) ciao equivale alla sequenza { c, i, a, o, \0 } FI - Algoritmi e Programmazione 9 FI - Algoritmi e Programmazione 10 Espressioni Classificazione degli operatori Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere semplice (una costante, un simbolo di variabile) o composta ogni linguaggio introduce un insieme di operatori che permettono di aggregare altre espressioni (operandi) per formare espressioni composte esempi : 4*8-2*arcsin(x) a&&(b c) In base al tipo di operandi (aritmetici, logici, relazionali) In base al numero degli operandi (unari, binari, ternari..) FI - Algoritmi e Programmazione 11 FI - Algoritmi e Programmazione 12

Operatori aritmetici Operatori relazionali Operazione operatore C Inversione di segno Unario - Somma Binario + Differenza Binario - Moltiplicazione Binario * Divisione fra interi Binario / Divisione fra reali Binario / Modulo (fra interi) Binario % Relazione C Uguaglianza == Diversita`!= Maggiore di > Minore di < Maggiore o uguale a >= Minore o uguale a <= FI - Algoritmi e Programmazione 13 FI - Algoritmi e Programmazione 14 Espressioni e operatori logici Anch esse denotano un valore intero da interpretare come vero (1 o comunque?0) o falso (0) Connettivo logico operatore C Not Unario! And Binario && Or Binario Espressioni condizionali Una espressione condizionale è introdotta dall operatore ternario condiz? espr1 : espr2 L espressione denota o il valore denotato da espr1 o quello denotato da espr2 in base al valore della espressione condiz in particolare se condiz è vera il valore assunto dall espressione nel suo complesso è espr1 FI - Algoritmi e Programmazione 15 FI - Algoritmi e Programmazione 16 Espressioni condizionali : esempi Struttura di un programma C 3? 10 : 20 denota sempre 10 (3 è sempre vera) x? 10 : 20 denota 10 se x è vera (diversa da zero) oppure 20 se x è falsa (x>y)? x : y denota il maggiore fra x e y La struttura di un programma C è definita < programma >::= {< unità-di-codifica >} < main > {< unità-di-codifica >} FI - Algoritmi e Programmazione 17 FI - Algoritmi e Programmazione 18

Struttura di un programma C Struttura di un programma C La parte <main> è obbligatoria ed è definita < main >::= int main() { [< dichiarazioni-e-definizioni >] [< sequenza-istruzioni >] } <dichiarazioni-e-definizioni> introducono i nomi di costanti, variabili, tipi definiti dall utente <sequenza-istruzioni> sequenza di frasi del linguaggio ognuna delle quali è un istruzione Il main() è una particolare unità di codifica (una funzione) FI - Algoritmi e Programmazione 19 FI - Algoritmi e Programmazione 20 Caratteri e identificatori Commenti Set di caratteri caratteri ASCII Identificatori sequenze di caratteri tali che < Identificatore >::= < Lettera >{< Lettera > < Cifra >} Sequenze di caratteri racchiuse fra /* e */ Es. /* Questo è un commento */ Non possono essere annidati /* Questo è /* Questo è un commento dentro un altro commento */ un ERRORE */ FI - Algoritmi e Programmazione 21 FI - Algoritmi e Programmazione 22 Variabile Variabile E un astrazione della cella di memoria Formalmente, è un simbolo associato ad un indirizzo fisico L indirizzo fisico è fisso e immutabile, cambia il suo contenuto cioè il valore di x esempio: x=4 Simbolo indirizzo X 1328 1328... 4... FI - Algoritmi e Programmazione 23 FI - Algoritmi e Programmazione 24

Definizione di variabile Esempi E la frase che introduce una nuova variabile identificata da un simbolo atta a denotare valori di un ben preciso tipo Definizione di una variabile <tipo><identificatore> int x; /* deve denotare un valore intero*/ float y; /* deve denotare un valore reale*/ char ch; /* deve denotare un valore carattere*/ FI - Algoritmi e Programmazione 25 FI - Algoritmi e Programmazione 26 Inizializzazione di variabili E possibile specificare il valore iniziale di una variabile quando la si dichiara <tipo><identificatore> = <espr> ; int x = 32; double speed = 124.6; double time = 71.6; double km = speed*time; /* inizializzazione mediante una espressione*/ Caratteristiche delle variabili Campo d azione (scope): è la parte di programma (unità di codifica) in cui la variabile è nota e può essere usata Tipo: specifica la classe di valori che la variabile può assumere (e quindi gli operatori applicabili) Tempo di vita: l intervallo di tempo in cui rimane valida l associazione simbolo/cella di memoria Valore: è rappresentato (secondo la codifica adottata per il tipo cui la variabile appartiene) nell area di memoria associata alla variabile. FI - Algoritmi e Programmazione 27 FI - Algoritmi e Programmazione 28 Esempio Problema data una temperatura espressa in gradi Celsius, calcolare il corrispondente valore espresso in Fahrenheit Approccio: si parte dal problema e dalle proprietà nel dominio di dati Specifica della soluzione: relazione tra grandezze esistenti nello specifico dominio applicativo c*9/5=f-32 Esempio: algoritmo di risoluzione Dato c calcolare f sfruttando la relazione f=32+c*9/5 Solo a questo punto (una volta definito l algoritmo) si effettua la codifica FI - Algoritmi e Programmazione 29 FI - Algoritmi e Programmazione 30

Un possibile programma in C main() { float c; /*Celsius*/ scanf( %f, &c); /* legge il valore di c */ float f=32+c*9/5; printf ( Temperatura (F): %f \n, f); /* stampa il valore di f */ } NB l impaginazione (indentazione) serve solo per rendere più leggibile il programma: in C le istruzioni sono separate da ; Costruzione di una applicazione Si deve compilare il file (o i file) che contiene (contengono) il testo del programma (file sorgente, estensione.c) Il risultato sono uno o più file oggetto (estensione.o (Unix) o.obj (Windows)) si devono poi collegare (linking) i file oggetto l uno con l altro e con le librerie di sistema al fine di creare un unico file eseguibile (estensione.exe (Windows); nome a piacere o a.out se non si specifica il nome (Unix)) FI - Algoritmi e Programmazione 31 FI - Algoritmi e Programmazione 32 Perché? Librerie di sistema L elaboratore capisce solo il linguaggio macchina della CPU utilizzata il nostro programma opera su una macchina astratta, rivestita del sistema operativo che controlla le periferiche (stampante, memoria di massa, ecc.) Insieme di componenti software che consentono di interfacciarsi col sistema operativo, usare le risorse da questo gestite e realizzare alcune istruzioni complesse del linguaggio alcune istruzioni complesse potrebbero essere dei mini-programmi forniti insieme al compilatore che le ingloba quando occorre FI - Algoritmi e Programmazione 33 FI - Algoritmi e Programmazione 34 Eseguire un programma Una volta scritto, compilato (con il compilatore) e collegato (con il linker) lo si può lanciare sull elaboratore E se non funziona? Debugger: strumento in grado di eseguire passo passo il programma, mostrando le variabili e la loro evoluzione e tenendo traccia delle funzioni via via chiamate Debugger E possibile eseguire il programma riga per riga entrando anche dentro le funzioni chiamate eseguire fino ad una certa riga controllare istante per istante quanto vale una variabile vedere istante per istante le funzioni attive FI - Algoritmi e Programmazione 35 FI - Algoritmi e Programmazione 36

Ambienti integrati di programmazione Automatizzano la procedura di compilazione e linking dei file Possono lanciare il programma sulla macchina e visualizzare l output a video Incorporano le funzioni di debug Noi utilizzeremo il BorlandC della Borland presente nei laboratori di base FI - Algoritmi e Programmazione 37