Escolar Documentos
Profissional Documentos
Cultura Documentos
0
Algoritmo & Lógica de Programação
Lógica de Programação
LCA Sistemas Corporativos. Vilar dos Teles, RJ.
Contato: luizctec@lca.net.br – (21) 98463-7679 WhatsApp.
Copyright © 2023. Luiz Albuquerque.
Esta apostila foi preparada para iniciantes em desenvolvimento de sistemas.
1. Algoritmos, 2. Fluxogramas, 3. Lógica de Programação, 4. Estrutura de Dados
Informática Básica
Lógica de Programação
Algoritmos, Fluxogramas e Pseudocódigos
1
Algoritmo & Lógica de Programação
Sumário
Introdução...................................................................... 4
Conceito de Algoritmo ................................................ 4
Algumas Definições de Algoritmo................................ 5
Introdução a Lógica de Programação ............................. 5
Conceitos Básicos ........................................................ 5
Exercícios Práticos ....................................................... 7
Introdução aos Algoritmos ............................................. 9
O que é um ALGORITMO? ........................................... 9
Algumas Definições de Algoritmo.............................. 10
Formas de Representação de Algoritmos .................. 10
Descrição Narrativa ................................................ 10
Fluxograma Convencional ...................................... 12
Pseudocódigo ......................................................... 14
Síntese ................................................................... 15
Tipos de Dados .......................................................... 16
Dados Numéricos ................................................... 16
Dados Literais ......................................................... 18
Dados Lógicos ........................................................ 19
Síntese ................................................................... 19
Exercício Proposto .................................................. 20
Variáveis.................................................................... 20
Armazenamento de Dados na Memória ................. 21
Conceito e Utilidade de Variáveis ........................... 24
Definição de Variáveis em Algoritmos .................... 25
Síntese ................................................................... 26
Exercícios Propostos ............................................... 27
Expressões ................................................................ 27
Conceito ................................................................. 27
2
Algoritmo & Lógica de Programação
Operadores ............................................................. 28
Tipos de Expressões ................................................ 29
Síntese .................................................................... 32
Exercícios Propostos ............................................... 33
Instruções Primitivas.................................................. 12
Instrução Primitiva de Atribuição............................ 13
Instrução Primitiva de Saída de Dados ....................... 14
Instrução Primitiva de Entrada de Dados ................... 16
Síntese .................................................................... 19
Exercícios Resolvidos .............................................. 19
Exercícios Propostos ............................................... 23
Controle de Fluxo de Execução .................................. 24
Comandos Compostos ............................................ 25
Estrutura Sequencial ............................................... 25
Estruturas de Decisão ............................................. 26
Estruturas de Repetição .......................................... 30
Aninhamentos ........................................................ 33
Síntese .................................................................... 34
Bibliografia .................................................................... 35
3
Algoritmo & Lógica de Programação
Introdução
Conceito de Algoritmo
4
Algoritmo & Lógica de Programação
5
Algoritmo & Lógica de Programação
1
Ideia inicial de um raciocínio: 1 princípio, ideia, fato, pressuposto, circunstância, condição,
antecedente, axioma.
6
Algoritmo & Lógica de Programação
Exercícios Práticos
1.3 Desafio dos nove pontos o objetivo é traçar quatro linhas retas
passando por todos os nove pontos, sem tirar o lápis/caneta do
papel. Para facilitar o raciocínio e a resolução, marque os nove
pontos em uma folha de papel e tente resolver.
7
Algoritmo & Lógica de Programação
1.4 A mãe de Maria tem 5 filhas: Lalá, Lelé, Lili e Loló. Qual é o nome
da quinta filha?
Resposta: _____________________________________________.
Maria (A mãe de Maria tem cinco filhas.)
1.5 Uma sala tem quatro cantos, cada canto tem um gato. Cada gato
vê três gatos. Quantos são os gatos?
1.6 Três homens querem atravessar um rio. O barco que possuem tem
a capacidade máxima de 150 kg. Eles pesam 50 kg, 7 5 kg e 120 kg.
Como podem atravessar o rio sem afundar o barco?
Resposta: _____________________________________________.
outro lado do rio.
barco volta com o que havia ficado. Finalmente, os de 50 e 75 kg atravessam, e os três estarão do
Os homens de 50 kg e 75 kg atravessam. Um deles volta. O que pesa 120 kg atravessa sozinho. O
1.10 João tem X balas, Maria tem 9 balas e Carlos tem 5 balas. Sabendo
que João tem 3 balas a mais que a soma das balas de Maria e Carlos,
qual é o valor de X?
Resposta: _____________________________________________. X = 9 + 5 + 3; X = 17.
8
Algoritmo & Lógica de Programação
9
Algoritmo & Lógica de Programação
Descrição Narrativa
Nesta forma de representação os algoritmos são expressos diretamente
em linguagem natural. Como exemplo, têm-se os algoritmos seguintes:
10
Algoritmo & Lógica de Programação
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
Deixe esfriar
Retire do forno
Tomando um banho:
Entrar no banheiro
Tirar a roupa
Abrir a torneira do chuveiro
Entrar na água
Ensaboar-se
Sair da água
Esfregar-se
Entrar na água
Enxaguar-se
Fechar a torneira
Enxugar-se
Vestir-se
11
Algoritmo & Lógica de Programação
Fluxograma Convencional
É 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.
Esta forma é aproximadamente intermediária à descrição narrativa e ao
pseudocódigo (subitem seguinte), 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.
Nota-se que os fluxogramas convencionais se preocupam com detalhes
de nível físico da implementação do algoritmo. Por exemplo, figuras
geométricas diferentes são adotadas para representar operações de
saída de dados realizadas em dispositivos distintos, como uma fita
magnética ou um monitor de vídeo. Como esta apostila não está
interessada em detalhes físicos da implementação, mas tão somente com
o nível lógico das instruções do algoritmo, será adotada a notação
simplificada da Figura (abaixo) para os fluxogramas.
de entrada de dados
Operação de saída de dados de entrada de dados
Operação de atribuição/Processo
Decisão
12
Algoritmo & Lógica de Programação
13
Algoritmo & Lógica de Programação
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 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:
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 em uma porção opcional do pseudocódigo
onde são definidos os subalgoritmos. Os subalgoritmos podem ser de dois
tipos: - as funções, que retornam um, e somente um valor ao algoritmo
chamador; - os procedimentos, que retornam vários valores, ou nenhum,
ao algoritmo chamador.
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, a figura abaixo mostra a representação do algoritmo do
cálculo da média de um aluno, na forma de um pseudocódigo.
14
Algoritmo & Lógica de Programação
Algoritmo Calculo_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”
Fim_se
Fim
Síntese
Há diversas formas de representação de algoritmos que diferem entre si
pela quantidade de detalhes de implementação que fornecem ou,
inversamente, pelo grau de abstração que possibilitam com relação à
implementação do algoritmo em termos de uma linguagem de
programação específica.
Dentre as principais formas de representação de algoritmos destacam-se:
a descrição narrativa, o fluxograma convencional e o pseudocódigo (ou
linguagem estruturada).
Tipos de Dados
Todo o trabalho realizado por um computador é baseado na manipulação
das informações contidas em sua memória. Grosso modo, estas
informações podem ser classificadas em dois tipos:
As instruções, que comandam o funcionamento da máquina e
determinam a maneira como devem ser tratados os dados. As
instruções são específicas para cada modelo de computador, pois
são funções do tipo particular de processador utilizado em sua
implementação.
Os dados propriamente ditos, que correspondem à porção das
informações a serem processadas pelo computador.
A maior parte das pessoas não ligadas à área de informática ignora o
potencial dos computadores e imagina que eles são capazes de tratar
15
Algoritmo & Lógica de Programação
Tipos de Dados
Dados Numéricos
Antes de apresentar formalmente os tipos de dados numéricos, é
conveniente recordar alguns conceitos básicos relacionados à teoria dos
números e conjuntos.
O conjunto dos números naturais é representado por N e é dado por:
N = {1, 2, 3, 4, ...}
16
Algoritmo & Lógica de Programação
17
Algoritmo & Lógica de Programação
Dados Literais
O tipo de dados literal é constituído por uma seqüência de caracteres
contendo letras, dígitos e/ou símbolos especiais. Este tipo de dados é
também muitas vezes chamado de alfanumérico, cadeia (ou cordão) de
caracteres, ainda, do inglês, string.
Usualmente, os dados literais são representados nos algoritmos pela
coleção de caracteres, delimitada em seu início e término com o caractere
aspas (").
Diz-se que o dado do tipo literal possui um comprimento dado pelo
número de caracteres nele contido.
Exemplos de dados do tipo literal:
"QUAL ?" - literal de comprimento 6
" " - literal de comprimento 1
"qUaL ?!$" - literal de comprimento 8
18
Algoritmo & Lógica de Programação
Dados Lógicos
A existência deste tipo de dado é, de certo modo, um reflexo da maneira
como os computadores funcionam. Muitas vezes, estes tipos de dados
são chamados de booleanos, devido à significativa contribuição de BOOLE
à área da lógica matemática.
O tipo de dados lógico é usado para representar dois únicos valores
lógicos possíveis:
verdadeiro e falso. É comum encontrar-se em outras referências outros
tipos de pares de valores lógicos como sim/não, 1/0, true/false.
Nos algoritmos apresentados nesta apostila os valores lógicos serão
delimitados pelo caractere ponto (.).
Exemplo:
.V. - valor lógico verdadeiro
.F. - valor lógico falso
Síntese
Os dados numéricos dividem-se em duas classes:
inteiros, que não possuem parte fracionária e podem ser
positivos ou negativos;
reais, que podem possuir parte fracionária e podem ser positivos
ou negativos.
Os dados do tipo literal podem conter sequências de letras, dígitos ou
símbolos especiais, delimitados por aspas ("). Seu comprimento é dado
pelo número de caracteres em string.
Os dados do tipo lógico só possuem dois valores possíveis (.V. e .F.).
19
Algoritmo & Lógica de Programação
A árvore abaixo resume a classificação dos dados com relação aos tipos
de dados apresentados.
Exercício Proposto
1. Classifique os dados especificados abaixo de acordo com seu tipo,
assinalando com I os dados do tipo inteiro, com R os reais, com L
os literais, com B os lógicos (booleanos), e com N aqueles para os
quais não é possível definir a priori um tipo de dado.
( ) 0.21 ( ) .T. ( ) .V. ( )1
( ) +3257 ( ) .V ( )V ( ) “a”
( ) “abc” ( ) “0.” ( ) “+3257” ( )F
( ) 1% ( ) +3257. ( )C ( ) “José”
( ) “-0.0” ( ) Maria ( ) 0,35 ( ) “.F.”
( ) +36 ( ) .F. ( )±3 ( ) -0.001
Variáveis
20
Algoritmo & Lógica de Programação
21
Algoritmo & Lógica de Programação
Endereço Informação
0 b (98)
1 a (97)
2 n (110)
3 a (97)
4 n (110)
5 a (97)
Armazenamento da literal “banana” na memória de um computador
2
Contíguo é tudo aquilo que está imediatamente ao lado, sendo as áreas contíguas aquelas que
encontram-se lado a lado em determinado espaço geográfico.
22
Algoritmo & Lógica de Programação
Esta restrição é bastante forte, uma vez que boa parte das aplicações
práticas necessitam de números inteiros maiores que estes.
Se forem utilizados dois bytes para armazenar um número inteiro, o
universo de números representáveis cresce para 28 x 28 = 216 = 65.536
possibilidades:
23
Algoritmo & Lógica de Programação
24
Algoritmo & Lógica de Programação
Exemplos:
SALARIO = correto
1ANO = errado (não começou com uma letra)
ANO1 = correto
A CASA = errado (contém o caractere espaço em branco)
SAL/HORA = errado (contém o caractere "/”)
SAL_HORA = correto
_DESCONTO = errado (não começou com uma letra)
25
Algoritmo & Lógica de Programação
Síntese
A memória dos computadores é composta por células numeradas
ordenadamente denominadas bytes. Cada byte é constituído por 8 bits.
Cada tipo de dado requer um número diferente de bytes para armazenar
a informação representada por ele na memória. Esta quantidade também
pode variar em função do tipo de computador considerado.
Uma variável é uma entidade dotada de um nome para diferenciá-la das
demais e um tipo de dado que define o tipo de informação que ela é
capaz de guardar. Uma vez definidos, o nome e o tipo de uma variável
não podem ser alterados no decorrer de um programa. Por outro lado, a
informação útil da variável é objeto de constante modificação durante o
decorrer do programa, de acordo com o fluxo de execução do mesmo.
26
Algoritmo & Lógica de Programação
Exercícios Propostos
1. Assinale com C os identificadores corretos e com I os incorretos.
Explique o que está errado nos identificadores incorretos.
( ) valor _____________________________________________
( ) _b248 ____________________________________________
( ) nota*do*aluno ____________________________________
( ) a1b2c3 ___________________________________________
( ) 3 x 4 _____________________________________________
( ) Maria____________________________________________
( ) km/h_____________________________________________
( ) xyz ______________________________________________
( ) nome empresa_____________________________________
( ) sala_215__________________________________________
( ) “nota” ___________________________________________
( ) ah! ______________________________________________
2. Supondo que as variáveis NB, NA, NMAT e SX sejam utilizadas
para armazenar a nota do aluno, o nome do aluno, o número da
matrícula e o sexo, declare-as corretamente, associando o tipo
adequado ao dado que será armazenado.
a. NB - __________________________________________
b. BA - __________________________________________
c. NMAT - _______________________________________
d. SX - __________________________________________
Expressões
Conceito
O conceito de expressão em termos computacionais está intimamente
ligado ao conceito de expressão (ou fórmula) matemática, onde um
conjunto de variáveis e constantes numéricas relacionam-se por meio de
27
Algoritmo & Lógica de Programação
Operadores
Operadores são elementos funcionais que atuam sobre operandos e
produzem um determinado resultado. Por exemplo, a expressão 3 + 2
relaciona dois operandos (os números 3 e 2) por meio do operador (+)
que representa a operação de adição.
De acordo com o número de operandos sobre os quais os operadores
atuam, os últimos podem ser classificados em:
Binários, quando atuam sobre dois operandos. Ex.: os operadores
das operações aritméticas básicas (soma, subtração,
multiplicação e divisão);
Unários, quando atuam sobre um único operando. Ex.: o sinal de
(-) na frente de um número, cuja função é inverter seu sinal.
28
Algoritmo & Lógica de Programação
Tipos de Expressões
As expressões são classificadas de acordo com o tipo do valor resultante
de sua avaliação.
Expressões Aritméticas
Expressões aritméticas são aquelas cujo resultado da avaliação é do tipo
numérico, seja ele inteiro ou real. Somente o uso de operadores
aritméticos e variáveis numéricas é permitido em expressões deste tipo.
Os operadores aritméticos relacionados às operações aritméticas básicas
estão sumarizados na tabela abaixo.
29
Algoritmo & Lógica de Programação
Expressões Lógicas
Expressões lógicas são aquelas cujo resultado da avaliação é um valor lógico
(.V. ou .F.).
Os operadores lógicos e suas relações de precedência são mostrados na
tabela abaixo.
Existem outros operadores lógicos, como por exemplo o OU_EXCLUSIVO,
mas suas funções podem ser exercidas por combinações dos três tipos de
operadores da tabela abaixo.
Operadores lógicos e suas relações de prioridade. Tabela 02.
30
Algoritmo & Lógica de Programação
31
Algoritmo & Lógica de Programação
Expressões Literais
Expressões literais são aquelas cujo resultado da avaliação é um valor
literal. Este tipo de expressão é bem menos frequente que os anteriores.
Os tipos de operadores existentes variam de uma linguagem de
programação para outra, não havendo uma padronização.
Para que o assunto não passe em branco, considere-se como exemplo a
operação de concatenação de strings: toma-se duas strings e acrescenta-
se (concatena-se) a segunda delas ao final da primeira. Em algumas
linguagens esta operação é representada pelo símbolo (+). Por exemplo,
a concatenação das strings "REFRIGERA" e "DOR" é representada por
"REFRIGERA" + "DOR" e o resultado de sua avaliação é "REFRIGERADOR".
Síntese
Uma expressão é uma combinação de variáveis, constantes e
operadores, que resulta num valor quando avaliada.
Operadores são elementos funcionais que atuam sobre operandos.
Segundo o número de operandos sobre os quais atua, um operador pode
ser classificado em unário ou binário. Segundo os tipos de dados de seus
operandos e do valor resultante de sua avaliação, os operadores podem
ser classificados em aritméticos, lógicos ou literais.
Um tipo especial de operador é o relacional, que é usado na comparação
de operandos de um mesmo tipo de dado e cujo resultado da avaliação é
sempre um valor lógico.
As expressões são classificadas de acordo com o valor resultante de sua
avaliação em:
Aritméticas, que resultam num valor numérico (real ou inteiro);
Lógicas, que resultam num valor lógico;
Literais, que resultam num valor literal.
32
Algoritmo & Lógica de Programação
Exercícios Propostos
1. Dada a declaração de variáveis:
VAR A, B, C : inteiro
X, Y, Z : real
NOME, RUA : literal[20]
L1, L2 : lógico
Classifique as expressões seguintes de acordo com o tipo de dado do
resultado de sua avaliação, em I (inteiro), R (real), L (literal), B
(lógico) ou N (quando não for possível defini-lo):
( )A+B+C ( )A+X/Z
( )A+B+Z ( )A+Z/A
( ) NOME + RUA ( ) A B = L1
( )AB ( ) (A = B)
( )AY ( )X+Y/Z
( ) NOME RUA ( )X=Z/A
( ) L1 .OU. L2 ( ) L1 ** L2
( ) RUA <> NOME ( ) A + B / L2
( )A+B/C ( ) X < L1 / RUA
33
Algoritmo & Lógica de Programação
Instruções Primitivas
12
Algoritmo & Lógica de Programação
13
Algoritmo & Lógica de Programação
Daqui por diante, Escreva será considerada uma palavra reservada e não
mais poderá ser utilizada como nome de variável, de modo que toda vez
que for encontrada em algoritmos será identificada como um comando
de saída de dados.
Uma lista_de_variáveis é um conjunto de nomes de variáveis separados
por vírgulas.
Um literal é simplesmente um dado do tipo literal delimitado por aspas.
Em termos de fluxograma, uma instrução de saída de dados é
representada como na figura abaixo.
15
Algoritmo & Lógica de Programação
16
Algoritmo & Lógica de Programação
17
Algoritmo & Lógica de Programação
18
Algoritmo & Lógica de Programação
Síntese
A instrução primitiva de atribuição avalia uma expressão e armazena o
valor resultante numa variável. O valor resultante da expressão e a
variável devem ter tipos compatíveis.
A instrução primitiva de saída de dados admite como argumentos uma
lista de variáveis, um literal, ou uma mistura de ambos. No primeiro caso,
o valor de cada uma das variáveis é buscado na memória e colocado no
dispositivo de saída. No caso de literais, estes são copiados diretamente
no dispositivo de saída.
A instrução primitiva de entrada de dados busca, no dispositivo de
entrada, dados que são guardados nas posições de memória
correspondentes às variáveis da lista que lhe são passadas como
argumento.
Exercícios Resolvidos
1. Escreva um algoritmo (fluxograma e pseudocódigo) para calcular
a média entre dois números quaisquer.
Solução:
A ideia principal do algoritmo está centrada na expressão
matemática utilizada no cálculo da média (M) entre dois
números, N1 e N2, dada por: M = (N1 + N2) / 2.
Para que o valor de M possa ser calculado pelo algoritmo, é
necessário que os valores de N1 e N2 tenham sido fornecidos ao
mesmo com antecedência. Portanto, a primeira etapa do
algoritmo consiste da obtenção (leitura) dos valores de N1 e N2 e
armazenamento dos mesmos em posições distintas de memória
(variáveis).
Na sequência, o valor da média deve ser calculado por meio de
uma expressão apropriada e atribuído a uma terceira variável
(M).
Por fim, deve-se relatar ao usuário o valor calculado por meio de
uma instrução primitiva de saída de dados.
O fluxograma do algoritmo descrito é mostrado a seguir. Note
que ele está enriquecido com instruções para informar sua
finalidade, os dados que devem ser fornecidos ao usuário e o
significado do valor calculado.
19
Algoritmo & Lógica de Programação
20
Algoritmo & Lógica de Programação
21
Algoritmo & Lógica de Programação
Assumindo que todas as variáveis utilizadas (CM, DIST e VOL) são do tipo
real, pode se escrever o pseudocódigo seguinte para o fluxograma
anterior:
22
Algoritmo & Lógica de Programação
Exercícios Propostos
Para cada um dos problemas propostos a seguir, expresse um algoritmo
que pode ser usado em sua solução na forma de fluxograma e
pseudocódigo.
1. Calcule a média de quatro números inteiros dados.
23
Algoritmo & Lógica de Programação
Hambúrguer................ R$ 3,00
Cheeseburger.............. R$ 2,50
Fritas............................ R$ 2,50
Refrigerante................. R$ 1,00
Milkshake..................... R$ 3,00
7. Uma companhia de carros paga a seus empregados um salário de
R$ 500,00 por mês mais uma comissão de R$ 50,00 para cada
carro vendido e mais 5% do valor da venda. Elabore um algoritmo
para calcular e imprimir o salário do vendedor num dado mês
recebendo como dados de entrada o nome do vendedor, o
número de carros vendidos e o valor total das vendas.
24
Algoritmo & Lógica de Programação
Comandos Compostos
Um comando composto é um conjunto de zero ou mais comandos (ou
instruções) simples, como atribuições e instruções primitivas de entrada
ou saída de dados, ou alguma das construções apresentadas neste
capítulo.
Este conceito é bastante simples e será útil e conveniente nos itens
seguintes, na definição das estruturas básicas de controle de execução.
Estrutura Sequencial
Na estrutura sequencial os comandos de um algoritmo são executados
numa sequência pré-estabelecida. Cada comando é executado somente
após o término do comando anterior.
Em termos de fluxogramas, a estrutura sequencial é caracterizada por um
único fluxo de execução (um único caminho orientado) no diagrama. Em
pseudocódigos, a estrutura sequencial caracteriza-se por um conjunto de
comandos dispostos ordenadamente. Como exemplos de aplicação desta
estrutura de controle tem-se os algoritmos do capítulo anterior, onde não
há estruturas de decisão ou de repetição.
25
Algoritmo & Lógica de Programação
Estruturas de Decisão
Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em
função do resultado da avaliação de uma ou mais condições. Uma
condição é uma expressão lógica.
A classificação das estruturas de decisão é feita de acordo com o número
de condições que devem ser testadas para que se decida qual o caminho
a ser seguido. Segundo esta classificação, têm-se dois tipos de estruturas
de decisão:
Se
Escolha
26
Algoritmo & Lógica de Programação
27
Algoritmo & Lógica de Programação
28
Algoritmo & Lógica de Programação
29
Algoritmo & Lógica de Programação
Estruturas de Repetição
São muito comuns as situações em que se deseja repetir um determinado
trecho de um programa certo número de vezes. Por exemplo, pode-se
citar o caso em que se deseja realizar um mesmo processamento para
conjuntos de dados diferentes. Exemplo: processamento de folha de
pagamentos de uma empresa em que o mesmo cálculo é efetuado para
cada um dos funcionários.
As estruturas de repetição são muitas vezes chamadas de Laços ou,
também, de Loops.
A classificação das estruturas de repetição é feita de acordo com o
conhecimento prévio do número de vezes que o conjunto de comandos
será executado. Assim, os laços dividem-se em:
laços contados, quando se conhece previamente quantas vezes o
comando composto no interior da construção será executado;
laços condicionais, quando não se conhece de antemão o número
de vezes que o conjunto de comandos no interior do laço será
repetido, pelo fato de o mesmo estar amarrado a uma condição
sujeita à modificação pelas instruções do interior do laço.
Laços Contados
Os laços contados são úteis quando se conhece previamente o número
de vezes que se deseja executar um determinado conjunto de comandos.
Então, este tipo de laço nada mais é que uma estrutura dotada de
mecanismos para contar o número de vezes que o corpo do laço (ou seja,
o comando composto em seu interior) é executado. A sintaxe usada em
pseudocódigos para os laços contados é mostrada na Figura 07.
30
Algoritmo & Lógica de Programação
31
Algoritmo & Lógica de Programação
Laços Condicionais
Laços condicionais são aqueles cujo conjunto de comandos em seu
interior é executado até que uma determinada condição seja satisfeita.
Ao contrário do que acontece nos laços contados, nos laços condicionais
não se sabe de antemão quantas vezes o corpo do laço será executado.
As construções que implementam laços condicionais mais comuns nas
linguagens de programação modernas são:
Enquanto
Repita
Construção Enquanto
Sua semântica é a seguinte: ao início da construção Enquanto a condição
é testada. Se seu resultado for falso, então o comando composto no seu
interior não é executado e a execução prossegue normalmente pela
instrução seguinte ao Fim_enquanto.
Se a condição for verdadeira o comando composto é executado e ao seu
término retorna-se ao teste da condição. Assim, o processo acima será
repetido enquanto a condição testada for verdadeira. Quando esta for
falsa, o fluxo de execução prosseguirá normalmente pelas instruções
posteriores ao Fim_enquanto.
32
Algoritmo & Lógica de Programação
Construção Repita
Seu funcionamento é bastante parecido ao da construção Enquanto. O
comando é executado uma vez. A seguir, a condição é testada: se ela for
falsa, o comando composto é executado novamente e este processo é
repetido até que a condição seja verdadeira, quando então a execução
prossegue pelo comando imediatamente seguinte ao final da construção.
Aninhamentos
Um aninhamento ou embutimento é o fato de se ter qualquer um dos
tipos de construção apresentados anteriormente dentro do conjunto de
comandos (comando composto) de uma outra construção.
Em qualquer tipo de embutimento é necessário que a construção interna
esteja completamente embutida na construção externa.
Em programação, uma sub-rotina aninhada (ou função aninhada) é uma
sub-rotina encapsulada noutra. O contexto da sub-rotina aninhada é
limitado à sub-rotina que a encapsula.
33
Algoritmo & Lógica de Programação
Síntese
As estruturas de controle do fluxo de execução são essenciais para que se
possa alterar a sequência de execução dos comandos de um programa
em função dos dados do mesmo.
Um comando composto é um conjunto de zero ou mais comandos
simples, sejam eles instruções primitivas ou construções como as
estudadas neste capítulo.
Uma estrutura sequencial é aquela em que os comandos vão sendo
executados numa sequência pré-estabelecida, um após o outro.
As estruturas de decisão permitem escolher qual o caminho a ser seguido
num algoritmo em função de uma ou mais condições. A construção Se
utiliza apenas uma condição, ao passo que a construção Escolha utiliza
uma ou mais condições.
As estruturas de repetição são usadas quando se deseja repetir um trecho
de um algoritmo (comando composto). Quando o número de vezes que o
trecho será repetido é conhecido diz-se que o laço é do tipo contado
(construção Para). Quando este número não é conhecido, mas é função
de uma determinada condição, então têm-se os laços condicionais
(construção Enquanto e Repita).
As construções Repita e Enquanto diferem uma da outra pelo fato de a
primeira efetuar o teste da condição no final da construção e, portanto,
34
Algoritmo & Lógica de Programação
Bibliografia
Conheça os ultrabooks. Disponível em:
• http://www.zoom.com.br/notebook/deumzoom/conheca-os-
ultrabooks?s=1&og=18000&gclid=CP6CyfXd37ICFQc4nAod1nwAJw.
Acesso em: 29 06. 2023.
• nodestudio.com.br
• https://hubify.com.br/social-media/tiktok/
35
Algoritmo & Lógica de Programação
36
Algoritmo & Lógica de Programação
37