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


Introduzione all'informatica: Concetti di base e architettura dei computer, Appunti di Fondamenti di informatica

Appunti informatica della comunicazione Professore Dondi anno 2020-21

Tipologia: Appunti

2020/2021

Caricato il 21/02/2023

Alicee997
Alicee997 🇮🇹

4.4

(51)

34 documenti

1 / 100

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA PER LA COMUNICAZIONE
LEZIONE 1- 22/02
Se a distanza ORALE 3 Domande a risposta multipla, rispondere correttamente a due su tre. 2 domande
aperte: una discorsiva e una sul diagramma di flusso (come nello scritto). Se scritto 10 domande risposta
multipla, 6 giuste per la sufficienza. Durante le lezioni domande a risposta multipla tipo esame.
Fondamenti di informatica
INFORMATICA disciplina che si occupa dell’elaborazione automatica di simboli (legata al concetto di
informazione). Si occupa di: elaborazione automatica di simboli, i dati che noi abbiamo possono essere
elaborati e cambiati in modo automatico, fatti da un elaboratore automatico, senza l’ausilio di esseri umani.
Simboli: modo in cui si rappresentano concretamente le informazioni, modo concreto con cui
l’informazione viene codificata. L’informatica studia come è possibile elaborare, quindi studiare come gli
strumenti informatici sono concretamente fatti, ma anche progettare sistemi da dare poi agli algoritmi,
poiché questi possano poi elaborare i dati. Informatica per questo disciplina composta da altre sotto
discipline. L’informatica elabora in modo automatico, motivazioni e vantaggi:
-ridurre i tempi di elaborazione: ridurre calcoli aritmetici con numeri molto grandi
-affidabilità: gli elaboratori possono avere problemi di funzionamento e di incorrere in errori, tuttavia sono
più affidabili degli esseri umani.
-elaborazione operazioni meccaniche: molte operazioni automatiche svolte dagli operatori sono
meccaniche, ripetitive e quindi possono essere automatizzate in modo semplice e veloce. Elaborazioni
meccaniche e ripetitive che possono essere automatizzate in modo semplice e veloce evitando di ripetere
queste operazioni.
Information & communication technology (ICT) disciplina nata dalla convergenza/ fusione di alcuni
aspetti di due discipline che fanno riferimento all’elaborazione dell’informazione (informatica) e discipline
che si occupano delle telecomunicazioni, degli scambi di dati. Da queste 2 discipline (tecnologia
dell’informazione e telecomunicazioni) ne è nata dunque una terza, che si occupa di problematiche e
aspetti sia di elaborazione delle info ma anche di scambio. Nata quando sono nate le reti di elaboratori,
quando è nata la rete internet, gli elaboratori hanno iniziato ad essere collegati. Da queste 2 nasce l’ICT che
si occupa di problematiche di elaborazione e scambio delle informazioni.
Elaborazione dell’informazione: 3 fasi fondamentali alla base dell’informazione, dell’elaborazione
dell’informazione:
- Fase in cui avviene la lettura dei dati, li riceviamo e devono poi essere elaborati. A volte bisogna
cambiare il formato dei dati, ovvero fare una pre-elaborazione dei dati per far in modo che siano
utilizzabili. dati in ingresso, input
- Fase di elaborazione, i dati in input vengono trasformati in modo tale da risolvere un problema.
Legge i dati e li ordina. Richiede un cambiamento, una lettura dei dati e un ordinamento,
un’estrazione.
- Fase ultima dati in uscita, output. Una volta costruita la risposta, la soluzione al problema, devo
fornire i dati in uscita, devo restituire i risultati, i dati elaborati.
Possono essere presenti oltre a queste 3 fasi fondamentali, altre due fasi: memorizzazione, i dati una volta
che vengono acquisiti possono essere memorizzati, in quel caso entrano in gioco tutti gli aspetti di
memorizzazione in modo da occupare il minimo spazio possibile, o in modo che sia facile da recuperare;
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Anteprima parziale del testo

Scarica Introduzione all'informatica: Concetti di base e architettura dei computer e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

INFORMATICA PER LA COMUNICAZIONE

LEZIONE 1- 22/

Se a distanza ORALE 3 Domande a risposta multipla, rispondere correttamente a due su tre. 2 domande aperte: una discorsiva e una sul diagramma di flusso (come nello scritto). Se scritto 10 domande risposta multipla, 6 giuste per la sufficienza. Durante le lezioni domande a risposta multipla tipo esame.

Fondamenti di informatica

INFORMATICA  disciplina che si occupa dell’elaborazione automatica di simboli (legata al concetto di informazione). Si occupa di: elaborazione automatica di simboli, i dati che noi abbiamo possono essere elaborati e cambiati in modo automatico, fatti da un elaboratore automatico, senza l’ausilio di esseri umani. Simboli: modo in cui si rappresentano concretamente le informazioni, modo concreto con cui l’informazione viene codificata. L’informatica studia come è possibile elaborare, quindi studiare come gli strumenti informatici sono concretamente fatti, ma anche progettare sistemi da dare poi agli algoritmi, poiché questi possano poi elaborare i dati. Informatica per questo disciplina composta da altre sotto discipline. L’informatica elabora in modo automatico, motivazioni e vantaggi: -ridurre i tempi di elaborazione: ridurre calcoli aritmetici con numeri molto grandi -affidabilità: gli elaboratori possono avere problemi di funzionamento e di incorrere in errori, tuttavia sono più affidabili degli esseri umani. -elaborazione operazioni meccaniche: molte operazioni automatiche svolte dagli operatori sono meccaniche, ripetitive e quindi possono essere automatizzate in modo semplice e veloce. Elaborazioni meccaniche e ripetitive che possono essere automatizzate in modo semplice e veloce evitando di ripetere queste operazioni. Information & communication technology (ICT)  disciplina nata dalla convergenza/ fusione di alcuni aspetti di due discipline che fanno riferimento all’elaborazione dell’informazione (informatica) e discipline che si occupano delle telecomunicazioni, degli scambi di dati. Da queste 2 discipline (tecnologia dell’informazione e telecomunicazioni) ne è nata dunque una terza, che si occupa di problematiche e aspetti sia di elaborazione delle info ma anche di scambio. Nata quando sono nate le reti di elaboratori, quando è nata la rete internet, gli elaboratori hanno iniziato ad essere collegati. Da queste 2 nasce l’ICT che si occupa di problematiche di elaborazione e scambio delle informazioni.

Elaborazione dell’informazione : 3 fasi fondamentali alla base dell’informazione, dell’elaborazione

dell’informazione:

  • Fase in cui avviene la lettura dei dati, li riceviamo e devono poi essere elaborati. A volte bisogna cambiare il formato dei dati, ovvero fare una pre-elaborazione dei dati per far in modo che siano utilizzabili. dati in ingresso, input
  • Fase di elaborazione, i dati in input vengono trasformati in modo tale da risolvere un problema. Legge i dati e li ordina. Richiede un cambiamento, una lettura dei dati e un ordinamento, un’estrazione.
  • Fase ultima dati in uscita, output. Una volta costruita la risposta, la soluzione al problema, devo fornire i dati in uscita, devo restituire i risultati, i dati elaborati. Possono essere presenti oltre a queste 3 fasi fondamentali, altre due fasi: memorizzazione, i dati una volta che vengono acquisiti possono essere memorizzati, in quel caso entrano in gioco tutti gli aspetti di memorizzazione in modo da occupare il minimo spazio possibile, o in modo che sia facile da recuperare;

trasmissione di info, trasferiti da un elaboratore o da un dispositivo all’altro per diversi scopi, anche nell’ambito della convergenza.

Sistemi automatici di elaborazione

Come si è arrivati agli elaboratori  quando si è iniziato a parlare di sistemi automatici. Ambito di studio dell’informatica: l’elaborazione automatica di simboli. Quando sono stati prodotti i sistemi automatici. Ambito su cui ci si è concentrati sin dall’inizio quello delle operazioni matematiche e equazioni aritmetiche. Modelli creati nell’antichità es. abaco. Nel XVII secolo modelli automatici per il calcolo, prodotti dispositivi come pascalina da Blaise Pascal, stepped reckoner, regolo calcolatore  obiettivo effettuare calcoli matematici. Da un lato questi dispositivi hanno la proprietà dell’automatizzazione, di cercare di automatizzare l’elaborazione, dall’altro non possiamo considerarli come dei computer perché sono stati pensati per un determinato scopo e fanno esclusivamente quello (operazioni aritmetiche). Il computer invece ha una proprietà aggiuntiva oltre a quella di svolgere calcoli automatici. Nell’800: Il primo ha introdurre l’idea di costruire sistemi di questo tipo è uno studioso inglese che si chiama C. Babbage che nell’800 progettò a livello solo teorico il primo elaboratore, che aveva 2 parti fondamentali, che sono fondamentali anche nei dispositivi successivi, e questi sono: unità di memoria, memorizzare dati; unità di calcolo, un’unità di elaborazione. Iniziano le prime attività di programmazione, in particolare la studiosa Ada King Lovelace che basandosi sul modello teorico di Bobbage scrisse i primi programmi. Più di un secolo dopo quando alcuni progettisti crearono un linguaggio di programmazione con programmi di un certo tipo, proprio in onore di questa prima programmatrice chiamarono questo linguaggio di programmazione “Ada”. Contributo matematico  in particolare G. Boole inventò l’algebra booleana che risultò molto importante dal pdv informatico perché i sistemi informatici ragionano/ utilizzano quest’algebra. Primi tentativi di costruire sistemi automatici di elaborazione. Contributi più importanti avvennero nel 900:

  • A. Turing 1936, modello ancora teorico noto come macchina di Turing. Si occupò dello studio dei sistemi automatici di elaborazione per risolvere un problema aperto sulla capacità di questi sistemi, propose un modello che successivamente prese il nome di macchina di Turing, in suo onore. Il suo grande contributo sta nell’aver intuito che con una macchina in grado di lavorare con dei simboli si poteva fare molto di più che computare e si può eseguire qualunque tipo di operazione purchè i passaggi possano essere espressi in simboli che la macchina elabora.
  • K. Zuse, ingegnere tedesco progettò il primo elaboratore funzionante nel 1941, propose una macchina chiamata Z1. Non valorizzato fino in fondo durante la seconda guerra mondiale. Basati sull’idea di Turing di modello automatico (mai realizzato ne commercializzato, usato a scopo puramente didattico e accademico ma anni dopo). I sistemi che vennero concretamente realizzati utilizzarono una tecnologia diversa, calcolatori elettronici universali a valvole termoioniche, a partire dal 1943:
  • Colossum, a cui lavorò lo stesso Turing
  • Eniac , Electronic Numerical integrator and Computer
  • Edvac, nella realizzazione di questo progetto venne costruita la macchina di Von Neumann, che propose lo studioso di origine ungherese (Von Neumann). Esso definì l’architettura di base che seguirono gli elaboratori degli anni successivi, definendo gli aspetti, il loro polo, quali erano i componenti, come dovevano funzionare, ecc.
  • Alfabeto  simboli su cui lavora la macchina, informatica è la disciplina che si occupa dell’elaborazione di simboli. Progetta un dispositivo su cui la macchina memorizza dei dati.
  • Definisce un dispositivo su cui la macchina può memorizzare dei dati, decidere di leggere o scrivere un determinato dato o modificare un contenuto. Nastro diviso in tante celle, in cui la macchina può scrivere o leggere un simbolo. Nastro equivale sostanzialmente ad una memoria.
  • Unità di controllo, unità che elabora i dati e usa il naso per leggere e scrivere, si muove lungo il nastro, è posizionata su una casella del nastro e governata da un’unità dl controllo. Può leggere il simbolo contenuto e se necessario sovrascriverlo.
  • Comportamento definito da un insieme di stati che regola il suo funzionamento.
  • Tabella di azione definisce cosa deve fare la macchina di turing per effettuare una certa elaborazione. Il suo comportamento viene definito da un insieme di stati che regolano il suo funzionamento. La componente che definisce in maniera precisa come si muove la macchina è la tabella d’azione. Funzionamento della macchina di turing determinato dalla tabella di azione, guidato da un insieme di regole. Il suo funzionamento viene determinato dalla tabella di azioni: se la macchina di Turing si trova in un certo stato e sta leggendo un certo simbolo allora fa un’azione. STATO INTERNO: unità di controllo C’è la tavola/tabella delle istruzioni è quella che regola il comportamento della macchina di turing Nell’azione può cambiare il contenuto del nastro, cambiare lo stato della testina, la testina si muove a destra e sinistra. C’è UN NASTRO BI-INFINITO che si espande sia a dx che sx Testina di lettura e scrittura che accede al nastro in lettura e scrittura Non c’è la memoria di massa

3 parti: piò cambiare il contenuto del nastro, lo stato della testina può essere cambiato, la testina si muove. Insieme di regole che è definito dalla tabella delle azioni permette alla macchina di effettuare una certa elaborazione. Ogni tabella specifica una macchina di turing. Macchina di turing che fa la somma, una che fa la sottrazione, una moltiplicazione. Ogni macchina di turing fa un certo tipo di elaborato. Turing, oltre ad aver creato questa macchina, creò anche la Macchina di Turing universale Primo modello riconosciuto di elaboratore generale: Macchina di Turing universale  differenza la macchina di turing che fa la somma prende in input due numeri e li somma ecc. ma ognuna di queste macchine può svolgere 1 singolo compito, quella universale è in grado di svolgere qualunque tipo di elaborazione automatica (sia somma che prodotto che differenza ecc.) da ciò prende il nome di universale. E’ simile ai nostri elaboratori che sono macchine universali. Come fanno ad avere questa capacità di svolgere tanti compiti: in input oltre ai dati devono avere anche le istruzioni che devono seguire  riceve i 2 numeri da sommare ma anche la codifica delle istruzioni, il programma che dice alla macchina di turing come fare a fare una determinata attività. Oltre ai dati riceve una descrizione del programma dell’elaborazione che deve eseguire. Definire qual è il potere di calcolo dei sistemi automatici: possono risolvere tutti i problemi i sistemi automatici? No. In quel periodo proposti modelli di calcolo alternativi a quelli di Turing: (in realtà equivalenti alla macchina di Turing, ossia se un problema è risolvibile da questi modelli può essere risolvibile anche dalla macchina di Turing e viceversa)

  • Tesi di Church-Turing: se ho un problema che può essere risolto da un sistema di elaborazione automatica allora può essere risolto anche dal modello di Turing. Infiniti modelli che possiamo proporre, non è possibile dimostrarlo per tutti i modelli di calcolo.
  • Calcolatori Turing- equivalenti, in grado di risolvere un problema che anche la macchina di turing sa risolvere. Necessito di avere il programma che effettua quella elaborazione, quel calcolo. DOMANDE TIPO ESAME: 1.C hi è considerato il primo programmatore della storia?: - Alan Turing; -Blaise Pascal; - Von Neumann; - Von Liebniz; - Ada King 2.Chi è considerato il padre dell’informatica?: -Alan Turing; 3.In quale periodo iniziò la commercializzazione di massa delle macchine di Turing? –Anni 50; -60; -70; -80; - mai

Elaborazione

I dati che vengono letti vengono modificati, si produce un certo risultato. Input- elaborarla producendo un certo risultato- output. Concetto di problema  la fase di elaborazione ha come scopo quello di risolvere un problema. Un problema consiste in un insieme di dati in input, e dobbiamo calcolare una soluzione, elaborare i dati per risolvere il problema. Parto dai dati input, li modifico e elaboro, infine calcolo la soluzione  algoritmo  Come facciamo a risolvere il problema, quali sono le modalità in cui io devo elaborare i dati per riuscire a trovare una soluzione. Algoritmo: descrizione di come facciamo a risolvere un determinato problema partendo da un certo insieme di dati, metodo per calcolare la soluzione di un problema. Processo che dobbiamo seguire. Nel definire il processo definisce la sequenza di istruzioni, algoritmi composti da sequenze di istruzioni, che ci fa capire come elaborare i dati, come estrapolarli, modificarli per riuscire a calcolare la soluzione (output). Caratteristiche dell’algoritmo:

  • fintezza, deve interrompersi e darci il risultato, deve terminare. Non può elaborare in maniera infinita.
  • eseguibilità, quando descriviamo un algoritmo dobbiamo tenere conto quali sono le istruzioni che possiamo svolgere, quali sono le istruzioni che ho a disposizione (es. posso avere la somma e la divisione, o per un altro solo la moltiplicazione e l’elevamento a potenza). Se il mio elaboratore ha già le istruzioni per risolvere le potenze, lo fa velocemente; se non le ha l’algoritmo dovrà usare un insieme di istruzioni limitato. Deve essere descritto basandosi su un insieme basilare di istruzioni.
  • correttezza, deve essere corretto. Obiettivo algoritmo riuscire a calcolare la soluzione, ciò vuol dire che qualunque siano i dati che riceve l’algoritmo, il risultato deve essere corretto.
  • determinismo, se io eseguo l’algoritmo di un certo insieme di dati più volte, tutte le volte che eseguo l’algoritmo di quel determinato dato il risultato deve essere sempre lo stesso.

Programmi e processi

Programma e algoritmo sono due termini legati ma non equivalenti: la differenza è che algoritmo usa una descrizione astratta di come avviene il processo di elaborazione, il programma è un algoritmo che è stato scritto e implementato in un determinato linguaggio di programmazione che è comprensibile ad un computer, ho tanti linguaggi. Processo: programma in esecuzione, quando noi prendiamo un programma e lo mandiamo in esecuzione. Da un algoritmo posso avere tanti programmi, quando ho un programma posso creare tanti processi. DOMANDE TIPO ESAME 1.Cos’è un algoritmo? –un programma eseguibile da un calcolatore; -le informazioni che devono essere eseguite da un calcolatore; -una delle componenti della macchina von Neumann; -l’inversa della funzione esponenziale; -una descrizione delle istruzione che consentono ad un esecutore di compiere autonomamente un’elaborazione 2.Cos’è un programma? –le informazioni che devono essere eseguite da un artefatto informatico; -un software in esecuzione su un computer; - una app in esecuzione su computer; -complesso di operazioni che un artefatto informatico è in grado di eseguire. (Processo)

Diagrammi di flusso  sistema grafico, descrive gli algoritmi e come avviene l’elaborazione, facilita la

comprensione dell’elaborazione. Descrizione di programmi e algoritmi, in forma grafica tramite d. di flusso, composti da blocchi che hanno funzioni differenti, es. alcuni servono per svolgere operazioni, altri per la lettura di dati, questi blocchi sono tra di loro collegati da quelle che vengono chiamate linee di flusso, che ci fanno capire cosa succede dopo un’elaborazione. Si crea un diagramma grafico cui blocchi sono collegati e il modo in cui son o collegati descrive come avviene l’elaborazione. Primi blocchi: blocco di inizio e di fine, rappresentati sempre come un ovale (vedi slide). Nella definizione di algoritmo abbiamo sempre un unico blocco di inizio (per quella proprietà dell’algoritmo che è determinismo); possono esserci più blocchi di fine a seconda dei dati che ho a disposizione. Frecce sotto o sopra l’ovale sono le linee di flusso; dal blocco di inizio escono, da quello di fine arrivano/entrano. Blocco operazione: definisce un’operazione di base, ha la forma di un rettangolo all’interno del quale scrivo qual è l’operazione che viene svolta. Due linee di flusso: una che arriva e una che esce. Blocco di input e output: blocchi che rappresentano la lettura di un dato input e la scrittura di un dato output. Fase di input blocco con una forma di parallelepipedo, fase di output blocco che ha la forma di un foglio con una curva

Assegnamento: stabiliamo qual è il valore di una variabile. freccia assegnamento che va verso il nome; nome della variabile; espressione a destra è il valore che assegniamo. X  11 = la variabile che si chiama X, e stabilisco che il valore è 11. X= 11.Se cambio in X  22 il valore 11 verrà cancellato e sostituito dal 22. X= 22. Nell’assegnamento posso includere nella parte di destra, dell’espressione, anche delle variabili: Y  X = definisco un’altra zona di memoria che si chiama Y, che conterà lo stesso valore di X, quindi: se x  11 e Y  X Y sarà 11 come X. Altro esempio: numero1  10; numero2  20; somma  numero1 + numero2. Una zona di memoria chiamato somma il cui valore è il contenuto di numero 1+ quello di 2 = somma 30. Diagramma di flusso slide somma di due numeri:

1^ blocco iniziale 2^ e 3^ blocco di lettura 4^ blocco operazione: blocco di memoria che si chiama somma a cui assegno il valore dei blocchi di lettura (numero1 e numero2) 5^ blocco di output 6^ blocco di fine Differenza di due numeri: scrivere un algoritmo che calcola la differenza tra il numero X e il numero Y (da leggere in input): 1^ blocco inizio 2^ variabile che chiamo X, a cui assegno il primo numero letto 3^ variabile Y, secondo numero letto 4^ blocco operazione che calcola la differenza da X e Y, definisco la variabile differenza: Differenza  X –Y 5^ blocco di output, definito il valore nella variabile differenza 6^ blocco di fine Casi in cui i dati non sono singoli, ma hanno relazioni tra loro  dati strutturati: non dato singolo ma insieme di dati, si chiamano strutturati perché descrivono delle proprietà di un insieme di oggetti che sono in qualche modo correlati. Dati che sono legati e non posso quindi rappresentarli come variabili indipendenti, ma ho bisogno di una variabile strutturata di dati strutturati, utilizzata per memorizzare i dati strutturati. 2 tipi di variabili strutturate:

Esempio: questa matrice la chiamo X 0; 1; 2; 3 anche in verticale. X2,1  10; X0,4  22. Esempio:

  1. Leggo due dati in input
  2. Scrittura di un vettore: memorizziamo nella prima cella il primo numero, nella seconda cella il secondo numero, nella terza cella la somma dei due numeri. Diagramma:

1^ blocco inizio 2^ lettura di vettore: il vettore letto è assegnato a C0. Esempio se leggo 10 assegno 10 alla cella C 3^ lettura C1. Se vale 20 scrivo 20 in C1. 4^ blocco operazione: assegnazione alla cella C2  C0+C1. Scrivo in C2 la somma ( 30 in questo caso) 5^ blocco output 6^ blocco di fine Fin’ora abbiamo visto diagrammi di flusso con elaborazione lineare senza deviazioni. Le elaborazioni interessanti hanno un comportmento diverso, le linee di flusso che possono essere seguite sono diverse e non c’è una sola linea sequenzialebisogna introdurre un altro blocco, Blocco di controllo, istruzione condizionale: condizione da verificare da cui escono due possibili percorsi alternativi. Vero  Numero >0  falso RIGUARDARE Ciò che scriviamo nel blocco di controllo sono valori chiamati booleani, che attraverso operazioni di confronto verifichiamo due valori numerici o stringhe, facciamo il confronto tra dei valori. Numero>0 l’esito di questo confronto è ciò che viene chiamato valore booleano, perché questi valori hanno la caratteristiche di essere in due soli stati (vero o falso). Esempio: numero  10 numero >0 è vero; numero  -3 numero >0 falso. Due sole condizioni. Operatori di confronto:

  1. == operatore di uguaglianza, verifica l’uguaglianza tra due valori, X == Y. Esempi: se X e Y valgono 5 il confronto è vero; se X vale 3 e Y 5 è falso; se X contiene promosso e Y anche è vero, se X promosso e Y bocciato falso.

Esempio:

  1. NEGAZIONE !(x==y): vera quando X e Y hanno valori differenti  Se X=5 e y=10: !(x==y) ha valore vero  Se X=10 e y=10: !(x==y) ha valore falso !(10 == 10) lo sto negando ma è vero, quindi! (x==y) è falso in questo caso
  2. CONGIUNZIONE (x>=100) & (x<y): vera quando x ha un valore:  Se x=50 (x>100) & (x<y) valore falso perché se ho x=50 e x>= 100, la prima parte è falso, quindi tutto sarà falso indipendentemente dal valore y.  Se x=100 e y=90 valore falso. (100>=100) & (100<90), seconda parte falsa quindi tutto sarà falso

 Se x=120 e y=200: (x>=100) & (x<y)  (120>=100) & (120<200) entrambe le parti sono vere allora complessivamente tutto sarà vero.

  1. DISGIUNZIONE (x>100) I (x<y): vera quando:  X ha un valore > 100; Se X= 101 e Y 70, prima parte vera e seconda falsa. Tutta la condizione quindi è vera perché ho una parte vera.  X ha un valore > di y; Se X= 70 e Y 101, prima parte falsa e seconda vera. Quindi tutto sarà vero.  X ha un valore > 100 e > di y; Se X è 90 e Y 80, tutte e due le parti false, tuto sarà falso. Strutture di controllo: i blocchi di controllo permettono di avere algoritmi non necessariamente sequenziali, ma permette di avere due linee di flusso che escono dal blocco, e mi permette di costruire le strutture di controllo, che mi permettono di costruire più ramificazioni, posso costruire percorsi di elaborazioni differenti. Strutture di controllo principali: diramazioni, iterazioni (cicli). LEZIONE 1/ Strutture di controllo principali:  Diramazioni: arriviamo al blocco di controllo e abbiamo due possibili strade (da qui diramazione), associate al fato che la condizione abbia vero o falso. La linea di flusso dipende dal valore di questa posizione, se vero segue una linea, se falsa un’altra. Costrutto di programmazione IF-THEN-ELSE (simile alla funzione ‘se’ del foglio di calcolo).  processo 1 e processo 2, blocchi operazioni. Posso fare operazioni anche dopo le diramazioni. Ci possono essere però diverse operazioni che vengon fatte dopo la diramazione.

Diramazione massimo tra 2 numeri  scriviamo un algoritmo che legge i numeri e restituisce il massimo. Blocco inizio; leggo due numeri e li memorizzo nelle variabili (blocco input); n1 > n2 seguo la linea di flusso esatta; blocco output assegno alla variabile max il valore numero 1 “Max  numero 1”; altro blocco di output “Max”, blocco di fine, sono 2. E’ possibile modificare il d. di flusso in modo tale da avere un solo blocco fine?

  1. Prima possibilità; un solo blocco fine e due frecce verso l’unico blocco output
  1. Prevedere una versione più compatta del d. di flusso. Ho un blocco di output dove max sarà numero 1 o 2 a seconda del valore delle variabili, quale sarà che soddisfa la condizione e che in base a essa quindi scelgo la linea di flusso da seguire. Tutti e tre sono esatti e vanno bene, ci sono delle varianti che non cambiano la sostanza ma è una questione di stile. Diramazione: minimo tra due numeri, scriviamo un algoritmo che legge due numeri e restituisce il minimo.