Você está na página 1de 27

LÓGICA DE PROGRAMAÇÃO

Prof. Marcelo West

Araçuaí

2013
Sumário

1. Introdução ............................................................................................. 1

1.1 Algoritmos não computacionais ........................................................ 2

1.2 Algoritmos computacionais .............................................................. 4

1.2.1 Teste de Mesa ............................................................................ 6

1.4 Formas de Representação de Algoritmos ......................................... 8

1.3 Exercícios ...................................................................................... 12

2. Portugol .............................................................................................. 14

2.1 Variáveis e constantes ................................................................... 14

2.1.1 Constante ................................................................................ 14

2.1.2 Variável ................................................................................... 15

2.1.3 Tipos de dados ........................................................................ 15

2.2 Operadores ................................................................................... 16

2.3 Blocos e comandos básicos de controle ........................................ 18

3. Referências bibliográficas .................................................................. 22


Índice de Figuras

Figura 1: Exemplo de algoritmo não computacional .................................. 2

Figura 2: Outro exemplo de algoritmo não computacional ......................... 3

Figura 3: Etapas de criação de um algoritmo ............................................ 5

Figura 4: Entrada - Processamento - Saída ............................................... 5

Figura 5: Símbolos de um fluxograma ....................................................... 9

Figura 6: Fluxograma do algoritmo média ............................................... 10

Figura 7: Diagrama que representa um identificador ............................... 14

Figura 8: Tipos de dados ......................................................................... 15

Figura 9: Diagrama que representa a definição de uma variável .............. 16

Figura 10: Operadores aritméticos .......................................................... 16

Figura 11: Operadores relacionais .......................................................... 17

Figura 12: Operadores lógicos ................................................................ 18

Figura 13: Sintaxe de atribuição .............................................................. 18


1. Introdução

Lógica é a forma correta de organizar os pensamentos e demonstrar o raciocínio de


maneira formal. A utilização da lógica é a melhor forma de solucionar problemas e atingir
objetivos. Sempre que se quer pensar, falar ou escrever corretamente deve-se colocar os
pensamentos em ordem. Exemplos:

• Todo mamífero é animal


• Todo cavalo é mamífero
• Portanto, todo cavalo é animal

• A gaveta está fechada.


• A bala está na gaveta.
• Preciso primeiro abrir a gaveta, para depois pegar a bala.

A lógica é usada no dia a dia das pessoas que trabalham com computação para
solucionar problemas de forma eficiente. Algumas definições de lógica aplicada à
programação de sistemas:

• A lógica de programação é necessária para pessoas que desejam trabalhar com


desenvolvimento de sistemas e programas, ela permite definir a sequencia de
passos para o desenvolvimento.

• A lógica é a ciência que estuda as leis e os critérios de validade que regem o


pensamento e a demonstração, ou seja, ciência dos princípios formais do
raciocínio.

• Sequência lógica são passos executados até atingir um objetivo ou solução de um


problema.

Resumindo...

Lógica de programação é a
técnica de encadear
pensamentos para atingir
determinado objetivo.

1
1.1 Algoritmos não computacionais

Um algoritmo é uma sequência de instruções finita e ordenada de forma lógica para a


resolução de uma determinada tarefa ou problema. São exemplos de algoritmos
instruções de montagem, receitas, manuais de uso, etc.

Um algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um
único algoritmo. Então, pode-se afirmar que um algoritmo é um caminho para a solução
de um problema. Em geral, existem muitos (senão infinitos) caminhos que levam a uma
solução satisfatória.

Instruções são um conjunto de


regras ou normas definidas para a
realização ou emprego de algo.
Em informática, é o que indica a
um computador uma ação
elementar a executar.

Um algoritmo não computacional é um algoritmo cuja sequência de passos, a


princípio,não pode ser executada por um computador. Abaixo é apresentado um
algoritmo não computacional cujo objetivo é fazer uma ligação telefônica.
Provavelmente você “executou” o algoritmo deste exemplo diversas vezes.

O termo algoritmo está muito ligado à Ciência da Computação, mas, na realidade, ele
pode ser aplicado a qualquer problema cuja solução possa ser decomposta em um grupo
de instruções.

Início

1 Tirar o fone do gancho


2 Ouvir o sinal de linha
3 Teclar o número desejado
4 Esperar a pessoa atender
4.1 Conversar
5 Desligar

Fim

Figura 1: Exemplo de algoritmo não computacional

2
Um outro exemplo típico de algoritmo é uma receita culinária, como no exemplo abaixo.

Início

1 Pegar um ovo
2 Acrescentar manteiga na frigideira
3 Quebrar o ovo na frigideira
4 Acrescentar sal
5 Esperar fritar
6 Desligar o fogão
7 Tirar o ovo da frigideira
8 Colocar o ovo no pão

Fim

Figura 2: Outro exemplo de algoritmo não computacional

Para que o algoritmo possa ser útil, é necessário ainda que quem faz uso dele conheça
os termos utilizados nas instruções. O algoritmo do exemplo só será útil para alguém que
seja fluente na língua portuguesa e conheça o significado dos verbos pegar, acrescentar,
quebrar, esperar, desligar, tirar e colocar, assim como dos substantivos utilizados no
contexto de uma receita culinária.

Em outras palavras, é preciso que a linguagem utilizada no algoritmo seja conhecida


tanto por quem o escreveu quanto por quem vai executá-lo.

Para que o algoritmo possa ser executado por uma máquina é importante que as
instruções sejam corretas e sem ambiguidades. Portanto, a forma especial de linguagem
que utilizaremos é bem mais restrita que o Português e com significados bem definidos
para todos os termos utilizados nas instruções.

Essa linguagem é conhecida como Português Estruturado (às vezes também chamada
de Portugol). Ela é, na verdade, uma simplificação extrema do Português, limitada a
umas poucas palavras e estruturas que têm um significado muito bem definido. Ao
conjunto de palavras e regras que definem o formato das sentenças válidas chamamos
sintaxe da linguagem.

3
1.2 Algoritmos computacionais

O computador, a princípio, não executa nada. Para que ele faça uma determinada tarefa
(calcular uma folha de pagamento, por exemplo), é necessário que ele execute um
programa.

Um programa é um conjunto de milhares de instruções que indicam ao computador,


passo a passo, o que ele tem que fazer. Logo, um programa nada mais é do que um
algoritmo computacional descrito em uma linguagem de programação.

Uma linguagem de programação contém os comandos que fazem o computador


escrever algo na tela, realizar cálculos aritméticos, receber uma entrada de dados via
teclado, e milhares de outras coisas, mas estes comandos precisam estar em uma ordem
lógica.

Um algoritmo tem por objetivo representar mais fielmente o raciocínio envolvido na


Lógica de Programação e, dessa forma, permite-nos abstrair de uma série de detalhes
computacionais, que podem ser acrescentados mais tarde. Assim, podemos focalizar
nossa atenção naquilo que é importante: a lógica da construção de algoritmos.

Outra importância da construção de algoritmos é que uma vez concebida uma solução
algorítmica para um problema, esta pode ser traduzida para qualquer linguagem de
programação e ser agregada das funcionalidades disponíveis nos diversos ambientes;
costumamos denominar esse processo de codificação.

Em outras palavras:

ALGORITMO X PROGRAMA
Um algoritmo é uma sequência lógica de ações a serem executadas para se executar uma
determinada tarefa.
Um programa é a formalização de um algoritmo em uma determinada linguagem de
programação, segundo suas regras de sintaxe e semântica, de forma a permitir que o
computador possa entender a sequência de ações.

LINGUAGEM DE PROGRAMAÇÃO
Conjunto de símbolos ( comandos, identificadores, caracteres etc. ) e regras de sintaxe que
permitem a construção de sentenças que descrevem de forma precisa ações compreensíveis e
executáveis para o computador.

TIPOS DE LINGUAGENS DE PROGRAMAÇÃO


Existem diversas linguagens de programação, cada uma com suas características específicas e
com níveis de complexidade e objetivos diferentes:

• Linguagem de Máquina: Única compreendida pelo computador.


• Linguagens de Baixo Nível Ex.: Assembly
• Linguagens de Alto Nível. Utiliza instruções próximas da linguagem humana de forma a
facilitar o raciocínio (Ex.: Java, C++, PHP, ASP, etc.).

4
Na programação deve-se distinguir claramente dois aspectos:

• Aspecto estático: a formulação de um algoritmo consiste em um texto contendo


comandos (instruções) que devem ser executados numa ordem prescrita.

• Aspecto dinâmico: os efeitos que são causados pela execução do programa no


tempo, dado um conjunto de valores iniciais. A partir de agora iremos focar no
aspecto estático, ou seja, vamos nos preocupar em criar algoritmos para resolver
problemas. As três etapas na criação de um algoritmo são:

Entrada(s) PROCESSAMENTO Saída(s)

Figura 3: Etapas de criação de um algoritmo

Onde temos:
• Entrada: São os dados de entrada do algoritmo
• Processamento: São os procedimentos utilizados para chegar ao resultado final
• Saída: São os dados já processados

Fazendo uma analogia com o ser humano:

Figura 4: Entrada - Processamento - Saída

5
Exemplo:

Imagine o seguinte problema: Realizar a soma de dois números: N1 e N2.

Para montar o algoritmo proposto, faremos três perguntas:

a) Quais são os dados de entrada?

Resposta: Os dados de entrada são N1 e N2

b) Qual será o processamento a ser utilizado?

Resposta: O procedimento será somar todos os dados de entrada: Soma = N1 + N2

c) Quais serão os dados de saída?

Resposta: O dado de saída será a soma entre esses dois números

O algoritmo será:

1. Início
2. Leia o primeiro número
3. Leia o segundo número
4. Somar os números
5. Mostrar o resultado
6. Fim

1.2.1 Teste de Mesa

Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de
teste de mesa, que significa seguir as instruções do algoritmo de maneira precisa para
verificar se o procedimento utilizado está correto ou não.
Para acompanhar o desenvolvimento de um, algoritmo é importante verificar o estado
dos dados a cada instrução, verificando o conteúdo de todas as variáveis contidas no
algoritmo.
Sendo assim devem-se enumerar as linhas do algoritmo e em seguida criar uma tabela
onde, a cada linha, são mostrados os conteúdos das variáveis do algoritmo e o número
da linha executada. Para uma melhor visualização do processo, adotaremos a seguinte
convenção: nas linhas em que uma variável é lida (entrada), o valor da variável ficará
entre colchetes [ ] e quando o conteúdo de uma variável for escrito (saída), ficará entre
chaves { }.

6
Relembrando os sólidos de Platão:

As faces são constituídas por seções de planos, considerando que entre duas faces
temos as arestas, as quais possuem em suas extremidades os vértices. Platão foi um
filósofo grego, que viveu entre os séculos V e IV A.C., e estabeleceu importantes
propriedades em alguns poliedros.

O número de arestas é igual em todas as faces;


Os ângulos poliédricos possuem o mesmo número de arestas;
Nos sólidos considerados poliedros de Platão vale a relação de Euler (V – A + F = 2)
onde V = vértices, A = arestas e F = faces.
Para encontrarmos o número de vértices, vamos isolar o vértice da equação acima,
obtendo que:
V = 2 + A - F.

Aplicaremos a técnica do teste de mesa sobre o algoritmo abaixo o qual visa


determinar o número de vértices de uma figura geométrica.
Inicio
1. Escreva (“Entre com o número de faces da figura geométrica: ”)
2. Leia (faces)
3. Escreva (“Entre com um número da arestas da figura geométrica:”)
4. Leia (arestas)
5. Vértices = arestas + 2 – faces
6. Escreva (“O número de vértices do objeto especificado é: ”, vértices)
Fim

Linha Vértices Faces Arestas


1 ? ? ?
2 ? [6] ?
3 ? 6 ?
4 ? 6 [12]
5 8 6 12
6 {8} 6 12

7
1.4 Formas de Representação de Algoritmos

Existem diversas formas de representação de algoritmos, mas não há um consenso com


relação à melhor delas.

O critério usado para classificar hierarquicamente estas formas está diretamente ligado
ao nível de detalhe ou, inversamente, ao grau de abstração oferecido.

Algumas formas de representação de algoritmos tratam os problemas apenas em nível


lógico, abstraindo-se de detalhes de implementação muitas vezes relacionados com
alguma linguagem de programação específica. Por outro lado existem formas de
representação de algoritmos que possuem uma maior riqueza de detalhes e muitas
vezes acabam por obscurecer as ideias principais do algoritmo, dificultando seu
entendimento.

Dentre as formas de representação de algoritmos mais conhecidas podemos


citar:
• Descrição narrativa;
• Fluxograma;
• Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol.

Descrição narrativa:
Nesta forma de representação os algoritmos são expressos diretamente em linguagem
natural. Como exemplo, uma receita de bolo:

Receita de bolo:

Misture os ingredientes
Unte a forma com manteiga
Despeje a mistura na forma
Se houver coco ralado então despeje sobre a mistura
Leve a forma ao forno
Enquanto não corar deixe a forma no forno
Retire do forno
Deixe esfriar

Esta representação é pouco usada na prática porque o uso da linguagem natural muitas
vezes dá oportunidade a más interpretações, ambiguidades e imprecisões.

Fluxograma:
É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam
ações (instruções, comandos) distintos. Tal propriedade facilita o entendimento das
ideias contidas nos algoritmos e justifica sua popularidade.

8
Esta forma é aproximadamente intermediária à descrição narrativa e ao pseudocódigo,
pois é menos imprecisa que a primeira e, no entanto, não se preocupa com detalhes de
implementação do programa, como o tipo das variáveis usadas.

O fluxograma, também conhecido como diagrama de blocos é uma forma padronizada e


eficaz para representar os passos lógicos de um determinado processamento.

Com o diagrama podemos definir uma sequência de símbolos, com significado bem
definido, portanto, sua principal função é a de facilitar a visualização dos passos de um
processamento.

Existem diversos símbolos em um diagrama de bloco. O quadro abaixo mostra alguns


dos símbolos que iremos utilizar:

Símbolo Função

Início e fim do fluxograma

Operação de entrada de dados

Operação de saída de dados

Operação de atribuição

Tomada de Decisão

Figura 5: Símbolos de um fluxograma

Como exemplo, vamos representar o algoritmo através de um fluxograma que calcula a


média e informa se o aluno foi aprovado ou não.

9
Início

Leia N1, N2

MEDIA=(N1+N2)/2

MEDIA > 7
Sim Não

Escreva Escreva
“Aprovado” “Reprovado”

Fim

Pseudocódigo:
Esta forma de representação de algoritmos é rica em detalhes, como a definição dos
tipos das variáveis usadas no algoritmo. Por assemelhar-se bastante à forma em que os
programas são escritos, encontra-se muita aceitação.

Na verdade, esta representação é suficientemente geral para permitir a tradução de um


algoritmo nela representado para uma linguagem de programação específica seja
praticamente direta.

A forma geral da representação de um algoritmo na forma de pseudocódigo é a


seguinte:

10
Algoritmo <nome_do_algoritmo>
<declaração_de_variáveis>
<subalgoritmos>
Início
<corpo do algoritmo>
Fim

Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de


pseudocódigo.

<nome_do_algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de


distingui-los dos demais.

<declaração_de_variáveis> consiste em uma porção opcional onde são declaradas as


variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos.

<subalgoritmos> consiste de uma porção opcional do pseudocódigo onde são definidos


os subalgoritmos (veremos mais adiante).

Início e Fim são respectivamente as palavras que delimitam o início e o término do


conjunto de instruções do corpo do algoritmo.

Como exemplo, segue abaixo a representação do algoritmo do cálculo da média visto


anteriormente, na forma de um pseudocódigo.

Algoritmo Media
Var N1, N2, MEDIA: real
Início
Leia N1, N2
MEDIA=(N1 + N2) / 2
Se MEDIA >= 7 então
Escreva “Aprovado”
Senão
Escreva “Reprovado”
FimSe
Fim

11
1.2 Exercícios

1. Por que a lógica é tão importante para a computação?

2. O que são instruções?

3. O que é um algoritmo? Quais as diferenças entre algoritmo computacional e


não computacional?

4. O que é uma linguagem de programação? Cite alguns exemplos.

5. O que é um programa?

6. Referente à programação, diferencie aspecto estático e dinâmico.

7. Quais são as etapas na criação de um algoritmo?

8. O que é um teste de mesa e qual a sua importância?

9. Identifique os dados de entrada, processamento e saída no algoritmo abaixo:


Receba código do produto
Receba valor do produto
Receba quantidade comprada do produto
Calcule o valor da compra
Mostre o valor da compra

10. Explique as três formas de representação de um algoritmo.

11. Crie um algoritmo utilizando descrição narrativa para resolver os seguintes


problemas:

a. Trocar uma lâmpada


b. Preparar um café
c. Receber um número e informe se ele é negativo, zero ou positivo

12
12. Especifique as ações necessárias para mover três discos de uma Torre de Hanói,
que consiste de três hastes (a - b - c), uma das quais serve de suporte para três discos
de tamanhos diferentes (1 - 2 - 3 ), os menores sobre os maiores. Pode-se mover um
disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco
maior sobre um menor. O objetivo é transferir os três disco para outra haste. (Obs.: o
problema é solucionado realizando 7 movimentos)

13. Represente os algoritmos criados na questão 11 através de fluxograma.

14. Faça um teste de mesa para o algoritmo da letra C da questão 11.

13
2. Portugol

A partir de agora será introduzida uma linguagem de expressão de algoritmos, o


PORTUGOL. Serão apresentadas a sintaxe e a semântica dos comandos da linguagem.
PORTUGOL é uma pseudolinguagem de programação utilizada para obter uma notação
para algoritmos, a ser usada na definição, na criação, no desenvolvimento e na
documentação de um programa.

O identificador é o elemento básico da linguagem, a sua sintaxe é definida pelo diagrama


apresentado na abaixo:

Figura 7: Diagrama que representa um identificador

2.1 Variáveis e constantes


Variáveis e constantes são os elementos básicos que um programa manipula.
Uma variável é um espaço reservado na memória do computador para armazenar um
tipo de dado determinado. Variáveis devem receber nomes para poderem ser
referenciadas e modificadas quando necessário.

Um programa deve conter declarações que especificam de que tipo são as variáveis que
ele utilizará e as vezes um valor inicial. Tipos podem ser por exemplo: inteiros, reais,
caracteres, etc. As expressões combinam variáveis e constantes para calcular novos
valores.

2.1.1 Constante
Podemos definir um dado como constante quando ele não sofre nenhuma variação com
o tempo, ou seja, seu valor é constante desde o início até o fim da execução do
algoritmo, assim como é constante para execuções diferentes no tempo.

Exemplos: 2, "verdadeiro", Pi

No algoritmo visto no capítulo 1 (figura 6) que calcula a média do aluno, sendo


que o número de avaliações sempre serão duas, podemos perceber que:

14
2.1.2 Variável

Um dado é classificado como variável quando tem a possibilidade de ser alterado em


algum instante no decorrer do tempo, ou seja, durante a execução do algoritmo.

Por exemplo, a cotação do dólar, o valor da soma dados dois números informados pelo
usuário.

Um bom exemplo para diferenciar constante e variável é o cálculo usado para obter a
área de uma circunferência. Sabemos que:

Neste exemplo:
• O valor de π é constante, pois é sempre igual a 3.1416...
• O raio r é variável, pois pode assumir diferentes valores a cada cálculo da área.
• A área A calculada para diferentes raios também é variável.

2.1.3 Tipos de dados

As variáveis e as constantes podem ser basicamente de quatro tipos: numéricas,


caracteres, alfanuméricas ou lógicas.

A tabela a seguir explica cada um deles.

Figura 8: Tipos de dados

15
Neste contexto, uma variável pode ser entendida como um local onde se pode colocar
qualquer valor do conjunto de valores possíveis do tipo básico associado.

Assim, as variáveis só podem armazenar valores de um mesmo tipo, de maneira que


também são classificadas como sendo numéricas, lógicas e literais.

Toda variável deve ser declarada conforme a sintaxe apresentada na figura 9.

A semântica de uma declaração de variáveis corresponde à criação de locais na


memória,rotulada com o nome do identificador (variável) e marcada com o tipo de valores
que ela pode conter.

Figura 9: Diagrama que representa a definição de uma variável

2.2 Operadores

Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e


avaliamos dados dentro do computador. Temos três tipos de operadores: aritméticos,
relacionais e lógicos.

Os operadores aritméticos são os utilizados para obter resultados numéricos. Além da


adição, subtração, multiplicação e divisão, podem utilizar também o operador para
exponenciação. Os símbolos para os operadores aritméticos são:

Figura 10: Operadores aritméticos

16
As operações aritméticas seguem uma hierarquia, a saber:

1º ( ) Parênteses

2º Exponenciação

3º Multiplicação, Divisão (o que aparecer primeiro)

4º + ou – (o que aparecer primeiro)

Exemplo:

Os operadores relacionais são utilizados para comparar string de caracteres e números.


Os valores a serem comparados podem ser caracteres ou variáveis. Estes operadores
sempre retornam valores lógicos (verdadeiro ou falso).

Para estabelecer prioridades no que diz respeito a qual operação executar primeiro,
utilize os parênteses.

Os operadores relacionais são:

Figura 11: Operadores relacionais

Os operadores lógicos servem para combinar resultados de expressões, retornando se o


resultado final é verdadeiro ou falso. Os operadores lógicos são:

17
Figura 12: Operadores lógicos

Por exemplo, suponha que A = 5, B = 8 e C =1 então temos que:

2.3 Blocos e comandos básicos de controle

O comando de ATRIBUIÇÃO é utilizado para atribuir um valor a uma variável.

Para isso usa-se o símbolo =, conforme a seguinte sintaxe:

Figura 13:Sintaxe de atribuição

Um bloco pode ser definido como um conjunto de comandos com uma função bem
definida. Serve também para definir os limites onde as variáveis declaradas em seu
interior são conhecidas.

Exemplo:

início
< declaração de variáveis >
< comandos >
fim

Uma sequência simples é um conjunto de comandos separados por ponto e vírgula (;),
que serão executadas numa seqüência linear de cima para baixo.

18
Exemplo:

comando1;
comando2;
comando3;
...
comandoN;

2.3.1 Estrutura condicional

Quando a ação a ser executada depender de uma inspeção (teste), teremos uma
alternativa, ou estrutura condicional, simples ou composta. Estrutura da uma estrutura
condicional simples (Se...então):

se < condição > então


comando1;
comando2;
...
comandoN;
fimse;

Exemplo de uma estrutura condicional composta: (Se...então...senão)

se < condição > então


comando1;
comando2;
...
comandoN;
senão
comando1’;
comando2’;
...
comandoN’;
fimse;

Nos comandos apresentados, <condição > é qualquer expressão cujo resultado seja
falso ou verdadeiro. Exemplo: Qual será o valor final das variáveis A e B depois da
execução do seguinte algoritmo?

início
inteiro: A, B;
A = 1;
B = 2;
se A > B então
A = 5;
senão
A = 10;
fim se;
fim;

19
2.3.2 Estrutura de repetição

Uma estrutura de repetição é quando um conjunto de ações é executado repetidamente


enquanto uma determinada condição permanece válida (ou seja, quando o resultado de
da expressão é um valor lógico verdadeiro). Exemplo:

Estrutura de repetição enquanto:

enquanto < condição > faça


comando1;
comando2;
...
comandoN;
fim enquanto;

Enquanto o valor da <condição> for verdadeiro, as ações dos comandos são executadas
e quando se tornar falso, o comando é abandonado. Se já da primeira vez o resultado for
falso, os comandos não são executados. Exemplo: Qual será o valor final das variáveis
declaradas no seguinte algoritmo, depois de sua execução?

início
inteiro: A, B, C, I;
A = 1;
B = 1;
I = 1;
enquanto I < 10 faça
C = A + B;
A = B;
B = C;
I = I + 1;
fim enquanto;
fim;

A estrutura de repetição repita difere da enquanto no que diz respeito ao momento em


que o teste da condição é submetido.

repita
comando1;
comando2;
...
comandoN;
até < condição >;

Na estrutura enquanto o teste é realizado antes da execução do primeiro loop, ou seja,


pode ser que os comandos não sejam realizados sequer uma vez, caso a condição seja
falsa já na primeira vez em que foi testada. Já na repita os comandos sempre serão
executados pelo menos uma vez, até que a condição seja testada, no
final da estrutura.

20
A estrutura de repetição para difere das estruturas enquanto e repita, pois utiliza uma
variável de controle, que atua como um contador de repetições.

para I de 1 até 10 passo 1


faça
comando1;
comando2;
...
comandoN;
fim para;

O comando abandone só tem sentido dentro de um comando de repetição (enquanto,


repita e para). Além disso, estará sempre associado ao teste de uma condição com
comando se. Quando o abandone é encontrado, o próximo comando a ser executado é o
primeiro logo após o fim do comando de repetição mais interno onde este aparece.

...
enquanto I > 0 faça
I=I + 1;
imprima (I);
se I² + 1 <= 150 então
I = I + 25;
senão
abandone;
fim se;
fim enquanto;

Até agora todos os valores calculados pelos algoritmos foram gerados e permaneceram
na memória. Para obter ou para fornecer dados ao ambiente exterior ao algoritmo, por
exemplo do teclado e para o vídeo, é preciso utilizar comandos de entrada (leia) e saída
(imprima). Suas sintaxes são apresentadas a seguir.

Figura 14: Sintaxe leia e imprima

21
Exemplo de um algoritmo que usa comandos de entrada e saída:

início
inteiro: A, B, SOMA;
leia (A, B);
SOMA = A + B;
imprima (“A soma entre ”, A, “e ”, B, “ é ”, SOMA);
fim;

A estrutura de decisão caso/selecione é utilizada para testar, na condição, uma única


expressão, que produz um resultado, ou, então, o valor de uma variável, em que está
armazenado um determinado conteúdo. Compara-se, então, oresultado obtido no teste
com os valores fornecidos em cada cláusula “Caso”. Em outras palavras, esta estrutura
permite que seja escolhida uma entre várias opções possíveis. Associada à escolha,
podemos ter uma instrução ou um bloco de instruções que serão executadas. Nesta
estrutura é executado o bloco correspondente a condição verdadeira. Caso nenhuma das
condições for verdadeira, será executado o bloco de instruções associado ao caso
padrão.

...
Escolha <variável>
caso <condição>
<bloco de instruções>
caso <condição>
<bloco de instruções>
...
caso <condição>
<bloco de instruções>
padrao
<bloco de instruções>
fimescolha

Segue abaixo o exemplo de um algoritmo que diz o estado de um time de futebol.

caso "Bahia", Vitória


escreva("É um time baiano.")
caso "Fluminense", Flamengo", "Vasco", "Botafogo"
escreva("É um time carioca.")
caso "São Paulo", "Palmeiras", "Santos", "Corinthians"
escreva("É um time paulista.")
outrocaso
escreva("É de outro estado.")
fimescolha
fimalgoritmo

22
2.4 Exercícios

1. Elabore um diagrama de blocos que leia um número. Se positivo armazene-o em A, se


for negativo, em B. No final mostrar o resultado.

2. Represente o algoritmo anterior em pseudocódigo.

3. Ler um número e verificar se ele é par ou ímpar. Quando for par armazenar esse valor
em P e quando for ímpar armazená-lo em I. Exibir P e I no final do processamento.

4. Construa um algoritmo para ler uma variável numérica N e imprimi-la somente se a


mesma for maior que 100, caso contrário informar que o número é menor que cem.

5. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um


algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas: para homens:
(72.7*h) - 58 e para mulheres: (62.1*h) - 44.7 (h = altura)

6. Escrever um algoritmo para determinar o consumo médio de um automóvel sendo


fornecida a distância total percorrida pelo automóvel e o total de combustível gasto.

7. Escrever um algoritmo que leia o nome de um vendedor, o seu salário fixo e o total de
vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 15%
de comissão sobre suas vendas efetuadas, informar o seu nome, o salário fixo e salário
no final do mês.

8. Faça um algoritmo que receba um valor que foi depositado e exiba o valor com
rendimento após um mês. Considere fixo o juro da poupança em 0,70% a. m.

9. Escrever um algoritmo que leia dois valores inteiro distintos e informe qual é o maior.

10. Faça um algoritmo que receba a idade de 10 pessoas e mostre mensagem


informando “maior de idade” e “menor de idade” para cada pessoa. Considere a idade a
partir de 18 anos como maior de idade.

11. Escrever um algoritmo que leia o nome e o sexo de 5 pessoas e informe o nome e se
ela é homem ou mulher. No final informe total de homens e de mulheres.

12. Escrever um algoritmo que leia os dados de “N” pessoas (nome, sexo, idade e saúde)
e informe se está apta ou não para cumprir o serviço militar obrigatório. Informe os totais.

23
3. Referências bibliográficas

Cardoso, Olinda Nogueira Paes. Apostila de Algoritmos e Estruturas de Dados I. Lavras -


MG: UFLA, 2002.

Moraes, Paulo Sérgio de. Lógica de Programação. Campinas - SP: Unicamp - Centro de
Computação - DSC, 2000.

Química, DCA 800 – Eng. Algoritmo e Lógica de Programação. Natal -RN: Universidade
Federal do Rio Grande do Norte, 2004.

24

Você também pode gostar