











Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Parte di C di informatica B, corso accademico 24/25
Tipologia: Appunti
1 / 19
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!












Informatica = la disciplina che si occupa di rappresentare ed elaborare l’informazione, che può essere riguardo l’età, esami, dati di temperatura, o di qualsiasi altro tipo. Information Technology = incorpora, oltre all’informatica, gli aspetti hardware e di comunicazione. I primi calcolatori (macchine di calcolo) hanno avuto inizio nell’800, ma nel ‘900, per scopi bellici sono nati i calcolatori programmabili, cioè quelli che non hanno un compito prefissato, su cui ci si può costruire programmi. Il primo calcolatore programmabile è stato l’ENIAC, che occupava un’intera stanza e aveva una capacità di calcolo e di memoria altamente già superata al giorno d’oggi. Esso era costituito da componenti che si danneggiavano quotidianamente e l’attività di programmazione era molto fisica (si spostavano cavi). Il computer di Dadda (1954) è stato il primo computer arrivato in Europa (UK già avanzata). Al giorno d’oggi i dispositivi elettronici sono diventati di uso quotidiano, difatti si parla di un fenomeno definito come Internet delle cose, cioè quella rete di dispositivi fisici dotati di sensori, software e connettività di rete, che permettono loro di raccogliere ed esprimere informazioni scambiandole con altri dispositivi. Un esempio di IoT è il cloud. Definizioni Informatica = studio sistematico degli algoritmi che descrivono e trasformano l’informazione si occupa della teoria, dell’analisi, della progettazione, della realizzazione, dell’applicazione, della verifica di efficienza e di correttezza degli algoritmi. Algoritmo = sequenza di passi che portano alla realizzazione di un compito, ad esempio: istruzioni di montaggio di uno scaffale. Esecutore = ciò che deve essere in grado di comprendere ed eseguire un algoritmo. Calcolatore = ciò che è in grado di eseguire algoritmi descritti in linguaggio macchina (sequenza di 0 e 1). Ovviamente ci deve essere una corrispondenza tra sequenza di cifre e operazioni, convenzionata quando il calcolatore è stato costruito. Linguaggio macchina = insieme di istruzioni (sequenza di bit) che il calcolatore può eseguire. Programma = compilatore in grado di operare delle trasformazioni da un linguaggio più vicino a noi al linguaggio macchina. = algoritmo descritto in un linguaggio comprensibile dal calcolatore. Compilatore = mediatore tra un programma scritto in un linguaggio di alto livello e il programma in linguaggio macchina. ci permette di arrivare a un programma comprensibile al calcolatore. N.B il compilatore è esso stesso un programma eseguito dal calcolatore. L’interprete = durante l’esecuzione, legge ogni istruzione e la traduce in comandi in linguaggio macchina per il calcolatore. il programma viene trasformato in linguaggio macchina durante l’esecuzione, invece di farlo prima. Ambienti di programmazione = forniscono gli strumenti a supporto della programmazione. offrono editor per scrivere i programmi, compilatori per creare codici oggetto per ogni parte del programma. Debugger = componente che permette di capire come si comporta il programma durante la sua esecuzione. Utile durante un errore del programma. Struttura del calcolatore (modello di Von Neumann) Un calcolatore è costituito da:
In questo esempio servono 10 bit per rappresentare gli indirizzi di tutte le celle disponibili: 210 = 1024 (una kiloparola)
Se si ha una limitazione riguardo al numero di bit e si vuole lavorare con dati che occuperebbero più bit come si fa? Vi è proprio una scienza del calcolo numerico che si occupa di decomporre la rappresentazione del numero e del calcolo in modo tale che sia gestibile. ISTRUZIONI ESEGUIBILI DALLA CPU
ESEMPIO con operazione aritmetica Innanzitutto, dobbiamo acquisire i dati da una periferica, essi vengono messi nella RAM, poi dovremmo prenderli e metterli nei registri operandi della CPU. Infine, potremmo fare l’operazione di somma.
Acquisizione primo numero
Il linguaggio C
Obblighi sintattici: #include : libreria che contiene un insieme di programmi/funzioni che noi possiamo utilizzare (standard input e output). int main ( ) int : il programma restituisce attraverso il sistema operativo un valore intero, cioè lo 0 (return 0) se non vi sono errori. main : parola chiave con che indica l’inizio del programma ( ) : contengono parametri che il sistema operativo manderà in esecuzione (parte NON AFFRONTATA) { } : delimitano il blocco di istruzioni che costituisce il main, possono essere utilizzate per delimitare cicli o istruzioni di selezione ; : ogni istruzione deve essere conclusa dal punto e virgola Istruzioni di OUTPUT Stampa di una stringa (sequenza di caratteri)
Compito: Acquisisci da standard input una sequenza di 10 numeri e scrivi su standard output il valore massimo e minimo della sequenza. #include int main ( ) { int x, max, min, contatore; contatore = 0; while (contatore < 10) { printf(“Numero %d: ”, contatore + 1); scanf( “%d”, &x); if(contatore = =0) { max = x; /quando leggi primo numero, inizializza sia max che min con quel numero/ min = x; } else { if (x > max) { max = x; } if ( x < min) { min = x; } } contatore = contatore + 1; } printf(“valore massimo: %d\n, max); printf(“valore minimo: %d\n, min); return 0; } Le variabili Tipi di dato : insieme di valori ed insieme di operazioni applicabili ad esso. Ad esempio “tipo intero” significa fare riferimento a un insieme di valori caratterizzanti di questo tipo (intero) + un insieme di operazioni associate a questi valori. Ogni tipo di dato ha associata una rappresentazione nella memoria del calcolatore. Per ogni variabile in C è necessario specificare il tipo. Vantaggi:
Esempio di uso degli interi
Esempio:
Riempimento di un array – PROBLEMA delle celle vuote #include #define MAX_NUM 10 typedef int sequenza [MAX_NUM]; int main ( ) { sequenza array1; sequenza array2; int i; int j = 0; printf(“Inserisci %d numeri\n”, MAX_NUM); for(i = 0; i < MAX_NUM; i++) { scanf(“%d”, &array1[i]); if( array1[i]%2= =0) { array2[j] = array 1 [i]; j++; } } for (i=0; i MAX_NUM_CHAR+1] Esempio: individuare le sottosequenze “ab”, “ae”, “ai”
Esempio 2: Scrivere un programma completo che acquisisce una stringa e verifica che sia una palindrome
Contiene più informazioni eterogenee contemporaneamente