Teste de Mesa
Ao nos recordarmos dos passos necessrios para a construo de um algoritmo veremos que aps a elaborao de um algoritmo devemos test-lo realizando simulaes com o propsito de verificarmos se este est ou no correto. Existem alguns softwares disponveis que efetuam a interpretao de algoritmos representados em pseudocdigos ou em fluxogramas. Porm, existe uma tcnica denominada teste de mesa que permite a simulao do processo de interpretao de um algoritmo utilizando apenas um papel e uma caneta.
110
Teste de Mesa
Para acompanhar o desenvolvimento de um algoritmo importante verificar o estado dos dados a cada instruo, verificando o contedo de todas as variveis contidas no algoritmo. Sendo assim deve-se enumerar as linhas do algoritmo e em seguida criar uma tabela onde, a cada linha, so mostrados os contedos das variveis do algoritmo e o nmero da linha executada. Para uma melhor visualizao do processo adotaremos a seguinte conveno: nas linhas em que uma varivel lida (entrada), o valor da varivel ficar entre colchetes [] e quando o contedo de uma varivel for escrito (sada), ficar 111entre chaves {}.
Aplicaremos a tcnica do teste de mesa sobre o algoritmo abaixo o qual visa determinar o nmero de vrtices de uma figura geomtrica.
Algoritmo vrtices Var vertices, faces, arestas: inteiro Inicio 1. Escreva (Entre com o nmero de faces da figura geomtrica: ) 2. Leia (faces) 3. Escreva (Entre com um nmero da arestas da figura geomtrica:) 4. Leia (arestas) 5. Vertices <- arestas + 2 faces 6. Escreva (O nmero de vrtices do objeto especificado : , vertices) Fimalgoritmo Linha Vertices Faces Arestas
1 2 3 4 5
112
? ? ? ? 8 {8}
? [6] 6 6 6 6
? ? ? [12] 12 12
Estruturas de Controle de Fluxo
2. Comando de Seleo Mltipla Em algumas situaes ao chegarmos a uma determinada instruo de um algoritmo devemos selecionar um dentre alguns trechos a seguir, tendo como base para esta escolha um conjunto de valores.
Trecho 1 Trecho 2
Trecho 3
Para lidar com casos deste tipo foi criado o comando de seleo mltipla.
113
Estruturas de Controle de Fluxo
2. Comando de Seleo Mltipla (continuao) Possuindo a sintaxe:
... escolha (<varivel>) caso <valor11>, <valor12>, ..., <valor1n> <seqncia-de-comandos-1> caso <valor21>, <valor22>, ..., <valor2m> <seqncia-de-comandos-2> ... outrocaso <seqncia-de-comandos-extra> fimescolha ... 114
Estruturas de Controle de Fluxo
2. Comando de Seleo Mltipla (continuao) Exemplo: O pseudocdigo a seguir informa com base no nome de um time fornecido, se este trata-se de um time carioca, paulista ou de outro estado.
115
Estruturas de Controle de Fluxo
algoritmo " Exemplo Seleo Mltipla" var time: caractere inicio escreva ("Entre com o nome de um time de futebol: ") leia (time) escolha (time) caso "Flamengo", "Fluminense", "Vasco", "Botafogo" escreva (" um time carioca.") caso "So Paulo", "Palmeiras", "Santos", "Corinthians" escreva (" um time paulista.") outrocaso escreva (" de outro estado.") fimescolha fimalgoritmo
116
Estruturas de Controle de Fluxo
2. Comando de Seleo Mltipla
Exerccio 12: Construa um algoritmo que receba dois nmeros reais e um dos seguintes smbolos: +, -, * ou /, o qual designar qual operao ser aplicada considerando os valores recebidos como seus operandos. O referido algoritmo deve retornar o resultado da operao selecionada com uma preciso de dois dgitos.
117
algoritmo "exerccio 12" var op1, op2: real operador: caractere inicio escreva ("Entre com o primeiro operando: ") leia (op1) escreva ("Entre com o segundo operando: ") leia (op2) escreva ("Entre com um dos operadores (+,- , *, /): ") leia (operador) escolha (operador) caso "+" escreva (op1," ",operador,op2," =",op1+op2:10:2) caso " " escreva (op1," ",operador,op2," =",op1 o2:10:2) - p
118
caso "*" escreva (op1," ",operador,op2," =", op1*op2:10:2) caso "/" se (op2<>0) entao escreva (op1," ",operador,op2," =") escreval (op1/op2:10:2) senao escreva ("No possvel efetuar a diviso!") fimse outrocaso escreva ("Operao invlida! ") fimescolha fimalgoritmo
119
Exerccios que sero trabalhados no incio da prxima aula
Estruturas de Controle de Fluxo
2. Comando de Seleo Mltipla (continuao) Exerccio 13: Construa novamente um algoritmo que receba dois nmeros reais e um dos seguintes smbolos: +, -, * ou /, o qual designar qual operao ser aplicada considerando os valores recebidos como seus operandos. O referido algoritmo deve retornar o resultado da operao selecionada com uma preciso de dois dgitos. Porm, desta vez, no ser permitido a utilizao do comando de seleo mltipla. Dica: Utilize instrues condicionais aninhadas.
121
Estruturas de Controle de Fluxo
2. Comando de Seleo Mltipla (continuao) Exerccio 14: Construa um fluxograma para representar o pseudocdigo desenvolvido no exerccio nmero 13.
124