I Dati . i tipi di dati possono essere classificati in:

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

LE FUNZIONI REALI DI VARIABILE REALE
Rappresentazioni numeriche
Calcolo letterale I POLINOMI
1 I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI.
Schema esemplificativo
I numeri naturali ….. Definizione e caratteristiche
23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona.
Sottoprogrammi: funzioni e procedure
Sistema operativo MS-DOS
Battuta Ogni atleta deve essere in grado di variare il suo servizio
Code::Blocks Ambiente di sviluppo.
Linguaggio C++ Selezione.
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
esponente del radicando
Macchine a stati Lettura da tastiera di un numero reale.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Corso di Informatica (Basi di Dati)
Corso di Informatica (Programmazione)
Confronto di due signed (in compl. a 2) Caso 1: numeri dello stesso segno Non ci può essere overflow (sottraendo, viene fuori un numero più piccolo in.
Lezione del 30/11/2010 By Vaccaro Maria A.. Con base 2 e n cifre, abbiamo a disposizione 2 n configurazioni distinte. Per esempio con 8 bit (n=4) possiamo.
Esistono 10 tipi di persone al mondo: Quelli che conoscono il codice binario & Quelli che non lo conoscono.
Rappresentazione binaria dei numeri interi senza segno.
Rappresentazione dei numeri reali
Introduzione alla programmazione ll
= = -11 Esempio complemento A (-6) = (-5) (-11) (6) = (-10) (-4)
nome: sequenza di caratteri usata per denotare un oggetto
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Equivalenza di espressioni
Rappresentazione di numeri relativi (interi con segno)
SQL SQL (pronunciato anche come l’inglese sequel) è l’acronimo di Structured Query Language (linguaggio di interrogazione strutturato) E’ un linguaggio.
Conversione binario - ottale/esadecimale
Lezione XII Laboratorio di Programmazione. Eccezioni Per la gestione di operazioni che possono non andare a buon fine il C++ mette a disposizione un sistema.
Le funzioni a tempo di esecuzione
Laboratorio di Metodi Numerici a.a. 2008/2009 Prof. Maria Lucia Sampoli.
ALGEBRA.
Le operazioni aritmetiche con i numeri naturali e decimali
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Motivazione allo studio
TEORIA DEGLI INSIEMI INIZIO.
Introduzione al linguaggio assembly del microprocessore a parte
I numeri razionali e le loro rappresentazioni
TEST TECNICI Stagione Sportiva 2013/2014 Sezione Valdarno arbitri
NUMERI RELATIVI.
Process synchronization
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
Rappresentazione dell’informazione nel calcolatore.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Matematica mon amour Prof. Luigi Taddeo 28 Febbraio 2014.
Architettura di un calcolatore e linguaggio macchina.
RETI LOGICHE Daniele Manzaroli
Rappresentazioni numeriche. Introduzione Un calcolatore elettronico dispone di uno spazio finito per memorizzare le cifre che esprimono un valore numerico.
Case Study - Un (linguaggio) costrutto tipato: Accedere indirizzi fuori dai bounds di un array Char A[n1..n2]; Int i; … i = e … … A[i] … Sono due interi.
Rappresentazione dell’informazione
Rappresentazioni a lunghezza fissa: problemi
Fondamenti di Informatica
Rappresentazione dell'informazione
La codifica dei numeri.
Conversione binario-ottale/esadecimale
Informatica Lezione 3 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Rappresentazione dei dati. RAPPRESENTAZIONE DEI DATI LA FUNZIONE INTERO INTERO: R --> I y = [r] il massimo intero non maggiore di r r =
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
Rappresentazione dei numeri
I Radicali Prof.ssa A.Comis.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Modulo 1 funzioni reali, proprietà e operazioni (cap.14 del vol.2; pag )
I sistemi di numerazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Le frazioni A partire da N vogliamo costruire un nuovo insieme numerico nel quale sia sempre possibile eseguire la divisione. Per fare ciò dobbiamo introdurre.
Transcript della presentazione:

I Dati . i tipi di dati possono essere classificati in: tipi semplici o elementari tipi strutturati al cui interno vi è un’aggregazione di dati; ogni linguaggio di programmazione mette a disposizione un set di tipi di dati le cui proprietà e struttura sono definite da esso: essi prendono il nome di tipi di dati predefiniti, ma lascia anche l’opportunità al programmatore di definirne altri che prendono il nome di dati definiti dall’utente

Il tipo intero Rappresenta un sottoinsieme dell’insieme Z dei numeri relativi la cui estensione è determinata dal numero dei bit (N) che il linguaggio mette a disposizione per rappresentarlo secondo la regola -2N-1, +2N-1 con un bit riservato al segno. Qualora il risultato di un’operazione esce fuori da questo intervallo si genera un errore di overflow o underflow. Un altro errore che si può verificare è la divisione by 0. questi errori che si possono verificare durante l’esecuzione di un programma vengono segnalati come errori di run-time.

Il tipo intero Le operazioni che si possono eseguire su questi dati sono le quattro operazioni algebriche la cui divisione deve dare risultato intero (10/4=2) con l’accorgimento di evitare una divisione per 0. Essi permettono anche l’aritmetica modulare che rappresenta il resto delle divisione intera. Le operazioni di confronto sono comuni a tutti i tipi di dati il cui dominio è totalmente ordinato e sono >, >=, <,<=, = e != che indica il diverso o not=. Il risultato delle operazioni di confronto è un valore vero o falso.

Il tipo reale Il tipo reale è rappresentato in virgola mobile dove una serie di bit sono destinati alla mantissa che rappresenta le cifre che compongono il numero e una parte destinata all’esponente che determina la posizione della virgola se N sono i bit destinati alla mantissa e M quelli per l’esponente il loro range sarà -2N-1*10 -exp, +2N-1*10 –exp dove exp vale 2M-1. Con i dati di tipo reale si possono effettuare tutte le operazioni degli interi tranne la divisione intera che diventa decimale e il modulo. Ma si allarga ad esso tutte le operazioni di potenza, esponente, e si definiscono tutte le funzioni matematiche che hanno per dominio e condominio i valori reali. Anche in questo insieme sono definite le operazioni di confronto e gli errori di run-time degli interi.

Il tipo carattere Rappresentano tutti i caratteri disponibili nel computer. Su di essi si possono effettuare le operazioni di confronto, essendo un insieme totalmente ordinato. Ma quale valore essi assumono? Assumono tutti i valori definiti nel codice ASCII, il quale ad ogni carattere fa corrispondere un valore numerico Per distinguere il carattere 1 dal numero 1 i caratteri vano racchiusi tra apici cosi ‘1’ è il carattere che è diverso dal valore intero o numerico 1. Del resto con il simbolo a si intende una variabile che può contiene la lettera ‘a’. Va anche sottolineato che ‘a’ è diversa da’A’, infatti il loro codice differisce di un valore di 32 (97 la prima, 65 la seconda).

Il tipo booleano Le variabili booleane possono assumere due soli valori costanti: vero o falso; questi tipi di dati sono importanti nella definizione delle condizioni e dei risultati dei confronti. Le operazioni che si possono effettuare sono l’or, l’and e il not: l’operatore not nega il valore di verità dell’operando su cui agisce. L’operatore or richiede due operandi e dà come risultato vero se almeno una dei due operandi è vero L’operatore and richiede due operandi e dà come risultato vero se entrambi gli operandi sono veri.

Le istruzioni La sequenza La selezione L’iterazione

La sequenza Lettura cin>>a; Scrittura cout<<“questo è un messaggio” Assegnamento a=3; a=b; a=b+4; Incremento a++; a--; a=a+b; Richiamo di funzioni a=sqrt(b); Richiamo di procedure line(3,3,10,10);

La selezione Binaria Permette di modificare il flusso dell’algoritmo tra due possibili vie: Una relativa al verificarsi della condizione testata e l’altra al caso falso Multipla Permette di modificare il flusso dell’algoritmo tra diverse possibili alternative ognuna relativa ad un valore dell’espressione che si valuta:

La selezione Binaria if (condizione) { blocco_istruzione_caso_vero } else blocco_istruzione_caso_falso

La selezione Binaria La condizione è un’espressione booleana a==b a!=b a>b && a<c a<b ||a>=c

La selezione Binaria Il ramo della condizione falsa (caso else) è opzionale E può avere la seguente sintassi if (condizione) { blocco_istruzione_caso_vero }

La selezione Binaria il blocco istruzione contiene istruzioni in sequenza e può contenere al suo interno un’altra istruzione di selezione: Infatti il blocco di selezione è considerato un’unica istruzione if (condizione) { blocco_istruzione_caso_vero } else blocco_istruzione_caso_falso

La selezione multipla Permette di modificare il flusso dell’algoritmo tra diverse possibili alternative ognuna relativa ad un valore dell’espressione che si valuta:

La selezione multipla Ha la seguente sintassi: Switch (espressione){ Case 1:{ blocco_istruzione_caso_1 } break; Case 2:{ blocco_istruzione_caso_2 break ; Case 3:{ blocco_istruzione_caso_3 Default { blocco_istruzione

La selezione multipla Come si nota a differenza della selezione binaria non si valuta una condizione, ma un’espressione che può assumere diversi valori di tipo numerico, carattere o di valori costanti Il caso default è opzionale

L’iterazione Con controllo in testa while Con controllo in coda do.. while Con contatore for

L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione risulta vera Quante volte viene ripetuto il ciclo?

L’iterazione while Quante volte viene ripetuto il ciclo? Questo dipende da come viene espressa la condizione e la modalità di modificarne il valore di verità Vi sono dei cicli che non vengono mai eseguiti nel caso la condizione risulta falsa al primo test Esempio Int a=0 While (a<0) { cout <<a; }

L’iterazione while Quante volte viene ripetuto il ciclo? Vi sono dei cicli che non terminano mai nel caso la condizione risulta sempre vera Esempio Int a=0; While (a==0) { cout <<a; }

L’iterazione while Quante volte viene ripetuto il ciclo? Vi sono dei cicli di cui possiamo dire quante volte vengono eseguiti nel caso la condizione ha un valore iniziale e un valore finale Esempio Int a=0; While (a<10) { cout <<a; a++; } Il ciclo verrà eseguito esattamente 10 volte

L’iterazione while Quante volte viene ripetuto il ciclo? Vi sono dei cicli che non possiamo prevedere quante volte vengono eseguiti nel caso la condizione diventa falsa al verificarsi di un certo evento che non possiamo prevedere Esempio while(!kbhit()); Int ,n,a=0; While (a<100) { cin>>n; a=a+n; } cout<<a;

do { blocco _struzione } while (condizione); L’iterazione do… while Viene definito con controllo in coda perché prima esegue il blocco di istruzione e poi valuta se lo deve ripetere: La sintassi è la seguente: do { blocco _struzione } while (condizione); Il blocco di istruzione viene ripetuto fino a quando la condizione risulta vera Quante volte viene ripetuto il ciclo? la risposta è almeno una volta Il numero preciso dipende da come viene posta la condizione secondo i criteri visti per il While Con il do…while non si può implementare il caso che il ciclo non venga mai eseguito.

L’iterazione In realtà si può affermare che ogni ciclo while si può tradurre in un ciclo do..while e viceversa, con opportuni accorgimenti Vediamo alcuni esempi:

L’iterazione Int a=0; While (a<10) { cout <<a; a++; } do { cout <<a; a++; } While (a<10);

L’iterazione: un uso particolare costruire menù di scelta: bool continua = true; int scelta; int main(){ do{ cout<<“inserire un numero tra 1 e 3 , 0 per terminare” cin>>scelta; switch(scelta){ case 1: cout<<endl<<“hai premuto 1”; break; case 2: cout<<endl<<“hai premuto 2”; break; case 3: cout<<endl<<“hai premuto 3”; break; case 0: continua = false; break; default cout<<endl<<“scelta errata”; } //fine switch } while (continua); return 0; } // fine main

L’iterazione for Detto anche ciclo con contatore Si utilizza quando è noto il numero delle volte che si vuole eseguire il ciclo La sintassi è la seguente: for (contatore = valore_iniziale; condizione_di_uscita; incermento/decremento ) { blocco istruzione }

L’iterazione for Contatore = valore_iniziale Vuol dire che devo attribuire alla variabile che funge da contatore del ciclo un valore iniziale Es cont=0; cont=1; cont=1000; cont=-30;

L’iterazione for Condizione di uscita Esprime la condizione di uscita del ciclo, cioè il valore finale che deve assumere la variabile contatore Es cont<100; cont<=100; cont>0; cont>=1; cont>= -10; cont <-100:

L’iterazione for Incremento/decremento Indica ad ogni ciclo di quanto (il passo) la variabile contatore deve essere incrementata o decrementata. Di solito il passo è unitario E si incrementa quando il valore iniziale della variabile contatore è minore del valore finale, altrimenti si decrementa Esempi for(cont=0; cont<100; cont++) //cont è di tipo int { } for(cont=10; cont>0; cont--) for(cont=0; cont<100; cont+=2) for(cont=0; cont<100; cont+=0.20) // cont è di tipo float

L’iterazione for Il ciclo for può essere tradotto nel while e viceversa? La risposta è si Vediamo alcuni esempi Int a=10; while (a>0) { cout <<a; a--; } for (int a=10; a>0; a--) cout<<a;

L’iterazione for Il ciclo for può essere tradotto nel while e viceversa? La risposta è si Vediamo alcuni esempi char c=‘a’; while (c<=‘z’) { cout <<c; c++; } for (char c=‘a’; c<=‘z’; c++) cout<<c<<“ “;

L’iterazione for Anche questo costrutto si può nidificare vediamo il codice che calcola e stampa a video la tavola pitagorica for (i=1;i<=10;i++){ for (j=1;J<=10;j++) cout<<i*j<<“ “; cout<<endl; }

Esercizio Scrivere un programma C++ che permette di scegliere una delle seguenti funzionalità Visualizzare i primi n numeri Visualizzare i primi n numeri pari Visualizzare i primi n numeri dispari Visualizzare i primi n numeri primi Visualizzare i primi n numeri della serie di Fibonacci Dato in input n calcolare n! Dato in input n stampare le prime n righe del triangolo di Tartaglia Il compito deve essere consegnato non oltre la prima ora di lunedì 7 maggio Indicazioni e suggerimenti per lo svolgimento Nelle pagine successive

Indicazioni Il programma deve essere realizzato con l’uso di: Selezione multipla e deve contenere un ciclo continuo fino a quando l’utente decide di uscire dal programma Ogni caso di scelta deve essere realizzato con un sottoprogramma Ogni caso deve essere realizzato con il ciclo for

Suggerimenti Serie di Fibonacci 0 1 1 2 3 5 8 13…… n! è il fattoriale di n esso assume i seguenti valori se n=0 fatt(n)=1 Altrimenti fatt(n(= n*n-1*n-2* *2*1 cioè è il prodotto dei numeri da 1 a n Triangolo di Tartaglia Ogni elemento è dato da j!/(k!*(j-k)! Con J che va da 0 a n dove n è il numero delle righe e k va da 0 a j