Escolar Documentos
Profissional Documentos
Cultura Documentos
Eduardo Aranha
PADRES DE CODIFICAO
Padres
O qu se entende por padres? E sobre padres de codificao?
Comandos Condicionais
Comandos usados para controlar a execuo de outros comandos Exemplos comuns: Comando if Comando switch
COMANDOS CONDICIONAIS
Comando if
O qu esse programa faz?
int i = lerNumero(); if (i == 10){ imprimir("i igual a 10"); } else { imprimir("i diferente de 10"); }
Comando if
E agora?
int i = lerNumero(); if (i == 10){ imprimir("i igual a 10"); } else if (i > 10){ imprimir("i maior que 10"); } else if (i < 10){ imprimir("i maior que 10"); }
if (idade > 12 && idade < 17){ // Adolescente } else if (idade >= 17 && idade < 31) { // Jovem }
Boa Prtica
if (ehDigito(caracterEntrada){ // ... } else if (ehLetra(caracterEntrada) { // ... } else if (ehPontuacao) { // ... }
Comando switch
Comandos usados para selecionar uma alternativa entre um conjunto de opes Linguagens C/C++ e Java oferecem suporte apenas para constantes, considerando um valor por vez
Estrutura do switch
switch (expressao){ case constante1: // comandos 1 break; case constante2: // comandos 2 break; default: // comandos }
Exemplo
int numero = lerNumero(); switch (numero){ case 1: imprimir("nmero 1"); break; case 2: imprimir("nmero 2"); break; default: cout << "nmero diferente de 1 e 2"; }
Exemplo
int numero = lerNumero(); switch (numero){ case 1: case 2: imprimir("numero 1 ou 2"); break; case 3: case 4: imprimir("numero 3 ou 4"); break; default: imprimir("numero diferente de 1 a 4); }
Boa Prtica
int numero = lerNumero(); switch (numero){ case 1: casoOpcao1(numero); break; case 2: ... default: imprimir("numero fora do limite de 1 a 4"); } void casoOpcao1(int numero){ // Comandos que estavam dentro do case 1 }
Boa Prtica
char comando = lerChar(); switch (comando){ case A: abrir(); break; case S: salvar(); break; case F: fechar(); break; default: // tratar comando invlido }
Atividade
Reescrever agora algum programa da disciplina de programao (PCTP, PAED, ) que requereu o uso de comandos if e/ou switch Verificar se todas as prticas apresentadas para tais comandos esto sendo aplicadas em tal programa Fazer um resumo (cdigos ante e depois, justificativa do ajuste realizado, etc.) e submeter via SIGAA
COMANDOS DE ITERAO
Comandos de Iterao
Comandos usados para permitir a repetio sistemtica de um conjunto de passos Exemplos comuns:
Comando for, while Comando do-while
Comando while
// Inicializacao de variaveis de controle while (condicao){ // Comandos internos ao loop }
Comando do-while
// Inicializacao de variaveis de controle do { // Comandos internos ao loop } while (condicao);
Qual a diferena?
Comando for
for (inicializacao de variaveis de controle; condicao; incremento de variaveis de controle){ }
Recomendaes Gerais
Minimize/simplifique os fatores que afetam o loop
Simplifique o mximo possvel seu comando de repetio !!
Exemplo
while (!inputFile.EndOfFile() && moreDataAvailable ) { // Do a lot of things
M e Boa Prtica
// cdigo de inicializao xxx // cdigo extra yyy while(condicao){ } // cdigo extra yyy // cdigo de inicializao xxx while(condicao){ }
Regra 3: No use um comando for onde um comando while parece ser mais apropriado
Ajustando o cdigo
/* Leitura de todos os registros de um arquivo */ do { inputChar = dataFile.getChar(); } while ( inputChar!= CharType_Eof);
Ajustando...
for (int payCodeidX =0; payCodeidX < numPayCodes; ++payCodeidX){ for (int month=0; month < 12; ++month){ for (int divisionIdx=0; divisionIdx < numDivisions; ++divisionIdx){ sum = sum + transaction[month][payCodeidX][divisionIdx]; } } }
Atividade
Verificar se todas as prticas apresentadas para comandos de iterao, esto sendo aplicadas nos programas de PAED1 ou de outra disciplina Postar resumo (cdigos ante e depois, justificativa do ajuste realizado, etc.) em tarefa no SIGAA