47 lines
1.1 KiB
C
47 lines
1.1 KiB
C
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
|
|
#define N_INPUTS 2
|
|
|
|
// Siccome il char è un byte che rappresenta il valore tra 0 e 255. Per evitare confusioni definisco il tipo "byte" come in Java
|
|
typedef unsigned char byte;
|
|
|
|
// Singola istanza del dataset.
|
|
typedef struct
|
|
{
|
|
byte classificazione;
|
|
byte dati[N_INPUTS];
|
|
} Istanza;
|
|
|
|
// Questo tipo fornisce il vettore delle istanze e il size (dimensione) del vettore
|
|
typedef struct
|
|
{
|
|
int size;
|
|
Istanza *istanze;
|
|
} Dataset;
|
|
|
|
Dataset *crea_dataset_xor();
|
|
|
|
Dataset *crea_dataset_xor() {
|
|
Dataset *set = (Dataset *)malloc(sizeof(Dataset));
|
|
set->istanze = (Istanza *)malloc(sizeof(Istanza) * 4);
|
|
set->size = 4;
|
|
|
|
set->istanze[0].dati[0] = 0;
|
|
set->istanze[0].dati[1] = 0;
|
|
set->istanze[0].classificazione = 0;
|
|
|
|
set->istanze[1].dati[0] = 0;
|
|
set->istanze[1].dati[1] = 1;
|
|
set->istanze[1].classificazione = 1;
|
|
|
|
set->istanze[2].dati[0] = 1;
|
|
set->istanze[2].dati[1] = 0;
|
|
set->istanze[2].classificazione = 1;
|
|
|
|
set->istanze[3].dati[0] = 1;
|
|
set->istanze[3].dati[1] = 1;
|
|
set->istanze[3].classificazione = 0;
|
|
|
|
return set;
|
|
} |