Guia para estudo dos Capítulos 5 e 6 de BCC
Estude e pratique o Capítulo 5 (sobre instruções seqüênciais) na última semana de
julho. Trabalharemos com o Capítulo 6 (sobre estruturas condicionais) na primeira semana
de agosto, quando poderemos rever os conceitos do cap. 5.
Daremos destaque às operações com Scilab, para visualizar de modo mais claro os
conceitos matemáticos envolvidos, mas também trabalharemos com as situações mais
simples do Robomind.
Capítulo 5 e instruções seqüênciais

com o Robomind
Note que a orientação do robô difere da orientação da tela, ou seja, o robô anda em
frente em relação à sua posição, não à da exibição no monitor. Compare ainda os
comandos andarFrente e andarNorte.
A seção 5.4 propõe um exercício resolvido e alguns exercícios propostos. Você
deve utilizar o Bloco de Notas (ou o gedit em Linux) para prover os mapas para o robô;
trata-se do “texto puro”, ou sem formatação, que discutimos anteriormente como “códigofonte”. Não é necessário digitar as linhas que começam com #, que são apenas
explicações que não são lidas pelo programa, chamadas “comentários”. (Note, porém,
quando se trata de seu próprio programa, você deve “documentá-lo” explicando seu
funcionamento em comentários inseridos ao longo de todo o código-fonte.) No Bloco de
Notas, você deve salvar o texto finalizado através do item “Salvar Como”, onde pode
alterar a extensão do arquivo para map, como atividade.map.
Os exercícios propostos 2 e 3 são rápidos. O ex. 4 é simples, mas não é rápido. Os
ex. 5 e 6 são bastante demorados, mas são necessariamente difíceis? Tente também os
ex. 7 e 8.
Depois de falar um pouco de Scilab, o texto retoma o Robomind nos quatro
exercícios da subseção 5.7.1. Os arquivos relevantes estão no website, mas o importante
é ler e entender os exercícios, depois praticá-los com tempo.

com o Scilab
A seção 5.5 trabalha com código-fonte em Scilab. Para que não seja necessário
alterar o código em cada execução com dados diferentes – o que potencializaria eventuais
erros –, introduzem-se os comandos de entrada e saída de dados. A função input escreve
uma sentença e retorna o valor digitado à posição que ocupa na linha do comando.
Já printf é uma função um pouco mais complicada, que vem da programação em
linguagem C. Seu primeiro argumento é uma seqüência de caracteres entre aspas, sendo
que alguns caracteres são especiais (como “comandinhos” que vimos em HTML) para
dizer ao Scilab onde inserir determinadas informações. Eles são:
%f – para escrever um número real (floating em inglês);
%d – para escrever um número inteiro em formato decimal;
\n – para iniciar uma nova linha (já que o próprio enter terminaria o comando).
Em seguida a essa seqüência entre aspas, devem vir mais argumentos, separados com
vírgulas, um para cada sinal %f ou %d, com uma variável que contenha um valor
fracionário ou inteiro, respectivamente.
Dê especial atenção aos exercícios com Scilab na subseção 5.7.2.
Capítulo 6 e estruturas condicionais
Este capítulo usa o conceito de instrução seqüencial do capítulo anterior (e que
temos discutido, de fato, desde a primeira aula). Apenas são introduzidas duas novas
instruções, que permitem selecionar grupos de instruções para executar com base em um
teste lógico.
Essa condição lógica deve ser uma só, mas pode ser “composta”, isto é, construída
a partir de outras mais simples com as palavras-chave (“conectivos”) “não” (negação), “e”
(conjunção) e “ou” (disjunção). Aqui, “ou” é inclusivo, ou seja, “P ou Q” é verdadeira
sempre que uma ou ambas P, Q sejam verdadeiras; é falsa somente quando ambas P, Q
são falsas.
No caso do Robomind, as duas instruções são se e se-senão, do seguinte modo:
se (condição lógica)
{
comando 1
comando 2
...
último comando
}
que executa os comandos entre as chaves somente se a condição lógica for verdadeira (as
chaves são usadas para dizer ao programa quais comandos separar do fluxo geral de
comandos), ou ignora tudo se for falsa, e
se (condição lógia)
{
comando 1
comando 2
...
último comando
}
senão
{
outro comando 1
outro comando 2
...
último outro comando
}
que executa apenas o primeiro bloco caso a condição seja verdadeira, ou apenas o
segundo bloco caso seja falsa (a primeira versão, portanto, corresponde à segunda tendo
o segundo bloco vazio). Um exemplo está na listagem 6.5 do livro.
Compare essas construções cuidadosamente com aquelas nas listagens 6.9 e 6.10,
na linguagem do Scilab; conheça também como são os conectivos lógicos no Scilab.
Em aula, trabalharemos somente alguns exercícios que escolheremos para melhor
relação tempo/conteúdo, na seção 6.6, com destaque para o Scilab, especialmente o
segundo exercício da subseção 6.6.2.
Download

Guia para estudo dos Capítulos 5 e 6 de BCC