PRG2-2015-2b
Programação 2: Diário de aula 2015-2 da turma B
Página da turma do Prof. Marcelo Sobral
Professor: Francisco de Assis
Encontros: 4a feira/13:30, 5a feira/13:30
Atendimento paralelo: 4a de 10:00 às 11:00
19/11: Projeto 3
25/11: Prova 1
A avaliação 1 será uma prova prática individual em laboratório, envolvendo questões sobre filas e pilhas, além de possíveis referências aos projetos 1 e 2.. Cada estudante deve trazer sua implementação de fila e pilha. Durante a prova podem-se consultar a wiki e o manual online do Linux. A prova consistirá de pelo menos quatro questões, valendo 10 pontos cada uma. Sua avaliação será feita da seguinte forma:
< 10 pontos: os projetos 1 e 2 serão avaliados com D. entre 10 e 19 pontos: os conceitos dos projetos 1 e 2 serão reduzidos em um nível. entre 20 e 25 pontos: os conceitos dos projetos 1 e 2 serão mantidos. acima de 25 pontos: os conceitos dos projetos 1 e 2 serão elevados em um nível.
OBS: uma questão será considerada correta somente se compilar, for implementada exatamente como solicitado e fornecer um resultado correto.
Prova 1 2015-2
Prova 2015-1
26/11: Projeto 3: Quebra de Linhas de Logs
int main(int argc, char *argv[]) {
// testa se o nome do arquivo foi passado pela linha de comando if (argc < 2) { cout << "Uso: " << argv[0] << " nome_arquivo" << endl; return 0; } Registro Regist; // Cria o objeto ifstream, o que implica abrir o arquivo ifstream arq(argv[1]); // Verifica se o arquivo foi aberto, ou se houve algum erro if (not arq.is_open()) { cout << "Erro: não conseguiu abrir o arquivo (ele existe ?)" << endl; return 0; } // Lê todas as linhas do arquivo
while (not arq.eof()) {
string linha; getline(arq, linha);
sscanf( linha.c_str(), "%s %s %s %c %s %d %c %c %s %s %s ", ip, traco, usuario, colchete, data, &codigo, barra, aspas, metodo, paths, agente);
string datacompleta= data; string dia = datacompleta.substr(0,datacompleta.find('/'));
datadia= atoi(dia.c_str()); datacompleta.erase(0,3);
string datames = datacompleta.substr(0,3); datacompleta.erase(0,4);
string anos = datacompleta.substr(0,4); datacompleta.erase(0,5); dataano= atoi(anos.c_str());
Regist.ip = ip; Regist.usuario= usuario; Regist.metodo = metodo; Regist.status = codigo; Regist.path= paths; Regist.agente=agente; Regist.data.dia=datadia; Regist.data.mes=datames; Regist.data.ano=dataano;
cout << ": " <<Regist.ip<< endl; cout << ": " << Regist.usuario<< endl; cout << ": " << Regist.metodo<< endl; cout << ": " << Regist.status<< endl; cout << ": " << Regist.path<< endl; cout << ": " << Regist.agente<< endl; cout << ": " << Regist.data.dia<< endl; cout << ": " << Regist.data.mes<< endl; cout << ": " << Regist.data.ano<< endl; } arq.close();
}