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 ed elementi di programmazione 1, Tesi di laurea di Algoritmi E Programmazione Avanzata

Questi appunti del corso Informatica ed elementi di programmazione 1 (anno accademico 2020/2021) introducono i concetti fondamentali della programmazione, partendo dalla definizione di programma come sequenza di istruzioni che trasformano input in output. Spiegano la differenza tra linguaggi compilati (come C/C++) e interpretati (come Python), e descrivono il processo di sviluppo software, dall'analisi del problema al debugging. Viene approfondito il concetto di algoritmo, con esempi pratici e requisiti come atomicità e non ambiguità. Il corso utilizza Processing per insegnare le basi della programmazione grafica, coprendo comandi per disegnare forme, gestire colori (RGB, CMYK, HSL) e lavorare con pixel e risoluzioni. Sono inclusi anche temi come variabili, tipi di dati e commenti nel codice, con un approccio pratico e intuitivo, ideale per chi inizia a programmare. Gli appunti combinano teoria ed esercizi, rendendo il contenuto accessibile e applicabile.

Tipologia: Tesi di laurea

2024/2025

In vendita dal 03/05/2025

charles-khama
charles-khama 🇮🇹

3.4

(23)

8.3K documenti

1 / 134

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
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 ed elementi di programmazione 1 e più Tesi di laurea in PDF di Algoritmi E Programmazione Avanzata solo su Docsity!

5/3/25, 11:32 PM ‘about:blank Informatica ed elementi di programmazione 1 Informatica cd elementi di Programmazione 1 Cosa è un programma? Ogni volta che si usa un computer (calcolatore], si eseguono dei programmi: - _ Sistemi operalivi: windows, linux, android, apple - Applicativi: word, excel, notepad Alcuni programmi vengono eseguiti automaticamente, senza che l'utente ne abbia il controllo [o se ne accorga]: antivirus, driver, vari servizi Un programma può essere definito come una serie di operazioni elementari, eseguite in sequenza, che trasformano un insieme di dati in ingresso (input] in un insieme di dati in uscita (output) PROGRAMMAZIONE La programmazione è l'attività di progettare e sviluppore programmi per un colcoletore. Informalmente, è come se il programmatore "insegnasse” al calcolatore come svolgere un determinato compiti (ad es. eccezione di apprendimento automatico “machine leaming") Lo scopo della scrittura di un programma è la risoluzione automatica di un problema (compito) Il risultato della programmazione è un programma scritto in un linguaggio di programmazione. L'informazione fistuzioni e dat) all'intemo di un calcelatere è codificata in rappresentazione binaria, ovvero con sequenze di0 e di 1 Quando un programma è in esecuzione, è memorizzato nella memoria principale: esso è rappresentato da una serie di numeri binari che cocificano le istruzioni eseguibili dall'unità centrale. L'utilizzo di un linguaggio di programmazione semplifica l'attività del programmatore. consentendo di esprimere istruzioni complesse in mado semplice. Un linguaggio di programmazione permelte di descrivere una procedura [sequenza di operazioni) nel modo simile al nostro ragionamento. È costituito da - un alfabeto con cui viene coshuito un vocabolerio, ovvero un insieme di parole chiave - une grammatica. ovvero un insieme di regole sintattiche per l'uso corretto delle parole del linguaggio. A differenza dei linguaggi nalurali, le regole dei linguaggi di programmazione (linguaggi formali) sono rigide. per garantire l'assenza di ambiguità Se il programma ripeta le regole del linguaggi macchina, e quindi eseguito sul calcolalore. 0. può essere tradotto [compilato] in linguaggio ll compilatore è il programma che traduce una serîe di istruzioni scritte in un linguaggio di programmazione [codice sorgente] in ‘linguaggio macchina' I linguaggi che seguono questo approccio si dicono linguaggi compilati; ad esempio C/C++ 1/134 5/3/25, 11:32 PM ‘about:blank Informatica ed elementi di programmazione 1 Un allro approccio è quello dei linguaggi interpretati. = Un interprete è un programma che eseguo alfri programmi. = Un inguaggio interpretato è un linguaggio di programmazione le cui istruzioni vengono eseguite da un interprete (cs. Python] L'esecuzione di programmi scritti in un linguaggio interpretata è di salito meno efficiente rispetto di inguaggi compilati. PROGETTO SOFIWARE Di soîito comporta | seguenti poss - Formulare il problema (specifica dei req - Capire il problema e scomporto in parti gestibili (analisi) - Progettare uno soluzione [algoritmo] - | Implementare la soluzione (scrittura del codice) -- Testore la soluzione e coreggere eventuali errori (verifica, testing e debugging] - Tenere aggiomato ll programma [manutenzione] ALGORITMO Un algoritmo perla risoluzione di un problema: - È una sequenza di passi discreti: di lunghezze finita, deterministici (ogni passo dell'algoritmo dev'essere ben stabilito), ripetibile - | Che producano la soluzione del problema - Una successione di istruzioni o passi che definiscono le operazioni da eseguire sui dati per ottenere i risultati - | Procedimento che permette la risoluzione di specilici problemi mediante l'applicazione di una sequenza finita di precise istruzioni che, a loro volta, devono essere interpretate ed eseguito fino alla loro conclusione seguendo un ben preciso ordine. {un digorimo nella vita reale può essere ad esempio la ricetta che uflizziamo in cucina per realizzare un compito] | passi che costituiscono lo schema devono essere "elementari", ovvero non ulteriormente scomponibili [alomicilà); essi devono essere inlerpretabili in modo cirello e univoco dall'esecutore, sia esso umane 0 artificiale (non ambiguità) L'algoritmo dev'essere finito, ossia composto da un numero definito di passi legati ad una quantità definitiva ci dti in ingresso (finitezza]. L'esecuzione deve avvenire entro un tempo finito (terminazione) e deve portare un risultato univoco feffettività) Allo scopo di rendere meno complessa la procedura di scrittura e compilazione di un programma: sono stafi sviluppati programmi per supportare il programmatore nel suo lavoro. Tali programmi sono definiti ambienti di sviluopo integrato (Integrated Development Environments, IDES) Normalmente comprendono piè componenti, ra cui - Un editor - Un compilatore - Un debugger Sistema perl controllo di versione [non sempre presente] 2/134 5/3/25, 11:32 PM ‘about:blank Informatica ed elementi di programmazione 1 Ogni punto in canvas è un pixel: per visualizzare un punto, possiamo usare il comando point[X.Y] dove X= horizontal coordinate e Y = vertical coordinate. Se lo sketch non è in esecuzione, forse hai commesso un errore di battitura 0 di sintassi, Controlla il messeggio qui sotto: il colore rosso significa errore, il programma non può essere eseguito. Per meggiori informezioni bisogna cliccare sulla barra degli errori, Se vedi un trattino basso ondulato rosso {come in MS Word], puoi ottenere alcuni suggerimenti, se vieni con il cursore sopra (0 ci clicchi sopra) Colore arancione = alenzione, il programma polrebbe essere eseguito Per visualizzare una linea, puoi usare îl commendo fne[X1. Y1, X2, 12] dove: = X1,Y1 = punto diinizio + _x2.Y2= punto di fine Entrambi i punti necessitano di 2 coordinate. tine(12.52k 4/134 5/3/25, 11:32 PM Informatica ed elementi di programmazione 1 Cosa succede se la mia linea e “Iuori portata"? - Cerca ancora di disegnarlo - Mancaune parte della nea - Non ci sono messaggi di errore - Tali errori possono essere fiustranti - Funziona allo stesso modo per altri comendi grafici Per disegnare un rettangolo, dobbiamo utilizzare il comando rect[X1, Y1, W, H) dove: + x1.Y1 = punto di partenze + W= base * H= altezza »__Wxtt = dimensioni in pixel del rettangolo nat reail4, 553) Per disegnare un ellisse, dobbiamo ufiizzare il comando ellipse[X1, Y1, W. Hj; se W=H otteniamo un cerchio. A {a \0, atoms Per disegnare un arco i primi parametri sono gli stessi dell'ellisse, gli ultimi due segnano il punto ci inizio e line. Note: l'inizio e l'arresto dell'arco sono in RADIANTI, ufilizzare i radianti (deg) per convertire. ‘about:blank 5/134 5/3/25, 11:32 PM ‘about:blank Informatica ed elementi di programmazione 1 Quando il programma diventa lungo, è un'ottima idea aggiungere dei commenti - 1 commenti non sono stati completati - 1 commenti sono per gli umani che cercano di copire Î codice ll medo piè semplice per aggiungere un commento è usare spesso //. che spesso viene utilzzato per ‘disattivare’ temporaneamente una riga di codice senza cancellarla. Nel tour aggiungere molti commenti. ANALOGICO VS DIGITALE Differenze: conisponde alle differenza fra una rappresentazione continua e una rappresentazione discreta di determinate grandezze. La digitalizzazione di un'immagine avviene in due fasl - Trasformazione di un'info continua in una collezione di informazioni discrete = Codifica approssimata delle informazioni discrete Il caso piè semplice sone le immagini in bianco e nero senza Îvelli di grigio. Per digitalizzare suddividiama l'immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante. IPIXEL 1 quadratini della griglia seno chiamati pixel (picture elements) e sono intesi come unità costituenti dell'immagine. La codifica di un'immagine consiste nella codifica dei pixel in cui viene scamposta l'immagine. Assumiamo che un pixel sia codilicato con un singolo bit che vale: bi - se nel pixelil bianco è predominante - 1 se nel pixelil nero è predominante È necessario definire delle convenzioni per ordinore lo griglio dei pixel in una sequenza: per esempio, assumendo che i pixel siano ordinati dal basso versa l'alto e da sx verso dx, con questa convenzione la rappresentazione della figura sarà data dalle sequenza di zeri e uno. 0000000 0111100 0110000 0100000 _S Non sempre 1l contorno della figura coincide con la griglio. Quello che si ottiene nella codifica è un'approssimazione della figura originaria: se riconverliamo la sequenza in immagine olleniamo: La rappresentazione sarà piè fedele all'aumentare di pixel, ossia al diminuire delle dimensioni dei quadralini della griglia in cui è suddivisa l'immagine. ll numere di pixel in cui è suddivisa un'immesgine si chiama risoluzione e si esprime con una coppia di numeri (es. 640x480 orizzontali x verticali] 7/134 5/3/25, 11:32 PM Informatica ed elementi di programmazione 1 Ogni disposilivo ha la sua risoluzione massima 640x480, 19201200, 3000x2000.. Alcune henno dei nori = VGA — 640x480 Full HD — 1920x1080 Non è possibile visualizzare l'immagine piè grande della risoluzione dello schermo. immagini senza livelli di chiaroscuro. Le immagini in bianco e nero hanno diversi livelli di nlensilà di grigio. Per ogni pixel si slabilisce il suo livello medio di grigio: a lale livello viene assegnalo convenzionelmente un numero, per esempio un intervallo 0...255 [0 = nero, 255= assegnando ad ogni pixel 0 oppure 1 è possibile codificare solo n | lanca) Nel modo simile possiamo codificare le immagini a colerî; si tratta di individuare un cero numero di sfumature di colore differenti e di codificare ogni sfumatura mediante un'opportuna sequenza di numeri Ad es. i monitor utilizzano un num ro di colori per pixel che va da 256 fino a 16 milioni di colori Esistono vari standard della co: Ogni sistema di rappresentazione dei colori si basa su variabili numeriche che: = Possono essere rappresentate su assi cartesiani Descrivono degli spozi geometrici Gli spazi colore si suddividono in due gruppi: - | Spazi relolivi (device dependeni) p.e. RGB - Spazi assolulî [device independent] p.e. Standard CIE Esempi: o RGB o CMY/CMYK o HSL(H=Hue ina o tonalità, 5 = Saturation, L = lightness] ‘about:blank 8/134 5/3/25, 11:32 PM ‘about:blank Informatica ed elementi di programmazione 1 TRASPARENZA DEL COLORE Per far trasparire alcuni disegni “sotto” ad altri, aggiungiamo la tresparenza specificando un auarto parametro: » Fillo, 255.0, 255]: // opaco »__Fil{255, 0,0, 125]; // 50% trasparente completamente trasparente completomente opaco 7 DATA Ogni pezzo di informazione è memorizzata in forma binaria 0 e 1) - Immagini e video - Suoni e musica - Libri - La tua posizione a la data di nascita - Tuoi soldi - Font Diversi pezzi di informazioni richiedono diverse quantità di memoria per essere immagazzinati cd esempio, una foto in risoluzione 640x280 occupa meno memoria rispetto alla foto in risoluzione 3000x2000. VARIABILI Servono a MEMORIZZARE un dato nella memoria del computer. Come ricordare dove ho inserito un pezzo di dati? «Ogni variabile ha il suo nome univoco. = Ogni volta che i nome di una variabile appare in un programma, verrà sostituito dal suo valore [la parte di dali memorizzata]. TIPLDI VARIABILI E "DIMENSIONI" In Proccesing (ma anche in Jeva 0 in molti altr linguaggi) le variabili possono avere tipi civersi 10/134 5/3/25, 11:32 PM Informatica ed elementi di programmazione 1 ‘about:blank 11/134 5/3/25, 11:32 PM Informatica ed elementi di programmazione 1 ‘about:blank 13/134 5/3/25, 11:32 PM Informatica ed elementi di programmazione 1 ‘about:blank 14/134 5/3/25, 11:32 PM Informatica ed elementi di programmazione 1 ‘about:blank 16/134 5/3/25, 11:32 PM Informatica ed elementi di programmazione 1 ‘about:blank 17/134 5/3/25, 11:32 PM Informatica ed elementi di programmazione 1 ‘about:blank 19/134 5/3/25, 11:32 PM Informatica ed elementi di programmazione 1 ‘about:blank 20/134