UNITÀ LESSICALI Simboli, identificatori, costanti, commenti Simboli: Identificatori: lettere, numeri, $, _, #

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Stringhe di caratteri In linguaggio C.
SQL applicato a SQL Server
Selezione - approfondimento
PROGRAMMARE IN PASCAL (le basi)
Elementi di Programmazione
EP 10/11 - PBLezione 2-21 Elementi di Programmazione Tipi di Dati Conversioni Istruzioni di controllo del flusso.
EP 11/12 - PBLezione 31 Elementi di Programmazione Tipi di Dati e Conversioni Istruzioni di controllo del flusso.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Elementi di PL/SQL.
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Introduzione agli stream e alle classi
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Il linguaggio Fortran 90: 5. Formato di I/O e Files
Introduzione alla programmazione lll
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
Dichiarazioni e tipi predefiniti nel linguaggio C
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Il Linguaggio C.
Java base I: Sintassi e tipi di dati
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
4 Tipi di dati & variabili
JAVA Franco Bombi 8 ottobre FB Introduzione Java è un linguaggio di impiego generale, basato su classi e orientato agli oggetti Java.
CODIFICA Da flow-chart a C++.
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Tipi di dati elementari
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Sintassi base e struttura di un programma
Basi di Dati e Sistemi Informativi
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Lezione 3 Struttura lessicale del linguaggio
FUNZIONI Dichiarazione: Definizione:
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
Elementi di PL/SQL. Pl/Sql Il PL/SQL (Procedural Language/Structured Query Language) è un linguaggio di programmazione procedurale di Oracle che costituisce.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
UNITÀ LESSICALI Simboli, identificatori, costanti, commenti Simboli: Identificatori: lettere, numeri, $, _, #
Approfondimenti SQL.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Transcript della presentazione:

UNITÀ LESSICALI Simboli, identificatori, costanti, commenti Simboli: Identificatori: lettere, numeri, $, _, # ($,_,#: uno solo, in mezzo), oppure "caratteri ascii"(fino a 30) Costanti: –numeriche: interi e reali –caratteri e stringhe: 'a', 'abc', 'url="http', 'l''amico', q'!l'amico!' Ma non: 'l'amico', 'età' –bool: TRUE, FALSE, NULL Commenti: select * -- commento su singola linea from /* commenti su più linee */

UN DETTAGLIO CRUCIALE SULLE STRINGHE: attenti all’& Per il compilatore, &abc è una metavariabile Quindi, non scrivete mai: –print('proc?par1=aa&par2=bb'); Immettere un valore per par2: vecchio 11: print('proc?par1=aa&par2=bb'); nuovo 11: print('proc?par1=aa=bb'); –print('sarà fatto'); Scrivete invece: –print('proc?par1=aa&' || 'par2=bb'); –print('sar&' || 'agrave; fatto');

TIPI PL-SQL: TIPI NUMERICi BINARY_INTEGER (sottotipi: NATURAL, NATURALN, POSITIVE, POSITIVEN, sinonimo: PLS_INTEGER) NUMBER: floating point; sottotipi: Double precision, Float, Real NUMBER(cifre) o NUMBER(cifre:=38,posvirgola:=0)]: virgola fissa; sottotipi: Dec, Decimal, Numeric, Integer, Int, Smallint –Ex: Number(8), Number(8,4)

TIPI PL-SQL: STRINGHE –CHAR[(max length:=1)] dimensione fissa (max<256 per le colonne, per le variabili); sub: character –LONG: dim variabile (<2MB per le colonne, per le variabili) –RAW(max length): non interpretati; max colonna: 255; variabile: –LONG RAW: long+raw –UROWID: memorizza il valore della pseudocolonna rowid –VARCHAR2(max length); max col<4000, var<32767; dimensione variabile; sub: string, varchar –NCHAR / NVARCHAR2: stringhe unicode –CHAR – VARCHAR2: attenti ai blank nei confronti

TIPI PL-SQL: DATE e BOOLEANI Boolean: contiene true, false e null. Solo variabili, non nella basi di dati Date: contengono anche ore, minuti e secondi

SUBTYPES Servono a dare un altro nome ad un tipo: –DECLARE SUBTYPE Accumulator IS NUMBER; Possono aggiungere vincoli: –DECLARE temp NUMBER(4); SUBTYPE InteroQuattro IS temp%TYPE; SUBTYPE Intero IS NUMBER(4); SUBTYPE InteroTre IS NUMBER(3) NOT NULL;

CONVERSIONI TO_CHAR: data, numero a stringa TO_DATE: stringa, numero a data: –to_date(' ','dd-mm-yyyy') TO_NUMBER: stringa a numero stringa e raw-rowid: ROWTOHEX, HEXTORAW, CHARTOROWID, ROWIDTOCHAR Conversioni implicite: ogni conversione immaginabile; non usarle

DICHIARAZIONI DI VARIABILI Possono avere come inizializzatore un’espressione complessa, o non averlo (NULL): –nome tipo; –nome tipo [not null] := expr; (oppure: nome tipo [not null] DEFAULT expr;) –nome CONSTANT tipo [not null] := expr; Un tipo si può specificare: variabile%TYPE, colonna%TYPE (non riceve in questo caso il NOT NULL) tabella%ROWTYPE, cursore%ROWTYPE: tipo record –selezione e scrittura come var.field –assegnamento totale solo tra due record il cui tipo è tratto dalla stessa tabella o cursore, o usando SELECT * INTO reg FROM tab, se reg ha tipo tab%ROWTYPE

NOMI Classi di nomi: Semplici: emp Qualificati: luigi.emp Remoti: Qualificati e remoti: Non è permessa ambiguità tra gli identificatori dichiarati nello stesso livello; quelli dichiarati internamente coprono quelli esterni, ma non i nomi di colonna Negli identificatori maiuscole e minuscole sono uguali

Assegnamenti ide := expr select { col1,..,coln | * } into { var1,..,varn | rcdvar} from... where –Fallisce se la select non trova ennuple (NO_DATA_FOUND) o ne trova più di una (TOO_MANY_ROWS) –per ogni colonna, ci deve essere una variabile con tipo compatibile

ESPRESSIONI Operatori: –** (esp.), NOT ; +, -; *, / ; +, -, || (concatenazione); –=, !=,, =, IS NULL, LIKE, BETWEEN, IN –AND; OR AND/OR: logica a tre valori non stretta (null or true = true stringa LIKE pattern: –_: un carattere; %: 0 o più caratteri; case sensitive a BETWEEN 10 AND 20 a IN (3,5,8): attenzione ai null (semantica bizzarra) NULL = NULL dà NULL, non TRUE. if a then b else c end if esegue c se a è null. Una stringa vuota vale NULL, quindi X = Y dà sempre null se Y è una stringa vuota

FUNZIONI BUILT-IN Numeriche: trigonometriche, logaritmiche, trunc-round- floor-ceil... Char: char, concat, lower, lpad, ltrim, replace, substr, translate, upper; ascii, instr, length Date: add_months, last_day, months_between, next_day, sysdate Conversione NVL(e1,e2): ritorna e1 se non è null, altrimenti e2 user, uid Funzioni di gruppo: –accettano distinct o (default) all –ignorano i null, tranne count(*) –avg, count(*), max, min, stddev, sum, variance

FLUSSO DEL CONTROLLO: IF THEN ELSE IF cond THEN seq of stat; [ELSIF cond THEN seq of stat;]* [ELSE seq of stat;] END IF; I rami then sono valutati solo se la condizione è true; false e null non valutano il then, ma valutano l’else.

LOOP EXIT [WHILE cond] LOOP seq of stat; END LOOP; Per uscire: –Se cond è false-null, non viene (più) eseguito –EXIT –EXIT WHEN cond: uguale a IF cond THEN EXIT END IF Loop etichettati: – > LOOP seq of stat; END LOOP ciclo; –EXIT ciclo: può uscire da più cicli in un colpo FOR ide IN [REVERSE] small..big LOOP.... –se small>big il loop non è eseguito; si può uscire con EXIT –ide è dichiarato implicitamente, è costante, ha il loop come scope

GOTO GOTO label può saltare solo verso l’esterno