manual de logica v1

39
7/18/2019 Manual de Logica V1 http://slidepdf.com/reader/full/manual-de-logica-v1 1/39  Manual de sobrevivência em Lógica de programação - Marcelo Garcia –

Upload: luis-carlos-machado

Post on 02-Mar-2016

29 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 1/39

 

Manual de sobrevivência em

Lógica de programação

- Marcelo Garcia –

Page 2: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 2/39

 

2

Copyright (c) 2013, Marcelo Garcia.

Todos os direitos reservados

Redistribuição e uso destes documentos, com ou sem modificações, são

permitidos desde que observadas as seguintes condições:

* Redistribuições ou modificações precisam manter a licença de copyright

mencionada acima, esta lista de condições e a isenção de responsabilidade a

seguir.

* Nem o nome de Marcelo Garcia nem o nome de seus colaboradores

podem ser usados para endossar ou promover documentos ou textos

derivados deste documento a menos que com expressa autorização por

escrito.

ESTA DOCUMENTACAO E PROVIDA PELOS DETENTORES DOS DIREITOS

AUTORAIS E COLABORADORES "COMO ESTA" E QUAISQUER GARANTIASEXPRESSAS E IMPLICITAS, INCLUINDO, MAS NAO LIMITADO A, AS

GARANTIAS IMPLICITAS DE MERCABILIDADE E AJUSTE PARA ALGUM

PROPOSITO ESPECIFICO SAO DESCARTADAS.

EM MOMENTO NENHUM DEVERAO OS DETENTORES DOS DIREITOS

AUTORAIS OU SEUS COLABORADORES SER RESPONSAVEIS POR QUAISQUER

DANOS DIRETOS, INDIRETOS, ACIDENTAIS, ESPECIAIS, EXEMPLIFICADOS OUCONSEQUENTES (INCLUINDO, MAS NAO LIMITADO A, BUSCA DE PRODUTOS

OU SERVICOS SUBSTITUTOS; PERDAS DE USO, DADOS OU RENDIMENTOS;

OU INTERRUPCAO DE NEGOCIOS) DE QUALQUER MANEIRA COMO SEJAM

CAUSADOS E POR QUAISQUER TEORIAS DE RESPONSABILIDADE, QUER EM

CONTRATO, RESPONSABILIDADE ESTRITA, OU DANOS (INCLUINDO

NEGLIGENCIA OU OUTRO QUALQUER) CAUSADOS POR INFORMACOES

PROVIDAS POR ESTA DOCUMENTACAO, MESMO SE ADVERTIDO DE TAISDANOS.

Page 3: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 3/39

 

3

Algumas palavras

Este manual visa servir de texto base para os alunos da disciplina delógica de programação do curso técnico em Informática para Internet,

âmbito Ead / e-Tec Brasil.

Deixo aqui o meu agradecimento a duas pessoas fundamentais para

a criação desde manual. O Eduardo Wenzel Brião, coordenador do curso no

momento em que escrevo este manual. Agradeço a toda motivação e

abertura de portas na rede e-Tec.

A segunda pessoa é para outro coordenador do e-Tec, o Alexandre

Leite. Apesar de não ter muito contato com ele no curso, ele foi meu

professor de lógica de programação há uns 20 anos atrás. Então parte do

que eu escrevo aqui, aprendi com o Alexandre!

A ideia deste manual não é ser definitivo, ou uma bíblia no assunto.Até por que não sou pesquisador ou doutor no tema. A ideia é ser

minimalista. Servir de apoio para o aluno em inicio de aprendizagem, para

que possa de maneira rápida e segura entender o esqueleto logico que

precisamos ter para desenvolver qualquer programa.

Espero que seja realmente útil

E vamos aos estudos!

Page 4: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 4/39

 

4

Sumário

1- Lógica ....................................................................................... 5

1.2-Lógica de programação ............................................................... 6

1.3-Algoritmo ..................................................................................10

1.4-Algoritmo Humanizado ..............................................................13

1.5-Algoritmo Computacional ..........................................................16

1.5.1-Anatomia básica .....................................................................16

1.5.2-Comandos de entrada e saída .................................................18

1.5.2-Comentários ...........................................................................19

1.5.3-Variaveis .................................................................................20

1.5.4-Declarando variáveis ...............................................................22

1.5.5-Tipagem de variáveis ..............................................................23

1.5.6-Constantes..............................................................................261.5.7-Nomenclatura de variáveis e constantes .................................27

1.5.8-Operações com variáveis ........................................................28

1.5.9-Variaveis Lógicas .....................................................................29

2-Fluxo de um algoritmo ..................................................................34

2.1.1-Estruturas de repetição ...........................................................36REFERENCIAS ...................................................................................39

Page 5: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 5/39

 

5

1- Lógica

A lógica está intrinsecamente ligada ao ser humano. Filósofos

gregos já praticavam exercícios de logica. Definir lógica é algo

complexo. Os puristas e entendidos que me perdoem, mas gosto de

pensar que lógica é a capacidade de organizar o pensamento

buscando o entendimento dos fatos, da situação observada. Lógica

para mim faz parte do método cientifico. Lógica é raciocínio. Lógica é

pensar. É observar, é entender.

O bom da lógica é que podemos reproduzir resultados. Se

seguirmos os passos do que aprendemos e reproduzi-los novamente,

podemos esperar o mesmo resultado. Não acredita? Jogue um tijolo

de cima da mesa. Jogue outro. Outro. Outro. Todos caíram? Se não

caíram ou você não está neste planeta, ou esta fazendo isto muito

errado!

Ficaremos então com este conceito simplista de lógica:

Page 6: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 6/39

 

6

1.2-Lógica de programação

Quando pensamos em programação o que nos vem à mente?

O guia de programação de sua tv a cabo? Ou a programação da festa

anual de sua cidade? Que tal a programação de cinema do mês?

Embora o leque de pensamentos possa ser imenso, temos algum

conceito pessoal para a palavra PROGRAMAÇÃO – Nos exemplos

citados podemos compreender programação como organização. No

caso de um festival, montar um programa com todos os eventos que

irão ocorrer exige alguma ou muita logística. Quem é da cidade,quem pode fazer apresentação no determinado horário, quem

precisa de transporte, como trataremos as exceções. Podemos

pensar em diversos fatores, ou (guarde esta palavra

usaremos em breve). E LOGISTICA, deve ser uma derivação sufixal de

LÓGICA (LOGOS EM GREGO)!

Vejam quantas conexões e inter-relações podem ser

estabelecidas, e às vezes não nos damos por conta! Podemos ainda

pensar em outro tipo de programação. Quando vamos ajudar o modo

desligar de nosso aparelho de TV, por exemplo, estamos

programando. E um exemplo mais interessante ainda – Micro-ondas.

Aquela caixa magica. Quando vamos descongelar algo, por exemplo,

temos que informar a /BOTÃO descongelar, e em seguida opeso do que queremos descongelar, e então apertar o start/iniciar.

Provavelmente você nunca parou para pensar que SIM, você

programa o seu micro-ondas. É algo do nosso dia a dia, tão banal que

usamos de maneira rotineira e automática, que perdemos a

contextualização do fato, perdemos a noção de quanta coisa(informação) nos usamos para programar o micro-ondas por

exemplo. Seguindo no exemplo do descongelamento, veja o

esquema a seguir:

Page 7: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 7/39

 

7

Em uma atividade cotidiana temos envolvidos diversos

conceitos de programação. E neste momento estamos carentes de

um conceito mais “computacional” de programação, e aqui vai um

conceito pouco ortodoxo, no melhor estilo minimalista sobre

programação:

Sim programa em uma abstração é RESOLVER, SOLUCIONAR,

EQUACIONAR uma situação ou problema proposto. Seja algo simples

como calcular uma média, ou algo complexo como calcular dados

balísticos (uma das primeiras aplicações dos computadores).

Então programar é fácil?

EQUIVALE

Page 8: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 8/39

 

8

Sim. E não. Neste momento precisamos de um conceito mais

sólido de programação. Atualmente programar é escrever um código

em uma linguagem de computador. Esta linguagem será processada

de alguma maneira por um computador. O nosso trabalho é escreverinstrução por instrução detalhadamente, pois a máquina é “burra”. E

a organização destas instruções é crucial. Aqui entra a LÓGICA.

Lembrando-se do conceito visto - OBSERVAR, ANALISAR e

DESMONTAR o processo em etapas/ações/atividades, capazes de

serem executadas, em uma sequencia logica de instruções. Portanto

programar um código para um cálculo de média aritmética é uma

tarefa trivial. Programar um código para simular projeções de

balística já é uma tarefa herculana! Quanto maior a complexidade do

cenário/problema existe mais nuances a serem identificadas e

convertidas em linhas de código.

E aqui começamos a ver conceitos recorrentes. Programação

esta intrinsecamente ligada a lógica. Programação pertence ao

mundo lógico.

Uma das linguagens que iremos trabalha no curso chama-se

PHP. E como falamos tanto que é fácil construir um código

(programar) para calculo de médias, abaixo vai um pequeno código

em PHP que resolve esta questão, e o resultado de sua execução:

Pequeno programa em PHP que calcula a média

Page 9: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 9/39

 

9

Executando o pequeno código, temos como saída (resultado

do processamento).

Em javascript, podemos ter o seguinte código-fonte para

resolvermos o problema da média:

Embora a linguagem seja diferente, o resultado produzido

pelo nosso processamento (saída), é o mesmo!

Mas antes de entrarmos nos meandres de aprendermos uma

linguagem de programação, precisamos fortalecer a nossa lógica.

Precisamos reaprender a pensar termos domínio sobre o

pensamento, e em como pensar. Precisamos enxergar a sequencia

logica de eventos.

Papel, lápis e borracha a postos, pois iremos programar no

papel. Sim exatamente isto, no papel!

Page 10: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 10/39

 

10

1.3-Algoritmo

Algoritmo é programar?!?!?!?

É programar “em papel”. Édeterminar a logica principal do

problema proposto. Nestamodalidade a sintaxe não é tão

importante.

Várias considerações quefaríamos em um programa

escrito em uma linguagem deprogramação, não são feitas.Não escrevemos um código

realmente e sim umpseudocódigo, de alto nível. Estecódigo pode ser traduzido para

qualquer linguagem deprogramação.

Algoritmo é por sua natureza um pseudocódigo, embora

existam softwares voltados para seu ensino, como o visualg que“executa” um algoritmo. É o registro LÓGICO e cadenciado e em

ALTO NIVEL dos passos a serem executados para resolver um

problema. Algoritmo esta intimamente ligado a programação. E

programação esta intimamente ligada a logica. Portanto podemos

entender algoritmo como:

“Uma série limitada de etapas com objetivo de executar

(Resolver) determinada tarefa. Estas etapas tem que estar

ordenadas de maneira logica.”  

SIM NÃO

Page 11: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 11/39

 

11

De maneira bem simplista, podemos pensar que o algoritmo

é uma receita de bolo. Para o mesmo problema – neste caso fazer um

bolo, podemos ter diversas maneiras ou receitas de fazê-lo. Abaixo

um exemplo de duas receitas de bolo de baunilha, retiradas dainternet.

2 xícaras de farinha de trigo

1 xícara de açúcar

1 colher fermento químico empó

4 unidades de ovo1/2 xícara de leite

1/2 colher (sopa) de essênciade baunilha

Numa tigela, misture a farinha e ofermento. No liquidificador, coloque osovos, o açúcar, a margarina, e o leite.Bata por 2 minutos e despeje sobre afarinha com fermento. Misture bem, juntea baunilha e misture mais um pouco.

Coloque a massa em fôrma de coneuntada e enfarinhada. Asse por 35minutos em forno pré-aquecido.

3 ovos grandes 1/2 xícara de óleo 

1 colher (chá) de

essência de baunilha 

2 xícaras de açúcar  

250 ml de leite 

3 xícaras de trigo 

1 colher (sobremesa) de

fermento em pó 

1.Em uma batedeira, bata os ovos até ficarembem clarinhos 

2.Adicione o óleo sem parar de bater  

3.Coloque o açúcar de uma só vez e continuebatendo 

4.Adicione a baunilha 

5.Aos poucos despeje o trigo e o leite 

6.Depois de bem batido, adicione o fermento emisture só por alguns segundos, pois, se batermuito depois de colocar o fermento o bolo nãocrescerá 

7.Despeje a mistura em uma forma média,untada com margarina e trigo 

8.Asse em forno médio, por aproximadamente

40 minutos, ou até dourar  

Page 12: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 12/39

 

12

Não testei nenhuma das receitas. E NÃO é requisito para esta

disciplina que vocês as testem. Mas qual o nosso problema nesta

receita? PRODUZIR UM BOLO DE BAUNILHA.  Notem que para o

mesmo PROBLEMA, temos SOLUÇÕES diferentes. Ambas as receitassão de um bolo de baunilha com ingredientes e modo de fazer

diferente. E ambas RESPONDEM  ao questionamento/problema, ou

seja, produzir um bolo de baunilha.

E por que são diferentes? Talvez as pessoas que escreveram a

receita tenham experiências diferentes, ou até mesmo ingredientes

diferentes. Mas gosto de pensar que temos VISÕES diferentes domesmo assunto. E a maneira de pensar é muito individual. E isto faz

diferença para a logica. A maneira como abordamos o problema

neste momento não importa, desde que sejamos capazes de

DECOMPOR AS ETAPAS PRINCIPAIS DE UM PROCESSO, E

CANDENCIALAS DE MANEIRA QUE RESPONDAM AO QUE FOI

PERGUNTANDO! E isto é fazer um algoritmo!

Page 13: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 13/39

 

13

1.4-Algoritmo Humanizado

Quando começamos a estudar lógica de programação e

algoritmos, usualmente usamos exemplos do cotidiano do aluno para

introduzir o assunto. Eu chamo este tipo de algoritmo de “Algoritmo

Humanizado”. De fato nunca vi este termo, então posso ter criado

um conceito para a posteridade!

Eu particularmente não gosto de trabalhar muito tempo com

algoritmos humanizados. Considero um mal necessário, e járespondo por quê. Uma das características dos algoritmos é serem

finitos, ou seja, terem cabeça, corpo e pé, como no esquema a seguir:

Esta é uma característica presente nos algoritmos e herdado

do conceito de  processo que tem inicio (cabeça), meio (corpo) e fim

(pé). Um processo pode ser repetido zilhões de vezes, se mantidas as

condições inicio->meio->fim teremos sempre o mesmo resultado.Vamos tornar este conceito mais palpável. Já fizemos bolo de

baunilha neste livreto despretensioso. Para mantermos o interesse

Inicio

Meio

Fim

Page 14: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 14/39

 

14

de quem não gosta de bolo, vamos ilustrar o conceito de processo

com um exemplo digamos mais salgado, como um extrato de tomate.

Vamos imaginar uma fabrica de extrato de tomate. De um

lado entram os tomatinhos colhidos, são lavados, esmagados e etc., e

sai uma bela latinha de extrato de tomate do outro lado. Se

repetirmos todas as tarefas na mesma sequencia, ou seja, repetirmos

este processo sob as mesmas condições nós teremos o mesmo

resultado – no nosso exemplo uma bela latinha de extrato de tomate.

Acompanhe o esquema:

Tomate Fábrica Extrato

ENTRADA PROCESSAMENTO SAIDA

E aqui temos outra característica importante que os

algoritmos e a própria logica de programação herdam do conceito de

processo: Entrada->Processamento->Saída. Este conceito confunde-

se com o Inicio->Meio->Fim. Quando escrevermos algoritmos

computacionais, será de extrema importância retomar esta trinca E-

>P->S.

Continuando o meu desencanto por algoritmos humanizados,

e respondendo o por quê do meu desencanto é que em um exemplo

de uma situação humana as possibilidades de

podem ser inúmeras. Vamos imaginar e vamos escrever umalgoritmo humanizado para que um autômato (ou robozinho) suba

em uma escada. Ele lera instrução por instrução e executara uma por

vez. Então vamos a nossa primeira tentativa de escrever um

Page 15: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 15/39

 

15

algoritmo que comande este autômato obediente, sempre

lembrando que a responsabilidade pelo sucesso do processo é sua

(ou minha?) bem como a segurança do meu novo amigo autômato!

Tenha em mente que um autômato nada sabe, e seguira a risca asnossas instruções (algoritmo). Ai vamos a tentativa 1:

1 - Inicio

2- Pegue a escada

3- Suba na escada

4- Fim

Notem que as ações (VERBOS) PEGAR e SUBIR podem ter

algumas conotações e entendimentos possíveis. Pegar e trazer?

Pegar e largar? Ora um ser humano entenderia perfeitamente o

algoritmo acima. Mas o autônomo tem a mente vazia. Ele pode

entender por subir num sentido diferente do nosso. Veja abaixo

Algoritmo concluído. Mas não solucionou o problema certo?

Subir (e até mesmo pegar) reúne um subconjunto de instruções. Fixar

a escada, segurar ela, erguer a perna direita até a altura do outro

 joelho, impulsionar para frente, fixar o pé no degrau, segurar a

escada e impulsionar a outra perna. É isto ou quase isto. E este é um

problema dos algoritmos humanizados. Podemos ter muitas etapas

em um processo simples, ou que é simples para um ser humano. Masnão para o autômato.

Chefe já subi!

Page 16: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 16/39

 

16

1.5-Algoritmo Computacional

Felizmente o nosso objeto de estudo são os algoritmos

computacionais. São bem lógicos e com possibilidades menores em

muitos casos se comparados ao universo humano. Executar um

cálculo de média é muito mais fácil do que subir uma escada. Ao

menos o autômato acha isto!

Para escrevermos um algoritmo computacional precisamos

definir algumas regras e critérios de sintaxe, ou seja, a forma deescrita correta para algoritmos. Vamos definindo a nossa sintaxe

durante este livro. Não se preocupe se as coisas acelerarem um

pouco, mas para criarmos um algoritmo computacional, vamos

precisar sedimentar conceitos chaves como variáveis e operadores,

por exemplo. Mas vamos guia-lo de uma maneira não tão ortodoxa,

mas por um caminho que irá fazer sentido. É como o lego da capa

deste livro. No inicio as peças de lego parecem desconexos. Mas em

breve iremos sequencia-los e conecta-los criando verdadeiras

maravilhas da logica!

1.5.1-Anatomia básica

Neste momento vamos mostras como espero que vocês

escrevam um algoritmo formalmente. Não se preocupe muito com

isto agora. No momento certo vamos dissecar parte por parte de um

algoritmo!

O algoritmo não é uma linguagem de programação de fato.

Ela é comumente chamada de pseudocódigo. Portanto ela admite

diversas sintaxes. Sempre que possível eu particularmente prefiro serminimalista. Estou preocupado com a lógica em si para resolver o

problema. Mais do que com o formalismo da escrita do algoritmo.

Neste livro irei utilizar uma sintaxe objetivando num segundo

Page 17: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 17/39

 

17

momento transcrever os nossos algoritmos em linguagem PHP. Esta

medida ira familiarizar um pouco a sintaxe da primeira linguagem de

programação que iremos trabalhar. A seguir um “corpo” de

algoritmo.

Neste momento chamo a atenção para algo importante, e

que irá melhorar a legibilidade de nossos códigos (ou

pseudocódigos). A EDENTAÇÃO. Não sei o que o dicionário diz sobre

o verbete indentação. Mas eu escreveria “ato ou efeito de edentar –produzir marcas ou retrancas dentadas.”. Com uma definição destas

pouco provavelmente irei escrever um dicionário nesta vida. Mas

edentar significa isto mesmo. Fazer dentes. Que dentes?? Olhe que

entre a declaração de inicio e fim do algoritmo acima, nos temos um

espaço nas próximas declarações. Isto ajuda na legibilidade de leitura

e depuração do código. Se não ficou claro agora não se preocupe em

breve isto fara todo o sentido!

Algoritmo <NomeDoAlgoritmo>;

Const

/* declaração das constantes */

var

/* declaração das variáveis*/

inteiro: var1, var2;

real: var3;

string: nome;

inicio

/* comandos */

comando 1;

comando 2;

..........comando n;

fim

Page 18: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 18/39

 

18

1.5.2-Comandos de entrada e saída

Já falamos na trinca entrada -> processamento -> Saída,

conceito advindo de processos. Em algoritmos computacionais aentrada será uma informação, um DADO. No exemplo da fabrica de

extrato de tomate, a entrada eram... Tomates!

Precisamos ter um comando, uma instrução que nos permita

inserir estes dados de entrada. Vou mostrar o comando de entrada e

o de saída, e ai voltaremos a falar sobre variáveis. Para entrar com

uma informação (do teclado, por exemplo) iremos usar o poderosocomando LEIA. O comando leia lê um dado, e armazena-lo em uma

variável de memoria. Meio obvio não? O leia lê!

E para comando de saída (impressão), que é a maneira que

iremos apresentar o(s) resultado(s) de nosso processamento, iremos

usar o comanda escreva. Ou imprima se preferir. É tão simples. Mas

para fixar, vamos fazer um pequeno exemplo. Neste exemplo ireiomitir a declaração de variáveis, propositadamente.

Temos um belíssimo exemplo de um algoritmo, que lê e

escreve. Simulando o seu funcionamento teríamos um prompt

piscando. E eu digitaria o nome. Logo a seguir receberia a mensagem:

Lindo nome senhor Marcelo

início

/* declaração das constantes e variáveis*/

Leia nome;

Escreva “Lindo nome senhor - ” + nome;

fim

Page 19: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 19/39

 

19

Isto é logica. O autômato executou o comando leia e depois o

comando imprima. E claro, qualquer autômato sabe que Marcelo é

um lindo nome!

1.5.2-Comentários

Comentários servem, pasmem - Para fazermos comentários!

A logica é infalível realmente. E para que fazer comentários? Para

chamar atenção ou documentar algo por exemplo. O comentário

inicia pela sequencia /* e termina pela sequencia invertida */ 

Comentários não são e nunca serão executados! Veja

exemplos abaixo?

/* Isto é um comentário */ 

/* Este é um bloco de comentário.

Vejam que esta linha não tem caracter especial para comentáriosEntão quando eu “abro” a marcação do comentário ele espera

encontrar seu fechamento em algum momento */ 

Tenha em mente que TUDO queestiver dentro de um

comentário...

NÃO SERÁ EXECUTADO

Trechos de código, mesmo que correto, estando comentado jamais

será executado!

/* Escreva “Nunca serei executado...Entendeu?”; */

Page 20: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 20/39

 

20

1.5.3-Variaveis

Já sabemos como ler um dado, e como imprimir mensagens.

Mas antes de avançarmos é muito importante sabermos comoiremos armazenar e manipular estas informações (Dados), que serão

digitados no teclado por exemplo. Vamos criar uma abstração de

dado e da memória RAM (Random Access Memory). Vamos imaginar

que a memoria é uma forma de silicone para chocolate destas bem

bacanas que vem da China ou do mercado livre. (já temos receita de

bolo, então um bombom esta intimamente relacionada, não é

mesmo?)

ESFÉ

RICA

CUBICA

Page 21: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 21/39

 

21

RET

ANGULAR

Olhando as formas de silicone, percebemos três formatos

distintos. A primeira pode guardar bombons esféricos, a segunda

bombons cúbicos e a terceira bombons retangulares. Simples não é

mesmo? Cada bombom em uma posição da forma. Se você observar

bem, cada forma pode armazenar 15 bombons. E cada bombompode VARIAR. Não de FORMA, mas de sabor, recheio, cor, entre

outras características. Cada bombom é OBJETO (você ainda vai ouvir

falar em objetos novamente) único, ou não. Podemos ter a forma

toda preenchida de bombons de morango por exemplo. Ou com três

bombons de canela, dois brancos, um de avela e nove de doce de

leite. Com estas observações simples do dia a dia, chamo a atenção

para três conclusões:

  Cada forma é capaz de armazenar UM TIPO de bombom. Um

bombom esférico não pode ser guardado na forma

retangular. E vice e versa.

  O conteúdo das formas pode ser VARIADO. Todos do mesmo

formato, mas de sabores diversos. E posso comer um, e repor

com outro bombom diferente.

Page 22: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 22/39

 

22

  Cada bombom de um RÓTULO, uma ETIQUETA, um NOME.

Este é um bombom de avelã, aquele é o bombom de

morango.

Encerrando a abstração, identificamos as algumas das

características de uma variável. Variável é uma porção de memoria

(FORMA DE BOMBOM) capaz de guardar/armazenar um DADO

(bombom). A variável pode ter o seu conteúdo acrescido, alterado,

modificado e removido, situações análogas que ocorrem com a forma

de bombom. Cada variável guarda um TIPO de dado, assim como a

forma de bombom cubica é capaz de guardar apenas bombonscúbicos. E cada variável tem um nome. Rapaz pegue o bombom de

avelã na forma esférica, por favor!

1.5.4-Declarando variáveis

Baseado nas características que levantamos sobre variáveis, o

mínimo que uma variável precisa para existir é um tipo e umnome/rotulo. O dado (bombom) pode ser armazenado depois.

Vamos usar o critério de especificar o tipo, e depois a lista de

variáveis. Há outra notação corrente, de especificar primeiro o nome

das variáveis e no final o tipo. Entretanto como algoritmo esta

associado a “papel e caneta”, é mais pratico escrever primeiro o tipo,

Page 23: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 23/39

 

23

e depois a variável. Assim variáveis podem ser acrescidas facilmente,

caso haja a necessidade.

1.5.5-Tipagem de variáveisAlgum tempo atrás, o tipo de variáveis tinha uma relação

direta com a arquitetura do computador. Este paradigma, entretanto

foi superado e temos uma diversidade de tipos de dado. Entretanto

para escrever algoritmos, quanto mais simples melhor. Seguindo este

preceito minimalista, apresento quatro tipos de dados. E iremos

resolver uma diversidade de problemas com eles.

Tipo de variável O que armazena

String String em inglês, esta relacionado com corda.Por corda podemos entender CADEIA ouSEQUENCIA. E uma string no sentidocomputacional é exatamente isto. É um tipo dedados que guarda letras, símbolos e números.Mas entende tudo como caractere literal. Épróprio para sequencias de caracteres, comoum nome, um endereço, um telefone, porexemplo,

Inteiro Poderíamos ter um tipo numérico, quearmazenaria números em geral. Entretanto umproblema clássico em computação é armazenar

números de ponto flutuante (números reais).Então usaremos o tipo INTEIRO para armazenarnúmeros INTEIROS – ou seja, números que “nãotenham vírgula” – como 1, 2, 1024, 293092309.

Real É um tipo numérico especifico para númerosreais ou fracionários. Admite inteiros? Sim. Maseles são armazenados como se tivessem parte

decimal. Neste caso a parte decimal épreenchida com zeros

Logico Variável lógica (booleana). Admite ourepresenta dois estados. Verdadeira ou Falsa.

Page 24: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 24/39

 

24

Agora sim conseguimos declarar variáveis. Vamos fazer um

algoritmo de exemplo. Nosso algoritmo deve ler o nome de um

aluno, e seu ano de nascimento. Em seguida deve mostrar uma

mensagem de boas vindas e dizer a sua idade. Aqui vai uma dasinúmeras possibilidades de solução deste algoritmo.

Al gor i t mo BoasVi ndas;var

i nt ei r o: i dade, ano_nasci ment o;

st r i ng: nome;

i ni ci oescr eva “Di gi t e seu nome: ”;

l ei a nome;

escr eva “Di gi t e seu ano de nasci ment o”;l ei a ano_nasci ment o;

i dade = 2014 – ano_nasci ment o;

escr eva “Ol a ” + nome + “sej a bem vi ndo! ”;

escr eva “você t em apenas “ + i dade;f i m

  Opt ei por usar uma var i avel par aar mazenar a i dade. Poder i a si mpl esment e te

f ei t o assi m:

escr eva “você t em apenas “ + 2014 – ano_nasci ment o;

Mas neste momento não estamos preocupados com as

possibilidades de variações do algoritmo. Cabe aqui introduzir uma

pergunta reveladora – O algoritmo proposto RESOLVE a situação

exposta/solicitada?

Responder esta pergunta implica em outra – Como testar um

algoritmo? Simples. Vamos “executando” linha a linha. De cima para

baixo. E a cada execução vamos anotando em um cantinho da folha o

conteúdo das variáveis. Se a saída (resultado) foi o que foi pedido,

Page 25: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 25/39

 

25

então nosso algoritmo funciona. Pode não estar otimizado, mas esta

funcional.

 Algoritmo Execução

i ni ci oescreva “Di gi t e seu nome: ”;

l ei a nome;

escreva “Di gi t e seu ano de

nasci ment o: ”;

l ei a ano_nasci ment o;

i dade = 2014 – ano_nasci ment o;

escr eva “Ol a ” + nome + “sej a bem

vi ndo! ”;

escreva “voc t em apenas “ +

i dade;

f i m

 

Di gi t e t eu nome:

Marcel o

Di gi t e seu ano de

nasci ment o:

1973

I dade = 41

Ol a Marcel o sej a bem

vi ndo

Você t emapenas 41

Este é um algoritmo bastante simples; As variáveis acabam

não sendo alteradas após termos digitado seus valores. Mas

basicamente é assim que testamos, linha a linha, anotando as

modificações que os comandos fazem no conteúdo das variáveis. E

neste exemplo,

E vendo a sua “saída”. Imprimei uma mensagem amigável, o

nome digitado, e a idade de acordo com o ano digitado. Sim ele

funciona.

Ao menos em 2014. Já em 2015... Sei não!!!

Page 26: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 26/39

 

26

1.5.6-Constantes

Depois de entendermos o conceito e utilidade de uma

variável, entender o conceito de constante fica bastante simplificado.Constante é um espaço de memoria alocado para guardar um

determinado tipo de dado. Até aqui nada diferente de variavel.

Exceto por um detalhe – Variável, como o próprio nome sugere,

pode, e geralmente sobre mutações em seu conteúdo. Pode ser

acessado, modificado, alterado livremente. Diferente de uma

constante que como o próprio nome sugere mantem o seu valor

inalterado durante a execução do algoritmo.

Em nossa sintaxe iremos utilizar uma área especifica para

declaração de constantes. Em algumas linguagens atuais não existe

uma área formal para declaração de constantes. Dai bate saudades

da linguagem de programação chamada Pascal. Ela tinha a sintaxe

extremamente parecida com um algoritmo, foi muito utilizada para

alunos iniciais em programação.

Antes da área das variáveis, existe a área para declaração de

constantes.

Algoritmo <NomeDoAlgoritmo>;

const

/* declaração das constantes */

var

/* declaração das variáveis*/

inicio

/* comandos */

fim

Importante frisar que ao declararmos uma constante, nos

não declaramos um tipo. Simplesmente o rotulo (nome) e fazemos a

atribuição direta do valor para a constante. O tipo sera definido pelo

Page 27: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 27/39

 

27

tipo de informação (dado) que estamos atribuindo a constante. Veja

alguns exemplos:

Al gor i t mo Const ant es;

ConstI dade=41; / * Const ant e i nt ei r a */

Nome=”Mar cel o Gar ci a”; / * St r i ng */Sal ar i o=18976, 82; / * Real */

i ni ci o

escr eva “Est e al gor i t mo não f az nada út i l

r eal ment e! ”;

escr eva “Você t em “ + I dade + “ anos”;escr eva “Seu nome e “ + Nome;

escr eva “E você ganha apenas “ + Sal ar i o;f i m

1.5.7-Nomenclatura de variáveis e

constantes

Precisamos ter alguns critérios para dar nomes a constantes e

variáveis. É verdade que algoritmo é uma “linguagem de papel”. Mas

no mundo real usaremos alguma linguagem de programação. E ela

terá de entender o nome das variáveis. Nós fixaremos aqui as

regrinhas básicas

1 - Caracteres validos para nome de variáveis- Letras, números e _ (underline).2-  JAMAIS iniciar uma variável com umnúmero. O processador sintático iraentender como uma expressão matemática3-  Procure usar nomes significativos,

para melhorar a legibilidade do seu código.

Page 28: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 28/39

 

28

Com estas regrinhas em mente vamos criar exemplos e

contraexemplos.

Exemplos

Nome1

Quatro _4QuiaboNome_Aluno _Aluno

Contraexemplos

2o_Nome4_serie

Nome-Aluno4

1.5.8-Operações com variáveis

ATRIBUIÇÃO

Atribuição: Podemos preencher o valor de umavariável, usando o operador de atribuição =Na pagina anterior já usamos este operador

Idade=41;

A variável Idade PASSAR A SER 41. O valor 41 é

atribuído a variável Idade.

Aritméticos

+Soma duas variáveis, ou números. Exemplo:Salario + Comissao

-Subtrai duas variáveis, ou números. Exemplo:AnoAtual - AnoNascimento

*

Multiplica duas variáveis, ou números. Exemplo:

Base * Altura

Page 29: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 29/39

 

29

/

Divide uma variável ou numero pela outra. É do tipoREAL. Exemplo:

Salario / 3

DIV

Divisão INTEIRA. Retorna um tipo INTEIRO. Exemplo:

5 DIV 2

Resultado – 2

MOD

Retorna o resto da divisão INTEIRA. Retorna um tipointeiro. Exemplo

5 MOD 2Resultado - 1

%

^

Exponenciação. Ela a primeira variável ou numero aoexpoente

3 ^ 2Resultado - 9

Hierarquia de execução

Primeiro os parentesSegundo exponenciaçãoTerceiro multiplicação ou divisão

Quarto soma ou subtração

Se os operadores forem de mesma ordem serão resolvidos daesquerda para a direita.

1.5.9-Variaveis Lógicas

Variáveis logicas, ou booleanas, estão mais relacionadas a

estados  do que a conteúdos. Lembramos aqui de bits. Um bit tem

dois estados possíveis – ligado ou desligado, acesso ou apagado, on

Page 30: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 30/39

 

30

ou off, 0 ou 1, verdadeiro ou falso. E variáveis logicas tem este

mesmo sentido. Representam dois estados possíveis, basicamente

verdadeiro ou falso. Declaramos variáveis logicas da seguinte forma:

Al gor i t mo Const ant es;Var

Logi ca : St at us, st s_quebr ou;

i ni ci o

St at us = V;

St s_quebr ou = F;escr eva “Seu St at us é “ + St at us;

escr eva “Quebr ou al go? “ + st s_quebr ou;

f i m

Com o pseudocódigo acima teríamos como saída:

Seu St at us é V

Quebrou al go? F

Variáveis logicas, ou booleanas são extremamente relacionadas com

as estruturas de decisão.

1.6.0-Variaveis Contadoras

Variáveis contadoras não é um tipo especial de variável. É umconceito de uma variável do tipo inteiro que ira ser incrementada de

uma unidade a cada iteração. Esta intimamente relacionada com

estruturas de repetição, que veremos no capitulo 2.

1.6.1-Variaveis Acumuladoras

Variáveis acumuladoras devem serem encaradas comoTOTALIZADORES. São usadas para totalizar (acumular) um valor

especifico. Se quisermos saber o peso total dos alunos da turma,

Page 31: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 31/39

 

31

precisamos TOTALIZAR os pesos individuais. É uma técnica de

programação corriqueiramente no dia a dia.

Faremos um pequeno exemplo para ilustrar o uso de

contadores e acumuladores. Neste momento este exemplo vai

parecer pouco importante. Mas acreditem quanto forem

apresentadas as estruturas de repetição, o exemplo de variáveis

contadoras e acumuladoras será muito mais rico e consistente.

Const r ua um al gor i t mo que l ei a a i dade e peso det r ês al unos. Depoi s apr esent e a medi a do peso e das

i dades. A t ur ma t em 5 al unos.

Al gor i t mo Cont aAl unosVar

I nt ei r o: Nr oAl uno, I dade, Tot al I dade;Real : Peso, Tot al Peso;

I ni ci oNr oAl uno = 0; / * Aqui i ni ci al i zamos com 0 */

 Tot al Peso = 0; Tot al I dade = 0;

Nr oAl uno = Nr oAl uno + 1; / * Var i avel Cont ador –

El a cont a de 1 em 1. Como o val or ant er i or del a er a 0,passa a ser 1 */

Escr eva “Al uno” + Nr oAl uno + “, por f avor ,di gi t e ”.

Escr eva “Sua i dade : ”;Lei a I dade; Tot al I dade = Tot al I dade + I dade; / * Var i avel

Acumul ador a – Aqui el a acumul a as i dades * /

Escr eva “Seu Peso : ”;Lei a Peso;

 Tot al Peso = Tot al Peso + Peso; / * Aqui acumul a o

peso */

Nr oAl uno = Nr oAl uno + 1; / * 1 + 1 */Escr eva “Al uno” + Nr oAl uno + “, por f avor ,

di gi t e ”.

Escr eva “Sua i dade : ”;

Page 32: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 32/39

 

32

Lei a I dade;

 Tot al I dade = Tot al I dade + I dade;Escr eva “Seu Peso : ”;Lei a Peso;

 Tot al Peso = Tot al Peso + Peso;Nr oAl uno = Nr oAl uno + 1; / * 2 + 1 */

Escr eva “Al uno” + Nr oAl uno + “, por f avor ,di gi t e ”.

Escr eva “Sua i dade : ”;Lei a I dade; Tot al I dade = Tot al I dade + I dade;Escr eva “Seu Peso : ”;

Lei a Peso; Tot al Peso = Tot al Peso + Peso;Nr oAl uno = Nr oAl uno + 1; / * 3 + 1 */

Escr eva “Al uno” + Nr oAl uno + “, por f avor ,di gi t e ”.

Escr eva “Sua i dade : ”;Lei a I dade;

 Tot al I dade = Tot al I dade + I dade;Escr eva “Seu Peso : ”;Lei a Peso; Tot al Peso = Tot al Peso + Peso;

Nr oAl uno = Nr oAl uno + 1; / * 4 + 1 */

Escr eva “Al uno” + Nr oAl uno + “, por f avor ,di gi t e ”.

Escr eva “Sua i dade : ”;

Lei a I dade; Tot al I dade = Tot al I dade + I dade;Escr eva “Seu Peso : ”;

Lei a Peso; Tot al Peso = Tot al Peso + Peso;I mpr i ma “Ti vemos “ + Nr oAl uno;

I mpr i ma “Medi a Peso” + Tot al Peso / Nr oAl uno;

I mpr i ma “Medi a I dade” + Tot al I dade /Nr oAl uno;

I mpr i ma “Peso Tot al Tur ma ” + Tot al Peso;

Page 33: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 33/39

 

33

I mpr i ma “Tot al I dade Tur ma” + Tot al I dade;

Fi m 

O algoritmo ficou extenso porquê tivemos de fazer 5 leiturasde peso e idade. E como ainda não conhecemos nenhuma estrutura

de repetição tem que resolver a situação com conhecimento que

temos até o momento. Ler e Imprimir basicamente. Entretanto estes

algoritmos têm alguns refinamentos. Ele pede o numero do aluno em

questão. E ele usa a variável contadora NroAluno para calcular as

medias. Se tivermos que ler mais informações as expressões decalculo não terão de ser modificadas. “Execute” no papel este

algoritmo, linha a linha. Faça uma tabela para as variáveis, e vá

anotando o resultado linha a linha. Entenda o funcionamento das

variáveis acumuladoras e contadoras, linha a linha!

1.6.1-Variaveis Sinalizadoras Flag

/* ADICIONAREI EM BREVE */ 

Page 34: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 34/39

 

34

2-Fluxo de um algoritmo

Através dos exemplos feitos até agora inclusive com

demonstração da “execução“ do algoritmo de BoasVindas,

naturalmente você já deve ter percebido, que existe uma sequencia

de execução – “De cima para baixo”. Vamos executando linha a linha,

sem desvios ou interrupções, via de regra.

Se pararmos para pensar, será possível termos trechos de

códigos que não gostaríamos de executar em determinada condição?

Ainda em duvida? Proponho como exemplo, desenvolvermos um

algoritmo para a sentença abaixo:

“Caso esteja nublado leve o guarda-chuva!”

Sentença trivial de nosso dia a dia. Mas como escrever um

algoritmo que resolva esta situação? Sabemos comando de entrada e

saída, expressões e criarmos constantes e variáveis. Vamos tentar

então.

Al gor i t mo Guar daChuva_V1

VarSt r i ng: est achovendo;

I ni ci o

Escr eva “Est a nubl ado? ( si m/ não) ”;

Page 35: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 35/39

 

35

Lei a est achovendo;

Escr eva “Leve o guarda- chuva”;

f i m

 

Observe atentamente o algoritmo GuardaChuva_V1. Ele cria

uma variável estachovendo para ler do teclado um “sim” ou “não”;

Em seguida ele imprime a mensagem “Leve o guarda-chuva”. Mas ele

imprime a mensagem eu digitando sim, ou não. O fluxo vem

executando de cima para baixo!

0 Vamos a outro exemplo mais simples de ser implementado.

Você ficou de castigo, por não ter trazido uma maça pro seu

professor. Ele mandou você fazer um algoritmo que escreva 10 vezes

a mensagem “Devo trazer uma maça para meu professor!”.

Al gor i t mo MaçaI ni ci o

Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;

Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;

Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;

Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;

Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;Escr eva “Devo t r azer uma maça para o meu prof essor ! ”;

Fi m

 

Este foi mais fácil. Estão ai as 10 mensagem de castigo. E se o

professor pedir 20? 50? 100? 1000? Neste exemplo pode ser

absurdo. Mas imagine quando se faz o cadastro dos alunos do etec

por exemplo. Quantas vezes tem que se executar o MESMO trecho

de código?

Page 36: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 36/39

 

36

Felizmente não somos os únicos a sofrer deste mal. Já

inventaram as soluções para nossos problemas. Temos estruturas

capazes de MODIFICAREM o fluxo de execução, conforme as

condições do problema.

2.1.1-Estruturas de decisão ou

condicional

2.1.2-Estruturas de repetição

Relembrando o algoritmo do castigo. Fazer um programa que

escreva a mesma mensagem pode ser impossível com o que sabemos

até o momento. Imagine fazer um algoritmo que imprima o seu

nome 10.000 vezes. Manualmente não é impossível. Mas é inviável.

O pseudocódigo prevê estruturas que permitem repetirmos trechos

de código de maneira controlada. Desta forma podemos dimensionar

e resolver problemas de imprimir 10.000 vezes algo, por exemplo.Vamos dar uma olhada em cada uma delas

2.1.2.1-Para/faça

Esta estrutura permite executar um trecho do código um

numero fixo de vezes. No item 1.6.1, nos criamos um algoritmo para

ler a idade e peso de 5 alunos, e depois calcular a sua media. Tivemos

de repetir o trecho do código 5 vezes. Se usarmos uma estrutura de

Page 37: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 37/39

 

37

repetição não teremos todo aquele trabalho. Vamos começar pela

sintaxe desta estrutura de repetição.

Para  <var i ável > de  <val or i ni ci al > até  <val or f i nal > [ Passo

<i ncr ement o>]   f aça

Lista de comandos; 

Fim Para

Talvez no primeiro impacto pareça um pouco complexo. Mas

acreditem é uma estrutura de fácil entendimento, e de uso comum

em qualquer algoritmo. Vamos dissecar passo a passo

<variável> - Nome da variável que ser usada no para. Na verdade é

uma variável contadora. PRECISA SER DECLARADA NA AREA DE

DECLARAÇÃO DE VARIAVEIS. É uma espécie de INDICE;

<valor inicial> - É o valor inicial dela. Geralmente 0 ou 1. Mas pode

ser qualquer valor inteiro.

<valor final> é o limite da repetição. Ele ira iniciar no valor inicial e ira

repetir até o valor final.

<incremento> - É opcional. Se não informarmos o laço será

aumentado de 1 em 1, exatamente como em um contador. Mas o

comando é flexível, e podemos modificar este valor.

Al gor i t mo Maca2Var

I nt ei r o: I ;

I ni ci o

Par a I de 1 até 10 f açaEscr eva “Devo t r azer uma maça para o meu

pr of essor ! ”;Fi m Par a

Page 38: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 38/39

 

38

Fi m

 

2.1.2.2-Enquanto/façaOutra estrutura de repetição bastante interessante é a estrutura

enquanto. Ela surge naturalmente nos algoritmos humanizados -

”enquanto houver degraus suba”. Ela repete um trecho de código,

enquanto a condição especificada no teste seja falsa. Se a condição

nunca tornar-se verdadeira, o trecho de código será executado

indefinidamente em um “looping” infinito. Isto é muito importante!

A diferença básica entre o para/faça e o enquanto é que o para/faça

eu informo um numero de repetições (embora em algumas

linguagens de programação o uso de expressões no para/faça é

permitido). Já no enquanto eu colocarei uma condição que será

testada. E por condição temos vários exemplos, como “enquanto

chover”, “enquanto não passar”, “enquanto não tiver frio” e por aivai. Vamos dar uma olhada na sintaxe da estrutura enquanto/faça

Enquanto  <condi ção> f aça

Lista de comandos; 

Fim Enquanto

De certa feita parece uma estrutura mais simples do que o para/faça.

Mas é muito poderosa. Vamos propor um exemplo similiar ao da

maça, feito no para/faça. Mas vamos resolvê-lo usando a estrutura

enquanto faça

Al gor i t mo Maca3

Var

I nt ei r o: I ;I ni ci o

I = 1; / * I ni ci al i zo o cont ador com val or 1 */

Enquant o I <= 10 f aça

Page 39: Manual de Logica V1

7/18/2019 Manual de Logica V1

http://slidepdf.com/reader/full/manual-de-logica-v1 39/39

Escr eva “Devo t r azer uma maça para o meu

pr of essor ! ”;I = I +1;

Fi m Enquant o

Fi m 

Olhando o exemplo Maça3, o resultado é o mesmo do que o Maça2.

Notem porem que nos temos o controle da condição. Se

esquecermos de incrementar o contador I, a condição será infinita! O

Laço de repetição será executado infinitamente, pois atribuímos 1

antes da execução. Este é um dos maiores cuidados que temos queter com estruturas enquanto – A condição de saída dela.

REFERENCIAS

Lógica de programação – A construção de algoritmos e estruturas dedados – André Forbellone & Henri Eberspächer –3ª edição - 2005 -Pearson Prentice Hall

Curso essencial de lógica de programção – Marilane Almeida – 1ªEdição -2008 – Digerati Books