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


Informatica Generale - Prof. Avellone, Appunti di Elementi di Informatica

Dispensa con nozioni appunti lezioni, teoria e screenshot delle schermate degli esercizi svolti in classe. Sono presenti all'interno della dispensa risoluzione quesiti ed esercizi dei temi d'esame e spiegazioni passaggio per passaggio degli stessi.

Tipologia: Appunti

2018/2019

In vendita dal 05/10/2019

f.ciandoc
f.ciandoc 🇮🇹

4.3

(3)

5 documenti

1 / 118

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
LEZIONE 1 28/09/2017- Introduzione
Operazioni di somma e di scambio tra numeri
Nella prima parte della lezione abbiamo visto un’operazione semplice di somma su Excel attraverso
la relativa funzione e come si effettua lo scambio tra due numeri contenuti in due celle diverse.
HP di avere un numero di bicchieri A1,B1,C1… sono contenitori che possono avere due utilizzi
principalmente: 1) mettere qualcosa all’interno o 2) utilizzare il contenuto.
Se ad es. abbiamo due bicchieri, uno con Coca Cola e l’altro con Aranciata e vogliamo scambiare
il contenuto, dovremo ricorrere all’utilizzo di VBA (Visual Basic for Applications) attraverso
ALT + F11. All’interno di questa nuova finestra dovremo inserire la funzione di copia del
contenuto di quelle celle nelle altre, e successivamente andare a controllare la veridicità della
ricetta attraverso il tasto ESEGUI (F5) >.
Costrutti di base
1) ASSEGNAMENTO: Imparare a scrivere istruzione per modificare contenitore. Prendo ad es.
quello che c’è nella cella A1 e vado a modificare la cella C1 DUPLICAZIONE, fa una copia ma non
svuota.
2) SELEZIONE: Scrivere un’istruzione che permetta durante l’esecuzione di scegliere tra due
alternative.
Ad esempio “se i funghi sono secchi li metto nell’acqua, altrimenti li tolgo” viene eseguita
una della due operazioni.
3) ITERAZIONE: Scrivere un’istruzione con ripetizione.
Algoritmo sono le istruzioni da eseguire in sequenza (ricetta), se li consideriamo insieme alle
intestazioni otteniamo il programma.
Ogni volta per aprire un nuovo oggetto dovrò seguire la procedura, nella finestra a destra
RESOURCE FILES-TASTO DX-“ADD NEW ITEM”.
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 Informatica Generale - Prof. Avellone e più Appunti in PDF di Elementi di Informatica solo su Docsity!

LEZIONE 1 – 28/09/ 2017 - Introduzione

Operazioni di somma e di scambio tra numeri

Nella prima parte della lezione abbiamo visto un’operazione semplice di somma su Excel attraverso la relativa funzione e come si effettua lo scambio tra due numeri contenuti in due celle diverse. HP di avere un numero di bicchieri A1,B1,C1… → sono contenitori che possono avere due utilizzi principalmente: 1) mettere qualcosa all’interno o 2) utilizzare il contenuto. Se ad es. abbiamo due bicchieri, uno con Coca Cola e l’altro con Aranciata e vogliamo scambiare il contenuto, dovremo ricorrere all’utilizzo di VBA (Visual Basic for Applications) attraverso ALT + F11. All’interno di questa nuova finestra dovremo inserire la funzione di copia del contenuto di quelle celle nelle altre, e successivamente andare a controllare la veridicità della ricetta attraverso il tasto ESEGUI (F5) >.

Costrutti di base

1) ASSEGNAMENTO : Imparare a scrivere istruzione per modificare contenitore. Prendo ad es.

quello che c’è nella cella A1 e vado a modificare la cella C1→ DUPLICAZIONE, fa una copia ma non svuota.

2) SELEZIONE : Scrivere un’istruzione che permetta durante l’esecuzione di scegliere tra due

alternative. Ad esempio “se i funghi sono secchi li metto nell’acqua, altrimenti li tolgo”→ viene eseguita una della due operazioni.

3) ITERAZIONE : Scrivere un’istruzione con ripetizione.

Algoritmo sono le istruzioni da eseguire in sequenza (ricetta), se li consideriamo insieme alle intestazioni otteniamo il programma. Ogni volta per aprire un nuovo oggetto dovrò seguire la procedura, nella finestra a destra RESOURCE FILES-TASTO DX-“ADD NEW ITEM”.

LEZIONE 2 – 29/09/ 2017 – Def Variabile + Intro Assegnamento

Il costrutto più articolato è l’ assegnamento rispetto agli altri. X e y sono gli argomenti della

funzione, il significato di x e y qual è? Sono i dati, rappresenta quello che devo dare a chi mi esegue la funzione affinché possa trovare il risultato della funzione. X + Y dopo l’uguale prende il nome di corpo della funzione, descrizione di quello che deve essere fatto per trovare risultato giusto. X e Y rappresentano due valori della funzione, ma che tipo di valori devo dare? Sono numeri reali e quindi bisogna indicare se y e x sono numeri reali f(x,y) = x + y. Questa è una funzione che prende numeri reali e calcola un numero reale. f(x,y) = <x + y, x*y> → è una coppia f: RxR → RxR prende due numeri reali e restituisce due numeri reali. R x R è il dominio, metto l’asterisco al posto del “per”.

N.B.TASTI : Alt 060 corrisponde al MINORE alt 062 corrisponde al MAGGIORE.

Quando realizzo funzione al calcolatore, bisogna tenere conto di un’altra cosa. Calcolatore composto da Microprocessore (CPU), Memoria centrale (RAM), Periferiche (Video, Mouse, stampante) che hanno due funzioni, periferiche di input (tastiera, mouse) e di output (stampante) o doppia funzione di input e output (chiavetta USB).

Gli argomenti della funzione servono per descrivere quali sono i dati che devono essere

utilizzati per ottenere risultato. Una funzione che non ha parametri è una funzione costante, f(x) = 3 è ammissibile, non da sempre lo stesso risultato, ma i dati vengono dati al calcolatore non attraverso parametri ma con periferiche. g() = 6. Se prendo dati di periferiche non è più una funzione costante, perché non da sempre lo stesso risultato ovviamente se arriva un dato dalla tastiera ad esempio anche nel caso in cui la funzione non ha parametri. Ho il problema trovo l’algoritmo (soluzione) nel corpo della funzione <x + y, x*y> nella funzione MAIN e a quel punto scrivo il programma. Il calcolatore ignora il numero di spazi, guarda le istruzioni al netto della formattazione. Tutto quello che segue gli slash sono commenti al programma. int main() { } → PER FARE PARENTESI GRAFFE ctrl + alt + shift + [

Funzione main è detto anche punto di inizio della funzione, il calcolatore se non c’è la

funzione main non fa niente. E’ una funzione costante? Dipende da quello che c’è nel corpo, se inserisco dati dalla tastiera. INT nella funzione main devo metterlo, è il tipo del risultato della funzione, il tipo di risultato della funzione f(x,y) è un numero reale. Sotto con “int” dico che la soluzione è un numero intero. La funzione potrebbe avere dei dati che inseriti con la tastiera può ricevere. Il fatto che c’è scritto “int” non significa avere un numero intero come risultato perché posso inserire valore da un dispositivo. { … } questo è il corpo della funzione.

  • ESEMPIO: scambiare contenuto dei due contenitori.

Dobbiamo anzitutto costruire il contenitore con una funzione di definizione di variabile

(che è appunto un contenitore). Nel nostro problema mi servono 3 contenitori, A1 , B1 , C1. La regola nella scelta dei nomi che utilizziamo noi è semplificata.

Significa il numero del dispositivo di input lo metterà in a1 e l’altro in b1. Il primo dato digitato nella tastiera verrà messo in a1 e l’altro in b1, ogni volta che c’è istruzione di cin viene preso un dato che viene consumato. Metto pallino rosso su cin per fare vedere cosa succede quando calcolatore esegue istruzioni. ➢ Per eseguire mando esecuzione con la freccia verde. Se andiamo nel menu DEBUG , se programma è in esecuzione c’è funzione di STEP OVER (F10) che vuol dire esegui istruzione puntata dalla freccia gialla. Questa istruzione significa prendi un dato digitato dalla tastiera e mettilo in output. Appare una schermata nera in cui inserisco i valori digitati dalla tastiera riferiti alle variabili. ▪ Esce schermata in cui inserisco numero 67 poi premi tasto verde continua e poi inserisco il 23 nel secondo.

RIEPILOGO:

Anzitutto devo mettere: #include using namespace std; Questa scrittura consente di utilizzare la libreria di input e output, ossia questo: cin >> a1; cin >> b1; se manca la scritta iniziale il calcolatore non può eseguire.

  • Cin dice il dato devi prenderlo dallo standard input ossia da tastiera. Le frecce >> il dato dalla tastiera deve andare dove? La prima dice nella variabile A1, la seconda in B1. Nella parte destra si scrivono i contenitori.

cin >> b1; cin >> a1; se inverto cambia il problema, conta l’ordine.

Quello che c’è in A1 devo copiarlo in C1 → ISTRUZIONE DI ASSEGNAMENTO.

  • Contenitore che deve essere modificato si trova a SX. Quindi scriverò c1 = a1; fa la copia (duplica quello che c’è in a1 in c1) a1 = b1; E poi infine b1 = c1;

N.B. L’assegnamento deve terminare con il punto e virgola.

Quando c’è dichiarazione di variabili ,

indico il tipo di variabile (int), poi un elenco delle variabili con virgola che sto definendo.

Menu Build – Build solution controlla la

sintassi del programma e sotto compaiono gli errori, ad es dimentico virgola dopo a1 mi da questi errori. c1 = a1;

ASSEGNAMENTO è fatto da due parti. Nella

parte a SX ci va variabile che deve essere modificata, a DX ci va un’espressione, tutto terminato con un punto e virgola.

  • Prima si fa BUILD SOLUTION , poi se dà esito positivo mando in esecuzione. int a1, b1, c1; cin >> a1; cin >> b1; possono essere scritte in maniera più semplice, se devo dichiarare più variabili dello stesso tipo, ossia posso fare una dichiarazione per ogni variabile. int a1; int b1; int c1; e poi posso cambiare anche questo: cin >> a1; cin >> b1; così: cin >> a1 >> b1;

N.B. Per l’assegnamento non posso fare così, cioè non posso mettere tutto su una riga.

WARNING E’ DIVERSO DA ERRORE: Ci viene indicata la riga in cui ha riscontrato il problema e il messaggio.

Warning: significa che ci suggerisce fai

attenzione che l’algoritmo non è giusto, il primo messaggio dice ad es. “è una variabile locale non utilizzata”. Non sono errori, ossia non sa cosa fare, ma gli sembra strana

la richiesta.

Alla fine ci dice che il programma non ha trovato errori. Se invece dimentico ; dopo w → Errore di sintassi.

▪ PER MANDARE IN ESECUZIONE IL PROGRAMMA: DEBUG O FRECCIA

Dobbiamo vedere se le istruzioni che abbiamo dato modificano correttamente i valori delle variabili. Per vedere contenuto dobbiamo interrompere contenuto (pallino rosso) prima che termini il programma ossia quando vengono distrutti. Se mando in esecuzione col pallino rosso, si vede la freccia gialla che ci indica che il programma è stato eseguito fino a quel punto, l’istruzione indicata dalla freccia non è ancora stata eseguita. A quel punto posso vedere valore delle variabili o riprendere esecuzione. L’avvio dell’esecuzione apre la finestra nera, in cui inseriamo i dati da tastiera (finestra di input e output). Compaiono i due pannelli sotto, se per errore chiudo i pannelli devo andare nel menu Window e fare reset window layout.

A noi interessa Locals ,

ci sono tutte le variabili che abbiamo dichiarato nel programma. Interrompo l’esecuzione perché non ho altre istruzioni oppure se ho altre istruzioni con il pallino rosso mando avanti. A noi interessa capire se istruzioni sono state scritte correttamente. Dichiarazione di assegnamento – Prima istruzione N.B. E’ l’unica istruzione che consente di modificare i contenitori. Istruzione assegnamento può essere scritta in diversi modi.

// nome_variabile (qual è la variabile che deve essere modificata) = espressione ;

diciamo che vogliamo modificare la variabile x inserendo il valore nel contenitore dell’espressione a DX (l’espressione deve corrispondere alla variabile ossia deve essere contenuto soltanto un numero intero),

x = 6; z = 9 + 3; y = sqrt →radice quadrata (4.5) + 3; u = x * 2; si possono utilizzare anche espressioni con variabili

  • siccome utilizzo radice quadrata devo inserire nella funzione questa scrittura qua:

#include <math.h>

l’istruzione x = 6, il calcolatore con l’assegnamento calcola valore dell’espressione, se è dello stesso tipo della variabile viene copiato nel contenitore. Se premo F10 STEP OVER il valore sotto viene 6. Le immagini sono riferite al calcolo di ogni variabile.

▪ L’assegnamento non fa altro che sostituire il

valore che aveva precedentemente la variabile.

ESPRESSIONI NUMERICHE

Quando vado ad eseguire nella finestra nera esce 1.

Posso usare le varie espressioni (moltiplicazioni,

divisioni e sottrazioni oltre che addizioni).

Per fare divisione bisogna prestare attenzione a operandi,

se sono interi ad es 15/8→ uscirà 1.

Se almeno uno dei due è

decimale, la divisione verrà

fatta con la virgola

Quando operandi sono interi,

non da il resto, se vogliamo

ottenere il resto dobbiamo

utilizzare il carattere %.

Ossia così →→→→→→→→→→

ESPRESSIONI RELAZIONALI LOGICHE

Sono espressioni che danno risultato vero o falso.

0 = FALSO, 1 = VERA.

In questo caso compare schermata nera 1→ vero.

Per il maggiore uguale scrivo > =.

Per valutare se 15 è uguale a 8.

== significa uguale mentre! = è il diverso.

Operazione di negazione

Non è vero che 15 è diverso da 8 → è falsa.

Operazione di congiunzione si indica con e commerciale

Vera se sono entrambi veri. 15 diverso da 8 e 34 maggiore di 12 , quindi se mando in esecuzione il calcolatore mi da vero. Se invece→→→→→→→→

Operazione di disgiunzione ||

Una disgiunzione è falsa se sono entrambi falsi,

disgiunzione inclusiva. Qua risulta vero perché non sono

false entrambe.

Se scrivo:

▪ Posso utilizzare anche le variabili , ossia utilizzarne il valore.

Le istruzioni sono seguite in sequenza, se non ho finito di eseguire la prima non posso eseguire la seconda.

ESEMPIO N°

Sia nel primo che nel 2 blocco le istruzioni possono essere molteplici, non solo una per forza.

  • ORDINE:

1) Espressione (x > 4);

2) Primo gruppo (if);

3) Secondo gruppo (else).

Di tutte le istruzioni ci interessa sapere il loro funzionamento, come calcolatore utilizza dati cioè variabili quando esegue istruzioni. L’unica istruzione che modifica le variabili è l’assegnamento, la selezione non modifica le variabili, a meno che nelle alternative ci sia un assegnamento. Nell’espressione verranno utilizzate se ci sono, le variabili. Prima controlliamo se ci sono errori, Build solution (errori di sintassi). Lo mandiamo in esecuzione e calcolatore ha dichiarato la variabile e si aspetta che metta un dato dalla tastiera. Qua dobbiamo inserire un valore intero (8), “ho comprato i funghi secchi” ad esempio. Premo invio, e poi va a valutare l’espressione, quanto vale espressione? 8 > 4 è vero e quindi calcolatore va ad eseguire solo la prima alternativa. Premo F10 (STEP OVER), si sposta sulla prima alternativa. Cout <<…

Doppi apici sono detti visualizzatori della sequenza (è espressione costante). “Endl;” significa vai a capo nella riga della finestra, poi compare finestra nera “il numero è mag di 4!!” Se premo ancora F10 cursore salta la seconda alternativa, poi va ad eseguire l’ultima istruzione cout << “ il programma…” scritta dopo istruzione di selezione. Premo F10 e nel video compare il messaggio.

**_1. ISTRUZIONE DI VARIABILE int x

  1. Cin >> x
  2. Blocco istruzione di selezione_** , istruzione composta che è formata da istruzioni più semplici. 4. E poi Messaggio che compare nella finestra nera.
  • SE MANCA LA PARTE ELSE Il costrutto è corretto, durante esecuzione calcolatore. Nella cin metto 2, non viene eseguita la prima alternativa perché espressione è falsa. Non essendoci alternativa non viene eseguita selezione, si va

all’ultima riga.

  • Costruiamo programma tale che se noi diamo valori al calcolatori risolve un equazione

di 2 grado.

// a x^2 + b x + c = 0. I dati che calcolatore deve elaborare sono a, b, c. Dobbiamo ottenere risultato di equazione di 2 grado. Anzitutto prima devo capire se ha soluzione poi nel caso ci sia devo trovare le due radici. Al calcolatore devono essere dati 3 valori e lui ci deve rispondere, noi la vogliamo (la risposta) scritta nelle variabili. La risposta del calcolatore, avrà bisogno di 3 righe, in una deve scrivere se c’è o non c’è soluzione, se c’è la soluzione ne servono altre due per scrivere risultato. Dovrà prendere valori dei coefficienti e scrivere in base ai valori scrivere nelle variabili il risultato delle equazioni. Il calcolatore diciamo nel procedimento di costruire le variabili solo quando servono, è inutile che le costruiamo subito ma prima bisogna vedere se ci sono soluzioni. VARIABILI sono x1; x2 (dove vanno le radici); h (dove scriveremo c’è la soluzione o non c’è). Pensiamo a quante variabili servono, non è necessario averne 3 per numero di dati, dipende da come risolviamo il problema.

Per fare il quadrato non c’è operatore ma c’è funzione che lo fa, ma utilizzo b*b più semplicemente. La parte sotto si modifica così: Delta maggiore di 0 diventa delta > 0; assegnamento sotto x1 = 0, possiamo utilizzare solo parentesi tonde.

  • N.B. Radice quadrata si indica come sqrt ( per utilizzare sqrt devo mettere sopra math.h ) La parte del secondo blocco è un costrutto di selezione. ➢ Dobbiamo andare a mettere punto interruzione su delta.

Eseguo il cin Inserisco valori a,b,c (4,2,-2) e avrò in questo caso sicuro delle soluzioni, premo invio.

Controllo se delta positivo :

  • Premo F10 e finisce il primo blocco e ha

finito l’esecuzione.

Per controllare bisogna fare i conti

dell’equazione e vedere se tornano.

ES: Vogliamo dare 3 numeri al calcolatore e ci deve dire qual è il più grande dei 3.

Se scrivo: In matematica dire se sono compresi è sintesi del dire che x > 3 e x < 8. Se voglio chiedere se è compreso devo scrivere così, non ci sono scorciatoie.

Ci Serve una variabile che chiamiamo risultato , questa

variabile conterrà il più grande tra questi numeri interi. Se il primo numero è maggiore del secondo (b), possiamo dire che il secondo non è il più grande quindi confronto primo con il terzo so qual è il più grande. E se succede questo il risultato è a, se non succede questo il risultato è c. Se il primo non è maggiore del secondo dovremmo confrontare il secondo con il terzo. Se il secondo è maggiore del terzo, il risultato è uguale al secondo altrimenti il risultato è = al terzo. Una soltanto verrà eseguita tra le alternative di assegnamento. In alternativa potevamo fare così; chiedere nella ricetta di fare confronto: Se è vero il risultato è a, se è falso quello basta confrontare secondo con il terzo.

Terza possibilità:

  • Se io dovessi darvi 100 numeri e voglio che trovate il più grande tra 100 numeri. Altro es. Se vi dico di sommare 1000 numeri. Come procediamo? Ci vengono dettati i numeri.

Prima il 2 poi ci da il 5, cancelliamo il 2 e scriviamo il 5 e via. Nel foglio di carta ci stiamo appuntando il più grande. Se ho il più grande dei numeri già dati, confrontiamo il più grande con il nuovo numero. Bastano due righe, il primo numero che ci viene dato lo mettiamo nella prima riga, nella seconda riga scrivo il numero nuovo e se è più grande lo metto nella prima riga. cin >> a ; risultato = a; cin >> a; Confrontiamo il primo con il secondo numero, lo copiamo nella riga risultato nel caso il secondo siamo più grande del primo. Quindi scriviamo: If (risultato < a) Risultato = a; (nella riga risultato c’è sempre il più grande tra i due).

  • Abbiamo utilizzato due variabili , prima nell’algoritmo ne abbiamo utilizzate