Operatori e Gestione del flusso di esecuzione

Slides:



Advertisements
Presentazioni simili
Rappresentazioni numeriche
Advertisements

Introduzione al linguaggio C++
Introduzione al linguaggio C
Sintassi (prima parte)
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
Il Linguaggio Macchina
Anno accademico Gli operatori e le espressioni in C.
Il linguaggio C Gli operatori e le espressioni C Language
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.
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algebra di Boole ed elementi di logica
Informatica 3 Codifica binaria.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Organizzazione del corso
Algebra di Boole L’algebra di Boole è un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono assumere.
Codifica binaria Rappresentazione di numeri
Rappresentazione di numeri relativi (interi con segno)
Usare rappresentazioni di lunghezza fissa porta ad avere valori non rappresentabili: Overflow indica un errore nella rappresentazione del risultato in.
Conversione binario - ottale/esadecimale
Conversione binario - ottale/esadecimale
Java base I: Sintassi e tipi di dati
Fondamenti di informatica Linguaggio C Main Program: Architettura di un PC Diagrammi di flusso Linguaggio C.
Programmazione in Java Claudia Raibulet
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
I vettore interruzioni
CODIFICA Da flow-chart a C++.
Istruzioni per la Manipolazione dei Bit
Architettura del calcolatore
Parte 4 Elementi di Informatica di base
Laboratorio di Informatica1 Parte 4 Laboratorio di Informatica Dott.ssa Elisa Tiezzi Dott.ssa Elisa Mori.
148 RISULTATO Quoto O Quoziente
ECDL Patente europea del computer
1 Numeri interi e numeri in virgola mobile F. Bombi 2 6 novembre 2003.

Luigi Vetrano Corso di Reti di Calcolatori Slides di completamento per i problemi più comuni riscontrati durante il corso.
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Algebra di Boole.
Introduzione a Javascript
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Circuiti logici.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
PRIMI ELEMENTI DI PROGRAMMAZIONE
1 Analisi ammortizzata Si considera il tempo richiesto per eseguire, nel caso pessimo, una intera sequenza di operazioni. Se le operazioni costose sono.
L’esecuzione dei programmi
Algebra di Boole L’algebra di Boole è un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono assumere.
Rappresentazione dell’informazione
Rappresentazioni a lunghezza fissa: problemi
Rappresentazione in virgola mobile (floating-point) Permette di rappresentare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione.
Architettura degli Elaboratori 1
Rappresentazione dell'informazione
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
La codifica dei numeri.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Conversione binario-ottale/esadecimale
Rappresentazione degli interi
Informatica e Informatica di Base
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
13/08/02Tipi base 1 Tipi interi Operatori numerici Tipi float Caratteri Tipo booleano.
Esercizio n o 3 Si realizzi una calcolatrice a 32 bit con interfaccia “normale” (decimale) con LabView, utilizzando SOLAMENTE: –convertitore decimale (input)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
Definizioni Rappresentazione Operazioni Espressioni Esercizi
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Massimiliano Sbaraglia Network Engineer MPLS classi amministrative flussi di traffico Affinità e Maschera.
Transcript della presentazione:

Operatori e Gestione del flusso di esecuzione

Obiettivi 1. Conoscere e saper utilizzare i vari operatori 2. Conoscere e saper utilizzare i costrutti di programmazione semplici 3. Conoscere e saper utilizzare i costrutti di programmazione avanzati

Operatori di base ( Ob. 1 ) Operatore di assegnazione: = Operatori aritmetici: + - * / % % è l’operatore modulo: 5 % 3 = 2; 10 % 2 = 0; 100 % 50 = 0

Operatori con assegnazione inclusa: += “i += 2” è equivalente a “i=i+2” -= “i -= 2” è equivalente a “i=i-2” *= “i *= 2” è equivalente a “i=i*-2” /= “i /= 2” è equivalente a “i=i/2” %= “i %= 2” è equivalente a “i=i%2”

Operatori (unari) di pre e post-incremento (e decremento) : ++ Sono espressioni equivalenti: i = i + 1 i += 1 i++ Post-incremento (= ha la priorità) ( x=5; y=x++; risulta y=5 e x=6) ++i Pre-incremento (prioritario rispetto a =) ( x=5; y=++x; risulta y=x=6) --

Operatori bitwise: eseguono operazioni direttamente sui bit ~ NOT (operatore unario) & AND (operatore binario) | OR ( “ “ ) ^ XOR ( “ “ ) << Shift a sinistra >> Shift a destra >>> Shift a destra senza segno &= AND e assegnazione |= OR e assegnazione ^= XOR e assegnazione <<= Shift a sinistra e assegnazione >>= Shift a destra e assegnazione

Esempi Operatori bitwise: sapendo che la rappresentazione binaria di 1 è 00000001, avremo che ~1 varrà 11111110 ovvero -2. byte a = 35; //rappresentazione binaria 00100011 a = a >> 2; avremo che: a = 8 // rappresentazione binaria 00001000 (Il numero dei bit da scorrere è rappresentato dall’operando a destra dell’operazione, in questo caso è 2) byte b = -8; //rappresentazione binaria 11111000 b = b >> 1; avremo che: b = -4 //rappresentazione binaria 11111100

Operatori relazionali o di confronto : == Uguale a Tutti i tipi != Diverso da Tutti i tipi > Maggiore Solo i tipi numerici < Minore Solo i tipi numerici >= Maggiore o uguale Solo i tipi numerici <= Minore o uguale Solo i tipi numerici

Attenzione alle Stringhe: String a = "Java"; String b = "Java"; String c = new String("Java"); System.out.println(a==b); System.out.println(b==c); produrrà il seguente output: true false Infatti a e b punteranno esattamente allo stesso oggetto. Mentre nel caso di c, avendo utilizzato la parola chiave new, verrà creato un oggetto ex novo, anche se con lo stesso contenuto dei precedenti.

Ricordiamo che il giusto modo per confrontare due stringhe rimane l’utilizzo del metodo equals(). Infatti il seguente frammento di codice: System.out.println(a.equals(b)); System.out.println(b.equals(c)); produrrà il seguente output: true True

A tal proposito è bene ricordare che la classe String definisce un metodo chiamato intern(), che prova a recuperare proprio l’oggetto String dal pool di stringhe, utilizzando il confronto che fornisce il metodo equals(). Nel caso nel pool non esista la stringa desiderata, questa viene aggiunta, e viene restituito un reference ad essa. In pratica, date due stringhe t ed s: s.intern() == t.intern() è true se se solo se s.equals(t) vale true.

Operatori logico – booleani : ! NOT logico & AND logico | OR logico ^ XOR logico && Short circuit AND (False se la 1° è false) || Short circuit OR ( True se la 1° è true) &= AND e assegnazione |= OR e assegnazione ^= XOR e assegnazione

Concatenazione di stringhe con + + oltre che essere un operatore aritmetico, è anche un operatore per concatenare stringhe. Per esempio il seguente frammento di codice: String nome = "James "; String cognome = "Gosling"; String nomeCompleto = "Mr. " + nome + cognome;

Priorità degli operatori Separatori . [] () ; , da sx a dx ++ -- + - ~ ! (tipi di dati) * / % + - << >> >>> < > <= >= instanceof == !=

Da sx a dx & ^ | && || Da dx a sx ?: = *= /= %= += -= <<= >>= >>>= &= ^= |=