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



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

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

Tipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char

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

Rappresentazione dell informazione Codifica Binaria

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

Informazione analogica e digitale

Logica e codifica binaria dell informazione

4 3 4 = 4 x x x 10 0 aaa

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

2. Codifica dell informazione

Variabili e tipi di dato

Informatica Generale 02 - Rappresentazione numeri razionali

Sistemi di Numerazione

Sistemi di Numerazione Binaria NB.1

Esercizio. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I" Esercizio.

Codifica dei numeri negativi

Elementi di informatica

4. Operazioni aritmetiche con i numeri binari

Fondamenti di Informatica

SISTEMI DI NUMERAZIONE E CODICI

La somma di 12 e 30 è 42

LINGUAGGI DI PROGRAMMAZIONE

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

Codifica binaria dei numeri relativi

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

Alcune regole di base per scrivere un programma in linguaggio C

Tipi di dato-prima parte

La codifica delle informazioni

Informatica. Rappresentazione dei numeri Numerazione binaria

LA RAPPRESENTAZIONE DELLE INFORMAZIONI

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

Parte 1. Vettori di bit - AA. 2012/13 1.1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

Rappresentazione di informazioni con un alfabeto finito

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Codifica binaria e algebra di Boole

BIT? Cosa c è dietro a questo nome? Che cos è il bit? Perché si usa? Come si converte un numero binario?

2.12 Esercizi risolti

Laboratorio di Informatica

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

Alessandro Pellegrini

Esercizi di programmazione in C

Definizioni iniziali

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

Elementi di Informatica. ( Lezione II, parte I ) Sistemi di numerazione: binario, ottale ed esadecimale

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2

I sistemi di numerazione

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013

APPUNTI DI ELETTRONICA DIGITALE

Rappresentazione delle informazioni

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

ESERCIZI di FONDAMENTI DI INFORMATICA RAPPRESENTAZIONE DEI NUMERI

Lezione 3. Sommario. Le operazioni aritmetiche binarie. L aritmetica binaria. La somma La sottrazione La moltiplicazione

= 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

Rappresentazione dei numeri in un calcolatore

Tipo intero. Esempio. Tipo intero: operatori. Programma PortaMonete.java. Tipi base o primitivi

INFORMATICA. Automa TRATTAMENTO AUTOMATICO DELLE INFORMAZIONI

Le variabili. Olga Scotti

Sistemi di numerazione: generalità

Operazioni binarie fondamentali

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

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

la scienza della rappresentazione e della elaborazione dell informazione

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico

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

Codifica binaria dei numeri

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

Dati testuali. Caratteri e stringhe. Tipi di dato testuali. Dati testuali. Il sistema dei tipi C. Rappresentazione dei testi

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

Funzioni in C. Violetta Lonati

Corso di Informatica

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

La codifica dell informazione

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16

SISTEMI DI NUMERAZIONE

LA NOTAZIONE SCIENTIFICA

CODIFICA BINARIA. ... sono rappresentati ricorrendo a simboli che sintezzano il concetto di numerosità.

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

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

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

Numeri interi posi-vi e nega-vi

Introduzione alla programmazione in C

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione

INFORMATICA - I puntatori Roberta Gerboni

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Corso di Informatica

la scienza della rappresentazione e della elaborazione dell informazione

Università degli Studi di Ferrara Corso di Laurea in Informatica A.A. 2007/2008

Prof. Alberto Postiglione Scienze della Comunicazione. Università degli Studi di Salerno

1 Sistema additivo e sistema posizionale

La selezione binaria

Dati due punti sul piano calcolare la loro distanza

Elementi di informatica

I SISTEMI DI NUMERAZIONE

Algoritmi e strutture dati. Codici di Huffman

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

Transcript:

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

Tipo intero Gli interi servono per contare, e contare è uno dei compiti più tipici per i computer Il tipo intero viene utilizzato per tutte le grandezze che possono essere rappresentate come numeri interi, come per es.: età, numero di figli, ecc. 3 Campo di variabilità Intervallo finito Tipo short int Dimensione (byte) 2 Valore minimo -32768 Valore massimo +32767 int 4-2 31 2 31-1 long int 8-2 63 2 63-1 4 2

Notazione per i valori costanti Sequenza di cifre, preceduta eventualmente dal segno + o - int x; x = 356; x = -987; 5 Operazioni + somma - meno unario - differenza * prodotto / divisione intera % resto della divisione intera (modulo) 6 3

Esempi int x=9; int y=6; x/y x%y 1 3 Se y=0 errore è in grado di eseguire una divisione per zero Per i numeri negativi, la direzione di troncamento del / ed il segno del risultato di %, dipendono dalla macchina Se x%y restituisce 0 x èmultiplo di y 7 Metodi di input/output int x; Output printf("%d", x); Input scanf("%d", &x); 8 4

Dettagli sul tipo intero Possibile aggiungere il qualificatore unsigned alla definizione di tipo, che consente alla variabile di contenere solamente numeri positivi Tipo unsigned short int Dimensione (byte) 2 Valore minimo 0 Valore massimo 65535 unsigned int 4 0 +2 32-1 unsigned long int 8 0 +2 64-1 9 Differenza tra tipo intero ed interi proprietà valide per i numeri interi non lo sono sempre per il tipo intero Esempio x + (y - z) = ( x + y) - z Ipotesi tipo intero è [-10, 10], x = 8, y = 7, z = 6 9 indefinito concetto di OVERFLOW ( tipico del finito...) 10 5

Precedenze Il C dispone di un insieme di regole che determinano l ordine in cui le varie operazioni devono essere eseguite Per le operazioni aritmetiche le precedenze sono quelle definite in matematica 11 Precedenza degli operatori aritmetici Operatori Associatività Parentesi: () dall interno all esterno + alta Operatore unario: - Operatori binari: * / % Operatori binari: + - da destra a sinistra da sinistra a destra da sinistra a destra + bassa 12 6

Associatività 2*3*5 ((2*3)*5) da sinistra a destra 13 Regole 1. In base alla precedenza 2. Se tutti gli operandi hanno la stessa precedenza: associatività 3. Priorità degli operatori può essere alterata con le parentesi tonde: vengono valutate per prima le operazioni all interno delle parentesi tonde più interne 14 7

Esempio 3*5+2 2*3/2*3 3*(5+2) 17 * precedenza su + 9 * e / stessa precedenza: sx verso dx: ((2*3)/2)*3 21 7+3-15+4*5 15 (((7+3)-15)+(4*5)) 15 Esercizi sul tipo intero 16 8

Esercizio 1 Scrivere un programma che richiede all utente un numero che rappresenta un altezza in centimetri. Il programma converte tale altezza in metri e centimetri e visualizza il risultato in metri e centrimetri Esempio Utente immette 134cm 1 m, 34 cm Utente immette 45cm 0 m, 45 cm Utente immette 200cm 2 m, 0 cm 17 Soluzione: esercizio 1 #include<stdio.h> main() { int numero, metri, centimetri; } printf("dammi l altezza in cm "); scanf("%d", &numero); metri = numero/100; centimetri= numero%100; printf("%d m, %d cm", metri, centimetri); 18 9

Esercizio 2 Scrivere un programma che richiede all utente un numero positivo di tre cifre. Il programma stampa la cifra centrale. Esempio: 356 5 789 8 19 Soluzione: esercizio 2 #include<stdio.h> main() { int n, cfr; printf("introduci un numero positivo di tre cifre\n"); scanf("%d", &n); cfr = (n/10) % 10; printf("cifra centrale: %d", cfr); } 20 10

Esercizio 3 Rovesciare un numero positivo di tre cifre Esempio: 356 diventa 653 789 diventa 987 21 Soluzione: esercizio 3 #include<stdio.h> main() { int n, unita, decine, centinaia; printf("introduci un numero positivo di tre cifre\n"); scanf("%d", &n); unita = n % 10; decine = (n/10) % 10; centinaia = n/100; printf("numero rovesciato: %d%d%d", unita, decine, centinaia); } 22 11

oppure #include<stdio.h> main() { int n, unita, decine, centinaia; printf("introduci un numero positivo di tre cifre\n"); scanf("%d", &n); unita = n % 10; decine = (n/10) % 10; centinaia = n/100; printf("rov: %d", 100*unita+10*decine+centinaia); } 23 Altri esercizi 24 12

Esercizio Scrivere un programma che richiede all utente un numero che rappresenta un periodo di tempo espresso in minuti. Il programma converte tale periodo in ore e minuti e visualizza il risultato in ore e minuti Esempio Utente immette 134m Utente immette 45m Utente immette 180m 2 h, 14 m 0 h, 45 m 3 h, 0 m 25 Soluzione #include<stdio.h> main() { int numero, minuti, ore; } printf("dammi il tempo in minuti "); scanf("%d", &numero); ore = numero/60; minuti= numero%60; printf("%d h, %d m", ore, minuti); 26 13

Tipo reale I numeri reali vengono usati per rappresentare prezzi, pesi, misure, per calcoli matematici, ecc. 27 Campo di variabilità Intervallo finito float Tipo precisione singola double precisione doppia Dimensione (byte) 4 8 Valore minimo -3.2 10 ±38-1.7 10 ±308 Valore massimo +3.2 10 ±38-1.7 10 ±308 28 14

Notazione per i valori costanti Esistono due modi di scrivere numeri reali 1. parte intera punto parte decimale 4.34 2. parte intera e o E esponente con segno -3E3 rappresenta -3 10 3 cioè 3000 5e-2 rappresenta 5 10-2 cioè 0.05 29 Operazioni somma, differenza unaria e binaria, prodotto, divisione reale, esponenziali, logaritmi, funzioni trigonometriche, 30 15

Funzioni aritmetiche #include<math.h> x e y di tipo double e restituiscono un double pow(x, y) x y sin(x) seno di x, con x espresso in radianti cos(x) coseno di x, con x espresso in radianti exp(x) e x log(x) logaritmo naturale di x sqrt(x) radice quadrata x, x>=0 log10(x) logaritmo in base 10 di x 31 Metodi di input/output float x; Output printf("%f", x); Input scanf ("%f", &x); 32 16

Esercizi sul tipo reale 33 Esercizio 1 Scrivere un programma che calcola l area di un cerchio di raggio r immesso dall utente 34 17

Soluzione: esercizio 1 #include<stdio.h> main() { float r, area; printf("dammi il raggio: "); scanf("%f", &r); area = r*r*3.14; printf("l'area del cerchio di raggio %f = %f\n", r, area); } 35 Esercizio 2 Scrivere un programma che effettua la conversione da LIRE ITALIANE a EURO Esempio Se immetto 1000 LIRE 1000 LIRE = 0.516457 EURO 36 18

Soluzione: esercizio 2 #include<stdio.h> main() { float euro, lira; printf("dammi il numero in LIRE: "); scanf("%f", &lira); euro = lira / 1936.27; printf("%f LIRE = %f EURO", lira,euro); } 37 Migliorare stampa #include<stdio.h> main() { float euro, lira; %.nf stampa un numero frazionario con n cifre dopo il punto decimale printf("dammi il numero in LIRE: "); scanf("%f", &lira); euro = lira / 1936.27; printf("%.0f LIRE = %.2f EURO", lira,euro); } 38 19

Esercizio Scrivere un programma che calcola l area di un triangolo di base b ed altezza h, immessi dall utente 39 Soluzione #include<stdio.h> main() { float base, altezza, area; printf("dammi la base: "); scanf("%f", &base); printf("dammi l'altezza: "); scanf("%f", &altezza); area = (base * altezza)/2; printf("l'area: %f\n", area); } 40 20

Esercizio Scrivere un programma che effettua la conversione da EURO a LIRE ITALIANE Esempio Se immetto 100 EURO 100 Euro = 193627 LIRE 41 Soluzione #include<stdio.h> main() { float euro, lira; printf("dammi il numero in EURO: "); scanf("%f", &euro); lira = euro * 1936.27; printf("%f EURO = %f LIRE", euro,lira); } 42 21

Tipo carattere Finora abbiamo lavorato con valori numerici. I numeri costituiscono molta parte del lavoro dei computer, ma non tutta. I computer sono macchine per il trattamento dell informazione e l informazione è costituita per la maggior parte da testi, che a loro volta sono composti da caratteri 43 Campo di variabilità Intervallo finito char Tipo Dimensione (byte) 1 44 22

Codifiche binarie Ogni carattere è rappresentato da uno specifico codice binario: ad ogni carattere corrisponde una rappresentazione numerica univoca Le codifiche binarie più diffuse nel mondo informatico sono: Codifica ASCII (American Standard Code for Information Interchange) Codifica EBCDIC (Extended Binary Coded Decimal Interchange Code) 45 Codice ASCII Rappresenta 128 simboli diversi (codice di 7 bit ): lettere dell alfabeto, cifre, segni di punteggiatura e altri simboli 46 23

Codice ASCII (cont( cont.) Carattere Decimale Binario { a A B ; 3 & 123 97 65 66 59 51 38 1111011 1100001 1000001 1000010 0111011 0110011 0100110 'A' è maggiore di ';' che è maggiore di '&' Si ha che: a<b<c<...<z A<B<C<...<Z 0<1<2<...<9 47 Metodi di input/output char x; Output printf("%c", x); Input scanf ("%c", &x); 48 24

approfondimento In C il tipo char è un tipo intero su 1 byte utilizzato principalmente per rappresentare caratteri #include<stdio.h> main() { char x=65; printf("%c", x); // stampa A printf("%d", x); // stampa 65 x='a'; x=x+1; printf("%c", x); // stampa B } 49 Esercizi sul tipo carattere 50 25

Esercizio Scrivere un programma che legge prima due caratteri e poi li stampa per due volte in ordine inverso. Esempio: ab baba 51 Soluzione #include<stdio.h> main() { char x, y; printf("digita due caratteri: "); scanf("%c%c", &x, &y); printf("hai digitato per 2 volte (ordine inverso): "); printf("%c%c%c%c", y, x, y, x); } 52 26

Esercizio Scrivere un programma che legge prima un carattere e poi stampa i due caratteri che lo lo precedono Esempio: Se leggo d stampa: cb 53 Soluzione #include<stdio.h> main() { char x; printf("digita un carattere: "); scanf("%c", &x); x=x-1; printf("%c", x); x=x-1; printf("%c", x); } 54 27

Altri esercizi 55 Esercizio Scrivere un programma che legge prima tre caratteri e poi li stampa in ordine inverso. Esempio: Se leggo CDE stampa:edc 56 28

Soluzione #include<stdio.h> main() { char x, y, z; printf("digita tre caratteri: "); scanf("%c%c%c", &x, &y, &z); printf("hai digitato (ordine inverso): "); printf("%c%c%c", z, y, x); } 57 Esercizio Scrivere un programma che legge prima un carattere e poi stampa il carattere che lo segue e quello che lo precede Esempio: Se leggo D stampa: E C 58 29

Soluzione #include<stdio.h> main() { char x; printf("digita un carattere: "); scanf("%c", &x); x=x+1; printf("il succ = %c\n", x); x=x-2; printf("il prec = %c\n", x); } 59 Operatori di incremento e decremento 60 30

Operatori di incremento e decremento Operatori unari ++ aggiunge uno -- sottrae uno x++ equivale a x=x+1 x-- equivale a x=x-1 61 Operatori di incremento e decremento Operatori postfissi x++; prima usa x, poi incrementala Operatori prefissi ++x; prima incrementa x, poi usala 62 31

Operatori di incremento e decremento La variabile viene comunque incrementata Attenzione: quando compaiono in istruzioni meno semplici x++; ++x; y=x++; y=++x; //equivale a x=x+1; //equivale a x=x+1; //equivale a y=x; x=x+1; //equivale a x=x+1; y=x; 63 Operatori di incremento e decremento int n, m=0; n=m++; int n, m=0; n=++m; n vale 0 m vale 1 n vale 1 m vale 1 int n, m=0; n=m=m+1; n vale 1 m vale 1 //(n=(m=m+1)); 64 32