Para o primeiro algoritmo, é desejável que o iniciante tenha lido o tópico deste fórum explicando como funciona um algoritmo e só então voltar aqui e fazer junto com a gente esse algoritmo.
Descrição: Precisamos orientar um robô para trocar verificar a lâmpada da sala e se tiver queimada, a lâmpada deve ser trocada.
Solução:
- Início
- Vá até a sala
- Se a luz estiver desligada
* Então:
| - Vá até a chave
| - Ligue a luz
| - Se a luz não ascender
| * Então:
| | - Desligue a chave
| | - Vá até a garagem
| | - Pegue a escada
| | - Volte para a sala
| | - Abra a escada
| | - Coloque a escada abaixo da lâmpada
| | - Suba a escada
| | - Retire a lâmpada
| | - Desça a escada
| | - Leve a lâmpada até o lixo
| | - Coloque a lâmpada no lixo
| | - Volte para a sala
| | - Vá até o armário
| | - Abra o armário
| | - Pegue uma lâmpada nova
| | - Feche o armário
| | - Vá até a escada
| | - Suba a escada
| | - Coloque a lâmpada nova
| | - Desça a escada
| | - Vá até a chave
| | - Ligue a luz
| | - Se a luz ligou
| | * Então:
| | | - Está tudo ok
| | * Senão:
| | | - Procure o responsável
| | | - Avise sobre o ocorrido
| | - Vá até a escada
| | - Feche a escada
| | - Leve a escada até a garagem
| | - Guarde a escada
| | - Volte para a sala
| * Senão:
| | - Está tudo ok
| - Vá até a chave
| - Desligue a luz
* Senão:
| - Está tudo ok
- Volte para o seu lugar
- Fim
Explicação do algoritmo:
Vamos analisar agora o código.
- Perceba primeiro que ele está como descrito no tópico falando o que são algoritmos, é uma sequência de comandos lidos de cima para baixo que devem ser obedecidos rigorosamente.
- O algoritmo tem um Início e um Fim porque é uma lista de comandos FINITA
- Veja que os comandos são bem detalhados, para ter certeza de que o robô vai fazer exatamente o que pedimos para ele fazer.
- Algumas palavras estão em negrito porque são palavras-chave que marcam pontos estratégicos no nosso algoritmo para que o robô siga as instruções de acordo com o que estiver acontecendo, nesse algoritmo estamos usando uma estrutura de decisão com duas possíveis ocorrências (Se acontecer isso, faz aquilo, senão faz esse outro)
- Por fim, veja que alguns comandos estão mais distantes dos outros (mais para a direita). Estes comandos estão dentro do bloco de ações que a decisão teve que tomar e só serão executados caso aconteça o que foi testado no SE, ou seja, se for verdadeiro. Para quem usa o Windows Explorer ou qualquer programa que demonstre uma árvore de diretórios parecido com o WE, já deve estar acostumado com uma estrutura parecida onde os diretórios mais a direita estão dentro dos outros diretórios.
Exercício
Escolha um dos exercícios abaixo(caso não saiba como fazer um ou outro) ou faça os dois(recomendado):
- Faça um algoritmo que oriente um robô a fazer arroz tradicional.
- Faça um algoritmo que oriente um robô a trocar o pneu de um carro.
Boa prática.
________________________________________
Informação adicional
Essas condições podem variar de linguagem para linguagem, veja aqui alguns exemplos:
PHP
Se = if
Então = {
Senão = else
Final da condição = }
Sintaxe: <? if ($variavel == "Alguma coisa") {
$outravariavel = "Alguma coisa diferente";
}
else {
$outravariavel = "Alguma coisa diferente ainda";
}
?>
________________________________________
Visual Basic
Se = if
Então = then
Senão = else
Final da condição = end if
Sintaxe:
if text1.text = "Alguma coisa" then
text2.text = "Alguma coisa diferente"
else
text2.text = "Alguma coisa diferente ainda"
end if
________________________________________
C/C++
Se = if
Então = {
Senão = else
Final de condição = }
Sintaxe: if ( text == "Alguma coisa" )
{
answer = "Alguma coisa diferente";
}
else
{
answer = "Alguma coisa diferente ainda";
}
________________________________________
LUA
Se = if
Então = then
Senão = else
Final de condição = end
Sintaxe:
if text == "Alguma coisa" then
answer = "Alguma coisa diferente"
else
answer = "Alguma coisa diferente ainda"
end
Bom, essas são as linguagens de que tenho conheçimento.
Compare e veja a semelhança entre elas.