Estratto del documento

LEZIONE 1

Che cos’è l’informatica? Ne un computer ne una scienza.

L’informatica è lo studio dell’organizzazione dei dati e come svolgere operazioni su dei

dati in maniera esatta e veloce.

Dato un problema come posso risolverlo? Una soluzione è provare tutte le possibilità che

ho a disposizione.

- P problemi risolvibili facilmente

- NP problemi irrisolvibili velocemente o irrisolvibili

Le password che utilizziamo viene chiamata “chiave” nei sistemi di cifratura. La

robustezza di una chiave si basa su sistemi che per poter scoprire una determinata chiave

dovrei essere in grado prendendo un numero enorme di riuscire a trovare quali sono i

fattori primi di scomposizione che moltiplicati tra di loro mi danno il numero enorme di

partenza. Questa operazione rientra nella classe NP, molto di cile da risolvere.

Questi problemi si risolvono perché altrimenti passeremmo ore davanti ad una domanda

alla quale non potremmo rispondere. Se trovo una soluzione ho la possibilità di

scomporre un numero grande in fattori primi e viceversa, quindi due cose che appaiono

scollegate in realtà si rivelano equivalenti.

L’informatica da un lato è la scienza che studia l’informazione, la memorizzazione e

l’elaborazione dei dati, dall’altro lato studia la risolubilitá dei problemi e la complessità del

trovare soluzioni di erenziando problemi trattabili e problemi intrattabili.

Posso elaborare i dati e le informazioni in modo e ciente grazie ad algoritmi speci ci.

Algoritmo è una sequenza nita di passi per la risoluzione di un problema, applichiamo

algoritmi nella vita quotidiana anche senza calcolatori.

I computer e i cellulari hanno il compito di svolgere velocemente degli algoritmi. Dando la

sequenza di passi da seguire questi vengono eseguiti in maniera istantanea.

Il concetto di algoritmo è slegato dal calcolatore.

Esempio di algoritmo: calcolo del cammino minimo tra due punti, utilizzando i tragitti

consentiti.

L’informatica studia algoritmi e caci e cerca quelli più e cienti usando meno risorse, nel

nostro caso calcolano la strada più veloce per raggiungere la nostra destinazione. Per

risolvere un problema esistono moltissimi algoritmi.

RISOLUTORE ED ESECUTORE

Il risolutore sono io che ideo l’algoritmo e l’esecutore (computer) lo compie,

consentendomi di scrivere passo per passo il linguaggio di programmazione che mi

permette di comunicare con l’esecutore.

Il linguaggio di programmazione è come una vera e propria lingua, ci sono regole

sintattiche per la de nizione di istruzione che codi cano algoritmi da eseguire.

Il linguaggio di programmazione è procedurale, è un insieme di istruzioni che vengono

eseguite sequenzialmente per arrivare alla soluzione.

Linguaggio di programmazione interpretato o procedurale, come R, in cui i programmi

vengono eseguiti tramite un programma speci co intermediario detto interprete. I

linguaggi di programmazione precompilati non hanno bisogno di un interprete perché già

lo sono.

AMBIENTE R

R è un software gratuito disponibile al repository CRAN, oltre al linguaggio di

programmazione e all’interprete R, fornisce documentazione, pacchetti R aggiornati e una

GUI user-friendly.

ff fi fi ffi ffi fi fi ffi ffi fi

R dispone di un enorme quantità di dati, dispense e programmi disponibili, molti pacchetti

per la gestione dei dati. Permette una visualizzazione gra ca dei dati mediante pacchetti

speci ci.

In R i le che contengono istruzioni da eseguire possono essere chiamati anche script.

Una volta lanciato l’ambiente R, è importante capire qual è la directory corrente e che sia

impostata nel modo corretto. La directory corrente mi dice in quale punto del mio sistema

operativo l’interprete sta guardando.

Per visualizzarla se sono nell’interfaccia do il comando “getwd ()”, la coppia di parentesi

tonde è necessaria per speci care che sto parlando di un comando e qui ci inserisco

l’argomento se c’è, se premo invio mi risponde l’indicazione dove troverò il percorso

assoluto dove si trova la R in quel determinato momento.

Per cambiare la directory corrente vado sul desktop, creo una cartella, torno

sull’interfaccia, su le trovo la voce cambia dir e posso scegliere la mia cartella di lavoro,

così che R guardi solo questa determinata cartella.

Questo procedimento può essere svolto anche con il comando “setwd (“”) che mi

imposta la directory corrente.

Per essere sicuro che R stia guardando dove voglio c’è un comando che mi dice il

contenuto della directory in cui R sta guardando, è il comando “dir()” character(0) mi dice

che in R non c’è nulla.

Per leggere i dati della nostra cartella digitiamo il comando scan(“nome del le.estensione

del le”) così che ci legga i nostri elementi che devono essere digitati in colonna.

Per salvare queste informazioni devo digitare “dati<-scan(“”).

Il comando “ls()” mi permette di leggere la mia area di lavoro, guarda nella porzione di

memoria RAM dove troviamo tutte le applicazioni.

Il comando “dir()” guarda i dati nel disco della cartella dove l’abbiamo selezionato.

Uso “scan()” quando i dati sono in un’unica riga o in un’unica colonna.

Il commando “rm(list=ls())” lo utilizzo per cancellare tutto ciò che c’è nel mio workspace

per controllare che sia stato eliminato digito “ls()” e dovrebbe darmi “character(0)”.

Per caricare il workspace caricato utilizzo il comando “load(“”)” per controllare che sia

caricato digito “ls()”.

Se abbiamo bisogno di aiuto abbiamo a disposizione dei comandi “help”. Scrivendo ? e il

nome del comando ci escono le istruzioni per questo determinato comando.

Per uscire dal programma R digito il comando “q()”, salvo il workspace e il programma si

chiude. Posso usare anche la modalità “ le->exit”.

Es 1 minuto 40

I comandi e gli identi cativi in R sono una sequenza di caratteri che indicano i comandi o i

nomi delle variabili. Sono case-sensitive, cioè scrivere un comando con la lettera

maiuscola o minuscola fa la di erenza, esistono solo i comandi con le lettere minuscole.

I nomi di variabili non possono iniziare con _ o . o un numero.

Possiamo dare un valore alle variabili utilizzando l’operatore di assegnamento “<-“.

Le variabili sono elementi del linguaggio caratterizzate da un identi cativo: il nome dato

alla variabile con cui richiamare la variabile nel programma; un tipo: che individua se la

variabile è di tipo numerico o di tipo carattere o di tipo logico; un valore é ciò che

contiene.

Se uso l’operatore di assegnamento due volte di la con la variabile a sinistra il contenuto

che ho inserito la prima volta viene sovrascritto, cambiato o cancellato.

Se voglio sapere il tipo di variabile digito il comando “mode(nome della variabile)”.

LEZIONE 2

fi fi fi fi fi ff

fi fi fi fi fi fi

Il vettore è l’elemento base di R, tutto viene visto come un vettore. Una variabile con un

contenuto più corposo, infatti un vettore è una “collezione” di variabili semplici. Le matrici

sono estensioni dei vettori, “collezioni” di vettori. Vettori e matrici sono due strutture dati,

noi in totale ne vedremo quattro.

Possiamo parlare di vettori quando i dati sono omogenei, cioè dello stesso tipo. Non

posso avere una stringa di lettere e numeri altrimenti non è omogenea.

Se ho migliaia di dati omogenei posso creare una variabile con l’operatore di

assegnamento per ogni dato ma diventerebbe complesso, utilizzando i vettori posso

sempli care il procedimento.

Un vettore è una struttura dati, un modo per organizzare i dati, contente dati omogenei

che ne de nisce il modo di rappresentarli e di accedervi così da gestire un unica variabile

che le contiene tutte.

Ciascun elemento in R ha una sua posizione, i vettori possono essere visualizzati in una

sequenza posizionale di celle concatenate in orizzontale, una cella per ogni elemento. (Il

primo elemento a sinistra è in “posizione/indice 1”, il secondo 2 e così via).

Per accedere agli indici devo scrivere il nome del vettore[numero indice]. Le parentesi

quadre le uso per accedere ad una struttura dati. Le parentesi tonde servono invece per

qualsiasi comando.

Per creare un vettore il linguaggio R fornisce diversi modi, un modo è utilizzare la funzione

c() che lega i suoi argomenti in un vettore. Se voglio passare più elementi ad un comando

li devo separare con la , ad esempio: tre elementi c(1, 2, 3).

Se io passo elementi che non sono omogenei ad esempio il vettore “c(12,5, 10, 1,5)”

premo invio e lui mi risponde 10,0, lo converte perché i vettori contengono dati omogenei.

R tendenzialmente se può converte. Se scrivo “dati <- c(12,5, 10, 1,5)” e premo invio non

mi da niente, se invece scrivo solo dati mi risponde (12,5, 10,0, 1,5) sempre convertito.

Le parentesi quadre sono l’operatore di accesso ai membri, tra […] occorre indicare la

posizione che si vuole leggere, è possibile un accesso multiplo scrivendo “eta[c(…)].

Viene creato un vettore di nome “età” che contiene gli elementi indicati dal comando c(). Il

numerino che compare a sinistra è l’indice che indica la posizione nel vettore del primo

elemento di quella riga.

Andare a capo in informatica corrisponde ad un carattere, ha un peso nonostante sia

invisibile, per R questo carattere è “\n”.

Il comando scan() ci restituisce un vettore in cui inserisce tutto ciò che ha letto.

L’estensione del le ci dice anche qual è il separatore: se ho txt gli elementi potrebbero

essere separati o a capo o da spazi; tsv vuol dire che le mie informazioni su una sola riga

non sono separate da spazi ma da dei tab, uno spazio più grande per capire se c’è un tab

mi sposto tra due info e se il salto è unico signi ca che ho un tab; csv quando le

informazioni sono separate da solo , senza spazi.

In programmazione per double si intende un numero in virgola mobile che consente di

presentare numeri più grandi.

What, sep sono i nomi degli argomenti.

fi fi fi fi

Scan è una funzione.

Con il comando “length()” posso sapere quanti sono i comandi in un vettore.

NA é un valore speciale, sta per “not available”, R lo usa quando non sa cosa risponderci.

ALTRI MODI PER GENERARE UN VETTORE

Operatore “:” è un operatore binario, prende un valore a destra e uno a sinistra, quindi

sono due valori. Mi restituisce un numero di interi che va dal valore a sinistra al valore a

destra. Questo comando è comodo per prendere sotto vettori continui.

“seq()” è simile ai “:” ma prende almeno due argomenti, il primo il punto di partenza , il

punto di arrivo, può anche essere intervallato usando il comando “by

Anteprima
Vedrai una selezione di 4 pagine su 14
Informatica  Pag. 1 Informatica  Pag. 2
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Informatica  Pag. 6
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Informatica  Pag. 11
1 su 14
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 giuliarivera di informazioni apprese con la frequenza delle lezioni di Informatica e statistica per le biotecnologie e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano o del prof Frasca Marco.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community