Buscar

Cursos Livres - Algoritmo - Módulo II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

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
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
1. TIPOS 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.
3
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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.}.
4 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
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.
5
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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
6 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitosreservados.
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
7
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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
8 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
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)
9
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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.
10 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
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.
11
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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
12 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
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.
13
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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 
14 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
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.
15
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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
16 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
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 A e B 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 umaexpressã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.
17
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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.
18 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
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
19
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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”.
20 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
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.
21
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
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

Continue navegando