Buonasera.
Ho scritto il codice ed ho corretto gli errori, ma ne rimangono alcuni alla quale non riesco a dare risposta.
Sono tre sorgenti ed un header, cerco di inserirli nel modo più ordinato possibile:
main.cpp
codice:
#include <iostream>
#include "header magia.h"
using namespace std;
int main()
{
cout << "Benvenuto nel gioco. Pensa un numero da 1 a 100. Quando sei pronto, premi INVIO." << endl;
cin.get();
tabella_generale(tabella1);
tabella_generale(tabella2);
tabella_generale(tabella3);
tabella_generale(tabella4);
tabella_generale(tabella5);
tabella_generale(tabella6);
tabella_generale(tabella7);
cout << "Hai pensato al numero " << numero << " ?" << endl;
return 0;
}
funzioni magia.cpp
codice:
#include <iostream>
#include <string>
#include "header magia.h"
using namespace std;
void tabella_generale(int (*numeriTabella)()){
cout << info << endl;
int num_da_sommare= (*numeriTabella)();
cout << "si / no: \t";
string risposta;
getline(cin, risposta);
if (risposta == "si")
numero += num_da_sommare;
}
int tabella2()
{
int x=2, y=1, i=0, array[SIZE_ARRAY];
while (x < 100)
{
array[i++] = x;
x+=y;
if (y ==3) y=1;
else
y=3;
}
for (; i<SIZE_ARRAY; i++)
cout << array[i] << "\t";
return 2;
}
int tabella1()
{
for (int i = 1; i<SIZE_ARRAY; i+=2)
cout << i << "\t";
return 1;
}
int tabella3()
{
//SEQUENZA: +1 - +1 - +5
int x=4, y=1, counter=0, array[SIZE_ARRAY], i=0;
while (x < 100)
{
array[i++] = x;
x+=y;
if (counter == 0 ){
counter++;
y=1;
x +=y;}
else if (counter == 1){
counter++;
y=5;
x +=y;}
else
counter = 0;
}
for (int i = 0; i<SIZE_ARRAY; i++)
cout << array[i] << "\t";
return 4;
}
int tabella4()
{
for (int i = 8; i<=99; i++)
{
if (i == 15 || i == 31 || i==47 || i == 63 )
{i += 9; }
cout << i << "\t";
}
return 8;
}
funzioni magia2.cpp
codice:
#include <iostream>
#include "header magia.h"
using namespace std;
int tabella5()
{
for (int i = 16; i<96; i++)
{
if (i == 31 || i==63 )
i += 17;
cout <<i<<"\t";
}
return 16;
}
int tabella6()
{
for (int i = 32 ; i<=100; i++)
{
if (i == 63)
i+=(96-63);
cout << i << "\t";
}
return 32;
}
int tabella7()
{
for (int i = 64; i<=100; i++)
cout << i << "\t";
return 64;
}
header magia.h
codice:
/*
Numero tabelle 7;
Tabelle che possono essere visualizzate con semplice for: 1-2
Tabelle che necessitano di essere visualizzate singolarmente: 2-3-4-5-6;
Opzioni di visualizzazione:
-7 funzioni per le singole tabelle;
*/
void tabella_generale(int (*)());
int tabella2();
int tabella3();
int tabella4();
int tabella5();
int tabella6();
int tabella7();
int tabella1();
const char *info="Il numero che hai pensato, si trova in questa tabella?";
int numero = 0;
const int SIZE_ARRAY = 100;
Gli errori riportati sono i seguenti:
codice:
black2@black:~/Scrivania/magia.cpp$ g++ main.cpp funzioni\ magia.cpp funzioni\ magia2.cpp -o magia.out
/tmp/ccqT5RTB.o:(.data+0x0): multiple definition of `info'
/tmp/cc2kENXB.o:(.data+0x0): first defined here
/tmp/ccqT5RTB.o:(.bss+0x0): multiple definition of `numero'
/tmp/cc2kENXB.o:(.bss+0x0): first defined here
/tmp/ccxrWclC.o:(.data+0x0): multiple definition of `info'
/tmp/cc2kENXB.o:(.data+0x0): first defined here
/tmp/ccxrWclC.o:(.bss+0x0): multiple definition of `numero'
/tmp/cc2kENXB.o:(.bss+0x0): first defined here
collect2: ld returned 1 exit status
black2@black:~/Scrivania/magia.cpp$
Come posso risolvere?
Se volete, posso allegare il file che contiene le tabelle (ed i relativi numeri contenuti).
Naturalmente, ogni consiglio/modifica è ben accetto/a.
Ringrazio nuovamente per il tempo impiegato.
Auguro una buona serata.