Staffer Group BR™

Fórum interativo totalmente gratuito!

/* Widget *//* Resposta rápida bloqueada */
Cadastre-se
→ Crie a sua conta

 VisualizaçõesPermissão deste fórum:
Você não pode responder aos tópicos neste fórum


CurtirDiretório deste fórum:
Fóruns » Principal »  » Tutoriais » Programação Externa

#1
 D'Leandro™

avatar
Fundador
Recadinho: Então fizeram os exercícios? Sim? Então já estão crakes na programação? não fique triste, logo iremos aprender muito mais xD
Caso queira retornar ao indice inicial do curso, clique neste link.

No último post, eu deixei alguns exercícios pra vocês treinarem a elaboração de algoritmos e a implementação na linguagem Pascal. Então aqui você encontra as soluções para os exercícios (tanto a resolução algorítmica quanto as implementações em Pascal). As implementações foram feitas no PascalZim. Portanto, se alguém for compilar em algum outro ambiente, como o Turbo Pascal, não se esqueçam de adicionar depois da seção Program a seção Uses.

Vamos então ao nosso assunto de hoje. Até agora, todos os programas que fizemos eram totalmente sequenciais, ou seja, começavam da primeira linha e iam executando uma em seguida da outra, até a última linha. Dessa forma o nosso programa executa sempre as mesmas ações, o que não acontece com os programas em geral. Os programas geralmente, baseados em algum dado, selecionam porções do código a serem executadas, realizando operações diferenciadas a cada execução. Para representar essa seleção em nosso programa utilizamos as estruturas de seleção.

A primeira estrutura de seleção que iremos conhecer é o Se. O Se é utilizado quando esperamos por uma condição. O bloco de código referente só sera executado se a condição for verdadeira. A seguir temos um exemplo algoritmico da utilização dessa estrutura e sua implementação em Pascal.
Código:
leia(numero)
se (numero MOD 2 = 0) então
   início
      escreva("O número é par.")
   fim
Código:
readln(numero);
if (numero MOD 2 = 0) then
   begin
      write('O número é par.');
   end;
Neste exemplo, lemos do usuário a variável numero. Se o resto da divisão do conteúdo da variável for igual a zero, será mostrada na tela a frase O número é par. A partir disso, podemos criar condições para o nosso programa, executando determinadas tarefas somente se algumas condições forem satisfeitas. Mas e se, por exemplo o número não fosse par? Ele seria ímpar… mas como faríamos isso no programa? A estrutura do Se é composta do Senão, que é executado caso a condição do Se não seja satisfeita. A seguir temos o exemplo da utilização do Se com o Senão na forma algoritmica e na linguagem Pascal:
Código:
leia(numero)
se(numero MOD 2 = 0)
   então
      escreva("O número é par.")
   senão
      escreva("O número é impar.")
fim-se
Código:
readln(numero);
if (numero MOD 2 = 0) then
   begin
      write('O número é par.');
   end
else
   begin
      write('O número é ímpar.');
   end;
Dessa forma, se o número digitado fosse par, a mensagem O número é par. Caso contrário, a mensagem O número é ímpar. seria exibida. Além disso, podemos encadear vários ‘Ses’, criando uma série de condições. Podemos também, colocar mais de uma condição ou negar uma condição, com a utilização dos operadores lógicos e, ou e não.
Código:
leia(idade)
se (idade < 13)
   então
      Escreva("Criança")
senão se (idade >= 13 e < 21)
      escreva("Adolescente")
   senão
      escreva("Adulto")
fim-Se
Código:
readln(idade);
if (idade < 13) then
   begin
      write('Criança');
   end
else if (idade >= 13 and idade < 21) then
   begin
      write('Adolescente');
   end
else
   begin
      write('Adulto');
   end;
Ah, um detalhe. Percebam que em Pascal, somente o último End de uma sequência de Ifs tem ponto-e-vírgula! Observando o exemplo acima, podemos realizar diversas tarefas, encadeando diversos Ifs / Elses. Apesar de simples, esta estrutura é vastamente utilizada na programação. Porém, quando precisamos conferir o valor de uma variável frente a muitos valores, o uso de Ifs encadeados torna-se trabalhoso, principalmente ao programador, além de deixar o código repleto de Begins e Ends. Para resolver problemas do tipo, utilizamos uma estrutura chamada Escolha ou Case. Com ela, podemos comparar o conteúdo de uma variável frente a diversas constantes, de uma forma bem mais organizada que o simples encadeamento de Ifs. A seguir, temos um exemplo de um programa de apuração de votos, com a utilização do Escolha.
Código:
...
escolha (votos)
   caso (votos = 1) : candidato1 ← candidato1 + 1
   caso (votos = 2) : candidato2 ← candidato2 + 1
senão
   escreva("Voto inválido")
fim-escolha
Código:
case votos of
   1 : candidato1 := candidato1 + 1;
   2 : candidato2 := candidato2 + 2;
else
   write('Voto inválido');
end;
Neste caso, a variável votos foi comparada com os valores 1 e 2. Dependendo do seu conteúdo,  incrementa-se a variável correspondente ao candidato. Caso o voto não confira com nenhuma das opções do case, ele irá executar o comando para escrever Voto inválido na tela. Nesta estrutura, assim como no se, o uso do senão é facultativo, ou seja, ele não precisa necessariamente estar presente, sendo utilizado de acordo com a necessidade. Outro ponto é que os valores constantes comparados não precisam ser necessariamente inteiros. Podem ser, por exemplo, um tipo caracter.

Bom, pessoal, é isso. No começo pode ser que vocês estranhem um pouco estas estruturas, mas com o tempo elas virão a estar presente em praticamente todas as aplicações que vocês fizerem. E lembrem-se que, em caso de dúvida, podem deixar um comentário.

Este artigo foi escrito por Rafael Toledo e publicado no site rafaeltoledo.net
Obrigado pela visita e até o próximo post com as Estruturas de Repetição. Abraço a todos! :)
Ver perfil do usuário