Concetti di Base sul Linguaggio C. Prof.Ing.S.Cavalieri

Documenti analoghi
Codifica dei Tipi di Dati in Linguaggio C

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Variabili. Tipi di dati di base. Variabili. Variabili

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Laboratorio di informatica Ingegneria meccanica

Tipi di dato. Funzioni. Il sistema dei tipi C. Tipi di dato. Quanti bit? I tipi interi in C

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O

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

Il linguaggio C. Notate che...

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

Variabili, tipi, espressioni in C. Emilio Di Giacomo

Corso sul linguaggio C Modulo Tipi di dato

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

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Preprocessore, linker e libreria standard

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

Tipi di dato in C. Ogni variabile in C ha associato un tipo, questo permette di:

Dichiarazione di variabili e tipi di dati

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali:

Primi passi col linguaggio C

Struttura dei programmi C

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.

Corso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio

Il linguaggio C. Caratteristiche generali

Tipi di dato semplici

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

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Linguaggio C - sezione dichiarativa: costanti e variabili

Output formattato Le quattro operazioni Tipi, costanti, variabili Over & Under Libreria Prog. Programmazione 1. Lezione 2

Le funzioni, e le istruzioni di input/output

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti

Indice. Prefazione... xxi. Capitolo 1 Introduzione al C Capitolo 2 Fondamenti di C... 11

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

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

Lezione 19 e Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe

Appunti sul linguaggio C

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Input/Output di numeri

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Passare argomenti al programma

Istruzioni Condizionali in C

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Linguaggio C: introduzione

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Linguaggio C Struttura dei programmi

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese

$QDOLVLGHOSURJUDPPDTXDGUDWR

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

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

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

Laboratorio di linguaggi

Fondamenti di Informatica T-1 Modulo 2

Il linguaggio C - Introduzione

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Costanti e Variabili

Linguaggio C Variabili e tipi di dato

Linguaggio C Informatica Grafica

La sintassi del C APPENDICE H

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Introduzione al C. Unità 2 - Variabili. D. Bloisi, S. Peluso, A. Pennisi, S. Salza

Fondamenti di Linguaggio C

Esercizi. La funzione swapint() primo tentativo

Laboratorio di Informatica

Linguaggio C e sistema operativo

Lab 02 Tipi semplici in C

Alfabeto ed elementi lessicali del linguaggio C

Rappresentazione binaria delle variabili (int e char)

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

Linguaggio C Cenni storici

Caratteri e stringhe

1 PANORAMICA SUL LINGUAGGIO C

Introduzione al linguaggio C

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Scrittura formattata - printf

I CARATTERI E LE STRINGHE

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Fondamenti di Informatica

Variabili e Istruzioni

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

STORIA E CARATTERISTICHE

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

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

Le librerie standard. ! La libreria standard del C è in realtà un insieme di librerie

Capitolo 2 Introduzione alla programmazione in C

Linguaggio C. Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati. Stefano Aguzzoli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

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

Cap. 7: Tipi di base. Tipi di base

Lezione 6 Introduzione al C++ Mauro Piccolo

Le direttive del Preprocessore

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Funzioni e. Alessandra Giordani Mercoledì 16 maggio 2012

Esercitazione 11. Liste semplici

Appunti, esempi ed esercizi sui linguaggi C/C++

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

Transcript:

Concetti di Base sul Linguaggio C Prof.Ing.S.Cavalieri 1

Linguaggio C 1972: Dennis Ritchie sviluppa la prima versione del linguaggio C Molte idee basilari del C derivano dal linguaggio BCDL e linguaggio B 1977: Kernighan e Ritchie pubblicano The C Programming Language 1983: l American National Standards Institute (ANSI) ha iniziato i lavori per la definizione dell ANSI C 1989: nasce l ANSI C, noto come C89 2

Linguaggio C 1990: la definizione di C passa a ISO/IEC (Instruments Society of America / International Electrotechnical Commission), che pubblica il C90 1994-1998: vengono pubblicate integrazioni/correzioni 1999: ISO/IEC definisce il C99 2000-2010: vengono pubblicate integrazioni/correzioni 2011: ISO/IEC definisce il C11, utilizzato adesso 3

Header File e Funzioni di Libreria in C Nel linguaggio C, come in altri linguaggi, molte operazioni vengono delegate a delle librerie Le funzioni di libreria sono divise in gruppi quali: I/O, gestione della memoria, operazioni matematiche e manipolazione di stringhe Per ogni gruppo di funzioni esiste un file di testo, chiamato file header, contenente le informazioni necessarie per utilizzare le funzioni (dichiarazione costanti, funzioni, parametri delle funzioni, etc.) Il codice implementativo delle funzioni di libreria è posto in altri file precompilati (file oggetto) che vengono collegati al file oggetto del programma, dal Linker. I nomi dei file header terminano, per convenzione, con l estensione.h ad esempio, stdio.h è il file header dello standard I/O nel linguaggio C 4

Header File e Funzioni di Libreria in C 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(), che permette di visualizzare dati su terminale, è necessario inserire nel sorgente la direttiva di precompilazione: include <stdio.h> 5

Il Primo programma in Linguaggio C! La funzione main rappresenta l'entry point del programma. Deve essere sempre presente Lo standard C11 definisce solo due modi di definire il main 1) int main(void) { istruzioni; } 2) int main(int argc, char *argv[]) { } istruzioni; Noi useremo SOLO l'opzione 1) Nota: chi ha libri vecchi deve stare attento! 6

Il Primo programma in Linguaggio C! include<stdio.h> int main(void) { printf( Salve, mondo ); } Include la libreria standard di I/O Definisce una funzione main che non riceve alcun valore come argomento main richiama la funzione di libreria printf per stampare la sequenza di caratteri specificata Ogni istruzione termina con il ; 7

Il Primo programma in Linguaggio C! include<stdio.h> int main(void) { printf( Salve, mondo ); getchar(); } In alcuni ambienti di compilazione/esecuzione, se non ci fosse non si vedrebbe nulla 8

printf Esistono diversi modi di usarlo Più semplice: printf(controllo) Controllo racchiuso da, contiene testo e/o sequenze di escape: Carattere \ backslash \n linea nuova \t salta di una tabulazione \b ritorna un carattere indietro \\ stampa carattere \ \ stampa carattere 9

printf #include<stdio.h> int main(void){ } printf("\ningegneria "); printf("\tingegneria "); printf("\n\tingegneria "); printf("\b\bingegneria "); printf("\n\tingegneria "); printf("ingegneria "); printf("\t\ningegneria "); printf("\n \\ \" \n\n"); 10

Commenti Si usa /* commento */ Il commento può essere lungo più righe Oppure // Il commento deve essere lungo solo una riga 11

Variabili Corrispondono a locazioni di memoria dove memorizzare tutti i dati Ogni variabile deve essere Dichiarata prima di poterla usare La dichiarazione permette di poter riservare spazio ed associare allo spazio un nome e un tipo (codifica dati) Ogni variabile è caratterizzata da: nome e tipo (ossia tipologia di codifica, lunghezza e range) 12

Variabili Ogni variabile: Ha un nome al quale viene fatto corrispondere (in fase di esecuzione) un indirizzo di memoria (assegnato ad ogni esecuzione del programma); L-value Assume un determinato valore (R-value) di un determinato tipo; il tipo è associato alla variabile Il valore della variabile può essere inizializzato e può essere modificato nel corso del programma (tranne per le variabili const) Indirizzo Valore 13

Variabili Ogni variabile ha un nome che: Può essere composto da cifre e numeri, senza spazi, e carattere _ ammesso Non può iniziare con un numero, ma solo con carattere e/o _ (non consigliato!) Non si possono usare parole chiavi Caratteri Maiuscoli e Minuscoli (case sensitive) Valore iniziale di default (non per tutte le variabili), dipendente dal tipo Ad ogni variabile viene associato un indirizzo di memoria (puntatore all'area della variabile) 14

Variabili Possono essere dichiarate in differenti parti del programma, ma sempre prima del loro utilizzo (errore di compilazione) Per il momento consideriamo solo quelle ESTERNE (o GLOBALI) dopo le direttive di precompilazione prima del int main(void) Vengono "allocate" in memoria RAM alla partenza e assumono un valore certo (predefinito o definito dall utente) Spariscono dalla memoria insieme alla conclusione del programma File Scope: visibilità in tutto il file.c 15

Variabili Tipo: si dichiarano utilizzando parole chiavi: short, unsigned, int, long, float, double. In particolare considereremo i seguenti tipi di dato: il tipo intero corto short int (o short); il tipo intero int; Il tipo intero long int (o long) Il tipo intero long long int (o long long) il tipo intero senza segno (unsigned short, unsigned int, unsigned long, unsigned long long); il tipo reale a singola precisione (float); il tipo reale a doppia precisione (double); il tipo reale ad alta precisione (long double); il tipo carattere (char); 16

Variabili Le codifiche della regola di conversione è sempre la stessa per qualunque compilatore Le lunghezze in bit possono variare da compilatore a compilatore Lo standard ha permesso delle scelte opzionali Attenzione agli intervalli Per ogni tipo, esistono degli intervalli ammessi 17

Variabili Intere Type Numero di Bits Codifica Valore Minimo Valore Massimo short 16 Complemento a 2 32.768 32.767 unsigned short 16 Senza Segno 0 65.535 int 32 Complemento a 2 2.147.483.648 2.147.483.647 unsigned int 32 Senza Segno 0 4.294.967.295 long 32 Complemento a 2 2.147.483.648 2.147.483.647 unsigned long 32 Senza Segno 0 4.294.967.295 long long int 64 Complemento a 2-92223372036854775808 -92223372036854775807 unsigned long long 64 Senza Segno 0 18446744073709551615 18

Variabili Nel file limits.h sono contenute le definizioni delle costanti SHRT_MIN, SHRT_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, USHRT_MAX, UINT_MAX e ULONG_MAX Assumono i valori massimi e minimi dei tipi interi. Valori iniziali 0 19

Variabili Type Codifica Valore Minimo Valore Massimo float IEEE 754 32 bit double IEEE 754 64 bit 1.17 x 10-38 3.4 x 10 +38 2.2 x 10-308 1.7 x 10 +308 long double Estensione IEEE 754 3.3 x 10-4932 1.1 x 10 +4932 20

Variabili Nel file float.h sono contenute le definizioni delle costanti FLT_MIN, FLT_MAX, DBL_MIN, DBL_MAX, LDBL_MIN, LDBL_MAX Assumono i valori massimi e minini dei tipi float, double e long double. Valori inziali 0.0 21

Variabili Char Il tipo carattere (char) in linguaggio C occupa 1 byte, e utilizza la codifica ASCII (pronunciato "aschi"). Valore iniziale: carattere vuoto \0 (codice ASCII 0) Valori tra singoli apici ( a ) 22

Variabili Dichiarazione di Variabili Globali (Esterne) #include <stdio.h> tipobase nome_variabile; tipobase nome_variabile1, nome_variabile2; int main(void){ } #include <stdio.h> int x; float y, z; unsigned int k; int main(void){ } 23

Inizializzazione di Variabili Nella dichiarazione di una variabile, è possibile impostare il valore iniziale Operatore di assegnazione = Esempio: int x=3; float y=3.4; char z= a ; 24

Costanti Si usa la direttiva #define #define Simbolo Valore Senza ; Esempio: #define N 10 In alternativa si può usare il costrutto const tipobase nome=valore; 25

Costanti #include <stdio.h> #define N 10 #include <stdio.h> const unsigned int N=10; int main(void){ } int main(void){ } 26

printf Uso di printf per visualizzare valori di variabile/costante printf(controllo, argomenti) Argomenti: elenco di variabili con uso della virgola Controllo contiene anche le regole di formattazione in uscita (simbolo %) per ogni variabile (corrispondenza posizionale): vedi lucido successivo 27

printf Controllo contiene per ogni variabile da visualizzare: %d, intero con segno %u, intero senza segno %c, carattere %s, stringa %f, reale virgola mobile (float e double) %e,%e, reale virgola mobile (esponenziale: e+10, E+10) %p, puntatore (indirizzo) %zu, visualizza il valore di sizeof %%, visualizza % 28

printf Simboli da inserire prima dei caratteri di controllo: Simbolo l, long int (%ld), unsigned long (%lu) Simbolo ll, long long int (%lld), unsigned long long (%llu) Simbolo L, long double (%Lf, %Le, %LE) Simbolo h, per gli short (%hd), (%hu) 29

Sizeof E' possibile "scoprire" la dimensione in byte di un tipo su un certo sistema Esiste una funzione di libreria: sizeof(tipo); Funzione di <stdio.h> Esempio: sizeof(int) Formato per printf: %zu (da C99 in poi) 30

Esempio Il seguente programma in C permette di visualizzare sullo schermo i limiti per gli interi. #include <stdio.h> #include <limits.h> int main(void) { printf("dimensione in byte del tipo short = %zu \n", sizeof(short)); printf ("\nrange del tipo short \n"); printf ("MIN=%d \t",shrt_min); printf ("MAX=%d \n",shrt_max); printf("\nrange del tipo unsigned short \n"); printf("min=0 \t"); printf("max=%u \n", USHRT_MAX); printf("dimensione in byte del tipo int = %zu \n", sizeof(int)); printf("\nrange del tipo int \n"); printf ("MIN=%d \t",int_min); printf ("MAX=%d \n",int_max); printf("\nrange del tipo unsigned int \n"); printf("min=0 \t"); printf("max=%u \n", UINT_MAX); printf("dimensione in byte del tipo long int = %zu \n", sizeof(long int)); printf("\nrange del tipo long int \n"); printf ("MIN=%ld \t",long_min); printf ("MAX=%ld \n",long_max); printf("\nrange del tipo unsigned long int \n"); printf("min=0 \t"); printf("max=%lu \n", ULONG_MAX); printf("dimensione in byte del tipo long long int = %zu \n", sizeof(long long int)); printf("\nrange del tipo long long int \n"); printf("min=%lld \t", LLONG_MIN); printf("max=%lld \n", LLONG_MAX); printf("\nrange del tipo unsigned long long int \n"); printf("min=0 \t"); printf("max=%llu \n", ULLONG_MAX); } 31

Esempio #include <stdio.h> #include <float.h> int main(void) { Il seguente programma in C permette di visualizzare sullo schermo i limiti dei numeri reali. Il programma fa uso della libreria float.h che contiene le definizioni delle costanti FLT_MIN, FLT_MAX, DBL_MIN, DBL_MAX, LDBL_MIN, LDBL_MAX relative rispettivamente ai valori massimi e minini dei tipi float, double e long double. printf("dimensione in byte del tipo float = %zu ", sizeof(float)); printf("\nrange del tipo float "); printf ("MIN = %e \t",flt_min); printf ("MAX = %e ",FLT_MAX); printf("\n\ndimensione in byte del tipo double = %zu ", sizeof(double)); printf("\nrange del tipo double "); printf ("MIN = %e \t",dbl_min); printf ("MAX = %e ",DBL_MAX); printf("\n\ndimensione in byte del tipo long double = %zu ", sizeof(long double)); printf("\nrange del tipo long double "); printf ("MIN = %Le \t",ldbl_min); printf ("MAX = %LE \n",ldbl_max); 32 }

Esempio Il seguente programma permette di visualizzare il codice ASCII di un carattere ('a ): #include<stdio.h> int main(void){ printf("\ncarattere ASCII di %d ",'a'); } 33

Esempio #include<stdio.h> char c='a'; int main(void){ printf("\nil carattere e' %c ",c); printf("\nil suo codice ASCII e' %d ",c); } #include<stdio.h> int x; int main(void){ printf("\nla variabile e' = %d ",x); } #include<stdio.h> int x=3; int main(void){ printf("\nla variabile e' = %d ",x); } 34

scanf Sintassi: scanf( %x,&variabile) %x = %d, %f, %u. come printf & (ampersand) = indirizzo RAM della variabile Differenze con printf: l = long int o unsigned long int o double %ld, %lu, %lf, %le, %le L = long double %Lf, %Le, %LE 35

#include<stdio.h> scanf Programma con molti errori Comandi in rosso sono errati float x; double y; int main(void){ printf("\ninserisci un numero float "); scanf("%f", x); printf("\nil numero inserito e' %f ",x); printf("\ninserisci un numero float "); scanf("%f",&x); printf("\nil numero inserito e' %f ",x); printf("\ninserisci un numero double "); scanf("%f",&y); printf("\nil numero inserito e' %f ",y); printf("\ninserisci un numero double "); scanf("%lf",&y); printf("\nil numero inserito e' %d ",y); } printf("\ninserisci un numero double "); scanf("%lf",&y); printf("\nil numero inserito e' %f \n\n",y); 36

scanf #include<stdio.h> char c; int main(void){ 65 A 66 B 67 C 68 D 69 E 70 F 71 G 97 a 98 b 99 c 100 d 101 e 102 f 103 g } printf("\ninserisci un carattere Maiuscolo "); scanf("%c",&c); printf("\nil carattere inserito e' %c ",c); printf("\nil suo codice ASCII e' %d ",c); printf("\nil carattere minuscolo e' %c ",c+'a'-'a'); printf("\nil suo codice ASCII e' %d \n\n\n",c+'a'-'a'); 37

Problema con scanf #include <stdio.h> float x,z; char y; int main(void){ printf("\ninserisci un numero reale "); scanf("%f",&x); printf("\nil numero reale e' = %f ",x); printf("\ninserisci un numero reale "); scanf("%f",&z); printf("\nil numero reale e' = %f ",z); printf("\ninserisci un carattere "); scanf("%c",&y); printf("\nil carattere e' = %c \n\n",y); buffer di ingresso stdin 3. 4 \n 5. 1 \n \n } 38

Soluzione Inserire prima della lettura di un carattere il codice per pulire il buffer di ingresso stdin fflush(stdin), ma non è standard Ignorare il carattere return '\n' scanf("%*c%c",&variabile); scanf("\n%c",&variabile); scanf(" %c",&variabile); (spazio) Il carattere '\n' viene ignorato e non assegnato alla variabile 39

Funzioni di Libreria Una funzione è un insieme di istruzioni che realizzano un compito: a partire da uno o più valori in input, restituisce un determinato valore in output. Esistono funzioni di libreria STANDARD, ossia definite dallo stesso documento che definisce il linguaggio C: tutti i compilatori DEVONO implementarle Si dividono in gruppi 40

Funzioni di Libreria Diagnostics <assert.h> Complex <complex.h> Character handling <ctype.h> Errors <errno.h> Floating-point environment <fenv.h> Characteristics of floating types <float.h> Format conversion of integer types <inttypes.h> Alternative spellings <iso646.h> Sizes of integer types <limits.h> Localization <locale.h> Mathematics <math.h> Nonlocal jumps <setjmp.h> Signal handling <signal.h> Alignment <stdalign.h> Variable arguments <stdarg.h> Atomics <stdatomic.h> Boolean type and values <stdbool.h> Common definitions <stddef.h> Integer types <stdint.h> Input/output <stdio.h> General utilities <stdlib.h> _Noreturn <stdnoreturn.h> String handling <string.h> Type-generic math <tgmath.h> Threads <threads.h> Date and time <time.h> Unicode utilities <uchar.h> Extended multibyte/wide character utilities <wchar.h> Wide character classification and mapping utilities <wctype.h> 41

Funzioni di Libreria Ad esempio: math.h Per poter utilizzare le funzioni si deve includere il riferimento alla libreria math.h. #include <math.h> sqrt (intero/reale): radice quadrata pow (intero/reale,intero/reale): potenza 42

Funzioni di Libreria #include <stdio.h> #include <math.h> int xa, ya, xb, yb; yb int main(void) { ya printf("\n\nlunghezza SEGMENTO\n"); printf("\n\ncoordinate Primo Estremo: "); printf("\ncoordinata x: "); scanf("%d", &xa); printf("\ncoordinata y: "); xa xb scanf("%d", &ya); printf("\n\ncoordinate Secondo Estremo: "); printf("\ncoordinata x: "); scanf("%d", &xb); printf("\ncoordinata y: "); scanf("%d", &yb); l= (xb xa) 2 +(yb ya) 2 printf("lunghezza segmento: %f\n", sqrt(pow(xb - xa, 2) + pow(yb - ya, 2))); } 43