Sie sind auf Seite 1von 63

A LGORITMOS COM V ISU A LG

Hélio Andrade
Instrutor de Informática
contato@devmaster.club
C ONTEÚDO P ROGRAMÁTICO
CONTEÚDO PROGRAMÁTICO 3

1. O QUE É UM ALGORITMO? 11. FUNÇÕES E PROCEDIMENTOS


2. ESTRUTURAS FUNDAMENTAIS DE UM 12. PASSAGEM DE PARÂMETRO
ALGORITMO 13. MANIPULAÇÃO DE ARQUIVOS
3. REPRESENTAÇÃO DE UM ALGORITMO
4. TIPOS DE DADOS
5. VARIÁVEIS E CONSTANTES
6. OPERADORES
7. PROGRAMAÇÃO SEQUENCIAL
8. A TOMADA DE DECISÃO
9. LAÇOS DE REPETIÇÃO
10. ESTRUTURAS DE DADOS

www.devmaster.club
L ÓGICA DE P ROGRAMAÇÃO

O QUE É UM ALGORITMO
O QUE É UM ALGORITMO? 5

 A programação de computadores tem


como fundamento o algoritmo.
Definição:

“Um algoritmo é uma sequência finita de instruções


bem definidas e não ambíguas, cada uma das quais
podendo ser executada num período de tempo finito
e com uma quantidade de esforço finita.”

www.devmaster.club
EXEMPLO: TOMAR BANHO 6

Algoritmo “TOMAR BANHO”

1. Entrar no banheiro;
2. Tirar a roupa;
3. Abrir o registro;
4. Ensaboar-se;
5. Enxaguar o corpo;
6. Passar shampoo nos cabelos;
7. Enxaguar o cabelo;
8. Fechar o registro.

www.devmaster.club
EXEMPLO II: TROCAR PNEU FURADO 7

Algoritmo “TROCAR PNEU”

1. Pegar o macaco;
2. Colocar o macaco embaixo do carro;
3. Levantar o carro;
4. Pegar chave de roda;
5. Desparafusar a roda;
6. Retirar a roda;
7. Colocar o estepe;
8. Reparafusar o pneu;
9. Abaixar o carro;
10.Tirar o macaco.

www.devmaster.club
EXEMPLO III: FAZER BOLO 8

Algoritmo “FAZER BOLO”


1. Bata as claras em neve;
2. Bata bem as gemas com a
margarina e o açúcar;
3. Acrescente o leite e farinha
aos poucos sem parar de bater;
4. Por último agregue as claras em
neve e o fermento;
5. Coloque em forma grande de furo
central untada e enfarinhada;
6. Asse em forno médio, pré-
aquecido, por aproximadamente
40 minutos;
7. Quando espetar um palito e sair
limpo estará assado.
www.devmaster.club
O QUE É UM ALGORITMO? 9

É uma maneira particular de resolver um


problema.
Constitui-se em:
 um conjunto de ações sequenciais ordenadas logicamente,
 realizáveis em um intervalo de tempo considerado aceitável e
 consumindo a menor quantidade de recursos possível.

Nem todos os problemas podem ser "resolvidos" por meio de


algoritmos.

www.devmaster.club
L ÓGICA DE P ROGRAMAÇÃO

ESTRUTURAS FUNDAMENTAIS
ESTRUTURAS FUNDAMENTAIS 11

Os algoritmos possuem 3 (três) estruturas que


são sua “matéria-prima”:

 Sequenciais;
 de Repetição;
 de Decisão.

Escrever bons algoritmos, na prática, significa dominar


tais estruturas!

www.devmaster.club
ESTRUTURAS SEQUENCIAIS 12

A ordem em que as tarefas/intruções são


realizadas é importante.
 Não podemos, por exemplo, bater os ovos antes de quebrá-los
dentro da batedeira ou tomar banho sem antes tirarmos a roupa.

A sequência correta de instruções a ser executada é determinante para


o sucesso de nosso algoritmo!

www.devmaster.club
ESTRUTURAS DE DECISÃO 13

Introduzem um desvio condicional na sequência


de execução das instruções de um algoritmo.
 Caso a condição dada seja satisfeita, será executado um dado bloco
de instruções; caso não, outro bloco será executado.

www.devmaster.club
ESTRUTURAS DE REPETIÇÃO 14

São semelhantes às estruturas de decisão, pois possuem uma condição


prévia para que uma dada instrução (ou conjunto de instruções) seja
executada.
 A diferença é que há uma repetição...

www.devmaster.club
ESTRUTURAS FUNDAMENTAIS DOS ALGORITMOS 15

INSTRUÇÃO_1
INSTRUÇÕES
CONDIÇÃO

INSTRUÇÃO_2

CONDIÇÃO

INSTRUÇÃO_N

SEQUÊNCIA DECISÃO REPETIÇÃO

www.devmaster.club
L ÓGICA DE P ROGRAMAÇÃO

REPRESENTAÇÃO DE UM
ALGORITMO
DESCRIÇÃO EM LINGUAGEM CORRENTE 17

*** Cálculo de média ***

1. Receba a primeira nota da disciplina.


2. Receba a segunda nota da disciplina.
3. Some as duas notas e divida o
resultado por 2.
4. Se a média for maior ou igual a 7,
então exiba "Aprovado!", senão exiba
"Reprovado!".

www.devmaster.club
FLUXOGRAMA / DIAGRAMAS 18

*** Cálculo de média ***


início

1ª nota
2ª nota

média <- (1ª nota + 2ª nota) /


2

“SIM” “NÃO”

média >= 7.0

APROVADO
REPROVADO!
!

fim

www.devmaster.club
LINGUAGEM DE PROGRAMAÇÃO 19

*** Cálculo de média ***

www.devmaster.club
(PSEUDO)LINGUAGEM DE PROGRAMAÇÃO (II) 20

*** Cálculo de média ***

www.devmaster.club
L ÓGICA DE P ROGRAMAÇÃO

TIPOS DE DADOS
TIPOS DE DADOS 22

Um algoritmo realiza um conjunto de instruções


numa determinada ordem sobre um conjunto de
dados de entrada, tendo em vista um conjunto de
dados de saída desejado.

www.devmaster.club
TIPOS DE DADOS 23

 Seres humanos manipulam em suas atividades


profissionais e pessoais vários tipos de dados e
informações:
 senhas dos mais variados tipos,
 números de contas bancárias,
 datas de aniversários,
 o valor do nosso salário,
 uma música que nos marcou,
 o cheiro de um perfume, etc.

www.devmaster.club
TIPOS DE DADOS 24

 Com os computadores, ocorre algo parecido:

 Para que ocorra o processamento sobre os dados


de entrada é necessário que o computador
“saiba” de antemão os tipos específicos deles.

 Os tipos de dados podem variar de uma linguagem para


outra; os mais comuns são:

 numéricos (inteiros e reais)


 literais (caractere e cadeias)
 lógicos

www.devmaster.club
TIPOS DE DADOS INTEIROS 25

 Tipos Inteiros
São os dados numéricos constituídos pelo conjunto dos
números inteiros, ou seja, o conjunto dos naturais mais
os números negativos.

Exemplos:
 Eu tenho 25 anos de idade.
 João tem 2 filhos.

www.devmaster.club
TIPOS DE DADOS REAIS 26

 Tipos Reais
São os dados numéricos constituídos pelo conjunto dos
números naturais, inteiros e racionais.
Exemplos:
 A área de um terreno é igual a 123,50 m².

 O saldo da conta é R$ -258,69.

 A temperatura ambiente é de -20,35 °C.

No Brasil, separamos a parte inteira da parte decimal de um número


utilizando a vírgula (,). Na construção de algoritmos, a notação a ser usada
é a inglesa, que utiliza o ponto (.).

www.devmaster.club
TIPOS DE DADOS LITERAIS 27

 Tipos Literais
São constituídos por sequências de letras, números e símbolos
especiais, incluindo os espaços em branco.
Exemplos:
 "Celular: (98) 1234-5678".

 "CPF: 123.456.789-10".

 "Endereço: Rua Fulano de Tal, nº 1234".

 "Hélio Andrade".

Outras denominações do tipo de dado literal encontradas nos livros técnicos


são: cadeia, string, alfanumérico.

www.devmaster.club
TIPOS DE DADOS LÓGICOS 28

 Tipos Lógicos
São os dados que assumem os valores VERDADEIRO ou
FALSO. São também conhecidos como tipos de dados
booleanos.

Exemplos:
 A porta pode estar aberta ou fechada.
 Você pode estar feliz ou triste.

www.devmaster.club
L ÓGICA DE P ROGRAMAÇÃO

VARIÁVEIS & CONSTANTES


VARIÁVEIS & CONSTANTES 30

O computador é uma máquina que recebe dados, processa-


os e retorna os resultados obtidos.

Tal processamento é executado por meio do armazenamento


dos dados em memória por meio da utilização de variáveis e
constantes.

www.devmaster.club
VARIÁVEIS - DEFINIÇÃO 31

 Variável:
É uma região de memória previamente identificada que tem
por finalidade armazenar dados ou informações por um
determinado espaço de tempo.

 Armazena apenas um valor por vez;


 tal valor está relacionado ao tipo de dado definido para
a variável.

Toda variável, antes de ser usada dentro do programa, deve ser declarada
escolhendo-se um nome adequado e indicando-se o seu tipo.

www.devmaster.club
VARIÁVEIS - DEFINIÇÃO 32

Imagine a memória principal como


sendo um armário, onde:
 uma determinada gaveta (variável)
possui uma
 identificação única (nome da variável)
e
 armazena apenas um tipo de arquivo
(tipo de dado da variável).

www.devmaster.club
VARIÁVEIS - NOMENCLATURA 33

 Nomenclatura de Variáveis:
O nome de uma variável deve começar por uma letra ou por um
caractere “_” (underline).
Não pode começar com um número.
Os demais caracteres de uma variável podem ser letras, dígitos e
“_”.
Não pode ter espaços em branco.
São reconhecidos os primeiros 31 caracteres para diferenciar uma
variável de outra.
Não pode ser uma palavra reservada.

Em algumas linguagens de programação há diferença entre


caracteres maiúsculos e minúsculos.

www.devmaster.club
CONSTANTES - DEFINIÇÃO 34

 Constantes:
Às vezes, é desejável que, além de uma variável possuir
um valor pré-definido, este valor não seja modificado.

Portanto, constantes são valores fixos, que não se


modificam no decorrer da execução do programa.

Por exemplo: O número π (aproximadamente, 3,14).

Os nomes dados às constantes possuem as mesmas


restrições dos nomes de variáveis.

www.devmaster.club
L ÓGICA DE P ROGRAMAÇÃO

OPERADORES
OPERADORES – DEFINIÇÃO E CLASSIFICAÇÃO 36

 Um operador simboliza uma operação efetuada


sobre variáveis e constantes, realizando o
processamento de dados.
 São classificados em três tipos:
Operadores Aritméticos;

Operadores Relacionais;

Operadores Lógicos.

www.devmaster.club
OPERADORES ARITMÉTICOS 37

 São utilizados para executar operações numéricas.


OPERADOR OPERAÇÃO DESCRIÇÃO

/ Divisão  Operadores aritméticos


tradicionais de adição,
* Multiplicação subtração, multiplicação e
divisão.
+ Adição
 Ex.: 2 + 4 = 6; 2 * 10 = 20; 10
- Subtração / 2 = 5.
 Operador de módulo; retorna o
% ou mod Resto da divisão resto da divisão inteira.

 Ex.: 8 % 3 = 2.
 Operador de potenciação.
^ Exponenciação
 Ex.: 5² => 5^2 = 25.
 Raiz quadrada.
raizq(valor numérico) Raiz quadrada
 Ex.: 𝟏𝟔 = 4 => raizq(16) = 4.

www.devmaster.club
OPERADORES ARITMÉTICOS 38

 Exemplos de expressões numéricas:


Na Matemática Em Algoritmo

- [- 3 + 2 – (4 - 5 - 6)] + 16 - (- 3 + 2 – (4 - 5 - 6)) + raizq(16)

{- 5 + [ - 8 + 3 x (- 4 + 9) - 3 ]} (- 5 + ( - 8 + 3 * (- 4 + 9) - 3 ))

5 ÷ { 10 x 2 + [20 ÷ 4] – (10 + 2)} 5 / ( 10 * 2 + (20 / 4) – (10 + 2))

2³ + [5 x 2 ÷ (4 ÷ 2 + 3)] 2^3 + (5 * 2 / (4 / 2 + ))

 Exemplos de fórmulas matemáticas:


Na Matemática Em Algoritmo
(1ª nota + 2ª nota)
média = media ← (nota1 + nota2) / 2
2
A = πr 2 area ← pi * raio^2

Novo Salário = 1,10 x Salário Antigo novo_salario ← 1.10 * salario_antigo

Raiz quadrada = 1024 raiz_quadrada ← raizq(1024)

www.devmaster.club
OPERADORES RELACIONAIS 39

 São utilizados em expressões lógicas para se testar a


relação entre dois valores do mesmo tipo,
retornando VERDADEIRO ou FALSO.

OPERADOR OPERAÇÃO EXEMPLO RESULTADO

= Igual a 7 = 7 VERDADEIRO

<> Diferente de 10 <> 10 FALSO

> Maior que 10 > 20 FALSO

< Menor que 100 < 1000 VERDADEIRO

>= Maior ou igual a 1234 >= 1234 VERDADEIRO

<= Menor ou igual a 1,25 <= 2,50 VERDADEIRO

www.devmaster.club
OPERADORES LÓGICOS 40

 São utilizados quando há a necessidade de serem testadas


duas ou mais condições dentro de um algoritmo
simultaneamente.
 Os operadores lógicos são:
OPERADOR OPERAÇÃO DESCRIÇÃO

nao Negação Operador unário de negação

Operador que resulta VERDADEIRO


e Conjunção somente se todos os seus operandos
lógicos forem verdadeiros.

Operador que resulta VERDADEIRO


ou Disjunção quando pelo menos um dos seus
operandos lógicos for verdadeiro.

Operador que resulta VERDADEIRO se


xou OU Exclusivo seus dois operandos lógicos forem
diferentes, e FALSO se forem iguais.

www.devmaster.club
OPERADORES – PRECEDÊNCIA 41

OPERADORES ASSOCIATIVIDADE PRECEDÊNCIA

() Esquerda para direita Alta

nao Direita para esquerda

^, raizq() Esquerda para direita

*, /, % Esquerda para direita

+,- Esquerda para direita

<, <=, >, >= Esquerda para direita

=, <> Esquerda para direita

e Esquerda para direita

ou Esquerda para direita Baixa

www.devmaster.club
L ÓGICA DE P ROGRAMAÇÃO

PROGRAMAÇÃO SEQUENCIAL
ESTRUTURA BÁSICA DE UM ALGORITMO EM VISUALG 43

 Todos os nossos algoritmos serão escritos em Portugol


(Português Estruturado) daqui para frente e terão a
seguinte estrutura básica:

www.devmaster.club
ENTRADA E SAÍDA DE DADOS 44

Como já sabemos, o computador recebe dados de


entrada, realiza um conjunto de
instruções/operações numa determinada ordem
sobre esses dados, e exibe um conjunto de dados
de saída.

www.devmaster.club
COMANDOS DE ENTRADA E SAÍDA DE DADOS 45

leia() escreva()

LEMBRE-SE: Em nosso curso, o comando leia() recebe dados digitados no


teclado e armazena-os nas variáveis do algoritmo, e comando escreva() exibe
o dados na saída de dado padrão (tela do computador).
www.devmaster.club
COMANDO DE ENTRADA DE DADOS 46

leia(<lista-de-variáveis>)

Recebe valores digitados pelos usuário, atribuindo-os às variáveis


cujos nomes estão em <lista-de-variáveis>

É respeitada a ordem especificada na lista de variáveis de


entrada

Exemplos:

 leia(nota1)
 leia(idade, altura)

www.devmaster.club
COMANDO DE SAÍDA DE DADOS 47

escreva(<lista-de-expressões>)
Escreve no dispositivo de saída padrão o conteúdo de cada uma
das expressões que compõem <lista-de-expressões>
As expressões dentro desta lista devem estar separadas por
vírgulas
Depois de serem avaliadas, seus resultados são impressos na
ordem indicada
Exemplos:
 escreva(nota1, nota2)
 escreva(“Altura = ”, altura)

www.devmaster.club
PRIMEIRO ALGORITMO EM VISUALG 48

Em 1957, um matemático chamado George Polya descreveu


um conjunto de passos genéricos para a resolução de um
problema:

 Compreensão do problema
 Construção de uma estratégia para resolver o problema
 Execução da estratégia
 Revisão da solução encontrada

O processo de desenvolvimento de um algoritmo pode ser visto


como um processo de resolução de um problema.

www.devmaster.club
L ÓGICA DE P ROGRAMAÇÃO

A TOMADA DE DECISÃO
A TOMADA DE DECISÃO SIMPLES – SE...ENTAO 50

 Estrutura de decisão se...entao


se a nota do aluno for maior ou igual a 7, entao:
exiba “Aprovado”

VERDADEIRO Exibe:
MÉDIA >= 7
“Aprovado”

FALSO

www.devmaster.club
A TOMADA DE DECISÃO SIMPLES – SE...ENTAO 51

 Estrutura de decisão se...entao


Condição a ser
testada.

Instrução a ser executada


caso a condição seja
satisfeita.
se (media >= 7) entao
escreva("Aprovado!")
fimse

Instrução que delimita


o escopo da estrutura.

VERDADEIRO Exibe:
MÉDIA >= 7 “Aprovado”

FALSO

www.devmaster.club
A TOMADA DE DECISÃO SIMPLES – EXEMPLO 52

algoritmo “Estrutura Condicional Simples"


var
nota1, nota2, media : real
inicio
escreva("Digite a 1ª nota: ")
leia(nota1)
escreva("Digite a 2ª nota: ")
leia(nota2)

media <- (nota1 + nota2) / 2

Estrutura escreval("A média é ", media:5:2)


condicional.
se (media >= 7) entao
escreval("Aprovado!")
fimse

fimalgoritmo

www.devmaster.club
A TOMADA DE DECISÃO COMPOSTA – SE...ENTAO...SENAO 53

 Estrutura de decisão se...entao...senao


se “a nota do aluno é maior que ou igual a 7”, entao:
exiba “Aprovado”
senão
exiba “Reprovado”

Exibe: FALSO VERDADEIRO Exibe:


“Reprovado” MÉDIA >= 7 “Aprovado”

www.devmaster.club
A TOMADA DE DECISÃO SIMPLES – SE...ENTAO 54

 Estrutura de decisão se...entao


Condição a ser Instrução a ser executada
testada. caso a condição não seja
satisfeita.

Instrução a ser executada


caso a condição seja
satisfeita.
se (media >= 7) entao
escreva("Aprovado!")
senao
escreva(“Reprovado!")
fimse

Instrução que delimita


o escopo da estrutura.
Exibe: FALSO VERDADEIRO Exibe:
MÉDIA >= 7
“Reprovado” “Aprovado”

www.devmaster.club
ESTRUTURA DE DECISÃO MÚLTIPLA – ESCOLHA...CASO 55

 Decisão Múltipla escolha...caso

V
<OPÇÃO 1> <INSTRUÇÃO 1>

F
V
<OPÇÃO 2> <INSTRUÇÃO 2>

F
V
<OPÇÃO N> <INSTRUÇÃO N>

www.devmaster.club
ESTRUTURA DE DECISÃO MÚLTIPLA – ESCOLHA...CASO 56

 Decisão Múltipla escolha...caso


escolha <expressão-de-seleção>
caso <exp11>, <exp12>, ..., <exp1n>
<seqüência-de-comandos-1>
caso <exp21>, <exp22>, ..., <exp2n>
<seqüência-de-comandos-2>
...
outrocaso
<seqüência-de-comandos-extra>
fimescolha

www.devmaster.club
L ÓGICA DE P ROGRAMAÇÃO

ESTRUTURAS DE REPETIÇÃO
ESTRUTURAS DE REPETIÇÃO | ENQUANTO...FACA 58

 enquanto...faca PASSO #1: Declare uma


variável “contadora” do
tipo inteiro.
INÍCIO
Portugol
Fluxograma
algoritmo "Enquanto"
var
contagem : inteiro PASSO #3:
“NÃO” Especifique a
Condição inicio condição.
contagem <- 1
PASSO #2: Inicialize
“SIM” a variável
contadora. enquanto (contagem <= 100) faca

Instruções executadas PASSO #4:


enquanto a condição é Incremente a contagem <- contagem + 1
verdadeira variável
contadora.
fimenquanto
fimalgoritmo

FIM

www.devmaster.club
ESTRUTURAS DE REPETIÇÃO | ENQUANTO...FACA 59

 Ex.: Contagem de 1 até 10


Inicialize a Teste lógico no início do loop.
variável contadora.

n <- 1

Especifique a
condição.
“NÃO”
n <= 10

“SIM”
Instrução a ser
executada 10 VEZES.
escreva(n)

n <- n + 1

Incremente a variável
contadora.

www.devmaster.club
ESTRUTURAS DE REPETIÇÃO | ENQUANTO...FACA 60

 Ex.: Contagem de 1 até 10


PASSO #1: Declaração da
algoritmo "Enquanto" variável de contagem.
var
n : inteiro PASSO #3: Enquanto a variável
PASSO #2: Como inicio contadora n for menor ou igual a 10, a
iremos contar de 1 n <- 1 instrução escreval(n) será executada.
até 10, a variável
de contagem deve ser
inicializada com 1. enquanto (n <= 10) faca
Instrução a ser
executada 10 VEZES.
escreval(n)
PASSO #4: Como a contagem
“pula” de 1 unidade, a n <- n + 1
variável deve ser fimenquanto
incrementada em +1.
fimalgoritmo

www.devmaster.club
ESTRUTURAS DE REPETIÇÃO | REPITA...ATE 61

 repita...ate PASSO #1: Declare uma


variável “contadora” do
INÍCIO tipo inteiro.
Fluxograma Portugol

algoritmo “Repita"
var
Instruções executadas contagem : inteiro
até que a condição seja inicio
verdadeira PASSO #2: Inicialize
contagem <- 1 a variável
contadora.

PASSO #3:
repita
Incremente a
variável
“NÃO”
contadora.
contagem <- contagem + 1
Condição
ate contagem > 100
fimalgoritmo
“SIM”
PASSO #4:
Especifique a
condição.

FIM

www.devmaster.club
ESTRUTURAS DE REPETIÇÃO | REPITA...ATE 62

 Ex.: Contagem de 1 até 10


Inicialize a
variável contadora.

n <- 1

Instrução a ser
executada 10 VEZES. escreva(n)

Incremente a variável n <- n + 1


contadora.

“NÃO”
n > 10
Especifique a
condição. “SIM”
Teste lógico no final do loop.
www.devmaster.club
ESTRUTURAS DE REPETIÇÃO | REPITA...ATE 63

 Ex.: Contagem de 1 até 10


PASSO #1: Declaração da
algoritmo “Repita" variável de contagem.
var
n : inteiro
PASSO #2: Como inicio
iremos contar de 1 n <- 1
até 10, a variável Instrução a ser
de contagem deve ser executada 10 VEZES.
inicializada com 1. repita

escreval(n)
PASSO #3: Como a contagem
“pula” de 1 unidade, a n <- n + 1 PASSO #4: Enquanto a variável
variável deve ser ate n > 10 contadora n for menor ou igual
incrementada em +1.
fimalgoritmo a 10, a instrução escreval(n)
será executada.

www.devmaster.club

Das könnte Ihnen auch gefallen