5.6 OBSERVAÇÕES IMPORTANTES
6.1.3 Construir Expressões e Entender a Prioridade de Operadores
A maioria dos programas de computador executa cálculos aritméticos (DEITEL e DEITEL, 2001). Os cálculos aritméticos são representados por expressões aritméticas como, por exemplo, A = B * 5. Essas expressões são construídas valendo-se do conjunto de caracteres interpretáveis pela máquina e são formadas por operandos e operadores (multiplicação, divisão, adição, subtração, mod, div e potência). Porém, os programas não são formados apenas por expressões aritméticas, mas por uma mistura pré-definida pelos programadores de expressões lógicas, relacionais, literais e aritméticas. Expressões lógicas são aquelas formadas por operadores lógicos (não, e, ou) e operandos do tipo lógico (verdadeiro ou falso). Expressões relacionais são aquelas formadas por operadores relacionais (maior, menor, maior igual, menor igual, igual e diferente) e operandos do tipo numérico (embora possam existir operações relacionais sobre caracteres como, por exemplo, a comparação de igualdade entre nomes de indivíduos). Expressões literais, por sua vez, são aquelas que executam alguma alteração em um conjunto de caracteres como, por exemplo, a concatenação entre o nome e o sobrenome de um indivíduo outrora armazenados, cada um
deles, em locais diferentes (locais estes que serão definidos na próxima seção como variáveis).
As expressões podem ser formadas por mais de um operando (de tipos equivalentes ou não) e podem ser mescladas para construir operações mais complexas como, por exemplo: (5 * 6) > 17. Por este motivo, existe uma ordem de prioridade de operadores que deve ser respeitada pelos computadores quando lhes é ordenada a execução dessas expressões. Compreender os conceitos das expressões aritméticas, lógicas, relacionais, literais e da ordem de prioridade de operadores compõe a fase inicial (“Vejo, Escuto e Compreendo”) de aprendizagem do conteúdo “Construir Expressões e Entender a Prioridade de Operadores” e é fundamental para a construção de programas cujo processamento pode ser considerado confiável – embora este não seja o único fator que define a confiabilidade de um programa.
A tabela 6.8 mostra o que pode ser feito para que o aluno transpasse essa fase em relação ao presente conteúdo programático.
Tabela 6.8 – Objetivos e Habilidades da Fase “Vejo, Escuto e Compreendo” para o Objetivo Específico “Construir Expressões e Entender a Prioridade de Operadores”
Como Encaminhar o Aluno ao
Conhecimento e Compreensão? Como Levar o Aluno ao Acolhimento? Habilidade(s) a Ser(em) Adquirida(s) - Descrever o que são expressões
aritméticas, lógicas, relacionais e literais.
- Descrever a ordem de prioridade de operadores.
- Descrever o conceito do símbolo parênteses nas expressões e o modo como ele é utilizado para alterar a ordem de prioridade dos operadores. - Construir expressões aritméticas no quadro branco e executá-las (passo a passo) de acordo com a ordem de prioridade dos operadores aritméticos.
- Construir expressões lógicas e relacionais no quadro branco e executá-las (passo a passo) de acordo com a ordem de prioridade dos operadores lógicos e relacionais. - Construir expressões literais no quadro branco e executá-las (passo a passo).
- Solicitar que os alunos resolvam listas de exercícios com expressões aritméticas de acordo com a ordem de prioridade de operadores. - Solicitar que os alunos resolvam listas de exercícios com expressões lógicas de acordo com a ordem de prioridade de operadores.
- Solicitar que os alunos resolvam listas de exercícios com expressões relacionais de acordo com a ordem de prioridade de operadores. - Solicitar que os alunos resolvam listas de exercícios com expressões literais de acordo com a ordem de prioridade de operadores. - Solicitar que os alunos resolvam listas de exercícios com expressões mistas de acordo com a ordem de prioridade de operadores.
- Capacidade de identificar o tipo de uma expressão apresentada pelo professor. - Capacidade de resolver expressões aritméticas, lógicas, relacionais, literais e mistas de acordo com a ordem de prioridade de operadores.
- Construir expressões mescladas no quadro branco e executá-las passo a passo de acordo com a ordem de prioridade entre tipos de operadores e entre operadores.
Em alguns casos, as expressões aritméticas podem ser apresentadas como parte dos enunciados de problemas propostos, em outros, pode ser necessário que os programadores sejam capazes de compô-las através da interpretação desses enunciados. Não obstante, poderão haver casos em que as expressões serão definidas através do tipo de problema proposto como, por exemplo, quando ao programador for solicitado o desenvolvimento de um algoritmo para calcular as raízes de uma equação do 2º grau (cujas expressões necessárias são: (1) Delta = b2 – 4 * a * c; (2) x’ = (-b + raiz(Delta)) / (2 * a); e (3) x” = (-b - raiz(Delta)) / (2 * a)). Por esses motivos, é importante que o aprendiz seja capaz de interpretar e analisar os diversos problemas no intuito de identificar ou construir as equações necessárias à sua solução. Essa habilidade é adquirida durante a fase “Discuto, Aplico e Reflito” do presente conteúdo programático. A tabela 6.9 mostra o que pode ser feito para que o aluno transpasse essa fase.
Tabela 6.9 – Objetivos e Habilidades da Fase “Discuto, Aplico e Reflito” para o Objetivo Específico “Construir Expressões e Entender a Prioridade de Operadores”
Como Encaminhar o Aluno à
Aplicação e Análise? Como Levar o Aluno à Resposta e Valorização? Habilidade(s) a Ser(em) Adquirida(s) - Descrever enunciados de
problemas matemáticos que podem ser resolvidos através do sistema de equações e solucioná-los no quadro branco.
- Descrever problemas que exigem o uso de expressões específicas e solucioná-los no quadro branco. - Descrever problemas das diversas ciências, como por exemplo, o problema do cálculo do movimento retilíneo uniformemente variado (MRUV) da física, e resolvê-los no quadro através da identificação e representação das expressões necessárias definidas na literatura específica.
- Solicitar que os alunos interpretem enunciados de problemas (dispostos em uma lista de exercícios) e identifiquem as expressões necessárias à solução de cada problema.
- Solicitar que os alunos solucionem problemas semiprontos,
disponibilizados com expressões pré-definidas incompletas. - Solicitar que os alunos realizem análise para verificar a corretude de expressões pré-definidas para problemas (As expressões consideradas por eles como incorretas devem ser reescritas corretamente).
- Capacidade de interpretar enunciados de problemas e construir expressões necessárias à solução dos mesmos.
- Capacidade de analisar o contexto de um problema e identificar as expressões necessárias à sua solução de acordo com a literatura disponível na área à qual o problema se aplica. - Capacidade de identificar incorreções em expressões pré-disponibilizadas.
Conhecer os conceitos sobre expressões e ser capaz de identificá-las nos enunciados de problemas propostos é importante para que o aprendiz seja capaz de construir expressões corretas para problemas novos (ou novas expressões para a solução de problemas já resolvidos). Não obstante, programadores devem ser capazes de avaliar e comparar expressões com o objetivo de identificar aquelas consideradas mais eficientes ou de otimizá- las. Essas capacidades são adquiridas quando o aluno transpassa a fase final (“Pratico, Faço e Crio”) do presente conteúdo programático (Tabela 6.10).
Tabela 6.10 – Objetivos e Habilidades da Fase “Pratico, Faço e Crio” para o Objetivo Específico “Construir Expressões e Entender a Prioridade de Operadores”
Como Encaminhar o Aluno à
Síntese e Avaliação? Organização e Caracterização por Como Levar o Aluno à um Valor ou Complexo de
Valores?
Habilidade(s) a Ser(em) Adquirida(s)
- Descrever expressões diferentes que solucionam um mesmo problema e avaliar e comparar a eficiência destas expressões. - Descrever expressões que
solucionam problemas e demonstrar como elas podem ser otimizadas (produzindo expressões menores e mais eficientes).
- Disponibilizar diferentes expressões para a solução de um problema e solicitar que os alunos identifiquem a expressão mais eficiente ou mais otimizada. - Solicitar que os alunos construam enunciados de problemas de acordo com o sistema de equações, bem como suas soluções.
- Capacidade de criar problemas de acordo com o sistema de equações. - Capacidade de otimizar expressões.
- Capacidade de definir que expressão, dentre muitas, é mais eficiente para a solução de um determinado problema.
Exemplos de exercícios para este conteúdo programático podem ser encontrados no Apêndice A.3.