ICC Turma D -  2/04 - Sétimo Trabalho

Prazo para entrega e recebimento: 07/12/2004 - Terça
Endereço para envio (turma D): diegofaranha@yahoo.com.br
Backup para caso de extravio: rezende@cic.unb.br

LEIA COM ATENÇÃO. LEMBRE-SE QUE A INTERPRETAÇÃO DAS ESPECIFICAÇÕES DOS TRABALHOS É PARTE DO APRENDIZADO DE PROGRAMAÇÃO E, PORTANTO, ESTARÁ SENDO AVALIADA. Em caso de dúvida, pergunte antes.

Tendo terminado a construção da apostila virtual individual de cada aluno, projeto que incorporava os trabalhos da nossa disciplina até o trabalho 6, a partir de agora a inclusão do trabalho à apostila é facultativa. Recomendamos, a partir deste, que voce envie o trabalho para correção em um arquivo separado, para facilitar o trabalho e a avaliação. Além disso, como já passamos a parte html, voce está agora desobrigado de usar editor ASCII para compor seus trabalhos.
 
Um comando que contenha numa de suas partes um bloco de comandos (também chamado "cláusula") é dito estruturado. Em Javascript, os comandos estruturados são os comandos de seleção (contendo cláusulas TRUE e FALSE) e os comandos de repetição (contendo a cláusula de repetição).  Na programação estruturada, ou seja, na prática de se programar com comandos estruturados, comandos são aninhados (colocados um dentro do outro) ou alinhados (colocados um em sequência ao outro) conforme a necessidade da lógica do programa e das condições (expressões lógicas) que complementam os comandos estruturados.

Havendo a prática 7 introduzido exercícios com o comando de atribuição, e a prática 8 com o comando de seleção, passamos agora a programar de forma estruturada os nossos scripts.

Diz-se que um programa é estruturado quando contém comandos dentro de comandos. Neste caso, os comandos que fazem parte do programa (no nosso caso, um script javascript) podem ser classificados em níveis de aninhamento. Se um comando B ocorre dentro de um comando A, dizemos que o comando B está um nível abaixo do comando A. Isso ocorre quando A precisa controlar o fluxo de execução do programa de sorte a comandar a execução de B apenas sob determinada condição.

Como explicado na prática 8,  embora desnecessária para o interpretador ou compilador, é extremamente conveniente ao programador representar o nível de aninhamento de um comando pela margem (espaços em branco iniciais) na linha do código fonte que contém esse comando. Com esta prática, que implica iniciar cada comando do programa no início de uma linha do código fonte, fica mais fácil a quem vê o código fonte visualizar ou imaginar o fluxo de execução do mesmo.

Neste trabalho 7 voce terá que fazer um script contendo mais de um comando if. Para cumprir os objetivos da especificação, o seu script poderá  aninhar ou alinhar comandos if, conforme as condições (expressões lógicas) usadas para controlar o fluxo de execução do script. A forma mais segura de se programar é pensando na estrutura de controle do programa antes de se começar a digitação do código-fonte.

Quando a estrutura de controle do programa ainda não está clara ao programador, a forma prática mais eficiente para fazê-la emertir consiste em desenhar antes um fluxograma. Desenha-se a estrutura de controle a ser obedecida pelo programa em um diagrama chamado fluxograma (prática 8), para, ainda no fluxograma,  preencher-se as condições de desvio dos respectivos comandos estruturados de forma que a execução obedeça a especificação, e finalmente, os comandos aninhados dentro da estrutura.  Para só então digirar-se o código-fonte a partir do fluxograma, testando-o com o interpretador (ou compilador).

O trabalho 7 consiste em se fazer uma página para cálculo de desconto progressivo, conforme especificação abaixo