Lógica Conteúdo
Lógica Conteúdo
3) Estruturas de seleção
3.1 – Definição
3.2 – SE/ENTÃO (IF/ELSE)
3.3 – ESCOLHA/CASO (SWITCH/CASE)
4) Estruturas de repetição
4.1 – Definição
4.2 – Estrutura de repetição PARA (FOR)
4.3 – Estrutura de repetição ENQUANTO (WHILE)
4.4 – Estrutura de repetição DO/WHILE (FAÇA/ENQUANTO)
O que é LÓGICA?
Dicionário: maneira coerente através da qual os fatos ou situações se encadeiam.
Para Aristóteles (384 – 322 a.C) a lógica não é ciência e sim um instrumento para o correto pensar.
Os seres humanos desenvolveram a lógica como meio de sobrevivência há milênios e modernamente
aplicamos a lógica no dia a dia de modo instintivo. Aprendemos desde os primeiros anos e passos a lidar com
a lógica, principalmente ao lidar com a natureza elementar à nossa volta.
Desenvolvemos várias habilidades no dia a dia com base em princípios lógicos, tais como: levantar cedo e ir
para o trabalho; ir para a aula na faculdade; etc.
E os computadores?
Os computadores também executam processos lógicos para realizar as tarefas que nós necessitamos, no
entanto, essa lógica obedece a critérios muito particulares.
Linguagem computacional => lógica=>código-fonte
A Lógica é parte da ciência matemática.
Ao longo do desenvolvimento da ciência da computação várias linguagens foram criadas: Assembly, Fortran,
C#, Java, PHP, SQL, Pascal, Python, etc. Essas linguagens têm códigos-fontes próprios, porém a estrutura lógica
tem muita semelhança. Os códigos próprios de cada linguagem são escritos em língua inglesa.
1) Algoritmos
1.4 – Definição
É a descrição de uma sequência ordenada de instruções precisas, sem ambiguidades, finitas e que permitam a
repetibilidade devendo ser seguidas para a resolução de um determinado problema. De maneira geral existem
várias maneiras de resolvermos um problema, portanto é possível a elaboração de algoritmos diferentes para a
solução do mesmo problema.
Exemplos de algoritmos do dia a dia:
▪ Receitas culinárias
▪ Manual de instrução
▪ Outras tarefas
Exemplos:
a. Trocar o pneu de um carro
Definição: computadores necessitam que as instruções para desempenhar uma tarefa sejam detalhadas,
passo a passo, e que podem ser convertidos ou compilados em uma linguagem compreensível pela máquina,
resultando em um PROGRAMA.
A lógica permite que os passos tenham uma sequência correta que deve ser seguida para alcançar o objetivo,
ou seja a tarefa ou problema a ser solucionado.
Propriedades essenciais:
Um algoritmo deve ser:
▪ Completo: todas as ações precisam ser descritas e devem ser únicas;
▪ Sem redundâncias: as instruções só têm uma forma de ser interpretada;
▪ Determinístico: a execução das instruções sempre atingirá o resultado esperado;
▪ Finito: as instruções devem terminar após a execução de todos os passos e a tarefa concluída.
Exemplo:
Cálculo da média aritmética de um aluno:
• Obter as suas duas notas de avaliações;
• Calcular a média aritmética;
• Se a média for maior ou igual a 7, o aluno foi aprovado;
• Senão o aluno foi reprovado.
Fluxograma: é uma representação gráfica em que usamos formas geométricas para indicar ações ou comandos
distintos. É mais precisa que a Descrição narrativa e permite visualizar o fluxo das instruções.
Aspecto positivo: os elementos gráficos permitem melhor entendimento que instruções de textos e facilita
verificar erros de lógica.
Aspecto negativo: o algoritmo não é detalhado, dificultando a transcrição para um programa.
Operação de atribuição
Decisão
Algoritmo <nome_do_algoritmo>
<declaração de variáveis>
Início
<corpo do algoritmo>
Fim
<declaração_de_variáveis> onde são declaradas as variáveis a serem usadas no algoritmo, normalmente números
inteiros ou reais.
Início e Fim: palavras que delimitam o início e término do conjunto de instruções do corpo do algoritmo
Exemplo:
- Cálculo da média de um aluno:
Algoritmo Calculo_Media
Var Nota1, Nota2, MEDIA: real;
Início
Leia Nota1, Nota2;
MEDIA ← (Nota1 + Nota2) / 2;
Se MEDIA >= 7 então
Escreva “Aprovado”;
Senão
Escreva “Reprovado”;
Fim_Se
Fim
▪ Literal: são uma sequência de caracteres que podem ser letras, dígitos e símbolos especiais. Em um algoritmo
a apresentação é delimitada por aspas (“ “) no início e término.
Exemplos: “JklmNopQ” – literal de comprimento 8;
“3.2” – literal de comprimento 3;
“0” – literal de comprimento 1;
“@$*^” – literal de comprimento 4;
Nota: “3.2” é diferente de 3.2, sendo o 1º literal devido às aspas e o 2º numérico real, sem aspas.
▪ Lógico: são usados para representar os dois únicos valores lógicos possíveis: Verdadeiro e Falso; outros tipos:
Sim/Não; 0 e 1.
▪ Variável: é um ente de memória que armazena valores que alteram seu conteúdo conforme a necessidade do
programa. O conteúdo da variável pode ser alterado, consultado ou apagado quantas vezes forem necessárias
no algoritmo. Quando o conteúdo da variável é alterado a informação anterior é apagada, ou seja, a variável
sempre armazena a última informação recebida.
▪ As variáveis possuem 3 atributos:
o Nome: começa com uma letra, sem espaço e sem caracter especial, exceto o underline (_).
o Tipo de dados: numérico, literal ou lógico;
o Informação: de acordo com o tipo de dado definido.
Exemplos:
IDADE: inteiro
SALÁRIO: real
TEM_FILHOS: lógico
Exemplos:
ATIVIDADES DE ALGORITMOS
RESOLUÇÃO
1) Pessoal
2) 1. Obter o lado do quadrado;
2. Calcular a área do quadrado;
3. Escreva a área do quadrado.
3) 1. Obter a idade completa da pessoa;
2. Se a idade for maior ou igual a 16 anos, a pessoa pode obter o Título de Eleitor;
3. Senão a pessoa não pode obter o TE.
4)
Início
Lado
Area←Lado*Lado
“Area=”Area”
Fim
5)
Início
Idade
V Idade>=16 F
Fim
4 × 𝑥 + 3𝑦 = 𝑧
8) Elaborar um algoritmo e um fluxograma para calcular a área de dois retângulos e verificar qual deles tem
área maior.
9) Elaborar um algoritmo e um fluxograma para calcular a área de dois círculos e verificar qual deles tem área
maior.
10) Dada a expressão
𝑎 = 𝑥2 + 4 × 𝑥 − 5
X←5
X ← 2*X
X ← 10
b)
Y←6
Z←8
X ← 2*Z+Y
X ← 22
c)
X ←6
X←1
X ← 3*X
X←3
d)
Y←6
Y ← 5*Y
X ← 2*Y
X ← 3*Y + 2*X +5
X ← 215
Os operadores matemáticos poderão ser utilizados entre variáveis com os tipos de dados numéricos inteiros
e/ou números reais. Devem ser obedecidas as regras matemáticas comuns.
Os parênteses devem ser resolvidos em prioridade às outras expressões; quando existirem parênteses dentro de
outro parêntese, o interno deve ser resolvido primeiro.
Exemplo:
a)
480 : { 20 . [ 86 - 12 . (5 + 2 ) ] 2 } =
480 : { 20 . [ 86 - 12 . 7 ] 2 } =
480 : { 20 . [ 86 - 84 ] 2 } =
480 : { 20 . [ 2 ] 2 } =
480 : { 20 . 4 } =
480 : 80 = 6
b)
- ( - 12 - ( - 5 + 3 )) =
- ( - 12 - ( - 2 )) =
- ( - 12 + 2) =
-( - 10) = + 10
3×𝑎+2×𝑏
𝑎−2
𝑐−
𝑑
Exemplo:
Algoritmo Calculo_Area_Quadrado
Var lado, area: real;
Inicio
Leia lado;
Área ← (lado*lado);
Escreva “Area do quadrado é”+área;
Fim.
Operadores de Atribuição
Atribuição simples → =
Atribuição com subtração → -=
Atribuição com divisão → /=
Atribuição com adição → +=
Atribuição com multiplicação → *=
Atribuição com módulo → %=
Algoritmo Pode_Tirar_Carteira_de_Motorista
Var idade: inteiro;
Inicio
Leia idade;
Se idade >= 18 Então
Escreva “Pode tirar carteira de motorista”;
Então
Escreva “Não pode tirar Carteira de Motorista”;
Fim.
Em uma avaliação de empréstimo imobiliário a instituição financeira exige que a renda familiar deve ser maior ou
igual a R$30.000,00 ou que a renda de um dos membros seja maior que 80% da renda total exigida.
Algoritmo Avaliação_credito_imobiliario
Inicio
RendaTotal←RendaA+RendaB
RendaPerc← 0.8*RendaA;
Senão
FimSe
Fim
2 – Estruturas de seleção SE/ENTÃO ou IF/ELSE podem ser:
1 – simples
2 – compostas
3 – aninhadas
1 – Simples:
Exemplo
Sintaxe do algoritmo:
Se <comando>
Então <instruções>;
Fim Se
A verificação é feita a cada passagem pela estrutura SE/ENTÃO. Se verdadeira (V) as instruções são
executadas; se a condição for FALSA (F) será executado o código na sequência.
Algoritmo verifica_numero
Inicio
Var x, y: inteiro;
X ← 20;
Y ← 30
Se (X<Y) Então
Escreva “X é menor que Y”;
FimSe
Fim
X ← 20
Y ← 30
Escreva ”X é
menor que Y” V Se (X<Y) F
2 – Compostas
Se a condição for verdadeira (V) são executadas as instruções entre chaves do SE/ENTÃO; se a condição não
for verdadeira, ou seja, falsa (F), são executadas as instruções dentro das chaves do SENÃO.
Algoritmo verifica_numero
Inicio
Var X, Y: inteiro
X ← 30
Y ← 25
Se (X<Y) Então
Senão
FimSe
Fim
X ← 30
Y ← 25
Escreva ”X é Escreva ”X é
menor que Y” V Se (X<Y) F menor que Y”
Exemplo 1: Um professor aplica provas com pesos, sendo a 1ª prova com peso 4 e 2ª prova com peso 6. Se a
aprovação for com nota maior ou igual a 7, elaborar o algoritmo e o fluxograma.
Inicio
Leia Nota1
Leia Nota2
Media←(Nota1*4+Nota*6)/10
Escreva “Aprovado”
Senão
Fim.
Exemplo 2: Para o cadastro de 2 pessoas e suas alturas, verificar qual delas é maior?
Inicio
Leia Nome1
Leia Alt1
Leia Nome2
Leia Alt2
Se Alt1>Alt2 Então
Senão
Fim se Fim
Exemplo 3: Elaborar um algoritmo e um fluxograma para calcular o volume de dois cubos e verificar qual deles tem
volume maior.
Exemplo 4: Elaborar um algoritmo e um fluxograma para calcular o volume de dois prismas e verificar qual deles tem
volume maior.
Exemplo 5: Elaborar um algoritmo e um fluxograma para calcular o volume de duas pirâmides e verificar qual delas
tem volume maior.
Exemplo 6: Elaborar um algoritmo e um fluxograma para calcular o volume de dois cones e verificar qual delas tem
volume maior.
Exemplo 7: Elaborar um algoritmo e um fluxograma para calcular o volume de dois troncos de cones e verificar qual
delas tem volume maior.
3 – Aninhadas
É uma estrutura usada quando é necessário realizar várias comparações com a mesma variável. Tem esse
nome porque é uma seleção dentro de outra seleção. Também pode ser chamada de encadeada.
Se <condição> Então
Se <condição> Então
<instruções>;
FimSe
Senão
<instruções>;
FimSe
Exemplos
a) Algoritmo que verifica se um aluno poderá ser aprovado
Início
Nota1, Nota2,
Frequencia
Media←(Nota1+Nota2)/2
V F
Se Media>=5,0
V F
Se Frequencia>=75%
“O aluno “O aluno
está está
aprovado” reprovado”
Fim
Algoritmo Verificação_da_aprovação_de_um_aluno
Var Nota1, Nota2, Media, Frequencia: Real;
Inicio
Leia Nota1;
Leia Nota2;
Leia Frequencia;
Media←(Nota1+Nota2)/2
Se (Media>=5,0)
Então
Se Frequencia>=75
Então
Escreva “O aluno está aprovado”
Senão
Escreva “O aluno está reprovado”
FimSe
FimSe
Fim
b) Algoritmo que calcula um novo salário conforme tabela de um sindicato
Início
Salario
Novosalario←salario*1,15 V Salario<3000
F
Fim
Algoritmo Correção_salarial
Var Salario, Novosalario: Real
Se Salario < 3000
Novosalario←Salario*1,15
Escreva
“O salario corrigido é:” Novosalario
Senão
Se Salario <=5000
Escreva
“O salario corrigido é:” Novosalario
Senão
Novosalario←salario*1,05
FimSe
FimSe
Fim
Nome1, Nome2,
Alt1, Alt2
V F
Alt1 > Alt2
Fim
d) Dados 3 números inteiros diferentes, elaborar um fluxograma e um algoritmo que verifique qual deles é o
maior. Nota: os números não precisam estar em ordem crescente ou decrescente.
Início
N1, N2, N3
V N1 > N2 F
V N1 > N3 F V N2 > N3 F
“N3 é o “N3 é o
“N1 é o “N2 é o
maior dos maior dos
maior dos maior dos
números” números”
números” números”
Fim
Algoritmo Maior_de_3_números_inteiros_dados
Var N1, N2, N3
Inicio
Leia N1, N2, N3
Se N1 > N2
Então
Se N2 > N3
Escreva “N1 é maior dos 3 números”
Senão
Escreva “N3 é maior dos 3 números”
FimSe
Senão
Se N2 > N3
Escreva “N2 é maior dos 3 números”
Senão
Escreva “N3 é maior dos 3 números”
FimSe
Fim
TABELA DE VERIFICAÇÃO DE RESULTADOS POSSÍVEIS
1) (3, 5, 4)
3>5 Não
5>4 Sim N2 é o maior dos 3 números
2) (3, 4, 5)
3>4 Não
4>5 Não N3 é o maior dos 3 números
3) (4, 3, 5)
4>3 Sim
4>5 Não N3 é o maior dos 3 números
4) (4, 5, 3)
4>5 Não
5>3 Sim N2 é o maior dos 3 números
5) (5, 4, 3)
5>4 Sim
5>3 Sim N1 é o maior dos 3 números
6) (5, 4, 3)
5>4 Sim
5>3 Sim N1 é o maior dos 3 números
e) Elaborar um algoritmo que avalia a situação de um aluno para aprovação sendo que a instituição exige a
aplicação de 3 provas semestrais com média superior ou igual a 7,0 para aprovação e se a nota for igual ou
inferior a 3,0 o aluno deve fazer um exame final.
a) Estrutura – Enquanto/Faça
Estrutura de repetição mais simples, ideal para situações em que não se sabe o número exato de vezes
em que o bloco de instruções deve ser repetido. Substitui Para/Até/Faça. A condição é validade antes de
cada repetição/laço. Enquanto Verdadeiro o bloco dentro do laço é executado, quando Falso é finalizado.
Exemplo:
Algoritmo Imprimir_numeros_de_1_a_10
Início
var contador :inteiro;
contador← 1
Enquanto (contador < 10) Faça
Escreva contador;
contador ← contador +1
FimEnquanto
Fim
b) Estrutura - Escolha/caso
Utilizada quando é necessário testar a mesma variável com uma série de valores várias vezes, sendo a
principal vantagem evitar uma série de testes com o comando Se/Então. A variável a ser testada deve
ser sempre do tipo inteiro ou literal.
Escolha <condição>
Caso1: <expressão>
<instruções>;
Pare;
Caso2: <expressão>
<instruções>;
Pare;
Senão:
<instruções>;
Pare;
FimEscolha
Exemplo
Algoritmo informa_sexo
Início
var sexo :literal
Escolha (sexo)
Caso ("F"):
Escreva "Sexo feminino";
Pare;
Caso ("M"):
Escreva "Sexo masculino";
Pare
FimEscolha
Fim
c) Estrutura – Para/Até/Faça
Usada quando o número de repetições é conhecido. É necessário usar uma variável de controle Inteiro
ou Literal.
Exemplo
Algoritmo Imprimir_numeros_de_1_a_100
Início
var contador :inteiro;
contador←1
Para contador ← 1 Até 100 Faça
Escreva (contador);
FimPara
Fim
Exemplo 1 – Algoritmo que determina o maior número de uma sequência
Início
n, x
i←2
F
i <=n
Leia x "O maior
número da
Se x > Maior Então sequência e:
Maior←x ", maior
FimSe
i←i+1
Fim
Algoritmo "Maior numero de uma sequencia"
Var
i, n : inteiro
Maior, x : real
Inicio
Escreva( "Entre com a quantidade de numeros da sequencia: " )
Leia( n )
Escreva( "Entre com o primeiro numero da sequencia: " )
Leia(Maior )
i←2
Enquanto i <= n faca
Escreva( "Entre com o proximo numero da sequencia: " )
Leia (x)
Se x > Maior entao
Maior←x
Fimse
i←i+1
Fimenquanto
Escreva( "O maior numero da sequencia e: ", maior )
Fimalgoritmo
Início
a, b
Soma←0
i←1
F
i <=n
" A soma dos
Leia x
números do
Soma←Soma + a intervalo é:
", Soma
i←i+1
Fim
Início
Soma←0
i←1
F
i <=n media←soma/n
Leia (x)
i←i+1
Fim
Início
Soma←0
i←1
F
i <=n
media←soma/n
Leia (x)
i←i+1
media←soma/n
Soma←Soma + x
Acima←0
i←1
i←i+1
F
i <=n
Leia (x)
Se x>=media
Então
Acima←Acima+1
i←i+1
("A media
aritmetica dos ", n
, " numeros e ",
media)
("O número de
notas acima da
media é:”, Acima)
Fim
Algoritmo "Media aritmetica das notas e quantidades acima da media"
Var
i, n : inteiro
soma, x, media, Acima, Abaixo : real
Inicio
Escreva( "Entre com a quantidade de notas: " )
Leia( n )
soma ← 0
i←1
Enquanto i <= n faca
Escreva( "Entre com o ", i , "-esimo numero: " )
Leia (x)
soma ← soma + x
i←i+1
Fimenquanto
media ← soma / n
Acima←0
I←1
Enquanto i <= n faca
Escreva( "Entre com o ", i , "-esimo numero: " )
Leia (x)
Se x>=media
Então
Acima←Acima+1
i←i+1
Fimenquanto
Escreva( "A media aritmetica dos ", n , " numeros e ", media )
Escreva(“O número de notas acima da media é:”, Acima)
Fimalgoritmo
Início
a, r, n
i←2
NT←a
F
i <=n
" O n-ésimo
NT←NT + r
Termo é: ",
i←i+1 NTermo
Fim
Algoritmo “Determinar n-ésimo termo de uma PA”
Var a, r, i, n, NT: inteiro
Inicio
Escreva “Entre com o primeiro termo da PA”
Leia a
Escreva “Entre com a razão da PA”
Leia r
Escreva “Entre com a posição do Termo da PA”
Leia n
i←2
NT←a
Enquanto i <= n Faça
NT←NT+r
i←i+1
FimEnquanto
Escreva( "O n-ésimo termo é: ", NTermo)
Fimalgoritmo
Início
a, r, n, p
i←2
NT←a
Soma←0
F
i <=n
(" O n-ésimo
NT←NT + r
Termo é: ",
Se p=i Então NTermo)
Soma←Soma+a+NT ("A Soma de
FimSe dois termos
é:” Soma)
i←i+1
Fim
Início
a, b
Produto←1
i←1
Soma←0
F
i <=b
("O produto
Produto←Produto*a
dos números
Se Produto=0 Maior do intervalo”0
Então i=b+1 é: ", Produto)
Senão
i←i+1
FimSe
Fim
i←i+1
d) Estrutura – Faça/Enquanto
Testa a condição de validação do laço apenas no final do comando. As instruções dentro do laço serão
executadas pelo menos uma vez.
Exemplo
Algoritmo Imprimir_numeros_de_1_a_10
Início
var contador :inteiro;
contador ← 1
Faz
Escreva contador;
contador ← contador +1
Enquanto (contador < 10);
Fim