********************************************************************* ************************ LISTA DE ERROS *************************** ********************************************************************* Prof. Jose de Oliveira Guimaraes O guia abaixo foi feito no ano passado para que cada grupo atribuisse uma nota a si mesmo. Isto nao sera feito este ano, mas na avaliacao dos trabalhos o professor levara em consideracao os erros descritos pelos itens seguintes. ********************************************************************** ********************************************************************** Primeiro Quadro (Tudo deve ser NAO) 1 2 3 4 5 6 7 8 9 10 11 12 |Sim| | | | | | | | | | | | | |---------------------------------------------------- |Nao| | | | | | | | | | | | | ---------------------------------------------------- Subtraia 1.0 para cada resposta Sim. 1. Algumas constantes declaradas com #define ou const seriam melhor declaradas como tipos enumerados ? 2. O comando break foi utilizado para sair de algum comando for ? 3. Alguma sequencia de comandos if's aninhados poderia ser substituida por um comando switch ? 4. O comando goto 'e utilizado no programa ? 5. A funcao exit 'e utilizada no programa fora da funcao main ? 6. Ha algum teste de comparacao onde um dos operadores 'e true ou false ? Ex: if ( achou == true && abriu == false ) ... 7. Alguma variavel inteira 'e utilizada como se fosse do tipo boolean ? 8. O compilador (nao o linker) emitiu algum aviso durante a compilacao de qualquer arquivo do programa ? Subtraia 1.0 para cada aviso de compilacao. Para responder a este item, ligue todos os avisos de compilacao. Se a resposta a este item for "Sim", escreva os avisos ao final desta folha. 9. Existe alguma variavel global no programa ? 10. O operador [] de indexacao 'e utilizado em acessos sequenciais a vetores ? Veja a folha "Regras para Codificacao de Programas em C++". Este item tamb'em se aplica a coisas do tipo *(s + i) que substituem s[i]. Utilize codigo do tipo *s++ = ch; ao inves de s[i] = ch; i++; ou *(s + i) = ch; i++; 11. Alguma constante 'e utilizada para mais de uma finalidade ? Maiores explicacoes no guia de programacao. 12. Ha alguma constante literal inteira diferente de 0 ou 1 no programa ? Segundo Quadro (Tudo deve ser SIM) 1 2 3 4 5 |Sim| | | | | | |------------------------ |Nao| | | | | | ------------------------ Subtraia 1.0 para cada resposta Nao 1. Apos cada virgula ou ponto-e-virgula existe pelo menos um espaco em branco ? 2. Antes e depois de ( e ) do if, while e do-while existe um espaco em branco ? Nao 'e preciso deixar espaco antes ou depois de qualquer parenteses, apenas naqueles especificados acima. 3. Antes e depois de cada operador de comparacao, logico ou atribuicao (=) existe um espaco em branco ? Este operadores sao: &&, &, ||, |, <, <=, >, >=, !=, !, ==, =, +=, -=, etc. 4. Entre o termino da definicao (nao declaracao) de um metodo e o inicio de outro existem pelo menos duas linhas em branco ? Definicao 'e o metodo com o seu corpo. Declaracao 'e apenas o prototipo. 5. O programa sinaliza um erro quando a memoria livre termina durante a sua execucao ? Terceiro Quadro (Tudo deve ser NAO) 1 2 3 4 5 6 7 8 9 10 11 |Sim| | | | | | | | | | | | |------------------------------------------------ |Nao| | | | | | | | | | | | ------------------------------------------------ Subtraia 2.0 para cada resposta Sim 1. Algum objeto 'e alocado no pilha ? Isto 'e, existe alguma declaracao como SymbolTable st; ou Lex lex; ? 2. Algum metodo 'e declarado como static ? 3. Alguma funcao de entrada/saida de C 'e utilizada ? 4. Heranca multipla 'e utilizada ? 5. #define 'e utilizado para declarar constantes ? Deve-se usar "const". Quarto Quadro (Tudo deve ser SIM) 1 2 3 4 5 6 7 |Sim| | | | | | | | |-------------------------------- |Nao| | | | | | | | --------------------------------- Subtraia 2.0 para cada resposta Nao 1. Todas as estruturas de dados sao implementadas como classes templates ? 2. A parte publica de cada classe foi colocada antes da parte privada ? 3. Todos os vetores sao alocados dinamicamente ? 4. Os arquivos abertos sao explicitamente fechados ? 5. O programa emprega alguma convencao para identificadores que permite diferenciar facilmente nomes de classes de nomes de variaveis ? 6. A palavra virtual 'e colocada antes da declaracao de cada metodo, mesmo quando isto nao 'e necessario ? Um metodo m redefinido em uma subclasse sera automaticamente virtual se o metodo m herdado o for. 7. Todos os metodos utilizam as variaveis de instancia ou variaveis estaticas de sua classe ? Cite os metodos que nao utilizam estas variaveis ao fim do questionario. Quinto Quadro (Tudo deve ser NAO) 1 2 3 4 5 6 7 8 9 10 11 |Sim| | | | | | | | | | | | |------------------------------------------------ |Nao| | | | | | | | | | | | ------------------------------------------------ Subtraia 3.0 para cada resposta Sim 1. Existe alguma classe declarada em um arquivo .cpp ? Declarar significa colocar o prototipo. Definir 'e colocar o corpo dos metodos tambem. 2. Existe algum metodo definido (o seu corpo) em um arquivo .h ? 3. Alguma variavel de instancia est'a na parte publica ou protegida de uma classe ? 4. Existe algum metodo nao virtual ? Construtores excluidos. 5. O operador & (endereco de) 'e utilizado ?