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


Algoritmi, Computer e Linguaggi: Introduzione all'Informatica, Appunti di Programmazione Java

Una introduzione alla computer science, spiegando concetti come macchina programmabile, programmazione, algoritmi, informazione, memoria, processore e linguaggi di programmazione. Viene inoltre illustrato come calcolare il massimo comune divisore utilizzando l'algoritmo di euclide.

Tipologia: Appunti

2020/2021

Caricato il 05/02/2021

Marikaa__
Marikaa__ 🇮🇹

5

(1)

3 documenti

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Computer, algoritmi e linguaggi
Computer = macchina programmabile elettronica al fine di svolgere diverse funzioni
Programma = sequenza di istruzioni elementari che un computer è in grado di compiere ed eseguire
Programmazione = attività che consiste nell’organizzare istruzioni elementari, comprendibili all’esecutore, in
strutture complesse (PROGRAMMI) al fine di svolgere determinati compiti. Individuazione di un procedimento
risolutivo di un problema (algoritmo) e la sua codifica in un insieme di istruzioni (programma) destinate a un
esecutore.
Informatica = disciplina che si occupa dell’informazione e del suo trattamento in maniera automatica-> due elementi
fondamentali:
Informazione
Mezzi, che possono essere: logici (algoritmo) o fisici (computer)
Il concetto centrale dell’informatica è l’algoritmo ossia il procedimento che trasforma le informazioni, è presente sia
nel campo dell’informatica, per trattare le informazioni, e in tutti i campi in cui si possono descrivere sequenze di
operazioni per svolgere un compito.
ES. in ambito matematico consideriamo il procedimento del MCD tra due interi positivi risolvendolo con l’algoritmo
di Euclide.
Siano x e y due numeri
Calcolare il resto della divisione di x per y.
Se il resto è diverso da zero, ricomincia dal passo 2.
Utilizzando come x il valore attuale di y, e come y il valore del resto, altrimenti prosegui col passaggio
successivo
Il massimo comune divisore è uguale al valore attuale di y.
Attraverso l’algoritmo di Euclide, è possibile calcolare il MCD tra due numeri senza conoscere l’algoritmo e senza
conoscere MCD. Ciò significa che l’esecutore può svolgere il compito senza sapere a quale sia lo scopo. Per codificare
la soluzione del problema (in questo caso MCD) l’algoritmo usa la sua ”intelligenza” per trovare la soluzione.
Un algoritmo è un insieme ordinato di passi eseguibili (ciò significa che l’algoritmo sia effettivo) e non ambigui (=
l’azione da svolgere deve essere determinata e senza gradi di libertà), che definiscono un processo definito come
termina.
PROGRAMMI E LINGUAGGI DI PROGRAMMAZIONE
Algoritmo = risoluzione di un problema, possiede diversi linguaggi a seconda del destinatore a cui è affidato.
L'algoritmo viene espresso tramite il programma che l’esecutore è in grado di compiere senza bisogno di altre
spiegazioni.
Algoritmo = concetto astratto, programma = concetto concreto.
La scrittura del programma costituisce la fase in cui viene individuato l’algoritmo risolutivo di un problema.
L'algoritmo si utilizzano in blocchi di base (=istruzioni primitive che l’esecutore comprende ed è in grado di compiere)
e alle regole di combinazione (combina diverse istruzioni primitive).
BLOCCHI DI BASE + ISTRUZIONI PRIMITIVE = LINGUAGGI DI PROGRAMMAZIONE.
Ogni istruzione primitiva possiede una sintassi (modo in cui viene espressa) e una semantica (significato
dell’istruzione stessa).
INFORMAZIONE
Le informazioni sono le entità su cui opera il computer. Viene misurata tramite il bit (da binary digit) che vengono
calcolati in base alle risposte alle domande binarie (domanda che permette “si” o “no”). Con due bit è possibile
rappresentare quattro valori differenti. Con n bit è possibile rappresentare 2^n.
Una sequenza di 8 bit è definita byte. Pertanto un byte può assumere 256 valori differenti (2^8).
I prefissi K (Kilo), M (Mega), G (Giga) e T (Tera), indicano multipli di byte: 2^10 (più di mille), 2^20 (un milione), 2^30
(miliardi), 2^40 (mille miliardi).
pf3
pf4

Anteprima parziale del testo

Scarica Algoritmi, Computer e Linguaggi: Introduzione all'Informatica e più Appunti in PDF di Programmazione Java solo su Docsity!

Computer, algoritmi e linguaggi

Computer = macchina programmabile elettronica al fine di svolgere diverse funzioni Programma = sequenza di istruzioni elementari che un computer è in grado di compiere ed eseguire Programmazione = attività che consiste nell’organizzare istruzioni elementari, comprendibili all’esecutore, in strutture complesse (PROGRAMMI) al fine di svolgere determinati compiti. Individuazione di un procedimento risolutivo di un problema (algoritmo) e la sua codifica in un insieme di istruzioni (programma) destinate a un esecutore. Informatica = disciplina che si occupa dell’ informazione e del suo trattamento in maniera automatica - > due elementi fondamentali:

  • Informazione
  • Mezzi, che possono essere: logici (algoritmo) o fisici (computer) Il concetto centrale dell’informatica è l’algoritmo ossia il procedimento che trasforma le informazioni, è presente sia nel campo dell’informatica, per trattare le informazioni, e in tutti i campi in cui si possono descrivere sequenze di operazioni per svolgere un compito. ES. in ambito matematico consideriamo il procedimento del MCD tra due interi positivi risolvendolo con l’algoritmo di Euclide.
  • Siano x e y due numeri
  • Calcolare il resto della divisione di x per y.
  • Se il resto è diverso da zero, ricomincia dal passo 2. Utilizzando come x il valore attuale di y, e come y il valore del resto, altrimenti prosegui col passaggio successivo
  • Il massimo comune divisore è uguale al valore attuale di y. Attraverso l’algoritmo di Euclide, è possibile calcolare il MCD tra due numeri senza conoscere l’algoritmo e senza conoscere MCD. Ciò significa che l’esecutore può svolgere il compito senza sapere a quale sia lo scopo. Per codificare la soluzione del problema (in questo caso MCD) l’algoritmo usa la sua ”intelligenza” per trovare la soluzione. Un algoritmo è un insieme ordinato di passi eseguibili (ciò significa che l’algoritmo sia effettivo) e non ambigui (= l’azione da svolgere deve essere determinata e senza gradi di libertà), che definiscono un processo definito come termina.

PROGRAMMI E LINGUAGGI DI PROGRAMMAZIONE

Algoritmo = risoluzione di un problema, possiede diversi linguaggi a seconda del destinatore a cui è affidato. L'algoritmo viene espresso tramite il programma che l’esecutore è in grado di compiere senza bisogno di altre spiegazioni. Algoritmo = concetto astratto, programma = concetto concreto. La scrittura del programma costituisce la fase in cui viene individuato l’algoritmo risolutivo di un problema. L'algoritmo si utilizzano in blocchi di base (=istruzioni primitive che l’esecutore comprende ed è in grado di compiere) e alle regole di combinazione (combina diverse istruzioni primitive). BLOCCHI DI BASE + ISTRUZIONI PRIMITIVE = LINGUAGGI DI PROGRAMMAZIONE. Ogni istruzione primitiva possiede una sintassi (modo in cui viene espressa) e una semantica (significato dell’istruzione stessa).

INFORMAZIONE

Le informazioni sono le entità su cui opera il computer. Viene misurata tramite il bit (da bi nary dig it ) che vengono calcolati in base alle risposte alle domande binarie (domanda che permette “si” o “no”). Con due bit è possibile rappresentare quattro valori differenti. Con n bit è possibile rappresentare 2^ n. Una sequenza di 8 bit è definita byte. Pertanto un byte può assumere 256 valori differenti (2^8). I prefissi K (Kilo), M (Mega), G (Giga) e T (Tera), indicano multipli di byte: 2^10 (più di mille), 2^20 (un milione), 2^ (miliardi), 2^40 (mille miliardi).

La macchina di Von Neumann.

Il “cuore” di un elaboratore è costituito da 2 componenti:

  • La memoria , che contiene il programma da eseguire e i dati utilizzati
  • Il processore , cioè l’esecutore del programma. Esso esegue ciclicamente queste tre azioni: ▪ Fetch, preleva dalla memoria l’istruzione da seguire. ▪ Decode, riconosce il significato dell’istruzione ▪ Execute, esegue le operazioni elementari dell’istruzione. I programmi vengono scritti con un linguaggio riconosciuto dal processore, definito come linguaggio macchina. Le istruzioni elementari del processore: → Istruzioni dati tra memoria e processore. Per caricare in un registro R il valore contenuto in una cella di memoria di indirizzo x sarà indicata con LOAD R, x Per scaricare (copiare) nella cella di indirizzo x il valore contenuto nel registro R sarà indicata con STORE R, x → Istruzione aritmetico-logiche. Permettono le operazioni aritmetiche o logiche tra i dati contenuti nei registri e lasciano il risultato in un registro. ADD (addizione), SUB (sottrazione), MUL (moltiplicazione) e DIV (divisione). → Istruzioni di controllo e di salto. Permettono di cambiare l’ordine con cui vengono eseguite le istruzioni. Permettono di modificare l’ordine con cui vengono eseguite le istruzioni di programma. Le istruzioni LOAD, ADD ecc. sono codici mnemonici per ricordare le operazioni svolte (semantica delle istruzioni). Nel linguaggio macchina ognuno di essi corrisponde a una sequenza di cifre binarie. Il linguaggio costituito da codici mnemonici associati alle istruzioni macchina è detto linguaggio assembler. L'istruzione JUMP et fa proseguire l’esecuzione dell’istruzione preceduta dall’istruzione preceduta dall’etichetta et. L'istruzione JZERO R, et permette di decidere quale sarà la prossima istruzione da eseguire in base al valore contenuto in R.

DAL LINGUAGGIO MACCHINA AI LINGUAGGI AD ALTO LIVELLO.

La programmazione in linguaggio macchina presenta degli svantaggi:  È necessario conoscere i dettagli dell’architettura del processore utilizzato e il relativo linguaggio.  Ogni processore ha un proprio linguaggio macchina, non è possibile trasferire i programmi da una macchina all’altra.  Il programmatore deve conoscere in dettaglio tutte le caratteristiche della macchina che utilizza.  Il programmatore si specializza nell’uso di trucchi legati alle caratteristiche specifiche della macchina.  Il programma è difficile da comprendere la struttura e individuare eventuali errori.  È necessario riscrivere completamente i programmi quando vengono trasferiti su una macchina differente. Per svincolare la programmazione sono stati introdotti dei linguaggi ad alto livello comprensibili da tutte le macchine “astratte” in grado di effettuare operazioni di alto livello rispetto alle operazioni elementari. Per essere utilizzato su una macchina reale è necessario tradurlo nel linguaggio della macchina stessa, per poter effettuare questa operazione entrano in gioco i compilatori. Diversi dai compilatori sono gli interpreti che sono un programma che simula direttamente una macchina astratta. A differenza del compilatore, l’interprete non traduce ma legge ed effettua le operazioni corrispondente all’istruzione letta. L'esistenza degli assemblatori permette di tradurre in linguaggio macchina i programmi scritti nei codici mnemonici corrispondenti alle istruzioni macchina, cioè scritti in un linguaggio assembler.

STRUMENTI PER LA STESURA DEI PROGRAMMI.

Per preparare i programmi si usano vari strumenti automatici: ➢ EDITOR , un programma che permette di scrivere testi chiamato programma sorgente o codice sorgente. ➢ Il programma può essere quindi dato in ingresso al compilatore che lo traduce nel codice oggetto, scritto in linguaggio macchina. Il linguaggio sorgente può essere suddiviso in più file.

Blocco FINESE ITERAZIONE - > permette di ripetere l’esecuzione di una o più istruzioni in base al valore di una condizione. Lo schema dell’iterazione è questo: ESEGUI Blocco 1 QUANDO condizione Prima di tutto viene eseguito il blocco di istruzioni. Quindi si valuta la condizione, se vera si ripete nuovamente il blocco e valutando ancora la condizione, se falsa si prosegue con l’istruzione scritta successivamente. Notiamo che:

  • Il blocco viene eseguito almeno una volta, in quanto la condizione viene valutata successivamente;
  • L'esecuzione del costrutto iterativo termina quando la condizione è falsa. Un altro schema: QUANDO condizione ESEGUI Blocco RIPETI In questo caso viene valutata prima la condizione, se risulta vera, allora si esegue il blocco e successivamente si valuta nuovamente la condizione, invece se è falsa, si passa a eseguire l’istruzione che segue, cioè l’istruzione che segue la parola RIPETI:
  • Il blocco può essere eseguito anche zero volte, in quanto la condizione è valutata in testa
  • L'esecuzione del costrutto iterativo termina quando la condizione è falsa

IL PRIMO PROGRAMMA JAVA

Un programma Java è costituito da classi (= oggetti che sono in grado di svolgere un determinato insieme di compiti che dipendono dalla classe a cui appartengono, una classe è costituita da oggetti ossia entità ossia istanze della classe , i quali compiono comportamenti che vengono definiti come metodi). La prima stringa del programma è l’ intestazione della classe (specifica il nome della classe). La riga termina con una parantesi graffa aperta, che è chiusa nell’ultima riga del programma. Le due parentesi graffe contengono la definizione della classe. Questa classe contiene specificatamente un metodo di nome main. Dopo il nome del metodo vengono indicati tra parentesi tonde, i parametri del metodo. Ogni istruzione è terminata dal carattere punto e virgola. L'unica istruzione di questo programma è: System.out.println(“Ti auguro una buona giornata!”); Questa istruzione è l’invocazione di un metodo println dell’oggetto System.out. // METODO INIZIO Questo è un commento cioè vale come codice. BuonInizio.Java - > creo la classe chiamata “Buon Inizio” Public static void main (String [] argas { - > creo una funzione chiamata main System.out.println (“Ti auguro una buona giornata”) - > serve per stampare sullo schermo quello che c’è scritto tra parentesi. Commentato [MS1]: Completa: argas Commentato [MS2]: Completa: argas