Informatica
Albero del file system: organizzazione gerarchica delle directory.
Case-sensitivity: vi è differenza tra lettere maiuscole e minuscole.
CAT: C, stampa contenuto di un File o più.
CD: C, cambio directory, specificando la directory di destinazione.
CP: C,crea un 2° file che contiene le stesse info di quello copiato, scegliendo il suo nome. Posso copiare anche una
directory. CP NOME_FILE_INIZIALE NOME_FILE_FINALE. cp -r copia directory col suo contenuto.
Directory: strutture in cui stanno i file, organizzate in modo gerarchico, e che costituiscono il file-system.
Directory ". ": presente in ogni directory, indica la directory corrente
Directory “..”: presente in ogni directory, indica la directory genitore di quella corrente.
Directory corrente: directory in cui sto, in questo momento, lavorando.
Directory di sistema: directory che contiene tutti i file dei comandi nel disco.
ECHO, C, stampa a video ciò che scrivo su lista di comando, è utile negli script. Se scrivo “echo FRASE > NOME_FILE” la mia
frase viene reindirizzata nel mio NOME_FILE, sovrascrivendolo. Se NOME_FILE non è presente nella directory viene creato.
Se metto >> non sovrascrivo ma appendo stringa in fondo al file.
Esecuzione di un comando: viene dato l'input dall'utente alla shell, la quale fa eseguire il file che corrisponde al comando.
File: contiene dati o istruzioni.
File system: struttura interna all'elaboratore che serve per organizzare i dati e istruzioni in file.
Home directory: directory in cui si trova l'utente dopo il login, ogni utente ne possiede una. Esse sono organizzate in una
directory genitore "home". Con "~" indico la home directory dell'utente corrente.
LS: C, mostra contenuto della directory corrente. Posso specificare anche quale directory voglio vedere e il modo in cui le
voglio vedere. Di solito mostra solo directory all'interno della directory che voglio vedere.
MAN: C, visualizza la guida di un comando.
MKDIR: C, crea directory, o in dir. Corrente o in un percorso. Con “-r” creo tutte le cartelle che indico nel percorso.
MV: C, sposta uno o più file o una directory in una directory. Posso anche rinominare con mv “nome corrente” “nome
nuovo”
Percorso: Sequenza di directory da percorrere per arrivare ad un file/directory. Assoluto: localizza oggetto scrivendo
sequenza di directory partendo dal root. Relativo: localizza oggetto scrivendo sequenza di directory partendo da
directory corrente.
Programma: file con istruzioni, scritte in linguaggio macchina.
Prompt: porzione di testo con al quale la shell ci dice che è pronta a ricevere comandi.
PWD: C, stampa il percorso assoluto della directory corrente. Processo interno alla shell.
RM: C, cancella file, anche più di uno. Con rm-r cancello directory con tutto ciò che c’è dentro.
RMDIR: C, rimuove directory vuote.
Root: (1) directory principale (/), da cui parte l'albero. (2) username dell'amministratore di sistema nei sistemi Unix.
Shell: programma interprete che riceve i comandi e ne esegue le operazioni. Strato più esterno del sistema operativo.
Touch: C, permette di creare un file nella directory corrente
Tree: C, visualizza albero directory dalla directory corrente.
Quit: C, serve per tornare al prompt.
WHICH: C, dice il nome del file che viene eseguito per eseguire il comando da me impartito. In soldoni stampa il percorso
assoluto del file stesso.
WILDCARD: “*” = nessuno o più caratteri “?” = uno e un solo carattere. Sono operatori della shell, utile, con ls, per
individuare nomi di file con determinate caratteristiche.
>, operatore di redirezione.
Costrutti di controllo
Istruzioni composte: le pongo tra parentesi graffe {istr1 istr2}, ogni istr avrà il proprio punto e virgola.
Costrutto if: if (espr) / { 1 o più istruzioni}
Costrutto if else: if (espr) / { 1 o più istruzioni} / else {1 o più istruzioni}
-Condizioni complesse con operatori logici: if ((a%2=0) && (a/2=0) || !(a%2=1))
Costrutto for: for (espr1 (inizializzazione, si ripete solo all’inizio del ciclo); espr2 (condizione) ; espr3
(incremento/decremento contatore)) istr (eseguita se condizione è positiva)
Costrutto While: while (espr (condizione)) istr , se la condizione è vera esegue l’istruzione.
Costrutto do-while: do istr while (espr), viene eseguita un’istruzione, ed in base alla condizione si
decide se continuare o no ad eseguirla.
Costrutto Switch: switch (sel), parentesi graffe obbligatorie, case 1, case 2 … case n. Ogni case termina con un break. Ogni
case ha istruzioni. Se non viene selezionato nessun caso si va al default.
Controllo del flusso di esecuzione: fattibile grazie a break (termina il ciclo più interno) e continue (passa immediatamente
all’iterazione successiva; in for viene fatto l’incremento e poi valutata la condizione).
Salto incondizionato: fattibile grazie a “goto etichetta”, e reindirizza ad etichetta. Non posso saltare tra funzioni diverse ed
è utile per non dover usare n break in una funzione con diversi cicli nidificati. Etichetta: printf.
Identificatori
%0nx, numero esadecimale con almeno n cifre, e sostituisce, eventualmente, con 0.
%ni, intero con almeno n cifre, sostituirebbe spazio.
%c, stampa il carattere ASCII corrispondente al numero.
%s, stampa stringa.
%lf, double
Differenza tra singoli e doppi apici
Singoli: costante di tipo char
Doppi: stringa, con relativo terminatore
Tipi di dati
Il C è un linguaggio tipizzato, ovvero ad ogni variabile deve essere assegnato un tipo, in modo da – verificare che
l’assegnamento avvenga correttamente (semi aspetto un numero intero non accetterà un testo) – riserva una parte
di memoria (fissa, per ogni tipo) per la variabile. Calcolatore deve conoscere indirizzo, dimensione e tipo di dato
(per capire come tradurre il binario).
Tipi interi: la dimensione di ognuno di essi dipende dal processore e dal compilatore. (char, short, int, long, long
long). Esistono i signed e gli unsigned (con 8 bit, Sign -128 +127, UnS 0 +255). Costanti intere, abbiamo la possibilità
di rappresentarle in base 10, 8 e 16 (aggiungendo uno 0 [8], 0x [16]). Col tipo char posso rappresentare tra singoli
apici il numero del carattere ASCII corrispondente. S E
Tipi a virgola mobile: rappresentati secondo lo standard IEEE, come (-1) M 2 . Includendo math.h posso fare calcoli
matematici basati sul double, compilandolo inserendo -lm. Bisogna utilizzare angoli in radianti (π = m_pi). Costanti
in float, double se non specifico. Posso dotare il numero di esponente (e/E).
Puntatori: sono variabili che rappresentano un indirizzo di memoria. Serve il tipo a cui si punta, asterisco e il nome.
E’ int il valore puntato da p. E’ una variabile contenente un indirizzo, nel quale sono presenti dei bit da interpretare
come un numero di tipo intero. Ogni puntatore, sulla stessa macchina, ha la stessa dimensione.
Tramite l’operatore & posso ottenere l’indirizzo di una variabile, ed assegnarlo poi, eventualmente, al mio
puntatore.
Tramite l’operatore * posso accedere al valore contenuto in un determinato indirizzo di memoria. “*p=3” significa
quindi: assegna il valore 3 alla cella corrispondente all’indirizzo situato in p. Accedendo ad un’area di memoria in
questo modo tramite un puntatore, si definisce Deferenziare un puntatore.
Esiste il puntatore nullo, p=0, e 0 è un indirizzo di memoria non accessibile.
Array: aree contigue di memoria in cui sono memorizzati elementi di tipo omogeneo. In base alla loro dimensione
prendono nomi diversi. Vettori: sintassi, int vett[n° elem] (N.B. vett = nome vettore) . Ogni elemento del vettore è
esprimibile come vett[0]… vett [N-1], dati N elementi. I dati sono memorizzati in indirizzi di memoria contigui, in
questo modo posso sempre trovare l’indirizzo dell’ i-esimo elemento con: base + i * dim (base = indirizzo 1°
elemento, dimensione del tipo di dato). Il vettore può essere visto come un puntatore costante, che punta al primo
elemento del vettore (vett fornisce indirizzo del primo elemento del vettore), quindi scrivere vet[0] o *vet è la
stessa cosa (*(vet+1) = vet[1]). N.B. è possibile sbagl
-
Riassunto esame Informatica, prof. Carnevali, libro consigliato Fondamenti di programmazione, Vicario: programmazio…
-
Riassunto Strutture Dati e Programmazione
-
Riassunto esame Fondamenti di informatica, Prof. Bilotta Stefano, libro consigliato Fondamenti di programmazione. L…
-
Riassunto Informatica