txt2phone
char lettere_tastiera_cell[10][8] = { "", "", "abc", "def", "ghi",
"jkl", "mno", "pqrs", "tuv",
"wxyz" };
Servirà poi una funzione di ricerca che restituisca l’indice della striinga in cui compare il carattere passarto come argomento, e -1 se tale carattere non è presente in nessuna stringa.
txt2phone
for (cifra = 0; cifra < 10; cifra++) {
indice = cerca_carattere
(ch, lettere_tastiera_cell[cifra]);
if (indice != -1) return cifra;
}
return -1:
txt2phone
int cerca_carattere (char ch, char s[]) {
...
}
Caricamento cifre ASCII art
char m[10][5][8];
Riempirla con 0.txt, 1.txt, … 9.txt NOMI DEI FILE?
Nomi dei file
char nomefile[32];
for (n = 0; n < 10; n++) {
nomefile[0] = n + '0';
nomefile[1] = '\0';
strcat (nomefile, ".txt");
fp = open...
Nomi dei file
char nomefile[32];
for (n = 0; n < 10; n++) {
sprintf (nomefile, "%d.txt", n);
fp = open...
Caricamento dai file
for (n = 0; n < 10; n++) {
sprintf (nomefile, "%d.txt", n);
fp = open...
...
carica_cifra (fp, m[n]);
Caricamento dai file
void carica_cifra
(fp, matrice[5][8]) {
...
Quindi…
char m[10][5][8];
char nomefile[32];
for (n = 0; n < 10; n++) {
sprintf (nomefile, "%d.txt", n);
fp = open...
carica_cifra (fp, m[n]);
fclose (fp);
}
void carica_cifra
(fp, matrice[5][8]) {
...
Generazione frequenze note musicali
La frequenza di ogni nota può essere ricavata dalla seguente tabella (sia k = 55.00 * 2ottava-1):
A k A3 55.00 * 22* 2 1/12
A# / Bb k * 2 1/12 A# 3/ Bb3 55.00 * 22* 2 2/12
B k * 2 2/12 B3 55.00 * 22* 2 2/12
C k * 2 -9/12 C4 55.00 * 23* 2 -9/12
C# / Db k * 2 -8/12 esempio C#4 / Db4 55.00 * 23* 2 -8/12
D k * 2 -7/12 D4 55.00 * 23* 2 -7/1
D# / Eb k * 2 -6/12 D#4 / Eb4 55.00 * 23* 2 -6/12
E k * 2 -5/12 E4 55.00 * 23* 2 -5/12
F k * 2 -4/12 F4 55.00 * 23* 2 -4/12
F# / Gb k * 2 -3/12 F#4 / Gb4 55.00 * 23* 2 -3/12
G k * 2 -2/12 G4 55.00 * 23* 2 -2/12
G# / Ab k * 2 -1/12 G#4 / Ab4 55.00 * 23* 2 -1/12