Anteprima
Vedrai una selezione di 15 pagine su 69
Fondamenti Teorici e Programmazione - Modulo A Pag. 1 Fondamenti Teorici e Programmazione - Modulo A Pag. 2
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 6
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 11
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 16
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 21
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 26
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 31
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 36
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 41
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 46
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 51
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 56
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 61
Anteprima di 15 pagg. su 69.
Scarica il documento per vederlo tutto.
Fondamenti Teorici e Programmazione - Modulo A Pag. 66
1 su 69
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Elementi di Programmazione - MODULO A

2014/2015

Concetti base della Programmazione

Programmazione nel linguaggio Javascript:

  • Espressioni
  • Variabili
  • Assegnamento
  • Funzioni
  • Costrutti di Controllo: condizionali, iteratori
  • Array (strutture dati)
  • Array Associativi

Definizioni Introduttive

Informatica Informazione automatica, per fornire informazioni è necessario:

  1. Comprendere la richiesta: gestione informazioni (es: tra quanto parti?)
  2. Disporre dei dati necessari (es: Parto alle 12, sono le 11)
  3. Essere in grado di elaborarli: calcolarli (12-11= 1h)
  4. Comunicare la risposta: Tra un’ora

Informazione Automatica Viene fornita da una macchina che:

  • Per comprendere la richiesta deve avere un dispositivo che permetta di specificarla
  • Avere a disposizione i dati necessari scritti su un dispositivo di memorizzazione
  • Essere in grado di elaborarli, calcolare la funzione che in base alle richieste risponde
  • Comunicare la risposta, su un dispositivo in cui si visualizza il risultato del calcolo
  • Un esempio: Calcolatrice
    • 10 tasti per specificare le cifre
    • 4 tasti per specificare le operazioni
    • Una memoria su cui mantenere i risultati parziali
    • Un foglio o un display su cui stampare il risultato

Linguaggi di Programmazione

Aspetto fondamentale è: la descrizione della funzione ed il linguaggio in cui tale descrizione è data.

  • I linguaggi per descrivere le funzioni sono chiamati linguaggi di programmazione.
  • Sono formalisti con sintassi e semantica formalmente definite (stesso rigore rispetto ling. naturali).
  • Semantica: significato stabilito formalmente.
  • I linguaggi di programmazione possono essere classificati in base a diverse caratteristiche:
    • es: general/special purpose, language di scripting ecc...
  • Le descrizioni delle funzioni da calcolare sono frasi in un linguaggio di programmazione e sono detti programmi.

I linguaggi di programmazione general purpose sono tutti equivalenti:

  • Se ho DL1(f) programma nel linguaggio L1 e DL2(f) programma nel linguaggio L2 che calcolano la stessa funzione, abbiamo: DL1(f) → DL2(f)

La traduzione è una funzione calcolabile e quindi descrivibile con un programma che quindi può essere eseguito da un calcolatore.

Linguaggio Macchina

  • Linguaggio direttamente eseguibile dal calcolatore.
  • Poco comprensibile dagli umani (programmatori) che devono scrivere il programma, perché:
    • Le operazioni sono molto semplici.
    • Sono specificate in binario (sequenze 0-1).
    • Specificare un'operazione complessa richiede la scrittura di un lungo programma, incomprensibile.

Algebra di Boole

Insieme di valori {true, false} su cui sono definiti i seguenti operatori:

  • ∧ and = prodotto logico o congiunzione
  • ∨ or = somma logica o disgiunzione
  • not = 1′ = complementato

→ base per la logica proposizionale che consente di parlare di fatti che possono verificarsi o meno.

"Pioe" può essere vero (true) o falso (false).

Significato degli operatori di base:

AND ∧ → consente di esprimere condizioni in cui più fatti devono verificarsi contemporaneamente.

Esempio: Piove e c'è il sole → Vera se è vero che piove e se è vero che c’è il sole.

Se anche uno dei due fatti è falso, l’intera affermazione è falsa almeno.

Chiamiamo:

p primo fatto (pioggia) q secondo (sole)

Per stabilire se l’espressione p ∧ q è vera o falsa devo sapere se i due fatti sono V o F.

pqp ∧ q truetruetrue truefalsefalse falsetruefalse falsefalsefalse

OR ∨ → consente di esprimere condizioni in cui più fatti possono verificarsi contemporaneamente (con significato diverso).

Esempio: Piove o fa freddo → Vera se è vero che piove o fa freddo.

Se uno dei due fatti è falso l’affermazione è vera solo se entrambi sono falsi, l’affermazione è falsa.

Chiamiamo:

p (pioggia) q (sole)

Per stabilire se l’espressione p ∨ q è vera o falsa devo sapere se le asserzioni sono V o F.

pqp ∨ q truetruetrue truefalsetrue falsetruetrue falsefalsefalse

Se operandi non sono booleani:

&& PRIMO OPERANDO NON CONVERTIBILE IN FALSE → Secondo operando PRIMO OPERANDO CONVERTIBILE IN FALSE → Primo operando

|| PRIMO OPERANDO NON CONVERTIBILE IN FALSE → Primo operando PRIMO OPERANDO CONVERTIBILE IN FALSE → Secondo operando

Esercizi

  • writeln (5 || true); 5
  • writeln (5 || false); 5
  • writeln (0 || false); false
  • (0 || true); true
  • ("0" || true); 0
  • ("0" || false); 0
  • (5 && true); true
  • (5 && false); false
  • (0 && true); false
  • (0 && false); false
  • ("0" && true); true

km 0 - km 34 = 30 min km 34 - km 60 = 26 1/2 min

Esempio Blocco

Dati mese, anno calcolare mese e anno del mese successivo

int mese = 2; anno = 2011; mesesucc, annosucc;

if (mese == 12) {

  • mesesucc = 1;
  • annosucc = anno+1;

}

else {

  • mesesucc = mese+1;
  • annosucc = anno;

}

BLOCCO → esegue 2 istruzioni nel ramo then.

Blocco nel ramo else

If ANNIDATI (IN CASCATA) → else if

Quando istruzione del ramo if, then o else è un’istruzione if o if else

Esempio

Data una temperatura t stampare messaggio, secondo la tabella:

  • temperatura t
  • 30 < t Molto caldo
  • 20 < t ≤ 30 Caldo
  • 10 < t ≤ 20 Gradevole
  • 0 < t ≤ 10 Freddo
  • t ≤ 0 Molto freddo

if (temperatura > 30) {

  • writeln("Molto Caldo");

} else if (temperatura > 20) {

  • writeln("Caldo");

} else if (temperatura > 10) {

  • writeln("Gradevole");

} else if (temperatura > 0) {

  • writeln("Freddo");

} else {

  • writeln("Molto freddo");

}

Singola istruzione if-else

if (temperatura > 30) writeln("Molto Caldo!");

else ... (serie di altri if)

Funzioni predefinite

Math.sqrt(x)

Radice quadrata

Math.log(x)

Logaritmo in base e di x

Math.abs(x)

Valore assoluto di x

Math.ceil(x)

Arrotonda per DIFETTO (principale)

Math.floor(x)

Arrotonda per ECCESSO (intero più grande) es. in Math.floor(1.345/10)%10)

Math.round(x)

Arrotonda all'intero più vicino ad x

Math.pow(x,y)

xy Math.pow(4,3); 43

Math.random()

Numero casuale n tale che 0 < n < 1

  • (num % 10); UNITÀ
  • (num / 10)%10); DECINE (soluzione con valori singola...)
  • (((num - (num%10)) /10) %10); DECINE approssimate
  • ((num - (num%100)) /100) %10); CENTINAIA
Dettagli
A.A. 2014-2015
69 pagine
16 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher federicaspinelli di informazioni apprese con la frequenza delle lezioni di Fondamenti teorici e programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pisa o del prof Occhiuto Maria Eugenia.