Escolar Documentos
Profissional Documentos
Cultura Documentos
Lógica
A lógica é o processo de unir pensamentos para atingir
um objetivo mutuo, resolver um problema de forma
inteligente.
Organização
Raciocínio lógico
Resolução de problemas
Velocidade de execução
Concentração
Melhor entendimento da tecnologia
Algoritmo
Algoritmo é uma sequência finita de ações executáveis
que visam obter uma solução para um determinado tipo
de problema.
Decisão: Utilizado para mostrar que uma decisão deverá ser tomada
Fluxograma
Atraso: Utilizado para representar que um tempo será executado antes de
continuar
Documento: Utilizado para indicar um tipo de dado / informação que pode ser
lida
Preparação: Utilizado para mostrar que algo deve ser praticado / ajustado /
modificado no processo
Display: Utilizado para indicar que algo será exibido para leitura na tela.
Acordar
Tomar café
Dormir
Fim do dia
Pseudocódigo
Estrutura do código
INICIO
<declarações de variáveis>
<comandos>
FIM
Variáveis
É um item que armazena um tipo de informação.
Essa informação pode se modificar durante a execução
do código / programa / script / processo e etc...
Em portugol utilizaremos os seguintes tipos básicos de
dados:
Caracteres
+ Concatenação de variáveis
Exemplo: "variavelA" + "variavelB"
VisualG - Operadores
Relacionais
= Igual
< Menor que
> Maior que
<= Menor ou igual
>= Maior ou igual
<> Diferente
VisualG - Operadores
Relacionais
e
O resultado só será verdadeiro se as duas condições
forem verdadeiras
ou
O resultado será verdadeiro se somente uma das
condições for verdadeira
nao
Operador lógico para a negação
Soma exemplo 1
Algoritmo "Soma de dois números"
Var
x, y : inteiro
Inicio
escreva("Digite o primeiro número")
leia(x)
escreva("Digite o segundo número")
leia(y)
escreva("A soma dos dois números é :",x+y)
Fimalgoritmo
Soma exemplo 2
Algoritmo "Soma de dois números"
Var
x, y, resultado : inteiro
Inicio
escreva("Digite o primeiro número")
leia(x)
escreva("Digite o segundo número")
leia(y)
Resultado <- x+y
escreva("A soma dos dois números é :",resultado)
Fimalgoritmo
EXERCÍCIO
Var
a, b: real
Inicio
escreva("Digite o primeiro número")
leia(a)
escreva("Digite o segundo número")
leia(b)
escreva("A soma é : ",a+b)
escreva("A subtração é : ",a-b)
escreva("A multiplicação é : ",a*b)
escreva("A divisão é : ",a/b)
Fimalgoritmo
EXERCÍCIO
Var
distancia, gasto, total: real
Inicio
escreva("Distancia total percorrida em KM? ")
leia(distancia)
Fimalgoritmo
EXERCÍCIO
Var
a,b,c,d,media: real
Inicio
escreva("Primeira nota")
leia(a)
escreva("Primeira nota")
leia(b)
escreva("Primeira nota")
leia(c)
escreva("Primeira nota")
leia(d)
media <- (a+b+c+d)/4
escreva("A média é : ",media)
Fimalgoritmo
Condicional
Desvio condicional: É o comando utilizado para desviar a
execução de programa de acordo com uma condição
Desvio simples
Se (condição) então
Lista de comandos
FimSe
Desvio composto
Se (condição) então
Lista de comandos
Senão
Lista de comandos
FimSe
Algoritmo "Exiba o maior número"
Var
a, b : inteiro
Inicio
escreva("Escreva o primeiro número ")
leia(a)
escreva("Escreva o segundo número")
leia(b)
se a > b entao
escreva("A é maior que B")
senao
escreva("B é maior que A")
fimse
Fimalgoritmo
EXERCÍCIO
Inicio
escreva("Escreva o primeiro número ")
leia(a)
escreva("Escreva o segundo número")
leia(b)
se a = b entao
escreva("Os números são iguais")
senao
escreva("Os números são diferentes")
fimse
Fimalgoritmo
EXERCÍCIO
Inicio
escreva("Primeira nota")
leia(a)
escreva("Segunda nota")
leia(b)
escreva("Terceira nota")
leia(c)
escreva("Quarta nota")
leia(d)
media <- (a+b+c+d)/4
escreva("Primeiro número")
leia(a)
escreva("Segundo número")
leia(b)
escreva("Terceiro número")
leia(c)
Inicio
escreva("Primeira nota")
leia(a)
escreva("Segunda nota")
leia(b)
escreva("Terceira nota")
leia(c)
escreva("Quarta nota")
leia(d)
media <- (a+b+c+d)/4
escreva("A média é : ",media)
se ((media >=7) e (a>0) e (b>0) e (c>0) e (d>0)) entao
escreva(" Aprovado ")
senao
escreva(" Reprovado ")
fimse
fimalgoritmo
Operador ou
OR
Retorna um valor verdadeiro / real se pelo menos
uma das condições for verdadeiras
Var
a,b,c: inteiro
Inicio
escreva("Primeiro número")
leia(a)
escreva("Segundo número")
leia(b)
escreva("Terceiro número")
leia(c)
se ( (a=b) e (b=c) e (c=a) ) entao
escreva("Todos os lados iguais")
senao
se ( (a=b) ou (b=c) ou (c=a) ) entao
escreva("2 lados iguais")
senao
escreva("Todos os lados diferentes")
fimse
fimse
Fimalgoritmo
Operador nao
NOT
Retorna um valor verdadeiro / real quando a
condição for falsa
Entrada Saída
Falso Verdadeiro
Verdadeiro Falso
É um operador inverso
Laço de repetição
Esse comando é utilizado para executar uma ação
até que a condição seja verdadeira.
Enquanto a condição for verdadeiro, as
instruções serão executadas.
O laço de repetição é chamado de loop.
Os laços são:
enquanto / faca
repita / ate
para / faca
enquanto / faca
Esta estrutura de repetição é também chamada
de loop pré-testado, pois a expressão é verificada
antes da primeira execução.
Se inicialmente ela já resultar em FALSO, as
instruções que estão dentro do bloco não são
executadas nenhuma vez.
Enquanto(condição)faca
Lista de comandos
FimEnquanto
enquanto / faca
enquanto / faca
Vamos implementar um algoritmo para
somar valores até o usuário digitar o
valor 0. Ou seja, vamos somar todos os
valores que o usuário digitar, porém
quando ele digitar 0 o "loop" acaba, a
cada iteração do loop vamos
apresentar o resultado atual da soma.
algoritmo "SomaEnquantoValorDiferenteDe0"
var
valorDigitado : real
soma : real
inicio
soma := 0
escreva ("Digite um valor para a soma: ")
leia (valorDigitado)
enquanto valorDigitado <> 0 faca
soma := soma + valorDigitado
escreva ("Total: ", soma)
escreva ("Digite um valor para a soma: ")
leia(valorDigitado)
fimenquanto
escreva("Resultado: ", soma)
fimalgoritmo
repita / ate
Outra estrutura de repetição interessante é a REPITA-ATÉ
(Repeat-Until).
A diferença desta estrutura é que ela é um LOOP PÓS-
TESTADO, isto é, o teste para verificar se o bloco será
executado novamente, acontece no final do bloco.
Isso garante que as instruções dentro deste bloco serão
executadas ao menos uma vez. Veja como é o esquema
do REPITA-ATÉ.
Repita
Lista de comandos
Ate(condição)
repita / ate
repita / ate
Com a estrutura de repetição REPITA-ATÉ
não é necessário escrever duas vezes a
leitura de dados do usuário, pois ela é pós-
testada.
algoritmo "SomaAteValorIgualA0"
var
valorDigitado : real
soma : real
inicio
soma := 0
repita
escreva ("Digite um valor para a soma: ")
leia (valorDigitado)
soma := soma + valorDigitado
escreva ("Total: ", soma)
ate valorDigitado = 0
escreva("Resultado: ", soma)
fimalgoritmo
para / faca
Podemos implementar esse LOOP com qualquer
estrutura de repetição, mas para isso é necessário
utilizar um contador, uma variável que será utilizada para
contar quantas iterações foram executadas até o
momento.
A estrutura de repetição PARA, implementa um contador
implicitamente.
para / faca
para / faca
Criamos um algoritmo que será
digitado 15 idades e mostrará a
mensagem informando se é ou não
maior de idade para cada uma das 15
pessoas
algoritmo "paraFaça"
var
x: inteiro
idade: inteiro
inicio
para x de 1 ate 15 faca
escreva("Digite a idade : ")
leia(idade)
se idade >= 18 entao
escreva("Maior de idade")
senao
escreva("De menor!")
fimse
fimpara
fimalgoritmo
escolha / caso
A estrutura ESCOLHA-CASO, é utilizado
em situações onde existem várias
estruturas Se aninhadas.
A ideia da estrutura Escolha-Caso é
permitir ir direto no bloco de código
desejado, dependendo do valor de uma
variável de verificação
escolha / caso
escolha / caso
Escreveremos um algoritmo que
solicitará um número.
Logo após, solicitaremos outro número
Em seguida, solicitaremos o operador
matemático.
E por fim, mostraremos o resultado da
operação escolhida.
Algoritmo "Escolha-caso"
Var
num1, num2, resultado: real
op : caractere
Inicio
escreva("Digite o primeiro numero : ")
leia(num1)
escreva("Digite o segundo numero : ")
leia(num2)
escreva("Escolha a operação matmática : ")
leia(op)
escolha op
caso "+"
resultado:=num1+num2
caso "-"
resultado:=num1-num2
caso "x"
resultado:=num1*num2
caso "/"
resultado:=num1/num2
fimescolha
escreva("O resultado é : ",resultado)
Fimalgoritmo
escolha / caso
Existe uma opção a mais nessa estrutura,
justamente para tratar quando o valor da
variável não é equivalente a nenhum valor
informado como opção nos CASOs, ou seja, é
um "OUTROCASO".
fimescolha
escreva("O resultado é : ",resultado)
Vetores e Matrizes
Vetores e Matrizes são estruturas de dados muito simples que
podem nos ajudar muito quando temos muitas variáveis do
mesmo tipo em um algoritmo.
var
x : vetor [1..10] de inteiro
contador, soma : inteiro
inicio
soma <- 0
para contador de 1 ate 10 faca
escreva ("Digite um número para somar")
leia(x[contador])
soma <- soma+x[contador]
fimpara
escreva("A soma dos números é : ",soma)
fimalgoritmo
PROBLEMA: Exibir a média aritmética de 5 alunos e mostrar se foram aprovados ou reprovados
var
nomes: vetor [1..5] de caractere
notas: vetor [1..5,1..4] de real
medias: vetor [1..5] de real
contadorA, contadorB: inteiro
inicio
//Leitura dos nomes e as notas de cada aluno
para contadorLoop1 de 1 ate 5 faca
escreva("Digite o nome do aluno(a) número ", contadorA, " de 5: ")
leia(nomes[contadorA)
para contadorB de 1 ate 4 faca
escreva ("Digite a nota ", contadorB, " do aluno(a) ", nomes[contadorA], ": ")
leia(notas[contadorA, contadorB])
fimpara