Buscar

Logica de Programacao e Algoritmos Aula (5)

Prévia do material em texto

CONVERSA INICIAL 
Olá! Seja bem-vindo(a) à quinta aula da disciplina Lógica de Programação e Algoritmos. Hoje vamos trabalhar as estruturas de programação 
condicional e de repetição. Conheceremos a sintaxe geral, bem como exemplos e exercícios para compreendermos estas duas estruturas de 
controle de programação. 
Os tópicos abordados serão: 
 Estrutura condicional (Seleção) 
 Estrutura de repetição 
 
CONTEXTUALIZANDO 
Você se lembra das três estruturas de controle básicas em programação e construção de algoritmos? São elas: sequencial, condicional e 
repetição. 
 
É importante notar que, com a combinação de tais estruturas de controle, pode-se resolver qualquer problema algorítmico! O importante é 
entender o processo lógico por trás das funções, sem se deixar intimidar pelos cálculos específicos de cada situação. 
 
A seguir, vamos aprimorar nossos conhecimentos em estruturas condicionais e iniciar a compreensão da estrutura de repetição. 
 
 
PESQUISE 
Estrutura Condicional (Seleção) – Parte I 
 
 
Relembrando, uma estrutura de seleção permite a escolha de um grupo de ações (bloco) a ser executado quando determinadas condições, 
representadas por expressões lógicas ou relacionais, são ou não satisfeitas. 
 
As condicionais podem ser do tipo simples, composta e encadeada. 
 
 
Seleção Simples 
Se <condição) 
Então 
Comandos 
Fimse 
 
Seleção Composta 
Se <condição> 
Então 
Comandos 
Senão 
Comandos 
Fimse 
 
Seleção Encadeada 
Se <condição 1> 
Então 
Se <condição 2> 
Então 
Comandos 
Fimse 
Senão 
Se <condição 3> 
Então 
Comandos 
Fimse 
Fimse 
 
Voltando ao mesmo exercício de algoritmo que receba três números, mostre-os em ordem crescente e diga qual é o maior! 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Observe atentamente a tabela a seguir. Nela, temos várias situações que precisaremos analisar antes de iniciarmos a construção do algoritmo. 
 
N1 N2 N3 Observações 
10 10 10 Todos iguais 
d10 10 9 n1=n2 
10 9 10 n1=n3 
9 10 10 n2=n3 
10 9 8 n1>n2>n3 
10 8 9 n1>n3>n2 
9 10 8 n2>n1>n3 
8 10 9 n2>n3>n1 
9 8 10 n3>n1>n2 
8 9 10 n3>n2>n1 
 
 
Nas 4 primeiras linhas vemos que 
temos opções que invalidam o que 
precisaríamos fazer no algoritmo. 
Então, iniciamos nossa utilização 
de comandos de decisão falando 
para o usuário que as entradas 
destas linhas são inválidas. 
 
Resolvidas as condições inválidas, 
partimos para as condições 
válidas. Neste caso, nas próximas 
linhas da tabela, agrupadas de 
duas em duas linhas, observamos 
que no primeiro momento 
isolamos o n1, no segundo o n2 e 
no terceiro o n3. 
 
 
Uma vez que isolemos por exemplo o n1, já sabemos que ele é o maior de todos, mas precisamos ainda testar quem é maior dos que 
sobraram: n2 ou n3. Assim, duas situações podem acontecer: 
 
 n2 pode ser maior que n3 
 n3 pode ser maior que n2 
 
E isto se repetirá para n2 maior e para n3 maior. Simples, não? Confira um exemplo de algoritmo: 
 
algoritmo "Maior3" 
// Função : Verificar o maior de tres numeros e ordenar (crescente) 
// Autor : Profa. Maristela. 
// Data : 11/01/2015 
// Seção de Declarações 
var 
 n1,n2,n3: real 
 
inicio 
// Seção de Comandos 
 escreval("Digite tres números quaisquer: ") 
 leia(n1) 
 leia(n2) 
 leia(n3) 
 
 se (n1=n2) e (n2=n3) entao 
 escreva ("Os tres numeros sao iguais :", n1, n2, n3) 
 senao 
 se (n1=n2) ou (n2=n3) ou (n1=n3) entao 
 escreva ("Ha numeros iguais :", n1, n2 ,n3) 
 senao 
 
 
 se (n1>n2) e (n1>n3) e (n2>n3) entao 
 escreva (" n1>n2>n3 ", n1,">", n2,">", n3) 
 fimse 
 
 se (n1>n3) e (n1>n2) e (n3>n2) entao 
 escreva (" n1>n3>n2 ", n1,">", n3,">", n2) 
 fimse 
 
 se (n2>n3) e (n2>n1) e (n3>n1) entao 
 escreva (" n2>n3>n1 ", n2,">", n3,">", n1) 
 fimse 
 
 se (n2>n1) e (n2>n3) e (n1>n3) entao 
 escreva (" n2>n1>n3 ", n2,">", n1,">", n3) 
 fimse 
 
 se (n3>n1) e (n3>n2) e (n1>n2) entao 
 escreva (" n3>n1>n2 ", n3,">", n1,">", n2) 
 fimse 
 
 se (n3>n2) e (n3>n1) e (n2>n1) entao 
 escreva (" n3>n2>n1 ", n3,">", n2,">", n1) 
 fimse 
 fimse 
 fimse 
 
fimalgoritmo 
 
 
Estrutura de Repetição – Parte II 
11 
 
 
A estrutura de repetição é utilizada quando se sabe o número de vezes em que um trecho do algoritmo deve ser repetido. É o tipo de estrutura 
que facilita quando precisamos que um bloco de comandos seja feita 10, 100, 1.000, 10.000 ou mais vezes! 
 
A seguir, confira a construção passo a passo dessa estrutura! 
 
 
ESTRUTURA PARA 
para <variável> de <valor-inicial> ate <valor-limite> [passo <incremento>] faca 
 <sequência-de-comandos> 
fimpara 
 
 
<variável > Controla o número de repetições. 
<valor-inicial> Especifica o valor de inicialização. 
<valor-limite > Valor máximo da variável contadora. 
<incremento > Opcional. Quando não utilizada o incremento é de 1 em 1. 
Fimpara Indica a finalização da repetição. 
 
Estrutura de Repetição – Parte III 
 
Agora vamos estudar a estrutura de repetição através de um exemplo. Acompanhe! 
 
Escreveremos um algoritmo que leia 50 valores e encontre o maior e o menor deles. 
 
 
 
 
 
 
 
 
 
Para começar, escreveremos a seguinte tabela para testarmos os dados para o algoritmo proposto: 
 
Maior menor i valor 
-999999999999 999999999999 1 15 
15 15 2 -9 
15 -9 3 20 
20 -9 4 156 
156 -9 5 48 
156 -9 
 
Neste algoritmo, escolhemos duas variáveis (maior e menor) que receberão inicialmente um valor que chamamos de estourado. 
 
No caso do menor, ele receberá o valor 999999999999 e no caso do maior, ele receberá um valor -999999999999. Isto porque, diante das 
entradas do usuário, a ideia é que o maior número seja maior que -999999999999 e o menor número menor que 999999999999. 
 
 
Na primeira execução do para faça, maior e menor ficarão com 15, pois 15 é menor que 999999999999 e maior é que -999999999999. 
 
Já na segunda execução do para faça, -9 não é maior que 15, por isto ele permanece, mas -9 é menor que 15, por isto ele troca de valor. 
 
E assim segue-se até as 50 repetições. 
 
 
TROCANDO IDEIAS 
Algumas das estruturas parecem complicadas de colocar em prática? Você não precisa estudar sozinho! 
 
Vá até o fórum e converse com seus colegas, vocês podem pesquisar e trocar dicas de exercícios, resolver problemas algorítmicos em equipe e 
descobrir as melhores soluções! 
 
Acesse o fórum através do Ambiente Virtual de Aprendizagem. 
 
SÍNTESE 
Nessa aula, trabalhamos algoritmos com estruturas de controle sequencial, condicional e de repetição (para faça). Vimos também que uma 
estrutura condicional pode ser simples, composta ou encadeada. 
 
Atenção: a forma que utilizaremos em nossos algoritmos dependerá de cada problema, bem como a organização da lógica por parte de cada 
um. 
 
 
 
 
COMPARTILHANDO 
Converse com seus amigos e colegas sobre o que você aprendeu hoje! Além disso, que tal pensar em alguns exercícios de lógica baseados nas 
vivências do dia a dia? Relacionar o conteúdo a aplicações práticas pode ajudar muito a fixar os conhecimentos! 
 
Assim termina nosso encontro de hoje! Nos vemos na próxima aula!

Continue navegando