PRG2-2015-2b

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

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

Plano de Ensino

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();

}