Notas de aula
- A lógica e o algoritmo para processar a busca de igualdades com 2 dígitos de cada lado
- A lógica para processar a busca de igualdades com 1 dígito de um lado e 3 do outro
- Alterações no código:
- um procedimento para testar 3 x 1
- um controle de quais arranjos testar no bloco principal do programa
- Alterações no código:
Atividades
- Criar a procedure test1by3 iplementando a seguinte lógica
procedure test1by3(inp : a4exp);
// variáveis do teste
// expren eleft eright epart
// eleft pega a 1ª exprn de inp
// epart é resultado de eval2e entre a 2ª e 3ª exprn de inp
// eright é o resultado de eval2e entre epart e 4ª exprn de inp
// integer cpart cright
//
// fazer o seguinte
// copia inp[1] para eleft
// para cpart de 0 até retornar 0 (repeat)
// calcula epart como eval2e entre inp[2] e inp[3]
// para cright de 0 até retornar 0 (repeat)
// calcula eright como eval2e entre epart (que acabei de calcular) e inp[4]
// se cpart>0 e cright>0 e eleft.valor = eright.valor
// achou igualdade
// senão
// verifica e processa erro se houver
// até retornar cright=0
// até retornar cpart = 0
// acabou
- Incluir no bloco principal os comandos para executar a seguinte lógica:
// controle e chamada para testar 1 contra 3 dígitos
// para linha de 1 até 24
// monta a prova
// chama o procedimento test1by3 com a prova
// acabou
Atenção na atividade
- Como a procedure test1by3 vai usar a function eval2e em duas chamadas, a resposta do algoritmo numbers para algumas combinações de operadores no lado com 3 dígitos, eright, pode parecer errada
pela notação matemática. - A correção deste problema é simples. Basta usar parenteses no campo texto de epart.
- Quais operadores em epart vão precisar usar parenteses?
- Como colocar parenteses somente para esses operadores?
- Esse aprimoramento do código será tratada na próxima atividade.
Comentários