/* Construtor Semáforo * Construirá um semáforo com o número de pistas ligadas à ele, a probabilidade de um carro virar e * o intervalo do semáforo. Note que elementos são adicionados na lista pistas dentro do construtor. */ Semaforo(bool _estaAberto, Pista* arranjo[], int *_probabilidades, int _tempoIntervalo) { pistas = new Lista<Pista*>(3); probabilidades = _probabilidades; tempoIntervalo = _tempoIntervalo; tempoQueVaiAbrir = 0; aberto = _estaAberto; pistaLocal = arranjo[0]; pistas->adiciona(arranjo[1]); pistas->adiciona(arranjo[2]); pistas->adiciona(arranjo[3]); }
/** * Função readFile * Lê o arquivo de entrada de dados e retorna uma lista de inteiros * @param filename nome do arquivo de entrada * @return Lista de inteiros com os valores lidos */ Lista<int> readFile(string filename) { FILE *inputFile = fopen(filename.c_str(), "r"); Lista<int> result; if (!inputFile) { cout << "Impossível abrir arquivo de dados" << endl; return result; } char line[100]; while (true) { if (!fgets(line, 100, inputFile)) { break; } result.adiciona(atoi(line)); } //Remove primeiro elemento, que representa a quantidade //de números e não deve ser considerado. result.retiraDaPosicao(0); return result; }
int main() { cout << "Testando adiciona()" << endl; l.adiciona(1); l.adiciona(2); imprimeLista(); cout << "Testando adicionaNoInicio(0)" << endl; l.adicionaNoInicio(0); imprimeLista(); cout << "Testando adicionaNaPosicao(10, 1)" << endl; l.adicionaNaPosicao(10, 1); imprimeLista(); cout << "Testando retira()" << endl; cout << "Retirou " << l.retira() << endl; imprimeLista(); cout << "Testando retiraDaPosicao(0)" << endl; cout << "Retirou " << l.retiraDaPosicao(0) << endl; imprimeLista(); cout << "Testando retiraEspecifico(10)" << endl; l.retiraEspecifico(10); imprimeLista(); printf("%s\n", "dasdfa"); return 0; }