Introdução à Algorítmos e Lógica de
Programação
Apresentação
É sem dúvida muito importante a programação em qualquer área, como na Engenharia, por isso, é
de supra necessidade compreender um pouco o mundo da programação. Nesta Unidade de
Aprendizagem, além de aprender o universo da programação, vocês terão os conceitos e a
oportunidade de compreender um pouco dessa área. Para isso, utilizaremos um software chamado
MATLAB, uma ferramenta que auxiliará no desenvolvimento de algoritmos.
Nesta Unidade de Aprendizagem, você vai estudar o conceito de lógica, o que é um algoritmo e
como está relacionado com a lógica. Também irá aprender a identificar e definir o que são tipos de
dados, operadores aritméticos, operadores relacionais, operadores lógicos, expressões aritméticas,
expressões relacionais e as regras de precedências entre os operadores.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
• Identificar os algoritmos e sua lógica de programação na solução de problemas, a
representação e os tipos de dados na construção de algoritmos.
• Aplicar os algoritmos e sua lógica de programação na solução de problemas.
• Operar de forma correta os tipos de dados e suas relações.
Desafio
O Desafio – A Torre de Hanói!
A Lenda: o problema das torres de Hanói foi proposto pelo matemático francês Edouard Lucas, em
1883. Lucas elaborou para seu “invento” uma lenda curiosa sobre uma torre muito grande. A “torre
de Brama”, que foi criada no “início dos tempos”, com três hastes contendo 64 discos concêntricos
(mesmo centro). O “criador” do universo também criou uma comunidade de monges cuja única
atividade seria mover os discos da haste original (“A”) para uma de destino (“C”). O “criador”
estabeleceu que o mundo acabaria quando os monges terminassem sua tarefa. Porém, os monges
deveriam respeitar as três regras para a sua execução.
É interessante observar que o número mínimo de "movimentos" para conseguir transferir todos os
discos da primeira estaca à terceira é 2n-1, sendo n o número de discos.
Logo: Para solucionar um Hanói de 3 discos, são necessários 23 -1 movimentos = 7 movimentos.
Para solucionar um Hanói de 7 discos, são necessários 127 movimentos.
Para solucionar um Hanói de 15 discos, são necessários 32.767 movimentos.
Para solucionar um Hanói de 64 discos, como diz a lenda, são necessários
18.446.744.073.709.551.615 movimentos.
Usando um pouco de lógica e a ferramenta Matlab, você precisa escrever um algoritmo que
solucione esse desfio!
Acompanhe, na imagem a seguir, as orientações.
Aponte a câmera para o
código e acesse o link do
conteúdo ou clique no
código para acessar.
Portanto, qual deveria ser o algoritmo?
Infográfico
Em programação, os tipos de estruturas de controle disponíveis mudam de linguagem para
linguagem. Nessa visão, temos os fluxos de execução de algoritmos, o primeiro é a continuação da
execução em uma instrução após a outra instrução, como na estrutura sequencial. O segundo é a
execução de um bloco de código somente se uma condição é verdadeira, esta chamada de
estrutura de seleção. O terceiro é a execução de um bloco de código enquanto uma condição é
verdadeira, ou de forma a iterar uma coleção de dados, sendo esta chamada de estrutura de
repetição.
Acompanhe, no Infográfico a seguir, como esse conceito pode se inter-relacionar com essas
estruturas.
Conteúdo do Livro
Neste capítulo, você verá sobre a introdução a algoritmos e à lógica de programação e alguns
conceitos, como fluxo e execução, com a estrutura sequencial, estrutura de seleção e de repetição,
além do conceito de lógica, o que são algoritmos, tipos de dados, operadores aritméticos,
relacionais, lógicos, precedência entre os operadores e expressões.
Leia o capítulo Introdução a Algoritmos e Lógica de Programação do livro Algoritmos e programação
que é base teórica desta Unidade de Aprendizagem.
Boa leitura.
ALGORITMO E
PROGRAMAÇÃO
Jeferson Faleiro Leon
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Introdução a algoritmos
e lógica de programação
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
Criar, reconhecer, interpretar e aplicar os algoritmos e sua lógica de
programação na solução de problemas.
Identificar, diferenciar e aplicar a representação e os tipos de dados
na construção de algoritmos e na solução de problemas.
Operar de forma correta os tipos de dados e suas relações.
Introdução
Neste capítulo, você estudará o conceito de lógica, verá o que é um
algoritmo e como ele está relacionado com a lógica. Além disso, aprenderá
a identificar e definir o que são tipos de dados, operadores aritméticos,
operadores relacionais, operadores lógicos, expressões aritméticas e
expressões relacionais.
Conceitos de lógica de programação
A lógica não tem uma definição específica: inicialmente, era ligada à ma-
temática (lógica formal) e, atualmente, está relacionada a todas as áreas do
conhecimento humano.
Podemos relacionar a lógica com a “correção do pensamento”, pois uma de
suas preocupações é determinar quais operações são válidas e quais não são,
fazendo análises das formas e leis do pensamento. Como filosofia, ela procura
saber por que pensamos assim e não de outro jeito; como arte ou técnica,
ela nos ensina a usar corretamente as leis do pensamento (FORBELLONE;
EBERSPACHER, 2005).
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
2 Introdução a algoritmos e lógica de programação
Algoritmos
Para Forbellone e Ebersoacher (2005), algoritmo é um conjunto finito de
regras, bem definidas, que nos levam à solução de um problema em um
tempo finito. Segundo Berg e Figueiró (2002), algoritmo é a descrição de
um conjunto de ações que, obedecidas, resultam numa sucessão finita de
passos, atingindo o objetivo.
Para que se tenha um algoritmo, é preciso:
a) que se tenha um número finito de passos;
b) que cada passo esteja precisamente definido, sem possíveis ambiguidades;
c) que existam zero ou mais entradas;
d) que existam uma ou mais saídas;
e) que exista uma condição de fim, sempre atingida em tempo finito, para
quaisquer entradas.
Os algoritmos são criados e reconhecidos por sua lógica de programação.
Segundo Forbellone e Eberspacher (2005), a lógica está relacionada à coerência
e à racionalidade; lógica de programação é a racionalização dos processos
formais da programação de computadores e algoritmo é a sequência de passos
que visam atingir um objetivo bem definido.
Os algoritmos podem ser visualizados por meio de um fluxograma
convencional ou por meio de um fluxograma do tipo Chapin. Forbellone
e Eberspacher (2005) fornecem um exemplo básico da diferença entre
ambos e destacam que há uma série de vantagens e desvantagens para cada
um desses fluxogramas. Por exemplo, o fluxograma convencional é mais
fácil de desenhar e é previsto em etapas, enquanto o fluxograma Chapin
pode compactar as perguntas de F e V ou S e N em somente um bloco,
sendo considerado mais técnico e formal. Na Figura 1, você pode observar
essas diferenças.
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Introdução a algoritmos e lógica de programação 3
Figura 1. Fluxograma convencional e fluxograma Chapin.
Fonte: Forbellone e Eberspacher (2005).
Tipos de dados (primitivos)
Para entender os tipos primitivos, voltemos nossa atenção para um conceito
muito importante: a informação. Antes disso, vamos entender o que é um
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
4 Introdução a algoritmos e lógica de programação
dado? Dados são códigos que constituem a matéria-prima da informação, ou
seja, é a informação não tratada que ainda não apresenta relevância.
A informação é constituída pelos dados tratados – o resultado do processa-
mento de dados são as informações. As informações têm significado e podem
contribuir no processo de tomada de decisões.
Os dados podem ser classificados conforme seu tipo e os principais serão
descritos a seguir.
Tipos numéricos
Inteiros: é um número que não possui casas decimais; por exemplo, a
idade de uma pessoa ou uma quantidade de itens num estoque.
Real: é um número que possui casas decimais, ou seja, é um número
fracionário; por exemplo, a altura de uma pessoa ou o peso de um
determinado produto.
Tipos alfanuméricos
Literal ou String: são os textos, que podem conter letras, números e
caracteres especiais. Não são utilizados para cálculos.
Tipos lógicos
Booleano: é um dado que só pode conter 2 informações (verdadeiro
ou falso).
Expressões
Expressões, no sentido matemático, são representações simbólicas de sequ-
ências de operações a serem feitas sobre determinados operandos visando a
obtenção de um resultado. Necessitam-se de dois tipos de expressões para a
elaboração de algoritmos: expressões aritméticas e expressões lógicas.
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Introdução a algoritmos e lógica de programação 5
Expressões aritméticas
Expressões aritméticas são aquelas cujos operadores são aritméticos e cujos
operandos são constantes e/ou variáveis do tipo numérico (inteiro ou real).
Operadores aritméticos
Soma +
Divisão /
Quociente da divisão inteira Div
Radiciação //
Subtração -
Multiplicação ∙
Resto da divisão inteira Mod
10 div 3 = 3 10 mod 3 = 1 3 div 5 = 0
25 div 5 = 5 25 mod 5 = 0 3 mod 5 = 3
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
6 Introdução a algoritmos e lógica de programação
Funções matemáticas
Função Descrição Exemplo
sqr (x) Quadrado de x (x2) sqr (4) = 16
sqrt (x) Raiz quadrada de x ( ) sqrt (25) = 5
sen (x) Seno de x sen (90) = 1
cos (x) Cosseno de x cos (90) = 0
tg (x) Tangente de x tg (45) = 1
int (x) Parte inteira de x int (23,49) = 23
frac (x) Parte fracionária de x frac (23,49) = 49
pot (x,y) X na potência y (xy) pot (3, 2) = 9
abs (x) Valor absoluto de x abs ( -39) = 39
Sinal (x) Fornece o valor –1, +1 ou zero conforme o Sinal (-44) = -1
valor de x seja negativo, positivo pu nulo.
Precedência entre os operadores
Os operadores de mesma precedência na tabela são resolvidos da esquerda
para a direita, na ordem que aparecerem na expressão.
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Introdução a algoritmos e lógica de programação 7
5+9+7+8/4
5 + 9 + 7 + 2 = 23
1 - 4 · 3 / 6 - 2³
1-4·3/6-8
1 - 12 / 6 - 8
1 - 2 - 8 = -9
3 ∙ 2 - 4 / 2 + abs (5 - 3 ∙ 5) / 2
3 ∙ 2 - 4 / 2 + abs (5 - 15) / 2
3 ∙ 2 - 4 / 2 + abs (-10) / 2
3 ∙ 2 - 4 / 2 + 10 / 2
9 - 4 / 2 + 10 / 2
9 - 2 + 5 = 12
Expressões lógicas
Expressões lógicas são aquelas cujos operadores são lógicos e/ou relacionais
e cujos operandos são relações e/ou constantes e/ou variáveis de tipo lógico.
O resultado de uma expressão lógica sempre é uma constante lógica (F - falso
ou V - verdadeiro).
Operadores relacionais
= Igual <> Diferente
> Maior >= Maior ou igual
< Menor <= Menor ou igual
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
8 Introdução a algoritmos e lógica de programação
2 ∙ 4 = 24 / 3 = 8
V
2 + (8 – 7) > = 3 ∙ 6 - 15
2 + 1 > = 18 - 15
3>=3
V
Operadores lógicos
Símbolo Função
E Conjunção
Ou Disjunção (não-exclusiva)
Não Negação
O operador lógico E é utilizado quando dois ou mais relacionamentos lógicos
de uma determinada condição necessitam ser verdadeiros. O operador lógico
E faz com que somente seja executada uma determinada operação se todos as
condições mencionadas forem simultaneamente verdadeiras, gerando, assim,
um resultado lógico verdadeiro.
SE (NÚMERO > = 20) E (NÚMERO < = 90)
Então, escrever “Número válido no intervalo”
Se NÃO, escrever “Número inválido, não está no intervalo”
Fim-SE
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Introdução a algoritmos e lógica de programação 9
O operador lógico OU é utilizado quando pelo menos um dos relaciona-
mentos lógicos (quando houver mais de um relacionamento) de uma condição
necessita ser verdadeiro. O operador lógico OU faz com que seja executada
uma determinada operação se pelo menos uma das condições mencionadas
gerar um resultado lógico verdadeiro.
SE (SEXO = ‘Masculino’) OU (SEXO = ‘Feminino’)
Então, escrever “O seu sexo é válido”
Se não, escrever “O seu sexo é inválido”
Fim-SE
O operador lógico NÃO é utilizado quando se necessita estabelecer que
uma determinada condição dever ser não verdadeira ou deve ser não falsa.
O operador lógico NÃO se caracteriza por inverter o estado lógico de uma
condição, isto é, inverte o resultado lógico da condição.
Algoritmo prog1
Var
A, B, C, X: Inteiro
Início
Ler (X, A, B)
SE NÃO (X > 5)
Então C: = (A + B) ∙ X
Se não C: = (A – B) ∙ X
Fim-SE
Escrever (C)
Fim
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
10 Introdução a algoritmos e lógica de programação
Tabelas verdade
Tabela verdade é o conjunto de todas as possibilidades combinatórias entre os
valores de diversas variáveis lógicas, as quais se encontram em apenas duas
situações, e um conjunto de operadores lógicos.
Operador E
A B AeB
V V V
V F F
F V F
F F F
Operador OU
A B A ou B
V V V
V F V
F V V
F F F
Operador NÃO
A A não B
V F
F V
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Introdução a algoritmos e lógica de programação 11
Prioridades
Entre operadores lógicos:
Entre todos os operadores:
BERG, A.; FIGUEIRÓ, J. Lógica de programação. 3. ed. Canoas: Ed. ULBRA, 2002.
FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de programação: a construção de
algoritmos e estruturas de dados. 3. ed. São Paulo: Pearson, 2005.
Leituras recomendadas
CHAPRA, S. C. Métodos numéricos aplicados com MATLAB® para engenheiros e cientistas.
3. ed. Porto Alegre: AMGH, 2013.
OLIVEIRA, A. B.; BORATTI, I. C. Introdução à programação de algoritmos. Florianópolis:
Visual Books, 2004.
SOUZA, M. A. F. et al. Algoritmos e lógica de programação. 2. ed. São Paulo: Cengage,
2012.
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Nome do arquivo:
C01_Introducao_algoritmos_logica_programacao_FINAL_202405171
524142846114.pdf
Data de vinculação à solicitação: 17/05/2024 15:24
Aplicativo: 726377
Identificação interna do documento J0GYDGZ3A9-ZBPU4B1
Dica do Professor
A importância de aprender programação passa pela compreensão de um problema, entender o que
é um dado, uma informação, os tipos de dados (alfanuméricos, numéricos e boolenos), operadores
(aritméticos, relacionais e lógicos) e expressões (aritméticas, relacionais e lógica).
Nesta Dica do professor, faço o convite para que você mergulhe nos estudos de algoritmos e
compreenda ainda mais o conteúdo que está estudando.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Exercícios
1) O que são algoritmos?
A) Algoritmo é um conjunto finito de regras, bem definidas, que nos leva à solução de um
problema em um tempo finito.
B) Algoritmo é um conjunto infinito de regras, bem definidas, que nos leva à solução de um
problema em um tempo longo.
C) Algoritmo é um conjunto finito de regras, nada definida, que leva à solução de um problema
em um tempo finito.
D) Algoritmo é a forma ambígua de escrever um programa de computador e que nos dá a ideia
de um problema que o programador pensou em resolver.
E) Algoritmo é um elemento finito de regras, pouco definidas, que nos leva à solução de um
problema em um tempo finito.
2) O fluxo de execução de um algoritmo consiste em estruturas. Quais são essas estruturas?
A) Sequencial, Aritmética e de Junção.
B) Sequencial, Seleção e Repetição.
C) Junção, de Seleção e de Repetição.
D) Repetição, de Artimética e de Seleção.
E) Aritmética, Seleção e Junção.
3) Existem alguns tipos de dados primitivos que podem ser números negativos, positivos ou
nulos com e sem decimais, que apresentam letras e que apresentam valores de V ou F ou
valores binários 0 ou 1. Quais são esses tipos primitivos de dados?
A) Lógicos ou booleanos, inteiros, estatísticos, probabilisticos.
B) Dados numéricos, dados científicos, lógicos, probabilísticos.
C) Dados de números Inteiros, reais, com caractere, lógicos ou booleanos.
D) Com caractere, simples, compostos, booleanos.
E) Dados de números inteiros, reais, compostos, booleanos.
4) As expressões são fórmulas matemáticas que auxiliam a obter um resultado numérico.
Normalmente, são utilizadas para obter um resultado numérico para números inteiros e
reais, ou para condições, ou para conjunções, disjunções e negações. Quais são essas
expressões?
A) Exponenciais, Aritméticas, de Conjunção.
B) Aritméticas, Relacionais, Lógicas ou Booleanas.
C) Geométricas, de Razão, Exponenciais.
D) Geométricas, Relacionais, Lógicas ou Booleanas.
E) Lógicas ou Booleanas, de Razão, Geométricas.
5) Analise o seguinte trecho:
algoritmo "Modelo"
var
n: inteiro
inicio
escreval("Insira um número inteiro: ")
leia(n)
n = n * n;
escreval("O ................... é : ",n)
fimalgoritmo
O que o irá acontecer com o valor lido, o que será mostrado como resultado?
A) O resultado é o QUADRADO do valor lido.
B) O resultado é o DOBRO do valor lido.
C) O resultado é a METADE do valor lido.
D) O resultado não é calculado, pois o tipo de dado não pode ser utilizado para fazer cálculos.
E) O resultado é o triplo do valor lido.
Na prática
Vamos resolver um problema prático de um saltador de bungee jumping.
Se um saltador de bungee jumping vai pular de um penhasco, qual é a velocidade final no período de
queda livre, a fim de que se possa determinar o comprimento e a resistência da corda.
Acompanhe, na imagem a seguir, como resolver esse problema.
Aponte a câmera para o
código e acesse o link do
conteúdo ou clique no
código para acessar.
Saiba mais
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Por que todos deveriam aprender a programar?
No link a seguir, você verá pessoas famosas falando sobre como programação é algo muito legal, e
que mais escolas deveriam ensinar programação para seus alunos.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Lógica e programação
No link a seguir, você terá acesso a um vídeo que apresenta uma introdução sobre o que é e por
que a lógica é indispensável para quem deseja entrar no mundo da programação.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Primeiro Algoritmo - Curso de Algoritmos
No link a seguir, você terá acesso a uma videoaula que aborda sobre algoritmos de uma forma
simples e intuitiva.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.