Estratto del documento

Appunti di informatica B

Introduzione

Informatica = scienza che si occupa della rappresentazione dell’informazione e della sua elaborazione e gestione; studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione.

Programmare = Scrivere programmi in un linguaggio artificiale, rigoroso e comprensibile ad un esecutore, con i quali implementiamo gli algoritmi che riteniamo risolvano i problemi di cui abbiamo creato un modello.

Il calcolatore elettronico

Calcolatore = Strumenti in grado di eseguire operazioni non complesse.

Macchina di Turing (1936) Modello teorico legato alla logica matematica.

Macchina di Von Neumann Calcolatore reale dotato di capacità di scelta, di funzionalità programmata e digitale. Digitale, ma non binario bensì decimale. Di tipo sequenziale, ovvero che può elaborare una sola istruzione per volta.

  • L’Unità Centrale (CPU)
  • La Memoria Centrale (RAM)
  • La Memoria di Massa (MM)
  • Il Bus di Sistema (BUS)
  • Le Unità Periferiche (UPi)

Architettura del calcolatore

  • Componenti hardware
    • Unità Centrale (CPU: Central Processing Unit, o processore)
    • Memoria Centrale (spesso tecnologia RAM: Random Access Memory)
    • Memoria di Massa (dischi, chiavette, nastri, …)
      • Memorizza grandi quantità di dati e programmi
      • Persistente
      • Accesso molto più lento che della RAM
    • Bus di Sistema (canale di comunicazione)
      • Collega e consente lo scambio di dati
    • Unità Periferiche (monitor, casse, tastiera, …)
      • Comunicazione con l’ambiente esterno
  • Software di sistema
    • Il sistema operativo (Windows, MacOS, …)
      • Gestione lavori
      • Supporto per la programmazione
      • Meccanismi di Ingresso / Uscita (I/O)
      • Gestione archivi (file)
    • I sistemi di gestione di basi di dati (BIOS)
    • Il software di rete
    • Gli ambienti di programmazione (editor, compilatori, assemblatori, traduttori, collegatori, debugger, strumenti CASE e IDE)
    • Gli strumenti di produttività (Microsoft Office, …)
  • Software applicativo
    • Gestionale
    • Applicazioni numeriche
    • Telematico
    • Automazione industriale
    • Controllo di processi
    • Realtà virtuale, interfacce utente, software multimediale

Unità centrale (CPU)

Elabora dati e coordina il trasferimento degli stessi, esegue i programmi.

Memoria centrale

Memorizza temporaneamente dati e programmi, contiene dati e programmi in attesa di essere elaborati dalla CPU, volatile e di rapido accesso all’informazione.

  • RAM = Random Access Memory. Tempo di accesso indipendente dalla cella. Realizzata tramite circuiti a transistori.
  • ROM = Read Only Memory. Memoria non volatile, contiene programmi protetti e definiti dal costruttore. Caricata al momento della costruzione del calcolatore. Contiene il bootstrap, le prime istruzioni che deve eseguire la CPU.

Reti di calcolatori

Classificazione per estensione:

  • Reti locali (LAN, Local Area Network)
  • Reti geografiche (WAN, Wide Area Network)

Algoritmi e programmi

Algoritmo = specifica di una successione di passi finita eseguibili senza ambiguità affinché la sequenza di passi sia automatizzabile (sequenza finita di operazioni elementari, comprensibili da un esecutore, che portano alla realizzazione di un compito).

Algoritmo sequenziale = operazioni da eseguire una alla volta.

Le informazioni sono utilizzate e trasformate attraverso gli algoritmi in modo funzionale agli obiettivi. Ogni algoritmo risolve una classe di problemi. Uomo trova la soluzione (crea l’algoritmo) → macchina la esegue.

Controllo del flusso

Condizioni:

  • Se (condizione) … allora (condizione verificata)
  • Se (condizione) … allora (condizione verificata) … altrimenti (condizione non verificata)
  • Fintantoché …

Criteri di valutazione di un algoritmo

  • Correttezza = capacità di pervenire alla soluzione in tutti i casi significativi possibili.
  • Efficienza = proprietà strettamente legata al tempo di esecuzione e alla memoria impiegata.

Linguaggi per esprimere gli algoritmi

Linguaggi semi-formali Specifiche iniziali, ancora intelligibili solo all’essere umano.

  • Pseudo codice (“se A>0 allora B=B+A altrimenti B=B-A”)
  • Diagrammi di flusso

Linguaggi formali Programmi da eseguire, intelligibili anche alla macchina. Consentono di scrivere programmi eseguibili dal calcolatore.

  • Alto livello (vicini al linguaggio naturale). Es. C (if (A>0) B=B+A; else B=B-A)
  • Assembler (più vicini al codice macchina)

Componenti di un linguaggio

  • Vocabolario = parole chiave che costituiscono un linguaggio
  • Sintassi = regole per comporre i simboli del vocabolario
  • Semantica = significato delle espressioni

Compilatori e interpreti

Compilatore = programma che traduce un programma scritto in codice di alto livello (es. C) in linguaggio macchina; genera un eseguibile (.exe) a partire da un file sorgente scritto in linguaggio di alto livello.

Interprete = programma che interpreta direttamente le operazioni, eseguendole di volta in volta che le incontra; perciò non genera alcun eseguibile.

La catena di programmazione

  1. Videoscrittura = scrittura del file sorgente del programma contenente testo in linguaggio di programmazione, da parte del programmatore. (genera .asm, .c, .cpp)
  2. Precompilazione = parte svolta dal preprocessore
  3. Traduzione (compilazione) = un programma compilatore si fa carico del tradurre il codice in linguaggio di programmazione in linguaggio macchina (binario). Si riconoscono costrutti, simboli e parole del linguaggio. Genera un file programma oggetto (.obj)
  4. Collegamento = un programma “collegatore” si occupa di collegare gli oggetti scritti nel programma sorgente ai sottoprogrammi nelle librerie (istruzioni semplici come “printf” o “scanf” sono sottoprogrammi costituiti da più istruzioni precreate e incluse nelle librerie). Genera un programma eseguibile (.exe)
  5. Caricamento = un programma carica il programma .exe appena creato nella memoria di lavoro (RAM)
  6. Esecuzione = l’operatore fornisce alla macchina i dati di input, poi elaborati, e la macchina restituisce i dati di output.

Il linguaggio C

I programmi in C sono costituiti da funzioni (i mattoncini del programma). Esse possono essere create dal programmatore o utilizzate quelle preesistenti, esse sono contenute nelle librerie.

Parti di programma

Commenti /*… commento …*/ oppure //commento sono commenti. Queste parti di testo servono a rendere il codice più facilmente comprensibile dal programmatore in un secondo momento. Parte ignorata dal compilatore.

Inclusioni #include è un comando al preprocessore (preceduto da #) che dice di includere nel programma una libreria di funzioni (es. stdio.h, stdlib.h,…) che saranno poi inserite nel programma tramite le shortcut (es. printf è in realtà una shortcut per un sottoprogramma di più istruzioni).

#define #define è un comando al preprocessore (fuori dalla main), che permette di definire delle macro, ovvero delle variabili costanti/funzioni che verranno poi richiamate nella main. Esse vengono scritte a lettere maiuscole.

  • #define PIGRECO 3.14 //crei una costante che utilizzerai nella main richiamata con PIGRECO (es. 10*PIGRECO=31.4)
  • #define AREACERCHIO(x) (PIGRECO*(x)*(x)) //definisco una funzione di nome AREACERCHIO che calcola il risultato fornendole in input il raggio…area = AREACERCHIO (4); //diventa (3.14*(4)*(4))…

La main int main () { … corpo della main … } è la funzione principale del programma, dentro alla quale staranno tutte le istruzioni del programma, e i rimandi ad eventuali funzioni esterne ad essa (void).

Anteprima
Vedrai una selezione di 5 pagine su 19
Appunti di Informatica B Pag. 1 Appunti di Informatica B Pag. 2
Anteprima di 5 pagg. su 19.
Scarica il documento per vederlo tutto.
Appunti di Informatica B Pag. 6
Anteprima di 5 pagg. su 19.
Scarica il documento per vederlo tutto.
Appunti di Informatica B Pag. 11
Anteprima di 5 pagg. su 19.
Scarica il documento per vederlo tutto.
Appunti di Informatica B Pag. 16
1 su 19
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher gabrielem99 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Masseroli Marco.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community