Nota: per comodità sono riportati alcuni 'sorgenti',
con piccole variazioni, ad esempio nei nomi e nei messaggi.
Si raccomanda di
scriverli a mano, invece che inserirli nell'editor
di onlineGDB
con copia/incolla]
Per comodità è stato suddiviso ad hoc in parti
(il realtà il video doveva averne molte di più
e qualcuno si è divertito a metterle insieme)
- Prima parte (0:00-42:00, min e secondi del video,
saltando 03:20:13:20, ovvero poco più
di mezz'ora in totale)
- Generalità:
0:00-03:20 e
13:20-16:50
(le informazioni su Code::Blocks non ci interessano).
- dummy.c (≈ 17:00)
- dummy.c;
- warning di gcc
(gcc
è il compilatore che useremo in laboratorio. Per i soli interessati
che hanno già Linux installato, i comandi
per compilare/linkare e poi per eseguire questo 'programma' sono
rispettivamente "gcc -o dummy dummy.c" e "./dummy").
- Semantica generale: ≈
18:00-20:30
Per le keywords del linguaggio C
vedi
qui (e qui, con esempi)
Per cominciare, quelle che ci interessano sono, più o meno
nell'ordine con cui le utilizzeremo nei primi programmi,
- return
- int
- float
Prima introduzione alla rappresentazione dei numeri nei computer:
- Per capire, immaginiamo un ipotetica cpu con architettura a
3 bit, ciascuno dei quali può valere 0 o 1. Quindi possiamo
scrivere 000, 001, 010, etc., fino a 111,
ovvero 23 possibilità, e i numeri rappresentabili sono
da 0 7. Quindi, in generale, il massimo numero è 2n-1
per un computer a n bit.
- Quanto detto è vero solo per i numeri positivi, o più
precisamente 'non negativi', detti anche
unsigned. Si capisce bene che se si vogliono avere
anche numeri negativi bisogna dedicare, per dirla alla buona,
un bit al segno (la cosa è in realtà più raffinata, come vedremo)
e quindi si dimezza il massimo numero rappresentabile.
- se poi si vogliono rappresentare numeri maggiori (in modulo),
bisogna usare la 'notazione scientifica' (tipi calcolatrici),
dedicando un certo numero di bit alla mantissa (e al segno)
e gli altri all'esponente.
A tempo debito diremo di più.
- for
- if (e else)
- while
- do {...} while
- break e continue
(anche meglio
qui).
- Verso il primo 'programma'
(20:30-24:00):
- I/O
(24:00-28:30;
29:40-42:00)
- puts_2l.c
(due puts() consecutivi, senza "\n")
- printf_2l.c
- printf_2l_n.c
(importanza di "\n" in printf())
A proposito, e per completezza, ma senza la necessità
di impararli tutti (per ora ci bastano \n e \" ):
Esempio di \" (e di uso di apicetti singoli, che non richiedono
l'escape):
- Per esempi di printf() con placeholders
("tieni posto", tipo al cinema...)
vedi gli esempi lezione 9
(GuardaMamma.c,
somma_n_interi.c
e radice_quadrata.c)
Nota sul compilatore gcc:
quando si usano funzioni matematiche tipo sqrt(), pow(), etc,
nella compilazione bisogna inludere l'opzione '-lm' per
linkare la libreria matematica. In questo caso
gcc -o radice_quadrata radice_quadrata.c -lm
- due_e_due.c
- c_vs_s_placeholders.c
(per la differenza fra stringhe e caratteri)
- percento.c (su come mettere
un 'vero' %)
- Seconda parte:
Ultima modifica: 28/10/2018 17:15:42
Torna alla pagina del corso