Sie sind auf Seite 1von 18

LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

ÍNDICE

ALGORITMO
 CARACTERÍSTICAS ........................................................................................................................ 02

 REPRESENTAÇÃO DE ALGORIMTOS .......................................................................................... 03


o DESCRIÇÃO NARRATIVA .......................................................................................................... 03
o FLUXOGRAMA CONVENCIONAL .............................................................................................. 03
o PSEUDOCÓDIGO (PORTUGOL) ............................................................................................... 04

DADOS
 REPRESENTAÇÃO.......................................................................................................................... 05
 VARIÁVEIS E CONSTANTES .......................................................................................................... 05
 DECLARAÇÃO DE VARIÁVEIS ....................................................................................................... 06

EXPRESSÕES E OPERADORES
 OPERADORES ................................................................................................................................ 06
 ESTRUTURA SEQUENCIAL ........................................................................................................... 08
 COMANDOS BÁSICOS DE LEITURA E ESCRITA ......................................................................... 09

ESTRUTURA DE SELEÇÃO (DESVIO CONDICIONAL)


 ESTRUTURA DE DESVIO CONDICIONAL SIMPLES (SE SIMPLES) ........................................... 10
 ESTRUTURA DE DESVIO CONDICIONAL COMPOSTO (SE COMPOSTO) ................................ 10
 ESTRUTURA DE DESVIO CONDICIONAL ENCADEADA (SE ANINHADO) ................................. 11
 ESTRUTURA DE SELEÇÃO DE MÚLTIPLA ESCOLHA (ESCOLHE) ............................................ 12

ESTRUTURAS DE REPETIÇÃO (LAÇOS DE REPETIÇÃO) ....................................................................... 12


 ESTRUTURA DE REPETIÇÃO COM TESTE NO INÍCIO (ENQUANTO ... FAZ) ........................... 13
 ESTRUTURA DE REPETIÇAO COM TESTE NO FINAL (FAZ ... ENQUANTO) ............................ 13
 ESTRUTURA DE REPETIÇÃO COM TESTE NO FINAL (REPETE ... ATÉ) .................................. 13
 ESTRUTURA DE REPETIÇÃO COM VARIÁVEL DE CONTROLE (PARA) ................................... 14

REFERÊNCIAS ............................................................................................................................................. 16

Disciplina: Lógica de Programação / CEEP –2011 Página 1


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

Algoritmos são representações de passos destinados a resolver determinados problemas,


selecionados através da lógica de raciocínio (matemático, filosófico, sociológico, etc). São utilizados pelo
homem no seu dia-a-dia, seja na vida pessoal, seja na vida profissional, tornando-se uma ferramenta
valiosa no convívio humano.
Com o surgimento de computadores, surgiu também a necessidade de “ensiná-lo” a resolver
determinados problemas, muitas vezes simples, como cálculos de números. Porém, sendo o computador
um elemento mecânico, portanto irracional, o ser humano deveria descobrir uma forma de “programar”
passos claros e sequenciais para a realização de tais tarefas: eis que surge a LÓGICA DE
PROGRAMAÇÃO, unindo dois elementos primordiais: a LÓGICA HUMANA e a PROGRAMAÇÃO
(Conjunto de instruções pré-definidas, utilizadas em sistemas eletromecânicos).
Com a Lógica de Programação, surgiu o ALGORITMO COMPUTACIONAL, que consiste na
primeira etapa para a criação dos passos para a realização de tarefas pelo equipamento eletromecânico, de
forma automática (muitas vezes utilizamos o termo AUTOMAÇÃO COMPUTACIONAL para referenciar as
tarefas realizadas pelo equipamento através de algoritmos), com pouca ou nenhuma intervenção humana.
Para desenvolver uma PROGRAMAÇÃO para dispositivos eletromecânicos, utilizamos alguns
passos básicos, porém significativos:
1. Definição do Problema
2. Análise do Objetivo do Algoritmo (Entrada – Processamento – Saída)
3. Criação de Algoritmos (Para cada tipo de problema, pode-se elaborar vários algoritmos, mas
somente um algoritmo é considerado o mais efetivo).
4. Teste do Algoritmo, verificando a estrutura do Algoritmo e a sua finitude.
5. Conversão do Algoritmo em um programa utilizando uma Linguagem de Programação a ser
escolhida de acordo com a utilização.

CARACTERÍSTICAS DE UM ALGORITMO
Os algoritmos permitem a livre construção (sem a utilização de regras de escrita das Linguagens de
Programação), mas necessita apresentar certas características para o seu funcionamento.

 DELIMITAÇÃO DE INÍCIO E FIM

Todo algoritmo deve apresentar a estrutura INÍCIO e FIM. Indicando onde começa e termina
o algoritmo. Caso não seja especificado algum destes itens, o algoritmo não funcionará.

 ESTRUTURA SEQUENCIAL

O algoritmo é desenvolvido utilizando-se a estrutura sequencial, ou seja, executando um


passo por vez na seguinte ordem: de cima para baixo, da esquerda para a direita.

 ALGORITMO FINITO E LIMITAÇÃO DE PASSOS

Teoricamente, não existem limites para a quantidade de passos a serem executados pelo
algoritmo. Porém deve-se levar em conta que um dos objetivos do algoritmo é a economia de
recursos computacionais (processador, memórias, etc), a fim de tornar a execução do mesmo

Disciplina: Lógica de Programação / CEEP –2011 Página 2


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

RÁPIDO, SEGURO, CONFIÁVEL e FINITO. Destaque para esse último item (EXECUÇÃO
FINITA), pois todo algoritmo deve ser finalizado em algum momento. Um algoritmo que executa
de forma infinita não poderá devolver um resultado para o usuário.

REPRESENTAÇÃO DE UM ALGORITMO
Os algoritmos podem ser representados de três formas diferentes:

 DESCRIÇÃO NARRATIVA

Utiliza a linguagem natural. Sua principal finalidade é desenvolver o algoritmo inicial, em


forma de textos simplificados. Devido a sua simplicidade, facilita o entendimento do objetivo e
funcionamento do algoritmo tanto para os leigos (durante a definição problema  solução),
quanto para o programador (durante a apresentação do problema para leigos).
Em razão da utilização da Linguagem Natural (sujeita a imprecisão e falta de confiabilidade
devido às várias formas de interpretação), esta linguagem é utilizada somente nos primeiros
passos para o desenvolvimento do algoritmo.
Como exemplo, temos as receitas de bolo e os manuais de instruções para aparelhos e
procedimentos, que utilizam a linguagem natural, adotando uma forma simplificada e sequencial
para representar os procedimentos, facilitando a sua compreensão.

 FLUXOGRAMA CONVENCIONAL

Representação gráfica utilizando formas geométricas para indicar as ações do algoritmo.


Torna-se um intermediário entre a Descrição Narrativa e o Pseudocódigo. Facilita o
entendimento do funcionamento do algoritmo (para o programador), pois não apresenta a
imprecisão de procedimentos da Descrição Narrativa, porém não utiliza os detalhes de
implementação do algoritmo como no Pseudocódigo.
Não há um consenso entre os autores entre limites de formas utilizadas, porém as mais
utilizadas são:

Delimitador de Início e Atribuição e


Fim do Algoritmo Processamento de
Operações
Operação de Entrada de
Dados Condicionais (Decisão)

Operação de Saída de
Dados

Disciplina: Lógica de Programação / CEEP –2011 Página 3


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

Exemplo:

 PSEUDOCÓDIGO (PORTUGOL)

Forma de representação rica em detalhes fundamentais para a implementação do algoritmo,


como por exemplo, definição dos tipos de variáveis a serem utilizadas para alocação das
informações. Destinada ao aprendizado, apresenta-se no idioma Português e não segue a
estrutura habitual utilizada nas Linguagens de Programação, facilitando a compreensão do
algoritmo. Muitos programadores veteranos utilizam Pseudocódigo para demonstrar o
funcionamento do algoritmo, devido a sua fácil compreensão.
Como exemplo, este algoritmo de média descrito em Portugol:
Inicio É a linguagem utilizada para o
real nota1 , nota2 , nota3 , media
desenvolvimento do algoritmo
escrever "Nota 1: " antes de convertê-lo em
ler nota1
Linguagem de Programação,
escrever "Nota 2: "
ler nota2 pois, por se tratar de uma

escrever "Nota 3: " LINGUAGEM INTERMEDIÁRIA,


ler nota3 não utiliza o idioma padrão das
media <- ( nota1 + nota2 + nota3 ) / 3 Linguagens de Programação
se media >= 6 entao (Inglês) e não segue as
escrever "Media: ", media, ".\tAPROVADO.\n"
estruturas e regras para o
senao
escrever "Media: ", media, ".\tREPROVADO\n" desenvolvimento de um
fimse
programa próprias de cada
fim
linguagem..

Disciplina: Lógica de Programação / CEEP –2011 Página 4


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

DADOS

Dadas são informações inseridas na estrutura computacional, necessários à realização de


instruções (procedimentos) previamente definidas em um algoritmo computacional. Existem cinco tipos de
dados utilizados pelo algoritmo, sendo quatro inseridos diretamente e um inserido indiretamente. Esse cinco
tipos são agrupados em três categorias:

 TIPOS NUMÉRICOS
o INTEIROS (Forma de declaração: inteiro)

Todo e qualquer número pertencente ao conjunto dos números inteiros (positivos, nulo ou
positivo). Não apresentam casas decimais.

o REAIS (Forma de declaração: real)

Todo e qualquer número pertencente ao conjunto dos números reais (positivos, nulo ou
positivo). Apresentam casas decimais. Utilizados para representar também fracionários e
porcentagem.

 CARACTERES/TEXTOS
o CARACTERES (Forma de declaração: caracter)

Qualquer informação composta por caracteres numéricos (0 a 9), alfabéticos (A a Z, e a a


Z) e especiais (?, #, @, !, etc). Este tipo de dado recebe somente um caractere.

o TEXTOS (Forma de declaração: texto)

Semelhante ao tipo Caracter, é diferenciad pelo fato de armazenar um conjunto de


caracteres.

 DADOS LÓGICOS

Também conhecidos como Dados Booleanos, assumem apenas duas situações: verdadeiro
(qualquer valor diferente de zero, seja positivo ou negativo) e falso (valor igual a 0). Geralmente
utilizados em controle de fluxo (Condicionais, Laços).

VARIÁVEIS E CONSTANTES
Os dados são armazenados em espaços físicos na memória principal do computador. São
classificados em:
 VARIÁVEIS

Quando os dados armazenados podem ser alterados durante a execução do programa.

 CONSTANTE

Quando os dados armazenados NÃO podem ser alterados durante a execução do programa.

Disciplina: Lógica de Programação / CEEP –2011 Página 5


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

DECLARAÇÃO DE VARIÁVEIS
Para declarar uma variável, devemos observar alguns pontos essenciais.

 RÓTULO (NOME DA VARIÁVEL)

Rótulo consiste no nome da variável e será utilizado durante toda a execução do algoritmo.
O nome da variável deve ser declarado utilizando as seguintes regras: iniciando com caracteres
alfabéticos, podem ser utilizados números dentro do nome da variável, não podem ser utilizados
caracteres especiais. Para declarar mais de uma variável do mesmo tipo, separe os nomes das
variáveis com vírgula.
A forma de declaração da VARIÁVEL segue uma das estruturas abaixo:

SEM ATRIBUIÇÃO DE VALORES COM ATRIBUIÇÃO DE VALORES


variável <tipo> <nome> variável <tipo> <nome>  <valor ou expressão>
<tipo> <nome> <tipo> <nome>  <valor ou expressão>

Onde tipo é um tipo válido de dados (inteiro, real, caracter, texto), nome é o nome da variável
escolhido seguindo as regras descritas anteriormente. As variáveis podem ser declaradas com
atribuição (recebendo um valor no ato da declaração) e sem atribuição (recebendo o valor
durante a execução do algoritmo). Como exemplo:

SEM ATRIBUIÇÃO DE VALORES COM ATRIBUIÇÃO (INICIALIZAÇÃO) DE VALORES


variável real nota1, nota2, nota3 variável real nota1  0.0, nota2  0.0
real nota1, nota2, nota3 real nota1  0.0, nota2  0.0

Para a declaração de constantes, o que muda é a OBRIGATORIEDADE da inserção do


nome CONSTANTE e da ATRIBUIÇÃO DE VALORES, as regras para declaração do rótulo da
variável permanecem as mesmas.

DECLARAÇÃO DE CONSTANTES EXEMPLO


constante <tipo> <nome>  <valor> constante inteiro pi <- 3,14
constante real n1  3, n2  4

EXPRESSÕES E OPERADORES

O conceito de expressão em algoritmos está intimamente ligado ao conceito de expressão (ou


fórmula) matemática, onde um conjunto de variáveis e constantes numéricas relaciona-se por meio de
operadores aritméticos compondo uma fórmula que, uma vez avaliada, resulta num valor.

Disciplina: Lógica de Programação / CEEP –2011 Página 6


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

Por exemplo, a fórmula de cálculo da área do triângulo da Figura 5.1 é


dada por AREA = 0.5 x B x H. Esta fórmula utiliza três variáveis: B e H, que
contêm as dimensões do triângulo, e AREA, onde é guardado o valor
calculado (resultado da avaliação da expressão). Há, também, uma
constante (0.5) e o operador de multiplicação (x), que aparece duas vezes
na expressão. O conceito de expressão aplicado à computação assume
uma conotação mais ampla: uma expressão é uma combinação de
Triângulo de base (B) e altura (H)
variáveis, constantes e operadores, que, uma vez avaliada, resulta um valor.

OPERADORES

Operadores, semelhante aos operadores matemáticos, são elementos funcionais que realizam
operações atuam sobre os operandos, produzindo um resultado. O mais importante dos operadores é o
Operador de Atribuição, que transfere um valor ou o resultado de uma operação para determinada
variável ou constante.
Onde a variável/constante (à esquerda do sinal) recebem o
variável/constante  valor/expressão
valor (ou resultado da expressão) que está à direita do sinal.
media  (n1+n2+n3)/3
Exemplo a variável media recebe o VALOR da expressão
(n1+n2+n3)/3.

Todos os operadores seguem a PRIORIDADE DE EXECUÇÃO, que indica a ordem de realização


das operações. São utilizados os números de 1 a 3, sendo 1 a mais alta prioridade (executar primeiro) e 3 a
menor prioridade (executar por último). Em situações de operadores de mesma prioridade, segue-se a
ordem de execução da esquerda para a direita. No caso de operadores aritméticos, parênteses podem ser
utilizados para elevar a prioridade do elemento que esta dentro de PARÊNTESES, fazendo com que a
execução ocorra antes de qualquer prioridade.
Os operadores computacionais estão divididos em:

 ARITMÉTICOS

OPERADOR DESCRIÇÃO PRIORIDADE


^ Potenciação 1
% Módulo (Resto da divisão inteira) 2
* Multiplicação 2
/ Divisão 2
+ Adição 3
- Subtração 3

 LÓGICOS
OPERADOR DESCRIÇÃO PRIORIDADE
Ou Ou lógico 3
E E lógico 2
! Não lógico 1

Disciplina: Lógica de Programação / CEEP –2011 Página 7


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

Os Operadores Lógicos operam seguindo a TABELA-VERDADE. Considerando duas variáveis


(A e B), temos exemplo da tabela-verdade.
A B A OU B AEB NÃO B
Falso Falso Falso Falso Verdadeiro
Falso Verdadeiro Verdadeiro Falso Falso
Verdadeiro Falso Verdadeiro Falso Verdadeiro
Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso

Estes tipos de operadores utilizam valores Booleanos como resultado. Quando um valor é
falso, o reste lógico retorna 0 (zero), quando o resultado do teste lógico é verdadeiro, retorna 1 (um).
O operador OU retorna falso somente quando o valor dos dois operandos é falso. Quando pelo
menos um é verdadeiro, retorna verdadeiro. O operador E retorna verdadeiro somente se os dois
operadores forem verdadeiros, se pelo menos um for falso, o resultado será falso. O NÃO lógico
inverte o valor da variável (verdadeiro  falso e falso  verdadeiro).

 RELACIONAIS
OPERADOR DESCRIÇÃO
> Maior que
>= Maior ou igual a
< Menor que
<= Menor ou igual a
= Igual
=/= Diferente

Quando executado em Portugol, estes operadores não tem classificação por prioridade.

ESTRUTURA SEQUENCIAL

Como já foi dito anteriormente, todo algoritmo deve seguir uma estrutura sequencial. A forma
correta de declaração de um algoritmo é descrita logo abaixo:
// Cabeçalho com o nome do algoritmo (Geralmente opcional, fica a critério do programador)

Inicio (Inicio do bloco de comandos)


Variáveis (Declaração das variáveis que serão utilizadas, um tipo por linha)
Comandos (Comandos a serem executados pelo algoritmo, um comando por linha)
Fim (Fim do bloco de comandos)

Bloco de Comandos são os comandos dispostos em formato sequencial. Um bloco de algoritmo


começa com a palavra Inicio e termina com a palavra Fim.
Outra ferramenta para a programação, seja de algoritmos, seja as Linguagens de Programação são
os Comentários, cuja função é exibir textos informativos (dentro do algoritmo e não durante a sua
execução), fornecendo informações para o programador. Podem ser:
 Comentários de 01 linha (iniciados por //): Comentários curtos, do tamanho de uma linha.
Exemplo: o Nome do algoritmo.
// Nome do Algoritmo
Inicio

Disciplina: Lógica de Programação / CEEP –2011 Página 8


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

 Comentários de Várias linhas (iniciados por /* e terminados por */): Comentários longos,
geralmente textos curtos explicativos. Todo o texto que ficar entre esses dois sinais será
considerado como comentários e não como comandos. Por isso cuidado na hora de declara
comentários de mais de uma linha. Exemplo: Instruções sobre procedimentos.
Inicio
/* Declare o nome das variáveis
de acordo com a necessidade */
real n1, n2, n3, media

A quantidade de comentários, desde que declarados corretamente, não afeta na velocidade de


execução do algoritmo.

COMANDOS BÁSICOS DE LEITURA E ESCRITA

Para programar um algoritmo funcional, devemos ter conhecimento sobre os comandos de


LEITURA e ESCRITA, utilizados dentro de um algoritmo.

 ESCRITA
Exibem na tela mensagens, conteúdos de variáveis, strings (textos), resultados de
expressões. Pode ser utilizado de forma simples (escrever <variável /expressão / ”texto”>) ou
composta (escrever “texto”, <variavel>, “texto”, <expressão>).
Exemplo: escrever “olá mundo”, irá escrever a mensagem olá mundo. Já escrever nota1,
irá escrever na tela o valor armazenado na variável nota1.

Pode utilizar (de forma opcional), os caracteres:


o \n – Inserir uma nova linha (corresponde a um <ENTER>)
o \t – insere uma tabulação horizontal (espaçamento horizontal)
o \” – exibe o caractere aspas (“)

 LER
Utilizado logo após o comando ESCREVER. Sua função é recebe um valor digitado pelo
usuário e armazená-lo na variável especificada. Sua sintaxe de utilização é ler <variavel>, onde
variável é o local onde você irá armazenar esse valor. Exemplo: ler nota1, irá ler o valor
digitado via teclado e armazenará na variável nota1.

Operadores, semelhante aos operadores matemáticos, são elementos funcionais que realizam
operações atuam sobre os operandos, produzindo um resultado. O mais importante dos operadores é o
Operador de Atribuição, que transfere um valor ou o resultado de uma operação para determinada
variável ou constante.

Disciplina: Lógica de Programação / CEEP –2011 Página 9


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

ESTRUTURAS DE SELEÇÃO (DESVIO CONDICIONAL)

Vimos que a execução de um algoritmo é de forma sequencial, um comando após o outro, e dessa
forma ocorre a execução de todos os comandos, sem interrupção prevista (a menos que o próprio usuário
interrompa o funcionamento do algoritmo). Mas há casos em que deverá ser executado um ou outro
conjunto de comandos, também referenciado como BLOCO DE COMANDOS, de acordo com a situação ou
escolha do usuário. É nesse momento que começamos a utilizar as ESTRUTURAS DE DESVIO
CONDICIONAL, que tem por objetivo executar um bloco de comandos mediante escolhas pré-definidas.
Todas as Estruturas de Desvio utilizam um TESTE CONDICIONAL, baseando em operações
aritméticas, lógicas ou relacionais. O resultado do teste é interpretado como um valor lógico, e esse valor
lógico torna o teste condicional verdadeiro ou falso.
As Estruturas de Desvio Condicional são classificadas em SIMPLES, COMPOSTAS,
ENCADEADAS e ESTRUTURA DE SELEÇÃO MÚLTIPLA ESCOLHA.

ESTRUTURA DE DESVIO CONDICIONAL SIMPLES (SE SIMPLES)

Estrutura: se <TESTE CONDICIONAL = VERDADEIRO> então


BLOCO DE COMANDOS
fimse

Esta estrutura, com base em um teste condicional (também chamado de teste lógico), executa ou
não um determinado bloco de comandos. Se o teste for verdadeiro, o bloco será executado; se o teste for
falso, o bloco de comandos é ignorado, e a execução do algoritmo passa para o trecho seguinte do
algoritmo (localizado após o desvio condicional). Como exemplo:

Inicio Neste exemplo, se a média do aluno for igual ou maior que 6,0, o
real n1 , n2 , media
resultado do teste condicional será VERDADEIRO, o que fará com
escrever "Primeira Nota: "
ler n1 que a mensagem APROVADO seja impressa.

escrever "Segunda Nota: " Caso a média do aluno seja menor que 6,0, o teste condicional
ler n2 retornará FALSO, o que fará que os comandos dentro do Desvio
media <- ( n1 + n2 ) / 2 Condicional Simples sejam ignorados (Não será impressa a
escrever “Media: “, media, “\n” mensagem APROVADO), e a execução do algoritmo passe para os
se media >= 6 entao
comandos seguintes (neste caso, terminará o algoritmo; porém se
escrever "\nAPROVADO"
fimse houvesse outro comando após o bloco do desvio condicional, este
Fim
comando seria executado).

ESTRUTURA DE DESVIO CONDICIONAL COMPOSTO (SE COMPOSTO)

Estrutura: se <TESTE CONDICIONAL = VERDADEIRO> então


BLOCO DE COMANDOS
senão
BLOCO DE COMANDOS
fimse

Disciplina: Lógica de Programação / CEEP –2011 Página 10


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

Semelhante a estrutura anterior (SE SIMPLES), esta estrutura também se baseia em um teste
condicional. Porém, quando o teste condicional for VERDADEIRO, executa o bloco de comandos
pertencente ao SE; quando o teste condicional for FALSO, executa o bloco de comandos pertencente ao
ELSE.
Inicio Semelhante ao exemplo anterior, se a média do aluno for igual ou
real n1 , n2 , media
maior que 6,0, o resultado do teste condicional será VERDADEIRO,
escrever "Primeira Nota: "
ler n1 será executado o bloco de comandos pertencente ao SE (impressão

escrever "Segunda Nota: " da mensagem APROVADO).


ler n2 Caso a média do aluno seja menor que 6,0, o teste condicional
media <- ( n1 + n2 ) / 2 retornará FALSO, e será executado o bloco de comandos
escrever “Media: “, media, “\n” pertencente ao SENÃO (impressão da mensagem REPROVADO).
se media >= 6 entao
escrever "\nAPROVADO"
senão
escrever “\nREPROVADO”
fimse
Fim

ESTRUTURA DE DESVIO CONDICIONAL ENCADEADA (SE ANINHADO)

Estrutura: se <TESTE CONDICIONAL = VERDADEIRO> então


BLOCO DE COMANDOS
senão
se <TESTE CONDICIONAL = VERDADEIRO> então
BLOCO DE COMANDOS
senão
BLOCO DE COMANDOS
fimse
fimse

Este estrutura nada mais é do que desvios condicionais dentro de desvios condicionais. Seu
funcionamento é semelhante desvio condicional (tanto o simples como o composto). Vale ressaltar que
cada desvio condicional depende do seu próprio teste condicional.
Inicio Se a média do aluno for igual ou maior que 6,0, o resultado
real n1 , n2 , media
do primeiro teste condicional será VERDADEIRO, será
escrever "Primeira Nota: "
ler n1 executado o bloco de comandos pertencente ao SE

escrever "Segunda Nota: " (impressão da mensagem APROVADO).


ler n2 Caso a média do aluno seja menor que 6,0, será executado
media <- ( n1 + n2 ) / 2 um novo teste condicional pertencente ao SE ENCADEADO.
escrever “Media: “, media, “\n” Se a media for igual ou maior que 5,0, será executado o bloco
se media >= 6 entao
de comandos pertencente ao SE ENCADEADO (impressão da
escrever "\nAPROVADO"
senão mensagem RECUPERAÇÃO). Se a média não corresponder
se media >= 5
aos testes condicionais anteriores (igual ou maior que 6,0 ou
escrever “\nRECUPERAÇÃO”
senão igual ou maior que 5,0), o programa irá executar o bloco de
escrever “\nREPROVADO”
comandos correspondente ao SENÃO ENCADEADO
fimse
fimse (impressão da mensagem REPROVADO).
Fim
Disciplina: Lógica de Programação / CEEP –2011 Página 11
LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

Esta estrutura merece atenção especial, pois como as demais estruturas de desvio, cada estrutura
SE ENCADEADA deve possuir INÍCIO (SE) e FINAL (FIMSE). Cada estrutura encadeada pode ser
SIMPLES (SE SIMPLES) ou COMPOSTA (SE COMPOSTO), ficando a escolha a critério do programador.

ESTRUTURA DE SELEÇÃO DE MÚLTIPLA ESCOLHA (ESCOLHE)

Estrutura: Escolhe <VARIÁVEL>


caso <VALOR 1> :
BLOCO DE COMANDOS
caso <VALOR 2> :
BLOCO DE COMANDOS
...
default :
BLOCO DE COMANDOS
fimescolhe

Esta estrutura de seleção consiste em uma alternativa ao SE COMPOSTO e ao SE ENCADEADO.


Tem como principal diferencial o TESTE CONDICIONAL. Enquanto o teste condicional nas estruturas de
desvio condicional podem executar testes aritméticos, relacionais e lógicos, esta estrutura somente testa a
igualdade. O valor da variável do teste condicional é comparado a cada valor determinado nas opções
(caso). Quando encontrar um valor igual, o bloco de comandos pertencente ao caso é executado.
Inicio Neste exemplo, o valor armazenado dentro da variável
caracter sexo
SEXO será comparado com as opções (casos) da estrutura
escrever “Sexo: (m/f”)
ler sexo ESCOLHE.

escrever “Olá “ Caso seja M, será impressa a mensagem AMIGO. Caso seja
escolhe F, será impressa a mensagem AMIGA. Caso seja algum valor
caso “m” : diferente de M e F, será executado o bloco de comandos
escrever “Amigo\n”
correspondente à opção DEFEITO (impressão da mensagem
caso “f” :
escrever “Amiga\n” SEJA BEM VINDO).
defeito: : A opção DEFEITO é opcional, e pode ou não ser utilizada
escrever “Seja Bem-Vindo\n”
junto com a estrutura ESCOLHE.
fimescolhe
Fim

ESTRUTURAS DE REPETIÇÃO (LAÇOS DE REPETIÇÃO)

As estruturas de repetição permitem repetir um bloco de comandos, mediante uma condição


(TESTE CONDICIONAL). Essas estruturas são muito úteis, pois permitem a implementação de um
determinado bloco de código, permitindo que ele seja repetindo mediante uma condição de parada ainda
não atingida. Essa condição de parada é o teste condicional.
As estruturas de repetição são: Estruturas de Repetição com teste no início (ENQUANTO ... FAZ),
Estruturas de Repetição com teste no final (FAZ ... ENQUANTO e REPETE ... ATÉ) e Estrutura de
Repetição com Variável de Controle.

Disciplina: Lógica de Programação / CEEP –2011 Página 12


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

ESTRUTURA DE REPETIÇÃO COM TESTE NO INÍCIO (ENQUANTO ... FAZ)

Estrutura: enquanto <TESTE CONDICIONAL = VERDADEIRO> faz


BLOCO DE COMANDOS
fimenquanto

Esta estrutura de repetição executa o TESTE CONDICIONAL antes do início do laço, e, caso a
condição seja satisfeita (ou seja, caso o teste condicional retorne verdadeiro), repete o bloco de comandos
associados (pertencente) a este laço até que o teste condicional retorne falso. Neste tipo de laço, o bloco de
comando pode não ser executado, executado pelo menos uma vez ou executado várias vezes.

Inicio Neste exemplo, foi declarada a variável i do tipo inteiro, inicializada com o
inteiro i  1 valor 1. O TESTE CONDICIONAL irá analisar se o valor da variável i é menor
enquanto i <= 10 faz ou igual a 10.
escrever i, “ “ Caso resulte VERDADEIRO, a variável i será impressa na tela, em seguida
i  i +1 seu valor será incrementado (i  i + 1, a variável receberá seu valor + 1). O

fimenquanto laço irá repetir os comandos até que o valor armazenado na variável i seja

fim maior que o valor limite especificado (neste exemplo, o valor 10).

ESTRUTURA DE REPETIÇÃO COM TESTE NO FINAL (FAZ ... ENQUANTO)

Estrutura: Faz
BLOCO DE COMANDOS
enquanto <TESTE CONDICIONAL = VERDADEIRO>

Esta estrutura de repetição executa o TESTE CONDICIONAL no final da primeira execução do laço,
forçando a execução de pelo menos uma vez do bloco de comandos. Caso a condição seja satisfeita (ou
seja, caso o teste condicional retorne verdadeiro), repete o bloco de comandos associados (pertencente) a
este laço até que o teste condicional retorne falso.
Vale lembrar: a diferença entre os laços com teste no inicio (ENQUANTO ... FAZ) e com teste no
final (FAZ ... ENQUANTO), é que, no laço com teste no final, o bloco de comando será executado pelo
menos uma vez mesmo que o teste condicional seja falso, enquanto que os laços com teste no início, caso
o teste condicional seja falso, o bloco de comandos não será executado de forma alguma.

Inicio Neste exemplo, o bloco de comandos (impressão do valor de i, operação


inteiro i  11 de incremento), será executado pelo menos uma vez, pois o laço verifica o
faz
teste condicional somente após a primeira execução do bloco de comandos.
escrever i, “ “
i  i +1 Devido a essa característica, este tipo de laço é utilizado em situações nas
enquanto i <= 10 quais deve haver pelo menos uma execução do bloco de comandos, como por
fim exemplo, menus de acesso.

Disciplina: Lógica de Programação / CEEP –2011 Página 13


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

Inicio Este exemplo ilustra o uso deste tipo de laço em


caracter opcao
Menus de Acesso a Programas.
faz O laço irá exibir o menu de acesso, solicitar a opção e
escrever "C. Contagem de Numeros\n"
armazenar o valor digitar na variável opcao. Caso o teste
escrever "S. Sair\n"
condicional do desvio condicional (se simples), retorne
ler opcao
verdadeiro, será executado o bloco de comandos.
se opcao = "c" entao Após esta primeira execução, o teste condicional do
escrever "\nContagem de Numeros\n"
laço será executado. Caso retorne verdadeiro (o valor da
fimse
enquanto opcao =/= "s" variável opcao não seja igual a “s”), o laço será executado
fim
novamente até o teste retornar falso (o valor de opcao for
igual a “s”).

ESTRUTURA DE REPETIÇÃO COM TESTE NO FINAL (REPETE ... ATÉ)

Estrutura: Repete
BLOCO DE COMANDOS
até <TESTE CONDICIONAL = FALSO>

Teste semelhante ao FAZ ... ENQUANTO. Sua diferença básica é que, enquanto o laço FAZ ...
ENQUANTO repete o bloco de comandos até que o teste condicional retorne FALSO; o laço REPETE ...
ATÉ, repete o laço até que o teste condicional retorne VERDADEIRO. Confuso?

Inicio Neste exemplo, o laço irá executar até que o teste condicional retorne
inteiro i  1 VERDADEIRO (ou seja, até que o valor de i atinja o valor pré-determinado).
repete
Basicamente, este laço repetirá o valor de i, até que o valor de i seja igual a
i  i +1
escrever i, “ “ 10.
até i = 10
fim

ESTRUTURA DE REPETIÇÃO COM VARIÁVEL DE CONTROLE (PARA)

Estrutura: Para <contador> de <inicio> até <fim> passo n


BLOCO DE COMANDOS
próximo

Este laço de repetição se diferencia dos outros laços por pré-determinar a quantidade de vezes que
o laço será executado, ao contrário dos demais laços que dependem do Teste Condicional. Essa pré-
determinação é possível através da utilização de uma variável de controle de laço, geralmente declarada
em formato inteiro, e inicializada (atribuição de valor) dentro da estrutura do laço.

Disciplina: Lógica de Programação / CEEP –2011 Página 14


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

Por exemplo:

Inicio Neste exemplo, é declara uma variável de controle de laço,


inteiro contador do tipo inteiro. Essa variável é inicializada com o valor inicial
para contador de 0 a 10 passo 1
(para contador de 0), ao mesmo tempo que é definido o limite de
escrever contador, “ “
proximo repetição do laço (até 10). O próximo item (passo 1), indica que
fim a cada execução, a variável de controle é incrementada em 1 (a
variável recebe o valor dela mesma + 1). Em seguida executa o
bloco de comando, e executa o comando próximo (que
incrementa a variável e inicia uma próxima interação (repetição)
do laço).
Dessa forma, a variável inicia com 0 e quando se valor
atingir 10, o laço para de executar.

Disciplina: Lógica de Programação / CEEP –2011 Página 15


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

FONTES DE APOIO BIBLIOGRÁFICO

SCHILDT, Herbert. C Completo e Total. 3ª Edição. São Paulo: Pearson Makron Books, 1997.

AUGUSTO, José N. G. Manzano e Jayr Figueredo de Oliveira. Algortimos. Lógica para Desenvolvimento
de Programação de Computadores. Ed. Érica.

Apostilas Pessoais Diversas.

Internet:
www.google.com.br
www.apostilando.com

Disciplina: Lógica de Programação / CEEP –2011 Página 16


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

CEEP – CENTRO ESTADUAL DE EDUCAÇÃO PROFISSIONAL


CURSOS: SUPORTE E MANUTENÇÃO DE COMPUTADORES - SUBSEQUENTE (NOITE)
DISCIPLINA: LÓGICA DE PROGRAMAÇÃO
PROFESSOR: FABIANO
ALUNO(A): ________________________________________________________

LÓGICA
DE
PROGRAMAÇÃO

2011

Disciplina: Lógica de Programação / CEEP –2011 Página 17


LÓGICA DE PROGRAMAÇÃO – PARTE 01: ALGORITMO

Disciplina: Lógica de Programação / CEEP –2011 Página 18

Das könnte Ihnen auch gefallen