Você está na página 1de 24

ALGORITMO

ETAPA 2
CONCEITOS FUNDAMENTAIS PARA
CONSTRUÇÃO DE ALGORITMOS
CENTRO UNIVERSITÁRIO
LEONARDO DA VINCI
Rodovia BR 470, Km 71, nº 1.040, Bairro Benedito
89130-000 - INDAIAL/SC
www.uniasselvi.com.br

Curso sobre Algoritmo


Centro Universitário Leonardo da Vinci

Organização
Greisse Moser Badalotti

Autor
Marcio Poffo

Reitor da UNIASSELVI
Prof. Hermínio Kloch

Pró-Reitoria de Ensino de Graduação a Distância


Prof.ª Francieli Stano Torres

Pró-Reitor Operacional de Ensino de Graduação a Distância


Prof. Hermínio Kloch

Diagramação e Capa
Renan Willian Pacheco

Revisão
Harry Wiese
Caro acadêmico! Parabéns por ter chegado a esta etapa. Agora você vai aprender
conceitos mais próximos de linguagens de programação, não as vinculando somente
a uma, mas de maneira geral a todas. Neste sentido, serão introduzidos os principais
tipos de dados, variáveis, constantes, comandos de atribuição, operadores; enfim, vários
conceitos que são muito importantes para você conseguir programar em uma linguagem
de programação real.

A partir desta etapa, nossos exemplos em pseudocódigo utilizam o “Portugol”


para facilitar o seu entendimento das lógicas utilizadas.

Para isso, não esqueça, faça todos os exercícios propostos, analise e refaça os
exemplos demonstrados que você vai conseguir entendê-los. Este é o caminho para o
bom aprendizado de programação. Portanto, bons estudos!
2 ALGORITMO
1. T IPOS DE DADOS

Internamente, um computador utiliza apenas números para manipulação de


dados, porém as linguagens de programação nos permitem manipular diferentes tipos
de informações de forma transparente. Por exemplo, um número é diferente de uma
palavra que contenha caracteres alfanuméricos.

Podemos definir tipos de dados como um conjunto de objetos que possuem o


mesmo comportamento diante de uma operação a ser realizada com eles (MEDINA;
FERTIG, 2006). Neste sentido, nós podemos exemplificar tipos de dados pelo tipo
humano, por exemplo, em que todas as pessoas dormem, comem, realizam suas
necessidades fisiológicas, o que caracteriza todas elas como um tipo “humano”.

1.1. TIPOS DE DADOS PRIMITIVOS

Agora vamos partir para os tipos de dados aceitos em algoritmos, como números
inteiros (Z), os quais possuem as mesmas características, então são classificados como
tipo “INTEIRO”. Por exemplo, a sequência {1, 2, 3, 4, -1, -2, -3, -4} possuem o mesmo
tipo: “inteiro”. O tipo de dados INTEIRO aceita tanto números inteiros positivos quanto
negativos. Os números inteiros são utilizados para definir valores que não tenham
decimais, como ano, mês, idade, quantidades etc. Analisemos o pseudocódigo de um
algoritmo desenvolvido na tabela a seguir.

Tabela 1.1 – Algoritmo que utiliza tipo de dado inteiro


Algoritmo leAnoNascimento
Declara
ano: Inteiro
Inicio
Escreva(“Escreva o ano que você nasceu”)
Leia(ano)
Escreva(“Você nasceu no ano”, ano)
Fim
Fonte: O autor

Observe no pseudocódigo da Tabela 1.1, o tipo de dado da variável criada é inteiro.


Isso significa que apenas números inteiros são aceitos neste tipo de variável. Em casos
de linguagens de programação, caso seja informado um valor não inteiro, será causada
uma exceção, isto é, um erro na execução do programa.

Vamos analisar agora o próximo algoritmo. Neste faz-se um cálculo matemático


com os valores das variáveis do tipo inteiro, as quais foram declaradas no algoritmo.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 3

Tabela 1.2 – Algoritmo que utiliza tipo de dado inteiro


Algoritmo calculaQuantidadeComprada
Declara
quantidade1, quantidade2, soma: Inteiro
Inicio
Escreva(“Escreva a quantidade 1”)
Leia(quantidade1)
Escreva(“Escreva a quantidade 2”)
Leia(quantidade2)
soma ← (quantidade1 + quantidade2)
Escreva(“A quantidade total comprada é”, soma)
Fim
Fonte: O autor

Para o caso do algoritmo acima, a variável “soma” é do tipo inteiro, assim como
as outras duas variáveis, então ela receberá um valor inteiro. Este cálculo é perfeitamente
funcional.

E quando precisamos calcular valores decimais? Neste caso temos o tipo de


dados “REAL”. Os números reais (R) não podem ser atribuídos às variáveis do tipo
inteiro, pois elas não suportam decimais. Temos que criar variáveis do tipo real. O tipo
de dados real aceita qualquer valor decimal {1.12, 1.65656, 2500.56, -10.52, -1000.2565}.
Veja o exemplo do próximo algoritmo.

Tabela 1.3 – Algoritmo que utiliza tipo de dado real


Algoritmo leSalario
Declara
salario: Real
Inicio
Escreva(“Escreva o seu salário”)
Leia(salario)
Escreva(“O seu salário é”, salario)
Fim
Fonte: O autor

No caso do algoritmo da Tabela 1.3, qualquer valor numérico informado será


aceito. Inclusive, caso informado um inteiro será aceito, pois o computador o trata como
um decimal. Por exemplo, caso informado o valor 10, o valor processado será 10.0, isto
é, como real. No caso deste algoritmo, pode ser informado qualquer valor real {0, 10.50,
1250.25656565569, 9898.46 etc.}.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


4 ALGORITMO
Vejamos agora um exemplo de um algoritmo que realiza um cálculo com números
reais. Neste caso, criamos variáveis do tipo real, que receberão números decimais, e em
seguida aplicamos um cálculo. Analise a tabela 1.4.

Tabela 1.4 – Algoritmo que realiza cálculo com tipo de dados real
Algoritmo leSalario
Declara
valorEnergia,
valorAgua,
valorGasolina,
soma: Real
Inicio
Escreva(“Escreva o custo da energia elétrica”)
Leia(valorEnergia)
Escreva(“Escreva o custo da água”)
Leia(valorAgua)
Escreva(“Escreva o custo da gasolina”)
Leia(valorGasolina)
soma ← (valorEnergia + valorAgua + valorGasolina)
Escreva(“O total de gastos é”, soma)
Fim
Fonte: O autor

Note que todas as variáveis, do algoritmo da Tabela 1.4, foram declaradas com o
tipo de dados real. Isso porque se sabe que todos os valores aceitos podem ser decimais.
Desta forma evitam-se erros de execução em um programa. O mesmo para a variável
“soma”, que recebe o cálculo das outras três variáveis.

Vamos conhecer agora outro tipo de dado muito utilizado: LITERAL ou também
chamado de CARACTERE. Este tipo de dado suporta qualquer caractere alfanumérico,
isto é, textos, números, símbolos, espaços, enfim qualquer forma de texto que se deseja
armazenar. Vejamos um exemplo escrito em pseudocódigo, na Tabela 1.5, para um
algoritmo que utilize o tipo de dados caractere.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 5

Tabela 1.5 – Algoritmo que utilize o tipo de dado caractere


Algoritmo leNome
Declara
nome: Caractere
Inicio
Escreva(“Escreva o seu nome”)
Leia(nome)
Escreva(“O seu nome é”, nome)
Fim
Fonte: O autor

Note que no algoritmo escrito na Tabela 1.5, a variável “nome” foi declarada com
o tipo de dado caractere. Isso possibilita a variável receber qualquer valor, desde uma
letra do alfabeto, um número ou até mesmo um símbolo.

Até aqui aprendemos os tipos de dados inteiro, real e caractere. Mas temos
um outro tipo de dado muito importante para lhe apresentar: o lógico ou booleano.
Estes valores são provenientes da lógica matemática, ou também lógica de Boole (foi o
matemático considerado um dos fundadores da matemática) (MEDINA; FERTIG, 2006).
Este tipo de dado possui apenas dois valores 0 ou 1, ou, ainda, Verdadeiro (True), ou
Falso (False). Neste sentido, um valor lógico pode ser adquirido do resultado de uma
afirmação ou proposição lógica.

Tabela 1.6 – Algoritmo que utiliza o tipo de dado lógico/booleano


Algoritmo leValor
Declara
valor: Real
valorMaior: Booleano
Inicio
Escreva(“Escreva o valor”)
Leia(valor)
valorMaior ← (valor > 2000.00)
Escreva(valorMaior)
Fim
Fonte: O autor

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


6 ALGORITMO
Note no algoritmo da Tabela 1.6, em que foi desenvolvida uma expressão lógica,
que compara se o valor informado é maior que dois mil. Neste caso, será retornado o valor
verdadeiro (true) ou falso (false), atribuído para a variável “valorMaior”. No decorrer
deste caderno serão apresentados mais exemplos do uso do tipo de dados booleano.

1.2. TIPOS DE DADOS NÃO PRIMITIVOS

Os tipos de dados não primitivos são os tipos de dados construídos a partir dos
tipos de dados primitivos (JUNIOR et al., 2014).

O vetor ou array é um tipo de variável que pode ser descrito como uma lista de
valores do mesmo tipo de dados. Um array pode ser definido também por uma lista.
Para acessar algum valor de um array, utiliza-se a sua posição na lista, chamado de
índice. Veja um exemplo na Tabela 1.7.

Tabela 1.7 – Lista de compras


1. Pão
2. Ovos
3. Carne
4. Macarrão
Fonte: O autor

Note que a Tabela 1.7 possui uma lista de compras. Cada produto está em uma
posição da lista. Por exemplo: a carne está na posição 3 da lista. Então para acessá-la,
precisamos ir na posição 3, obviamente. Agora vejamos o pseudocódigo do próximo
algoritmo, Tabela 1.8, que exemplifica a utilização de uma variável do tipo array ou vetor.

Tabela 1.8 – Algoritmo que utiliza o tipo de dado array


Algoritmo escreveLista
Declara
lista: vetor[0..3] de caractere
Inicio
lista[0] ← “Pão”
lista[1] ← “Ovos”
lista[2] ← “Carne”
lista[3] ← “Macarrão”
Escreva( lista[2] ) // imprime “Carne”
Fim
Fonte: O autor

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 7

Note que a declaração de nosso vetor é de até 4 posições, o que significa que
nossa lista limita a armazenar até 4 valores. Note também que para inserirmos valores
no vetor do nosso algoritmo “escreveLista”, na Tabela 1.8, iniciamos do índice 0 (zero).
Isso porque nas linguagens de programação, a primeira posição de um vetor é sempre
o zero. Observe a última linha de nosso vetor, que imprime na tela o valor “Carne”,
pois está pegando a posição 2 do vetor, isto é, N -1.

Para concluir esta seção, vamos falar um pouco de matriz. Uma matriz também
é uma lista de valores, porém esta pode ser chamada de n-dimensional, pois possui
duas ou mais “colunas” para armazenar valores. Neste caso, utilizamos o número n de
índices para acessar algum dado armazenado. Vamos exemplificar que fica mais fácil
de entender. Observe a Tabela 1.9.

Tabela 1.9 – Algoritmo que utiliza o tipo de dado matriz


Algoritmo escreveMatriz
Declara
lista: array[0..3, 0..1] de caractere
Inicio
lista[0, 0] ← “Pão”
lista[0, 1] ← “Caro”
lista[1, 0] ← “Carne”
lista[1, 1] ← “Caro”
lista[2, 0] ← “Macarrão”
lista[2, 1] ← “Barato”
Escreva( “A ”, lista[2, 0], “ está ”, lista[2, 1] ); // imprime “A Carne está cara”
Fim
Fonte: O autor

Observe agora a Figura 1.1, a seguir, que possui a representação da matriz do


algoritmo acima em forma de uma planilha ou tabela. Desta forma, você pode idealizar
como uma matriz funciona.

Figura 1.1 – Representação da matriz do algoritmo da tabela 1.9

Fonte: O autor

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


8 ALGORITMO
Observe que a posição da “carne”, por exemplo, índice “1, 0” possui a descrição
do produto, e a posição “1, 1” possui a designação do preço se é “Caro”. É assim que
funciona uma matriz em qualquer linguagem de programação.

RESUMO DOS TIPOS DE DADOS

Tabela 1.10 – Tipos de dados


Tipo de dado Exemplo
Inteiro 1, 2, 3, 4, 0, -1, -2, -3, -4
Real 1.50, 250.56595, -0.523, -2.3454
Caractere “casa”, “carro”, “Marcio”, “12ABA”
Booleano Verdadeiro (True), Falso (False)
Array {1, 2, 3, 4, -5, -6}
Matriz {“Carne”, “Cara”}
Fonte: O autor

2. VARIÁVEIS E CONSTANTES

No desenvolvimento de um algoritmo, seja em pseudocódigo quanto em uma


linguagem de programação real, a utilização de variáveis é quase que inevitável,
conforme você deve ter notado em nossos exemplos de algoritmos até agora. Mas o que
é uma variável? E qual é a diferença entre variável e constante?

2.1. VARIÁVEIS

Uma variável pode ser entendida como um endereço de memória para armazenar
algum dado ou informação temporariamente (contêiner de armazenamento) (TEIXEIRA,
2011). No decorrer da execução do programa, o conteúdo da variável pode ser alterado.
Devido a isso chama-se variável. Como já foi mencionado na Seção 1 desta unidade, toda
variável possui um tipo de dado, que define qual é o tipo que pode ser armazenado nela.

Neste sentido, imagine uma variável, ou até mesmo uma constante que será
mencionada a seguir, possa ser exemplificada com uma caixinha com um rótulo que a
identifica. Veja a figura a seguir que ilustra isso (LIMA, 2015).

Figura 2.1 – Exemplo de como pode-se imaginar uma variável

Fonte: Lima (2015, p. 18)

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 9

Embora já foram apresentados exemplos de pseudocódigos, vamos apresentar


mais um, utilizando variáveis. Segue exemplo.

Tabela 2.1 – Algoritmo para ler valor informado e imprimir na tela


Algoritmo leValorInformado
Declara
nome: Caractere
salario: Real
Inicio
Escreva(“Escreva o seu nome”)
Leia(nome)
Escreva(“Escreva o seu salário”)
Leia(salario)
Escreva(“Seu nome é”, nome, “ e seu salário é ”, salario)
Fim
Fonte: O autor

2.2. CONSTANTES

Uma constante também é uma área de memória para armazenar dados. Porém
uma constante não pode ter seu conteúdo alterado em tempo de execução de um
programa, isto é, ela possui seu valor predefinido do início da execução do programa
até o seu final. Normalmente são utilizados para identificar conceitos matemáticos que
possuam valor definido, como por exemplo o “pi”, que possui seu valor fixo 3.1416.
Mas assim como toda variável possui um tipo de dado, uma constante também possui.
Para criar uma constante para armazenar o valor de “pi”, por exemplo, precisamos que
a constante seja do tipo real, por se tratar de um número decimal.

Vejamos em nosso próximo pseudocódigo uma constante sendo utilizada. Note


que ela é declarada já com seu valor predefinido, e o mesmo não é alterado em tempo
de execução.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


10 ALGORITMO

Tabela 2.3 – Algoritmo que utiliza constante em sua lógica


Algoritmo calculaValorPI
Declara constante
valorPI = 3.1416
Declara
resultado: Real
quantidade: Inteiro
Inicio
Escreva(“Escreva a quantidade”)
Leia(quantidade)
resultado ← (valorPI * quantidade)
Escrever(“O resultado é ”, resultado)
Fim

Fonte: O autor

Observe a Tabela 2.3 que a constante foi utilizada normalmente como se fosse
uma variável, para fins de cálculo. A única diferença é que a constante não pode receber
outro valor durante a execução do programa, isto é, seu valor permanece inalterado.

3. COMANDOS DE ATRIBUIÇÃO

O comando de atribuição nos permite atribuir um valor para uma determinada


variável, sendo que o valor atribuído deve ser compatível com o tipo de dado da variável.
Por exemplo, se a variável for do tipo integer, então ela pode receber apenas números
inteiros.

Tabela 3.1 – Comando de atribuição.


identificador ← expressão;
Fonte: O autor

Conforme pode ser analisada a Tabela 3.1, o termo “identificador” é a variável


e o termo “expressão” é o valor ou uma expressão que retornará um valor para ser
atribuído para a variável. Em pseudocódigo, o símbolo utilizado para atribuição é ←. Nos
exemplos anteriores de pseudocódigo, você pode observar que em todos eles utilizamos
este símbolo para designar atribuição de valor para uma variável.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 11

Tabela 3.2 – Utilizando comando de atribuição.


Algoritmo atribuicao
Declara
idade: Integer
resultado: Real
nome: Caractere
Inicio
Idade ← 30
resultado ← (1 + 45.568)
nome ← “Teste sistema”
Fim
Fonte: O autor

Em linguagens de programação são utilizados outros símbolos para indicar


atribuição. Veja na tabela a seguir alguns deles.

Tabela 3.4 – Comandos de atribuição em algumas linguagens de programação


Linguagem de Programação Comando
Delphi :=
Java =
Fonte: O autor

4. COMANDOS DE ENTRADA E SAÍDA DE DADOS

Em linguagens de programação é muito importante existir um meio de entrada


de dados, pois é a partir desta funcionalidade que se pode tratá-los, isto é, processá-los.
Em nosso estudo, como estamos utilizando pseudocódigo para representar algoritmos,
utilizamos o comando “Leia”.

Tabela 4.1 – Comando de entrada de dados para o algoritmo processar

Algoritmo comandoLeia
Declara
quantidade: Inteiro
Inicio
Escreva(“Escreva a quantidade”)
Leia(quantidade)
Fim

Fonte: O autor

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


12 ALGORITMO
Além disso, também é muito importante um meio para saída de dados da
aplicação, isto é, um meio de proporcionar a saída dos dados gerados. Neste sentido, um
comando que permita imprimir algo em um dispositivo de saída, como uma impressora,
tela, disco físico etc. Para isso, temos o comando “Escreva”, em algoritmos.

Tabela 4.1 – Comando de saída de dados processados por um algoritmo


Algoritmo comandoEscreva
Declara
quantidade: Inteiro
Inicio
Escreva(“Escreva a quantidade”)
Leia(quantidade)
Escreva(“A quantidade informada foi ”, quantidade)
Fim
Fonte: O autor

5. OPERADORES LÓGICO E RELACIONAIS

Operadores são utilizados para combinar as variáveis e constantes utilizadas em


nossos algoritmos, fornecendo um valor como resposta.

5.1 OPERADORES LÓGICOS

Os operadores lógicos são de muita importância para a todas as estruturas


de algoritmos, principalmente, estruturas baseadas na programação com comandos
condicionais, seletivas de repetição (loop). Fundamentalmente, os operadores lógicos
são baseados nas tabelas conhecidas por tabelas verdade, que apresentam resultados
booleanos, isto é, verdadeiro (true) ou falso (false), conforme as comparações realizadas
nos algoritmos.

Além disso, os símbolos de comparações podem variar de uma linguagem


de programação para outra. Mas em nosso contexto, vamos utilizar os símbolos
normalmente utilizados em pseudocódigos. Seguem operadores lógicos em ordem de
prioridade para execução.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 13
Figura 5.1 – Operadores lógicos por ordem de prioridade

Fonte: Leite (2006, p. 53)

Vejamos agora um exemplo do emprego dos operadores lógicos em uma simples


tabela verdade. Você se lembra da tabela verdade? Caso não lembre, leia as explicações
passo a passo a seguir.

Figura 5.2 – Exemplo de tabela verdade para operadores lógicos

Fonte: Leite (2006, p. 53)

Analise a terceira coluna “.não. A” da Figura 5.2. Está sendo realizada uma
negação para os valores atribuídos para “A”. Neste caso, basta inverter os valores, isto
é, onde for verdadeiro é transformado em falso e vice-versa. O mesmo ocorre na quarta
coluna, mas neste caso, para o “B”. A quinta coluna aplica a conjunção, que retorna
verdadeiro quando os dois valores tiverem valor verdadeiro, ou retorna falso nos
demais casos. A última coluna da tabela verdade ilustrada na Figura 5.2, está aplicando
a disjunção, e neste caso, retorna verdadeiro sempre que um dos dois valores tiver valor
verdadeiro. Este é um simples e prático exemplo de como funciona uma tabela verdade,
muito importante para o aprendizado de lógica de programação.

5.2. OPERADORES RELACIONAIS

Os operadores relacionais são utilizados para realizar comparação de valores,


resultando em um valor booleano – Verdadeiro (true) ou Falso (false). Existem alguns
operadores relacionais que auxiliam nas comparações que normalmente utilizamos em

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


14 ALGORITMO
nossos algoritmos: igual, diferente, maior, menor, maior ou igual e menor ou igual. Veja
a tabela a seguir, que explica cada um deles.

Figura 5.2 – Operadores relacionais por ordem de prioridade

Fonte: Leite (2006, p. 52)

Que tal exemplificarmos os operadores relacionais na prática? Vamos criar um


novo algoritmo que realize comparações. Observe-o em nossa Tabela 5.1.

Tabela 5.1 – Algoritmo com a utilização de operadores relacionais


Algoritmo operadoresRelacionais
Declara
quantidade: Inteiro
resultado: Booleano
Inicio
Escreva(“Escreva a quantidade”)
Leia(quantidade)
resultado ← quantidade = 20
Escreva(“A expressão possui o valor ”, resultado)
Fim
Fonte: O autor

No caso do algoritmo acima, descrito na Tabela 5.1, realiza-se uma comparação


lógica para descobrir se o valor informado pelo usuário é igual a 20. Caso for, então
a variável “resultado” recebe o valor verdadeiro (true), e caso contrário, recebe falso.
Várias comparações diferentes poderiam ser realizadas com outros operadores, por
exemplo, comparar se dois valores são diferentes, ou se um é maior que o outro etc.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 15
6. EXPRESSÕES ARITMÉTICAS E LÓGICAS

6.1. EXPRESSÕES ARITMÉTICAS

As expressões aritméticas são expressões que apresentam como resultado um


valor numérico, isto é, um número inteiro ou real. Neste sentido, expressões aritméticas
são aquelas cujos operandos e operadores são de tipos numéricos. Aqui são cálculos
matemáticos.

A seguir são listados os operadores aritméticos mais utilizados em algoritmos e


linguagens de programação, porém deve ser lembrado que alguns deles podem ter o
símbolo diferente em determinadas linguagens.

Tabela 6.1 – Lista de operadores aritméticos


Operador Símbolo Descrição
Adição + Soma dois ou mais valores
Subtração - Subtrai dois ou mais valores
Multiplicação * Multiplica dois ou mais valores
Divisão / Divide dois ou mais valores
Exponenciação ^ a^x  valor de “a” elevado a potência “x”
Módulo Mod Retorna o resto da divisão de dois números
Fonte: O autor

Agora que conhecemos os operadores aritméticos, vamos praticar, desenvolvendo


um algoritmo. Analise a Tabela 6.2, e reescreva o exemplo em seu caderno para aprender
melhor.

Tabela 6.2 – Algoritmo com expressão aritmética


Algoritmo expressaoAritmetica
Declara
quantidade: Inteiro
valor : Real
resultado: Booleano
Inicio
Escreva(“Escreva a quantidade”)
Leia(quantidade)
Escreva(“Escreva o valor”)
Leia(valor)
valor ← ( (quantidade * valor) + 10/100)
Escreva(“O valor total é ”, valor)
Fim
Fonte: O autor

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


16 ALGORITMO
6.2 EXPRESSÕES LÓGICAS

As expressões lógicas são expressões que apresentam como resultado um valor


booleano, isto é, verdadeiro ou falso. Nestes tipos de expressões são utilizados tanto
operadores lógicos quanto relacionais, e podem ainda ser combinados com expressões
aritméticas. Quando duas ou mais expressões que utilizam operadores lógicos e
relacionais forem combinadas, devem-se utilizar parênteses para apresentar a ordem
de precedência (ALMEIDA, 2008).

Os operadores mais utilizados nesses tipos de expressões são os operadores


lógicos, listados na Figura 5.1. As tabelas verdade são um exemplo de expressões lógicas.

Tabela 6.3 – Exemplo de tabela verdade


A B A ou B AeB não A não B
F F F F V V
F V V F V F
V F V F F V
V V V V F F
Fonte: O autor

A Tabela 6.3 apresenta uma tabela verdade. Note que as duas primeiras colunas
definem o valor para as expressões A e B. As demais colunas aplicam os operadores
lógicos. Note que na tabela verdade ilustrada na Figura 5.2 descrevemos os valores
completos, e nesta, da Tabela 6.3, utilizamos “F” para designar valor falso e “V” para
verdadeiro.

6.3 PROCEDÊNCIA DE OPERADORES

Existe uma regra matemática quando se executam expressões aritméticas. A


ordem de prioridade da análise dos operadores em uma expressão aritmética é chamada
de precedência de operadores. Sempre que uma expressão aritmética precisa ser
avaliada em um algoritmo, o analisador de sintaxe processa a expressão priorizando
certos operadores. As expressões internas que contêm estes operadores são analisadas
primeiro e seu valor a substitui, permanecendo nos cálculos posteriores seu valor
calculado. Logo depois, a próxima expressão interna, dentro da ordem de priorização,
é analisada e seu valor a substitui em memória, e assim seguindo o cálculo até que
todas as expressões internas sejam substituídas por seu valor. Isso é feito até o final em
que todas as expressões internas são substituídas por seu valor, e estes são calculados
em conjunto, dentro da ordem de prioridade, resultando em um único valor. Este é o
resultado final de toda a expressão.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 17

Tabela 6.4 – Prioridade das operações aritméticas


1. Parênteses;

2. Potenciação;

3. Multiplicação, divisão, resto da divisão e divisão interna;

4. Adição e subtração.
Fonte: O autor

Neste sentido, para que se obtenha uma prioridade diferente de cálculos,


são utilizados parênteses para separar as expressões que devem ser calculadas
separadamente. Isso significa que os parênteses priorizam a análise e execução de uma
expressão. Isso pode ser visto na Tabela 6.4, que apresenta a ordem de priorização das
operações. Vamos apresentar alguns algoritmos, explicando-os.

Tabela 6.5 – Algoritmo com expressão aritmética


Algoritmo procedencia1
Declara
quantidade: Inteiro
valor : Real
resultado: Booleano
Inicio
Escreva(“Escreva a quantidade”)
Leia(quantidade)
Escreva(“Escreva o valor”)
Leia(valor)
valor ← (quantidade + quantidade) * valor
Escreva(“O valor total é ”, valor)
Fim
Fonte: O autor

Observe o algoritmo da Tabela 6.5, o qual possui no cálculo uma soma da variável
“quantidade”, cujo resultado é multiplicado pelo conteúdo da variável “valor”. Observe
que, neste caso, a prioridade ocorre na soma, isto é, primeiro é realizada a soma da
expressão “quantidade + quantidade”, e depois ocorre a multiplicação, devido a soma
estar entre parênteses. De acordo com nossa Tabela 6.4, tudo o que está dentro de
parênteses é calculado em separado.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


18 ALGORITMO

Tabela 6.6 – Algoritmo com expressão aritmética


Algoritmo procedencia2
Declara
quantidade: Inteiro
valor : Real
resultado: Booleano
Inicio
Escreva(“Escreva a quantidade”)
Leia(quantidade)
Escreva(“Escreva o valor”)
Leia(valor)
valor ← quantidade^2 * valor
Escreva(“O valor total é ”, valor)
Fim
Fonte: O autor

Observe o algoritmo da Tabela 6.6, cujo cálculo possui a variável “quantidade”


elevada à potência 2, além da multiplicação pela variável “valor”. Note que, neste
caso, a prioridade ocorre no cálculo de potência, isto é, primeiro é realizado o cálculo
“quantidade” elevada à potência 2, para depois seu resultado ser multiplicado pela
variável valor. Essa regra está descrita na Tabela 6.4.

Tabela 6.7 – Algoritmo com expressão aritmética


Algoritmo procedencia3
Declara
quantidade: Inteiro
valor : Real
resultado: Booleano
Inicio
Escreva(“Escreva a quantidade”)
Leia(quantidade)
Escreva(“Escreva o valor”)
Leia(valor)
valor ← (quantidade/10)^quantidade * valor
Escreva(“O valor total é ”, valor)
Fim
Fonte: O autor

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 19
E agora? Qual é a procedência que ocorre no algoritmo da Tabela 6.7? Calma! É
simples. Vamos analisando a Tabela 6.4 e seguir a procedência dos operadores. Desta
forma descobriremos como o algoritmo calculará. O cálculo inicia pela expressão que
está entre parênteses. Depois disso, é realizado o cálculo da potenciação, que, neste
caso, é o resultado da divisão que está entre parênteses elevado ao valor da variável
“quantidade”. Por fim, o resultado dos cálculos anteriores será multiplicado pelo valor
da variável “valor”.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


20 ALGORITMO
REFERÊNCIAS

ALMEIDA, M. Curso essencial de lógica de programação. São Paulo: Digerati Books, 2008.

JUNIOR, D. P.; NAKAMITI, G. S.; BIANCHI, F; FREITAS, R. L.; XASTRE, L. A. estrutura de


dados e técnicas de programação. Rio de Janeiro: Elsevier, 2014.

LEITE, M. Técnicas de programação: uma abordagem moderna. Rio de Janeiro: Brasport, 2006.

LIMA, G. S. Curso completo de programação e algoritmos. Salvador: 2015.

MEDINA, M.; FERTIG, C. Algoritmos e programação. São Paulo: Novatec, 2006.

TEIXEIRA, C. Construção de algoritmos no século XXI. Independentes, 2011.

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


ALGORITMO 21

Copyright © UNIASSELVI 2016. Todos os direitos reservados.


Centro Universitário Leonardo da Vinci
Rodovia BR 470, km 71, n° 1.040, Bairro Benedito
Caixa postal n° 191 - CEP: 89.130-000 - lndaial-SC
Home-page: www.uniasselvi.com.br

Você também pode gostar