• Nenhum resultado encontrado

Introdução. Introdução. Objetivos da Aula. Bases Computacionais da Ciência(BC-0005)

N/A
N/A
Protected

Academic year: 2021

Share "Introdução. Introdução. Objetivos da Aula. Bases Computacionais da Ciência(BC-0005)"

Copied!
10
0
0

Texto

(1)

Bases Computacionais da Ciência (BC-0005)

Lógica de Programação: Estruturas Condicionais

Maria das Graças Bruno Marietto graca.marietto@ufabc.edu.br

Centro de Matemática, Computação e Cognição (CMCC) Universidade Federal do ABC (UFABC)

Introdução

Em um computador, um conjunto de instruções pode compreender:

Operações aritméticas que encontramos em uma

calculadorasimples: Soma

Multiplicação Divisão Subtração

Até instruçõesutilizadas para tomar decisões

Ler dadosa partir do teclado Gravaresses dados no disco, etc

Introdução

Aprender a programar não é uma tarefa trivial:

Pois envolve manipularuma representação abstratado

mundo real, criada dentro do computador:

Aprender as questõesrelativas à linguagemque está sendo usada para criar os programas, e a lógica de programação em si

No capítulo anterior:

Vimos os primeiros conceitos de Lógica de Programação:

Instruçãoe sequência de instruções

3

Objetivos da Aula

Objetivos desta aula:

Apresentaremos um conceito mais elaborado: As estruturas condicionais

(2)

Estruturas

Estruturas de controle permitem o controle do fluxo de

execução dos comandos

Temos três estruturas básicas de controle:

Seqüencial

Condicional ou Desvio Repetição

Estrutura de Controle Seqüencial

Estrutura Seqüencial

Épadrãoem toda a forma de algoritmo:

Seqüênciaonde o computador irá ler os comandos de cima para baixo, e da esquerdapara direita

Uma estrutura seqüencial é um conjunto de comandos que serão executados em uma seqüência linear, de cima para baixo

Os comandos serão executados na mesma

ordem em que foram escritos

C1

C2

...

Cn

Tomando Decisões – Estruturas Condicionais

Estrutura Condicional:

É também conhecida como estrutura de decisãoou seleção Um desvio condicional é usado para escolher entre cursos alternativos de ação em um programa

7

Estrutura Condicional:

É caracterizadapor executar determinados códigos de programação que dependemda veracidadede uma condição

Tomando Decisões – Estruturas Condicionais

O nosso cotidianoé repleto de tomadas de decisões: Você deve decidirentre ir à universidadede carroou

bicicleta

Estudarpara a disciplina de Bases Computacionaisou ir à festa

Para cada decisão, há conseqüências específicas

Estrutura Condicional:

Esta estrutura se subdivideem outras duas estruturas: Estrutura/desvio condicional simples (se-então)

Estrutura/desvio condicional composta(o) (se-então-senão)

(3)

Tomando Decisões: Estrutura Condicional Simples

No desvio condicional simplesuma condição é avaliadae, se o resultado for verdadeiro, um conjunto de instruções é executado

Acondição irá determinar a execução, ou não, de um determinado comando

Exemplo:

Descrição narrativa: SEfizer sol ENTÃOvou à praia Fluxograma:

SE tempo = Sol ENTÃO {

Vou à Praia }

Linguagem Algorítmica

Tomando Decisões: Estrutura Condicional

Composta

No desvio condicional composto, a condição irá determinar qual comando será executado dentre dois listados

Na estrutura composta

temos:

“Se...Então...Senão”.

Então

Senão

Tomando Decisões: Estrutura Condicional

Composta

Exemplo:

Descrição Narrativa: SEfizer sol ENTÃOvou à praia SENÃO jogarei cartas

Fluxograma:

11

Linguagem Algorítmica

SE tempo = sol ENTÃO { Vou à praia } SENÃO { Jogarei cartas } Então Senão 12

RoboMind

(4)

Mapas no RoboMind

Para maiores detalhes de como montar um mapa no RoboMind veja em:

http://www.robomind.net/downloads/RoboMapFormat.pdf

Os elementos que podem ser colocados no mapa são: Ladrilhos/Obstáculos

Balizas/Objetos Robô

Espaços em branco Linha branca ou preta

Mapas no RoboMind

Ladrilhos: os ladrilhos são representados por letras maiúsculas

Os ladrilhos existentes são:

Mapas no RoboMind

15

mapaTeste2.map

Mapas no RoboMind

Espaço: para inserir

espaços em branco basta deixar um espaço livro no arquivo *.map Objeto/Baliza: o caracter * (asterisco) insere um objeto/baliza no arquivo mapa

Início do robô: utilize o caracter @ (arroba)

(5)

Mapas no RoboMind

Traços (Pintar) : Traços podem ser adicionados ao mapa escrevendo uma lista com os seguintes pares:

(cor, tipo, x , y) cor = A cor da pintura

Pode ser somente w ou b, respectivamente branco e preto tipo = A forma da linha

. = um ponto

− = uma linha horizontal para a direita | = uma linha vertical para baixo x = a posição horizontal onde a linha começa y = a posição vertical onde a linha começa

Mapas no RoboMind

Linhas horizontais e verticais ocupam exatamente dois blocos Um ponto ocupa um bloco

No exemplo duas linhas são definidas: { (w, -, 2, 2,) , (b, . , 2, 3) }

uma linha horizontal em x = 2, y = 2, e um ponto preto em x = 2, y = 3

O canto superior esquerdo da tela é x = 0 e y = 0

A direção x é da esquerda para a direita, a direção y é de cima para baixo

Seguir o Robô ou Não?

Comando Exibir-> Acompanhar Robô

Caso esta opção tenha sido selecionada, a execução da simulação irá focar no movimento do robô. Sendo assim, não será possível analisar uma outra área do mapa onde o robô não esteja. Você pode tentar arrastar o mapa para tal posição, mas ele voltará para o local onde está o robô

Sem a opção de rastreamento o sistema mostra qualquer local do mapa, mesmo naqueles onde o robô não está

19

Estrutura Condicionais com o RoboMind

O RoboMind tem comandospara observar o ambiente, para que os seus programas possam tomar decisões baseando-se no estado do ambiente

O robô pode observar as células da: Esquerda

Direita Frente

As observações podem ser de cinco tipos diferentes: Existe um obstáculona célula? (ladrilho)

A célula está vazia?

Tem um objetona célula? (baliza) A célula está pintada de branco? A célula está pintada de preto?

(6)

Estrutura Condicional com o RoboMind

Resumo dos comandosparatestar as observações:

Estrutura Condicional com o RoboMind

Comandos de observação do ambiente podem ser usadosem

combinaçãocom estruturas de decisão, para que o robô tome

decisõesbaseando-se no estado do mundo:

se (condição) { comandos } Comandos são executados somente se a CONDIÇÃO for VERDADEIRA

Estrutura Condicional com o RoboMind

O que faz o programa a seguir?

23

Observa a célula da esquerda e, se ela estiver pintada de branco, repinta a célula de preto, voltando

a sua posição Digite estes comandos no RoboMind e salve-o com o nome

testeEsquerda.irobo

Abra o mapa mapaTeste2.mape execute o programa testeEsquerda.irobo

Diminua a velocidade de execução e dê um zoom para ver o robô mais de perto

Estrutura Condicional com o RoboMind

24

Se você tentar executar esse programa e a célula da esquerda não estiver pintada

de branco?

Nada acontece pois o bloco de código será executado

apenas se aquela célula estiver pintada de branco

Como resolver esta situação??

(7)

Estrutura Condicional com o RoboMind

Você pode usar uma variaçãodessa estrutura de controle para instruir o robô a realizar uma atividade alternativa, caso a

condição NÃOseja verdadeira:

se (condição) {comandos} senão

{comandos}

Nesse caso, caso SE a célula esteja pintada de branco, o robô irá pintá-la de preto e voltar a sua posição anterior. CASO CONTRÁRIO, o robô irá andar três posições para a frente e parar

Observe que apenas UM dos blocos de comandos é executado

Expressões Lógicas

No arquivo mapaTeste2.mapaltere a posição do robô para

um local onde não haja marca branca na sua direita

Insira no script testeEsquerda.irobotos comandos a

seguir: senão { andarFrente(3) }

Expressões Lógicas

A condiçãodo comando SEé, na verdade, uma expressão lógica

que pode assumir os valores VERDADEIROou FALSO, dependendo do estado do cenário

Expressões lógicas:

Também podem envolver combinaçãode expressões simples através do uso de conectivos lógicos

O RoboMind dispõe de três conectivos lógicos:

Não E Ou

27

Expressões Lógicas

O conectivo Ecompara duas expressões lógicas e o resultado é VERDADEIROapenas se as DUASforem VERDADEIRAS

O conectivo OUcompara duas expressões e o resultado da expressão é VERDADEIROse qualqueruma das DUAS, ou AMBAS, forem VERDADEIRAS

(8)

Exercícios

Exercício das Caixas I

O caminho a ser percorrido pelo robô para esse mapa pode ser visto na figura abaixo

A princípio poderíamos usar uma estratégia parecida com a da aula passada, e programar o caminho “na mão”, e passando pelos pontos que contornam a caixa

Entretanto, essa abordagem não é muito flexível, pois semudarmos a caixa de posição, o programa perde a utilidade

Exercício das Caixas I

31

O programa a seguir tenta fazer com que o robô atravesse o cenário da esquerda para a direita

virarDireita() repetir(12) {

andarLeste(1) }

Esse programa funcionaria se não houvesse as CAIXAS no cenário Mas se você executar esse programa nesse cenário, o seu programa ficará parado em frente à primeira caixa

Vamos alterar este programa, para que possamos contornar as caixas mapaCaixasI.map

Exercício das Caixas I

32

(9)

Neste novo programa o robô dá um passo de cada vez

e se houver um obstáculo à frente, ele contorna a caixa dando um passo para o norte, dois para o leste, e um para o sul

Esse programa funciona para qualquer lugar que você colocar a caixa no caminho do robô

Isto porque a posição da caixa não está codificada diretamente no código, mas ela “é encontrada” testando-se se há um obstáculo a frente

CaixaI.irobo

Altere o programa do “Exercício das Caixas I” para que, quando o robô encontrar uma caixa:

O robô utilize o comando sortear() para gerar um valor

verdadeirooufalso

o Caso seja verdadeiro, então o robô deve contornar a caixa por cima. Ou seja, andar para o Sul

o Caso sejafalso, então o robô deve contornar a caixa por baixo. Ou seja, andar para o Norte

Exercício das Caixas II – Usando

sortear()

35

CaixaII_Sortear.irobo

Exercício Desenhando no Chão

Abra o mapaopenArea.map

Desenvolva um programa no qual o robô comece a pintar em branco e depois decida em qual das quatro direções vai andar (com probabilidades iguais)

Sempre quando ele se deparar com uma linha na frente, ele vai pintar na cor oposta

Por exemplo, quando o robô está diante de uma linha branca, vai começar a pintar em preto, e vice versa

(10)

Referências

Documentos relacionados

Os estudos originais encontrados entre janeiro de 2007 e dezembro de 2017 foram selecionados de acordo com os seguintes critérios de inclusão: obtenção de valores de

Devido às características do Sistema Brasileiro, o Planejamento da Operação de Sistemas Hidrotérmicos de Potência (POSHP) pode ser clas- sicado como um problema de

O PROGRAMA DE PÓS-GRADUAÇÃO EM ANÁLISE DE BACIAS E FAIXAS MÓVEIS, DA UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO –UERJ, torna público o presente Edital, com normas,

A seleção portuguesa feminina de andebol de sub-20 perdeu hoje 21-20 com a Hungria, na terceira jornada do Grupo C do Mundial da categoria, a decorrer em Koprivnica, na

INDICADORES AMBIENTAIS ESSENCIAIS: UMA ANÁLISE DA SUA UTILIZAÇÃO NOS RELATÓRIOS DE SUSTENTABILIDADE DAS EMPRESAS DO SETOR DE ENERGIA ELÉTRICA SUL AMERICANO, ELABORADOS

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Este desinteresse pela produção certificada de queijo de cabra em favor do queijo de ovelha (ou mistura) dever-se-á ao diferencial de preços entre os queijos de ovelha/mistura e

- Não poderá haver, sob qualquer hipótese ou alegação, o impedimento à ação fiscalizadora do Poder Público Municipal junto às Microempresas ou Empresas de Pequeno