Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Fondamenti di informatica e programmzione Javascript - Cardone, Appunti di Programmazione Java

Sintesi lucidi prof. Cardone + capitoli 1, 2, 4 del manuale Javascript + esercitazioni

Tipologia: Appunti

2018/2019

Caricato il 26/01/2019

jessica-pizzorno-1
jessica-pizzorno-1 🇮🇹

4.8

(4)

2 documenti

1 / 10

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
JAVA SCRIPT
Sintesi capitoli 1, 2, 4
VALORI, TIPI E OPERATORI
Dati memorizzati come sequenze di bit (=qualunque cosa possa avere due valori).
Qualunque tipo di informazione può essere ridotto a una sequenza di zero e uno e quindi rappresentato in bit.
Valori = divisione dei bit in blocchi che rappresentano informazioni diverse.
Ad ogni valore è assegnato un tipo che ne determina il ruolo (numeri, stringhe, valori booleani, oggetti,
funzioni e valori indefiniti).
Numeri = memorizzabili nei limiti di un numero fisso di 64 bit
Aritmetica
Le operazioni aritmetiche prendono due valori di tipo numerico e producono un nuovo numero.
I simboli +, -, *, / si chiamano operatori e servono rispettivamente per addizione, sottrazione,
moltiplicazione e divisione. Il simbolo % rappresenta il resto (x%y = resto della divisione x/y).
Numeri speciali
Infinity e -Infinity rappresentano il positivo e il negativo dell'infinito. I calcoli su base infinito non
sono matematicamente affidabili: o non cambiano (es: infinity-1=infinity) o portano al terzo numero
speciale: NaN “not a number” (es: 0/0, infinity-infinity)
Stringhe = rappresentazione di testo tra virgolette
Vengono sempre scritte su una riga. Per andare a capo si usa la formula \n (in questo caso la barra rovesciata
chiama “carattere di escape”)
Valori booleani = distinguere due possibilità: “true” e “false”
Operatori di comparazione
I segni > e < sono operatori binari. Altri operatori sono >=, <=, ==, !=
Operatori logici
&& (and) è un operatore binario il cui risultato è true solo se sono true entrambi i valori passati
|| (or) è un operatore binario il cui risultato è true quando è true almeno uno dei due valori passati
! (not) è un operatore unario che inverte il valore passato
Valori indefiniti = assenza di un valore significativo, non contengono informazioni (null e undefined)
STRUTTURA DEI PROGRAMMI
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Fondamenti di informatica e programmzione Javascript - Cardone e più Appunti in PDF di Programmazione Java solo su Docsity!

JAVA SCRIPT

Sintesi capitoli 1, 2, 4

VALORI, TIPI E OPERATORI

Dati memorizzati come sequenze di bit (=qualunque cosa possa avere due valori). Qualunque tipo di informazione può essere ridotto a una sequenza di zero e uno e quindi rappresentato in bit.

Valori = divisione dei bit in blocchi che rappresentano informazioni diverse.

Ad ogni valore è assegnato un tipo che ne determina il ruolo (numeri, stringhe, valori booleani, oggetti, funzioni e valori indefiniti).

Numeri = memorizzabili nei limiti di un numero fisso di 64 bit

▲ Aritmetica

Le operazioni aritmetiche prendono due valori di tipo numerico e producono un nuovo numero.

I simboli +, -, *, / si chiamano operatori e servono rispettivamente per addizione, sottrazione, moltiplicazione e divisione. Il simbolo % rappresenta il resto (x%y = resto della divisione x/y).

▲ Numeri speciali

Infinity e -Infinity rappresentano il positivo e il negativo dell'infinito. I calcoli su base infinito non sono matematicamente affidabili: o non cambiano (es: infinity-1=infinity) o portano al terzo numero speciale: NaN “not a number” (es: 0/0, infinity-infinity)

Stringhe = rappresentazione di testo tra virgolette

Vengono sempre scritte su una riga. Per andare a capo si usa la formula \n (in questo caso la barra rovesciata chiama “carattere di escape”)

Valori booleani = distinguere due possibilità: “true” e “false”

▲ Operatori di comparazione

I segni > e < sono operatori binari. Altri operatori sono >=, <=, ==, !=

▲ Operatori logici

&& (and) è un operatore binario il cui risultato è true solo se sono true entrambi i valori passati

|| (or) è un operatore binario il cui risultato è true quando è true almeno uno dei due valori passati

! (not) è un operatore unario che inverte il valore passato

Valori indefiniti = assenza di un valore significativo, non contengono informazioni (null e undefined)

STRUTTURA DEI PROGRAMMI

Espressione = frammento di codice che produce un valore. Scopo: produrre un valore

▲ Valori espressi letteralmente

▲ Espressione tra parentesi

▲ (^) Operatore unario

▲ Operatore binario

Dichiarazione = espressione sta a proposizione come dichiarazione sta a periodo (programma: elenco di dichiarazione). Scopo: generare un cambiamento (effetti collaterali)

▲ Far comparire qualcosa sullo schermo

▲ Modificare lo stato interno della macchina

Variabili = per catturare e mantenere un valore. La parola chiave var definisce una variabile quando è seguita dal nome della stessa alla quale possiamo assegnare un valore iniziale aggiungendo un operatore = e un espressione (valore non immutabile). Una volta definita, la variabile può essere utilizzata come un’espressione il cui valore è quello della variabile stessa. Una singola dichiarazione var può definire più variabili, separandole con una virgola.

Valori restituiti = le funzioni possono anche produrre (o restituire) valori e in questi casi non hanno effetti collaterali.

Esecuzione lineare = struttura di controllo eseguita dall’alto al basso e da sinistra verso destra

Esecuzione condizionale = un valore booleano offre la possibilità di seguire due strade

▲ (^) Si indica con la parola chiave if: il codice viene eseguito soltanto se viene soddisfatta la condizione, in caso contrario il codice dichiarato viene saltato

▲ Else indica l'eventuale percorso alternativo nel caso in cui si vogliano impostare due percorsi di esecuzione alternativi

▲ Se abbiamo più di due possibilità di scelta, possiamo concatenare più if ed else.

Ciclo while = struttura di controllo ciclica che consente di tornare a un punti precedente del programma e ripetere le istruzioni per lo stato corrente

▲ (^) l'istruzione è eseguita finché l’espressione produce un valore che possa essere convertito in true

▲ per eseguire più dichiarazioni in un ciclo dobbiamo chiuderle tra parentesi graffe che le raggruppano e le fanno diventare una singola dichiarazione e prende il nome di blocco

Ciclo for = più breve e chiara del while

▲ dichiarazione di una variabile

▲ espressione che verifica se il ciclo deve continuare

▲ aggiornamento dello stato del ciclo (dopo ogni iterazione)

Commenti = annotazioni, appunti ignorati dal computer

▲ // + testo per comm. su una sola

▲ (^) /* + testo + */ per comm. Che vanno a capo

▲ pensiero ricorsivo

▲ (^) scelta della giusta rappresentazione della struttura e dei dati di un problema

▲ uso di proprietà invarianti del comportamento di un sistema

IL CALCOLATORE

Informatica: studio del calcolo (cosa può essere calcolato e come)

VERSIONE INTROVERSA

▲ accetta dati in ingresso (in un formato opportuno)

▲ li elabora e ne restituisce i risultati in uscita

HARDWARE

  • congegni per la comunicazione dei dati (periferiche)
  • strumenti fisici per l’elaborazione

SOFTWERE

  • codifiche dei dati
  • (^) rappresentazione del flusso di controllo: programmi

VERSIONE ESTROVERSA

▲ (^) come far comunicare i calcolatori in rete

▲ come strutturare le reti di calcolatori

▲ come realizzare la cooperazione e la risoluzione dei conflitti tra calcolatori che condividono risorse

ATTIVITA’ DI PROGRAMMAZIONE

ESEMPIO

Vogliamo programmare i movimenti di un robot in una stanza in modo che vada a prendere un oggetto. Un sistema di coordinate definisce le posizioni entro la stanza.

I comandi che il robot può eseguire sono:

▲ (^) un passo avanti

▲ (v) un passo indietro

▲ (>) un passo a destra

▲ (<) un passo a sinistra

Un programma è una sequenza di comandi, per esempio: ^^^>>vvv. Accade che questo programma sia equivalente a >>

CODIFICA BINARIA

Con i bit si rappresenta una scelta tra 2 alternative. Come rappresentare una scelta tra più di 2 alternative?

▲ In generale n bit permettono di rappresentare una scelta tra 2^n alternative.

▲ (^) Per rappresentare una scelta tra N >= 1 alternative sono necessari [logv2 N] bit

Interpretazione del bit

▲ (^) Logica: 1 = vero 0 = falso

▲ Aritmetica: 0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 0

▲ Insiemistica: I = U (dove U è un insieme: l’universo) 0 = O/

▲ Elettrica: 1 = interruttore aperto, la corrente passa 0 = interruttore chiuso, la corrente non passa

DICHIARAZIONI DI VARIABILI

Semantica

Al momento della dichiarazione, ad una variabile viene associata una cella di memoria (o un gruppo di celle). Il valore di una variabile dichiarata ma non esplicitamente inizializzata deve essere considerato indefinito

ISTRUZIONE DI ASSEGNAMENTO

Formato generale

= < espressione> dove ha lo stesso tipo di

Esecuzione

x = E

  1. (^) Si valuta l’espressione E se la valutazione termina si ottiene un valore v
  2. Il valore v viene scritto nella cella di memoria (eventualmente più di una) associata alla variabile x al momento della sua dichiarazione

Osservazione

Sulla sinistra di un assegnamento una variabile indica una cella di memoria. Sulla destra di un assegnamento una variabile rappresenta il valore scritto (al momento della sua valutazione) nella cella associata

ISTRUZIONE CONDIZIONALE

Formato generale

ATTIVITA’ DI PROGRAMMAZIONE

Esempio

  1. utente con problema algoritmico
  2. (^) programmatore applica algoritmo a programma
  3. utente con applicazione

Lessico introduttivo

Specifica Contratto tra utente e programmatore se i dati in ingresso soddisfano la condizione d’ingresso allora i dati in uscita soddisfano la condizione in uscita Quindi una specifica definisce

▲ dati in ingresso

▲ condizione d’ingresso (requisito sui dati s’ingresso)

▲ condizione d’uscita (relazione che lega dati in ingresso e dati in uscita)

Algoritmo Piano di azione che prescrive le azioni (che devono poter essere eseguite in modo meccanico) da compiere per risolvere un problema.

Correttezza (parziale) di un algoritmo rispetto ad una specifica Per ogni dato di ingresso che soddisfa la condizione di ingresso se l’esecuzione termina allora i dati in uscita soddisfano la condizione di uscita

Terminazione di un algoritmo Per ogni dato d’ingresso che soddisfa la condizione d’ingresso, l’algoritmo restituisce il risultato dopo un numero finito di passi.

Correttezza (totale) di un algoritmo rispetto ad una specifica Correttezza parziale + terminazione

Linguaggio di programmazione Collezione di costrutti componibili mediante regole di sintassi per formare, in particolare:

▲ espressioni: che possono essere valutate (da un calcolatore) per ottenere il loro valore

▲ istruzioni: che possono essere eseguite (da un calcolatore) per modificare lo stato della sua memoria

Compilatore Programma che traduce costrutti di un linguaggio di programmazione in costrutti di un altro linguaggio di programmazione di più basso livello.

Interprete Programma che esegue le istruzioni e valuta le espressioni di un programma.

ESERCIZI

BIT PER TRADURRE DA N° DECIMALE A N°BINARIO

7 decimale

  1. da destra verso sinistra 2^0, 2^1… 2^n
  2. elimino tutti gli 0 con potenza corrispondente
  3. sommo il risultato della potenza dei numeri restanti (gli 1)

es: il n° decimale 8 non si può tradurre con meno di 4 bit (ogni cifra del numero binario)

come si traduce il numero decimale 8 in numero binario? 2^3 (scritto in 1) = 8 2^2 (scritto in 0) = 0 2^1 (scritto in 0) = 0 2^0 (scritto in 0) = 0

1000 (8 + 0 + 0 + 0) = 8 (4bit)

come si traduce il numero decimale 24 in numero binario? 2^4 (scritto in 1) = 16 2^3 (scritto in 1) = 8 2^2 (scritto in 0) = 0 2^1 (scritto in 0) = 0 2^0 (scritto in 0) = 0

11000 (16 + 8 + 0 + 0 + 0) = 24 (5bit)

k h m 1 3 0 3 3 1 6 3 2 6 3 3 6 2 0 12 2 1 12 2 2 12 1 0 12 1 1 12 0 1/0/- (distrutta) FOR

  1. var k = 1; for (var h = 3; h > 0; h--){ for (var m = 0; m < h; m++){ k = k * (h - m) } }

var a = [2, 3, 4, 5, 6, 23, 1, 4] var flag = true; for (var i = 0; i < .length; i++){ if (a[i] % 2 != 0){ flag = true; } else { flag = false; i = a.length; } } document.write(flag);