Anteprima parziale del testo
Scarica Informatica-Programmazione - Appunti. e più Appunti in PDF di Fondamenti di informatica solo su Docsity!
5/20/25, 11:46 PM Programmazione - Appunti ALGORITMI Informatica: studio sistematico dei processi algoritmici che descrivono e trasformano l’informazione: la loro teoria, analisi, progettazione, efficienza, implementazione c applicazione; Algoritmo: successione finita di istruzioni 0 passi che definiscono le operazioni da eseguire su dei dati (che formano l’istanza di un problema) per ottenere dei risultati (intesi come la soluzione dell'istanza specificata) Proprietà degli Algoritmi Un algoritmo deve essere: Finito: ogni istruzione deve essere eseguita in un intervallo finito di tempo e un numero finito di volte. Generale: fomnire la soluzione per tutti i problemi appartenenti a una data classe. Non ambiguo: i passi devono essere definiti in modo univoco e non ambiguo, evitando paradossi. Corretto ed Efficiente Calcolatore Hardware: unità di elaborazione centrale, memoria principale, memoria ausiliaria, periferiche; Software: istruzioni raccolte in programma. Memoria H Dispositivi È Progegsore i Dispositivi di input È (CPT) di oubput CPU: dispositivo che esegue le istruzioni di un programma “Solo operazioni molto semplici, come trasferimento di un dato oppure operazioni aritmetiche elementari ‘about:blank 1/14 5/20/25, 11:46 PM ‘about:blank Programmazione - Appunti Memoria principale: veloce, ma costosa e volatile (conserva il programma attualmente in esecuzione ed i dati da esso usati); Memoria ausiliaria: meno costosa e che perdura anche în assenza di elettricità, ma più lenta (utilizzata per conservare programmi e dati in modo più o meno permanente). In un Calcolatore i dati e le istruzioni sono codificati in forma binaria: Bit: può assumere due soli valori (0 ed 1): la elaborabile; piccola unità di informazione memorizzabile o Byte: pari a 8 bit (2*= 256 possibili valori). Sia la memoria principale che quella secondaria sono misurate in byte; la Memoria Principale non è altro che una lunga lista di posizioni numerate (ogni posizione contiene un byte) il numero di una posizione è detto indirizzo Un Calcolatore può trattare diversi tipi di dati (numeri, testi, immagini, suoni) «Tutti i dati devono essere per poter essere elaborati Dati di tipo diverso per essere codificati Locazione di memoria: sequenza di byte adiacenti associata al dato il cui indirizzo è l'indirizzo del primo byte della sequen: Ixpikwzo | _Daro @84 | 00011110 Primo dato: 585 | 00001001 2 byte #86 | 00000100 _ Secondo dato: 1 byte #87 | 01001100 188 | OLLLI100 Terzo dato: #89 | DIOI0IOI 4 byto #90 | 01001001 #91 | 0100011 Quarto dato: Codice ASCII Oco s01 010 ci: 100 101 10 cl 0000 Doo od o da coi L ù omo Lou ù u u uU LU wu CU 0 do o o 0100 DOTO& SO & ooo () * + i omo è 1203 4 5 67 ou 89 io< 303? 100 @ AB È DUE FO 6 101 HI JK LO MON 0 100 P_QUROS OT U VW 1 XxX Yoz IAC 1100 a boe do e fo E UO hi jo k do mono 0 MO pg ros oto uo vow ox vo z {1} 05 2/14 5/20/25, 11:46 PM Programmazione - Appunti Diagrammi a Blocchi ed Equazioni di Primo”Giatto Dent iecetermionee 7 ‘about:blank 4/14 5/20/25, 11:46 PM ‘about:blank Programmazione - Appunti Programma: Algoritmo scritto in linguaggio di programmazione: Dati di supporto “Produce dati in output Diversi tipî: Sistema operativo -Programmi applicativi -Già esistenti -Creati dall'utente Linguaggio Macchina: -Consiste di sequenze di 0 e 1 -Eseguito direttamente dal calcolatore Linguaggio Assembly: Di tipo simbolico -Richiede una traduzione aggiuntiva molto semplice Linguaggio ad alto livello: -Compromesso tra linguaggio naturale e linguaggio macchina -Esempi: FORTRAN, ALGOL, COBOL, LISP, APL, PROLOG, BASIC, Pascal, C, Ada, C+ +, Java, Python Esempio: Somma di due Numeri -Linguaggio Macchina: 000000000010000011000001000000100000 -Linguaggio Assembler: add $3, $2, $1 -Linguaggio ad alto livello: c=a+b traduce programma in linguaggio ad alto livello D programma in linguaggio macchina (più o meno) ice sorzonto — Compilare |__| dii 1 euiile Mac 08 Interprete: traduce ed esegue una dopo l’altra istruzioni programma sorgente. L’APPROCCIO DI JAVA -Uso codice intermedio detto byte-code -Linguaggio macchina di calcolatore virtuale Complice Gone SRI “Principale Vantaggio: PORTABILITA* i | ipa e 5/14 5/20/25, 11:46 PM ‘about:blank Programmazione - Appunti -Sintassi: tipo variabile_1, variabile_2, “Esempio Int punteggio; char lettera; double larghezza, altezza; Identificatore: nome di variabili (e di altro) 1. Non posso cominciare con una cifra 2. Contengono lettere, cifre, simbolo _(e simbolo $) 3. Sono sensibili alle maiuscole -Buone Norme 1. Devono avere un significato e suggerire utilizzo di variabile 2. Devono iniziare con lettera minuscola e seguire notazione “a cammello” - Esempio sommaPunteggioGiocatori 3. Non devono contenere il simbolo $ -Etrori di ortografia rilevati da compilatore [Nome |Tiro | MEMORIA ] byte intero 1 byte short intero 2 byte int intero 4 byte long intero 8 byte float |reale 4 byte double | reale 8 byte char carattere | 2 byte boolean | vero/falso | 1 byte 714 5/20/25, 11:46 PM ‘about:blank Programmazione - Appunti INTERVALLO DI RAPPRESENTAZIONE - byte interi nell'intervallo [-128, 127]. @ bit) - short — interi nell’intervallo [-32762, 32767]. —(16bit) - int interi nell'intervallo [-2147483648, 2147483647]. (32bit) - long— interi nell’intervallo [-2%,2%-1] . (64 bit) - float razionali tra_10e 10°? (approx.) in valore assoluto (32 bit) - double— razionali tra 10** e 10°*° (approx.) in valore assoluto. (64 bit) - char caratteri dell'alfabeto Unicode 2.0. (16 bit) - boolean — un valore tra i due seguenti Otrue, false (8 bi) Numeri in Virgola Mobile -Rappresentazione floating point di x: mantissa m ed esponente e tali che x=m- B° -Notazione scientifica: B=10, anche indicata con E “Esempio: 2.34E+2 è 234.0 e 1.234E-3 è 0.001234 -Mantissa ed esponente occupano una quantità fissata di memoria © sono limitati inferiormente e superiormente -Numer ISTRUZIONE DI ASSEGNAZIONE -Sintassi -Esempio punteggio = giuste-sbagliate; area = larghezza*altezza; punteggio = punteggio+1; -Segno di uguale detto operatore di assegnazione Espressione: variabile, costante o espressione costituita da operatori aritmetici Valore di Ritorno -Un’espressione come (base*altezza)/2 produce un valore -Se il valore di base è 20 e quello di altezza è 9 allora il valore prodotto è 90 -Questo valore è detto valore di ritorno dell'espressione -Quindi non diremo che il “valore prodotto è 90” ma che il “valore restituito è 90 Prima viene calcolato il valore dell'espressione alla destra del = e tale valore viene poi usato per impostare il valore della variabile alla si double base; double altezza; double area; base = 4.0; altezza= 8.0; 8/14 5/20/25, 11:46 PM ‘about:blank Programmazione - Appunti punteggio +5 equivalente a punteggio = punteggio+5 -Espressione a destra dell’uguale trattata come singola unità x *= atb; equivalente ax =x*(aYb); e non ax=x*atb; -Due tipi: quelli su una singola riga e quelli su righe multiple -Sintassi /l commento limitato a una singola linca /* commento distribuito su più linee senza limiti sul numero di righe */ “Esempio boolean primo; // indica se il numero è primo /* La variabile primo indica se il numero è primo: la primalità viene determinata dividendo il numero per tuttii suoi possibili divisori. */ boolean primo; -Conversione: necessaria per assegnare valore di un tipo a variabile di tipo diverso. -Cambia il tipo del valore, non della variabil -Implicita (ovvero automatica): si assegna valore di tipo “più basso” a variabile di tipo “più alto” nella gerarchia ‘oe Tiro] Mexionia byte intero | 1bye 1. double stort 2 bre 2. ficat int dbyle Toag intero | Blyte 3. tons Ue , int double reale 8 byte 5. short char carattere |2byte 6. byte boolean | vera/falso | 1 bye -Esempio double x; intn=5; x= ni //x contiene 5.0, n non viene modificata System.out.printin (*x:”+x) Tipo di un'espressione -Operandi tutti dello stesso tipo: tipo del valore di ritorno è quello degli operandi -Operandi di tipo diverso: il tipo del valore di ritorno è quello più alto nella gerarchia «Esempio double a; intn=2; double x = 5.1; 10/14 5/20/25, 11:46 PM Programmazione - Appunti ‘about:blank 11/14 5/20/25, 11:46 PM Programmazione - Appunti ‘about:blank 13/14 5/20/25, 11:46 PM Programmazione - Appunti ‘about:blank 14/14