Seduta |
Data | Durata | Materiali base |
Materiali
aula |
Argomenti
coperti - Note |
1 |
28 marzo | 3 ore | I
tag HTML |
esempio
di sito |
Compendio, organizzato per
categorie, dei principali tag HTML di cui si farà utilizzo
pratico nel
secondo laboratorio. Generalità. Tag di apertura e chiusura del documento HTML (html, head, title, body) Tag per formattazione testo (grassetto, italico, corsivo, sottolineato, indice, apice, barrato, lampeggiante; dimensione, colore, font) Tag di controllo per colori di sfondo di pagina, tabella, riga, cella. Tag per creazione di tabelle (tabella, riga, cella, cella di intestazione, celle multiriga e celle multicolonna; bordo tabella, colori; celle contenenti immagini) Tag per titoli Tag per elenchi numerati e non numerati Tag per separatori orizzontali (spessore, larghezza) Pagine composte da due o più frame (orizzontali o verticali) Collegamenti ipertestuali (verso lo stesso frame o verso frame esterno) Immagini. Inserimento; ridimensionamento proporzionale o su entrambi gli assi; immagini usate come hyperlink. |
prova1.cpp | Breve presentazione
dell'ambiente Dev-C++. Immissione del programma. Compilazione e link. Errori di compilazione e link. Esecuzione in finestra. Primi semplici programmi. Direttiva #include. Ruolo della funzione main. Istruzione return. Istruzione system. Emissione di messaggi su console, su stdout. Funzione printf. Il carattere newline (\n). Ripetizioni: Utilizzo di cicli while. Stampe ripetute: generazione di istogrammi orizzontali. Operazioni aritmetiche su variabili. |
||||
2 |
4 aprile |
2 ore |
frammenti di codice C |
bitmask |
|
conversioni
decimale-esadecimale-ottale |
|||||
conversioni decimale-binario |
|||||
stampe ripetute; inversione
caratteri stringa; confronto fra due stringhe; identificazione stringhe
palindromi |
|||||
3 |
11 aprile |
2 ore |
frammenti
di codice C |
Analisi di stringhe.
Determinazione della lunghezza. Ricerca del numero di parole. Numero di
ricorrenze di ogni carattere dell'alfabeto. |
|
Strutture e Union |
Struct e Union. Destinazione
d'uso e differenze logiche. Quando usare le une e quando le altre. |
||||
4 |
30 maggio |
4 ore |
frammenti
di codice C |
Puntatori (esclusa
allocazione dinamica e strutture dati dinamiche): esempio stampa_e_incrementa Passaggio parametri per indirizzo Modifica (ad es. incremento) di un valore raggiunto mediante il suo puntatore Incremento di un puntatore: il valore del puntatore avanza di una quantità pari alla dimensione del tipo di dato puntato (che potrebbe essere maggiore di 1), ottenibile usando sizeof Possibilità di scrivere funzioni che modificano il valore di variabili dichiarate dal chiamante, usando il passaggio parametri per indirizzo esempio scambia_valori La differenza fra scambiare i valori puntati e scambiare i valori dei puntatori. Inutilità di alterare i valori dei parametri formali di una funzione: dopo la fine della funzione, tali valori spariscono insieme all'activation record della funzione e non lasciano conseguenze. Uso dell'operatore & per ottenere l'indirizzo di una variabile. Dichiarare un puntatore a un int non implica che venga anche riservata in memoria un'area grande abbastanza per ospitare l'int puntato da quel puntatore. Se si vuole usare il puntatore per memorizzare, attraverso esso, un valore in una nuova area di memoria, occorre anche predisporre lo storage, per esempio dichiarando una variabile intera e ottenendone l'indirizzo con & per assegnare tale indirizzo al puntatore. Se invece il puntatore serve soltanto per indirizzare valori già presenti in memoria e quindi già allocati, ciò non è necessario. argc/argv: il passaggio dei parametri al main mediante riga di comando argc: dimensione del vettore argv argv: vettore contenente sempre almeno un elemento, argv[0], con il nome del programma così come immesso su riga di comando; gli eventuali successivi elementi argv[1], argv[2], ... sono i valori dei parametri specificati su riga di comando, se presenti. Effetto delle virgolette intorno ai parametri su riga di comando, per raggruppare parole separate da spazi che altrimenti sarebbero interpretate come parametri distinti funzione di libreria atoi: data una stringa contenente la rappresentazione ASCII di un numero decimale (es. la stringa costituita dalla sequenza dei caratteri '1','0' e '0', seguiti dal "tappo", o "terminatore", '\0', rappresenta il numero decimale 100), la interpreta con tale significato e ritorna un valore int corrispondente al valore espresso dalla stringa (nell'esempio, 100) my_atoi: impariamo come funziona atoi provando a reimplementarne una versione equivalente. Tecnica per convertire un carattere ASCII che rappresenta una cifra decimale nel valore aritmetico corrispondente a tale cifra: sottrarre 48 al codice ASCII del carattere Equivalenza fra il nome di un array e il puntatore al primo elemento dell'array stesso Vari esempi di utilizzo di puntatori e variabili (anche di tipo array): discussione degli effetti sulle variabili puntate I file Vari programmi per dimostrare il modo di aprire, leggere e scrivere files, con eventuale trasformazione o elaborazione dei dati trattati. Lettura e scrittura di dati carattere e stringa, mediante fprintf e fscanf. Utilizzo di feof per rilevare la fine del file Utilizzo del valore ritornato da fscanf per rilevare l'eventuale fallimento del tentativo di leggere campi (caratteri, stringhe, etc..) dal file Scrittura di programmi che impiegano argv e argc per ricevere parametri su riga di comando, verificano che sia presente il numero esatto di parametri attesi, protestano in caso contrario, altrimenti procedono con l'elaborazione, che riguarda dei files i cui nomi sono specificati come parametri. Anche il tipo di elaborazione da effettuare è specificato da parametri di riga di comando. Copiatura di un file su un altro file con conversione in maiuscolo o in minuscolo in base al valore di un parametro di riga di comando "Crittografazione" (con il semplice "cifrario di Cesare") di un file (e relativa funzione di decrittografazione) Copiatura di un file con contemporanea sostituzione di un determinato carattere speciale con altro carattere o stringa specificata su stringa di comando: utilizzo per produrre corrispondenza commerciale basata su modello standard e sostituzione di nomi Analisi carattere per carattere di un file di testo, all'interno del quale si conteggiano caratteri, parole e righe e vengono contate anche le ricorrenze dei singoli caratteri ASCII. Al termine, stampa dei risultati. |
|
5 |
13 giugno |
2 ore |
Liste
(schemi) Liste (C) |
Esempi
liste singole e doppie (frammenti di codice) |
Strutture dati dinamiche: liste
semplici e doppie. Generalità. Operazioni di inserimento,
scansione, rimozione di elementi. Schematizzazione dell'effetto della
manipolazione dei puntatori, esempi di codice. |