Escolar Documentos
Profissional Documentos
Cultura Documentos
Algortimos de Programação
Prof. Dr. Sofiane Labidi
Plataformas
5
Conceitos
6
Definição
7
Sequência Lógica
8
Instrução
9
1º Exemplo
10
Algoritmo “Fritar Ovo”
▰ Instruções/Ações:
▻ "Coloque uma frigideira no fogo."
▻ "Adicione um pouco de óleo ou manteiga."
▻ "Quebre o ovo na frigideira."
▻ "Deixe cozinhar até a clara ficar branca."
▻ "Tempere com sal e pimenta."
▻ "Retire o ovo da frigideira e está pronto para servir!"
▻ "Desligar o fogo."
11
Algoritmo “Fritar Ovo”
▰ Sequência Lógica:
12
Algoritmo “Fritar Ovo”
Algoritmo com mais detalhes
1. “Ligar o fogão”
2. “Pôr a frigideira no fogo”
3. “Pôr óleo/manteiga na frigideira”
4. “Esperar o óleo ficar quente”
5. “Quebrar ovos”
6. “Bater ovos”
7. “Pôr sal”
8. “Fritar ovos batidos”
9. “Retirar ovos batidos”
13
10. “Desligar o Fogão”
Definição Formal
14
2
EXEMPLOS
Algoritmos Não Computacionais
15
Receita de Bolo
16
Receita de Bolo de Chocolate
Preparo
Ingredientes
▰ Coloque o óleo, leite, ovos, chocolate e açúcar no liquidificador.
▰ 1 xícara (de chá) de óleo
▰ 1 xícara (de chá) de leite
▰ Bate bem até ficar misturado.
▰ 2 ovos ▰ Acrescente a farinha de trigo e bata novamente até misturar.
▰ 1 xícara (de chá) de chocolate em pó ▰ Acrescente o fermento e misture levemente, não precisa bater.
▰ 1 xícara (de chá) de açúcar ▰ Coloque a massa em uma forma untada e enfarinhada (forma com buraco
▰ 2 xícaras (de chá) de farinha de trigo no meio ou não).
▰ 1 colher (de sopa) de fermento ▰ Leve para assar em forno médio por 30 minutos (não abra o forno nos
primeiros 20 minutos).
▰ Depois que ele estiver crescido, enfie o palito, se ele sair limpo, está
pronto.
17
Exercícios
1. Molhar o Cabelo
2. Aplicar o Shampoo
3. Massagear
4. Enxaguar
5. Aplicar Máscara Hidratante
6. Massagear por mais tempo
7. Enxaguar
19
“Trocar Pneu”
▰ Afrouxar as Porcas
▰ Levantar o Carro
▰ Retirar as Porcas
▰ Tirar o Pneu
▰ Colocar o Estepe
▰ Apertar as Porcas
▰ Abaixar o Carro
20
“Torre de Hanói”
21
“Torre de Hanói”
1
▰ 1. Move o disco 1 para a haste C
▰ 2. Move o disco 2 para a haste B
▰ 3. Move o disco 1 para a haste B
▰ 4. Move o disco 3 para a haste C
▰ 5. Move o disco 1 para a haste A
▰ 6. Move o disco 2 para a haste C
▰ 7. Move o disco 1 para a haste C
22
Raciocino Lógico Matemático
23
▰ 1 1 36
38
Problema do Carteiro
▰ 1 2 18
21
▰ 1 3 12 João. “Qual é a idade dos meus 3 filhos
(soma=número da casa e multiplicação=36)?”
16 Carteiro. “Falta um dado”
▰ 1 4 9 João. ”A mais velha é loira!”
14 Carteiro. Descobriu o resultado.
▰ 1 6 6
13
▰ 2 2 9 Qual é a Idade dos 3 filhos de João?
13
▰ 2 3 6 24
11
Problema das Maçãs
Há 5 maçãs (3
Vermelhas e 2 Verdes).
C B A 3 maçãs são sorteadas e
colocadas na cabeça de
cada pessoa A, B e C.
Desafio:
Qual é cor da
mação de A ?
26
Problema dos 13 Pregos (Centro de Gravidade)
28
Problema dos 13 Pregos (Centro de Gravidade)
29
Observação
30
Conhecimento Vs. Criatividade
31
3
FASES DE DESV. DE UM
ALGORITMO
32
Problema?
33
Estratégia/Etapas para Resolução de
Problema?
1 Compreender o
O que se pede no problema? Quais são os dados e as condições do problema?
Problema
É possível representá-lo com uma figura, um esquema ou um diagrama? É possível estimar a
resposta?
2 Elaborar um Plano
Qual é o plano e a estratégia para resolver o problema? Há algum problema semelhante que pode
ajudar na resolução deste? É importante organizar os dados em tabelas e gráficos e tentar resolver o
problema por partes (dividir para conquistar).
3 Executar o Plano
Executar o plano elaborado, verificando o passo a passo, efetuando todos os cálculos indicados no
plano. Executar todas as estratégias pensadas, obtendo várias maneiras de resolver o mesmo
problema.
4
Fazer o Retrospecto Checar se a solução obtida está correta. Verificar se existe outra maneira de resolver o problema?
(feedback)/Verificaçã É possível usar o método empregado para resolver problemas semelhantes? 34
o
Etapas Questões
1 Compreender o 1.1 Qual a Incógnita?
1.2 Quais são os Dados?
Estratégia de Resolução
Problema
1.3 Qual é a Condicionante que relaciona a Incógnita com os Dados?
1.4 É possível satisfazer a Condicionante?
A Condicionante é suficiente para determinar a Incógnita?
2.3 Considere a Incógnita, não perca de vista o objetivo. Quais os meios para esse fim?
2.4 Utilizou todos os dados?
2.5 Utilizou toda Condicionante?
3 Executar o Plano 3.1 Verifique cada passo do Plano estabelecido.
36
Etapas Questões
37
Etapas Questões Respostas
2 Elaborar um 2.1 Já viu esse problema antes ou Sim
Plano conhece um correlato? Um problema correlato pode é o cálculo da média aritmética
simples, em que a soma de todos os fatores é dividida pelo
número de fatores da soma.
4 Feedback da 4.1 É possível verificar o resultado? Conferir os dados coletados (média 1º Bimestre, média 2º
Solução do Bimestre, média 3º bimestre, peso 1º Bimestre, peso 2º
problema Bimestre, peso 3º Bimestre) verificar o cálculo para média
ponderada. Conferir o cálculo efetuado.
39
Elaboração do Plano
40
Processamento de Dados
41
Processamento de Dados
ENTRADA DE SAÍDA DE
PROCESSAMENTO
RECURSOS DE PRODUTOS DE
DADOS DE DADOS INFORMAÇÃO
42
IPO Chart
43
IPO Chart
44
Exemplo: Média Final de Aluno
45
Método de Desenvolvimento
46
Média Final de Aluno
47
Média Final de Aluno
PROCESSING OUTPUT
INPUT
• Processamento: • escreva(media)
• leia(P1,P2,P3)
ou media (P1+P2+P3)/3 se aproado=Verdadeiro entao
leia(P1) escreva(“Aluno Aprovado“)
leia(P2) se media >= 7 entao senao
leia(P3) aprovado Verdadeiro escreva(“Aluno Reprovado”)
senao fimse
aprovado Falso
fimse
48
Média Final de Aluno
Fahrenheit = (9/5)*(Celsius) + 32
50
Exercício 2
▰ Dando o peso (massa) e a altura de uma pessoa, verificar se ela está magra,
normal, com sobrepeso ou obesa!
A definição da obesidade depende do IMC (Índice de Massa Corporal) da
pessoa (IMC=P/A² kg/m²)
53
4
FORMAS DE
REPRESENTAÇÃO
54
FORMAS DE REPRESENTAÇÃO
55
Narrativa
56
Narrativa
▰ Desvantagens:
▻ A linguagem natural é imprecisa (possibilita ambiguidades).
▻ Proporciona mais trabalho na codificação.
58
Fluxogramas
59
Símbolos
Operação de Atribuição
(Processamento/Cálculo)
Decisão / Teste
Fluxo de Dados 60
Início
N1, N2, N3
M
(N1+N2+N3)/3
sim não
M>=7
“Aprovado” “Reprovado”
Fim
61
Diagrama de Chapin Nassi-Shneiderman
Início
N, AbsN : Inteiro
Leia(N)
N<0
Sim
Não
AbsN N * -1 AbsN N
Escreva(“Valor Absoluto: ”,AbsN)
FimAlgoritmo
62
Editores de Fluxogramas
▰ 1. Lucidchart www.lucidchart.com
▰ 2. Draw.io https://www.draw.io/
▰ 3. Gliffy https://go.gliffy.com/go/html5/launch
▰ 4. Canva http://www.canva.com
https://www.techtudo.com.br/noticias/2018/08/cinco-programas-para-fazer-fluxograma.ghtml
https://www.fm2s.com.br/fluxograma/
63
LucidChart
64
Editores de Fluxogramas
LucidChart
65
Pseudocódigo
▰ Pseudocódigo
ou Português Estruturado.
66
Portugol
67
Pseudocódigo
M (N1 + N2)/2
escreva (“Média =“, M)
Fim.
68
Fluxograma Portugol
INICIO
FIM
LEIA()
ESCREVA()
Todas as Operações
SE
ENTAO
SENAO
FIMSE 69
VisualG
70
5
PORTUGOL
71
Dica de Aprendizagem
72
Português Estruturado
▰ Pseudocódigo
▰ Portugol
▰ PseudoLinguagem
73
Estrutura de um Algoritmo
Algoritmo <nome_do_algoritmo>;
Var
<declaração_de_variáveis>;
Inicio
<corpo_do_algoritmo>;
Fim
74
Estrutura de um Algoritmo
Algoritmo Soma
Var
N1, N2, S : Inteiro
Inicio
escreva (“Entre com o primeiro número: ”)
leia (N1)
escreva (“Entre com o segundo número: ”)
leia (N2)
S N1 + N2
escreva (“Soma =“, S)
Fim. 76
Comentários
▰ Exemplo:
// Input
leia(Nome)
78
Variáveis
A 20
chamadas de variáveis.
▰ Uma Variável representa uma posição na
C 5
memória, onde pode ser armazenado um
dado.
▰ Ela possui um nome e um valor;
▰ Durante a execução do algoritmo, a variável
pode ter seu valor alterado.
79
Variáveis
A 20 @1
@2
▰ Uma variável é caracterizada pelo: B 14
▻ Nome
▻ Endereço C 5 @3
▻ Tipo
▻ Conteúdo (que pode variar, mas sem mudar de tipo)
80
Nome de uma Variável
▰ Nomes:
a
b1
nome_aluno
_Idade
inicio
c 3
82
Palavras Reservadas
VAR
a,b,c : inteiro
c : real
d : logico
Var
Var a, b, c : inteiro
a : inteiro
b : inteiro // são equivalentes
c : inteiro
86
Atribuições de Valores
▰ O símbolo de atribuição :
a 8
a8
ba b 89
bb+1
87
Atribuição de Variáveis
▰ A 10
▰ Nm ”Maria do Carmo”
88
Entrada e Saída de Dados
▰ Entrada de Dados
Exp : leia (X)
leia (Nome,Idade)
▰ Saída de Dados
Exp :
escreva (X)
escreva (Nome, Idade)
escreva(”Boa Tarde!”)
89
Formatação das Saídas
Var
nome : caractere
peso : real
Inicio
escreva("Digita seu Nome : ")
leia(nome)
escreval
escreval("Seu nome é ",nome:18,".")
escreval("Seu Peso é ",peso:7:1,".") 90
Fimalgoritmo
Algoritmo SWAP
10
5
10
5
b
91
Algoritmo SWAP
▰ 1ª Solução: 10
5
a b 1 55
b a 2 b
▰ 2ª Solução: 85
10
x a 1 7
5
10
a b 2 b
b x 3
a
▰ 3ª Solução: 85
15
10
a a+b 1 7
5
10
b a-b 2 b
a a-b 3
Algoritmo "SWAP"
Var
▰ Esta é a solução mais genérica, a,b,x : real
pois se aplica para qualquer tipo Inicio
escreva("Entra com o valor de a: ")
de variáveis. leia (a)
escreva("Entra com o valor de b: ")
leia (b)
xa
ab
bx
escreva("a=",a," b=",b)
FimAlgoritmo
95
Algoritmo SWAP
96
Reflexão
Memória Processa-
(Espaço) mento
(Tempo)
97
Expressões Aritméticas
98
Expressões Aritméticas
▰ Exemplo:
8 - -2 + 4 * 2 ^ 3 - 7
8 - (-2 + 4) * 2 ^ 3 - 7
99
Operadores Aritméticos
Operação
() mais alta
- unário
^ Prioridade
* /
mais baixa
+ -
5+3*(3–1)–2^5/4–1
5+3*(3–1)–2^5/4–1
5+3*2–2^5/4–1
5 + 3 * 2 – 32 / 4 – 1
5 + 6 – 32 / 4 – 1
5+6–8–1
11 – 8 – 1
3–1
2
103
Linearização das Expressões
5*X^3+7*X^2-4*X-1
-6 [ 2
5x³+7x²−4x−1 -6*(2/3-(5-3)+1)
𝑁 1+ 𝑁 2
𝑀= M (N1+N2)/2
2
104
Operadores Aritméticos
Operação Símbolo
Adição +
Subtração [unário e binário] -
Multiplicação *
Divisão /
Exponenciação (Potência) ^
Para avaliar uma expressão é preciso conhecer a ordem de prioridade dos operadores.
105
Expressões Aritméticas
-6^2
36 -36
?
106
Expressões Aritméticas
107
Expressões Aritméticas
▰ Para testar a avaliação de uma expressão aritmética no
computador:
Algoritmo ”Avaliar_Expressão”
Var
x : real
Inicio
escreva(6 - 5 ^ 2)
// ou
/
x 6 -5 ^ 2
escreva(”X=”,x)
// ou
escreva(”A avaliação de 6-5^2 é: ”,6-5^2)
FimAlgoritmo
108
Outros Operadores Aritméticos
Operação Símbolo
109
Operadores Aritméticos
Operação
() mais alta
-
^ Prioridade
* / div \ mod %
mais baixa
+ -
110
Expressões Aritméticas Algoritmo “Avaliação“
Var
a,b,c,x,y,z,t:inteiro
▰ Suponham que a3; b4 e c5.
Inicio
▰ Avalia as seguintes expressões: a3
b4
c5
xa+b*c x?
ya−b∗c%3 23 xa+b*c
y? 1
ya-b*c%3
z -5 + 3 * 8 \ 7
z -5 + 3 ∗ 8 \ 7 z ? -2 t5\3%2
1
t5\3%2 t? escreval("x= ",x)
escreval("y= ",y)
escreval("z= ",z)
escreval("t= ",t)
Fimalgoritmo 111
Expressões Relacionais
113
Operadores Relacionais
Operação Símbolo
Igual a =
Diferente de <>
114
Expressões Relacionais
A8 B 6
A=B Falso
A<>B Verdadeiro
A>B Verdadeiro
A>=B Verdadeiro
A<B Falso
A<=B Falso
A-2 <= B Verdadeiro
A-2 >= B Verdadeiro
A-2 > B Falso
115
Expressões Lógicas
116
Operadores Lógicos
▰ Operadores Lógicos:
E ( ^ ) Conjunção
OU ( v ) Disjunção
NÃO ( ! ) Negação
XOR () Disjunção Exclusiva / Ou Exclusivo
117
Expressões Lógicas
▰ Exemplos:
LEIS DE MORGAN
A10 B6 C5
NOT (A AND B) = NOT (A) OR NOT (B)
NOT (A OR B) = NOT (A) AND R NOT (B)
A <= B F
(A <> B) E (C=5) V
118
Expressões Lógicas
P Operador Q Resultado
V E V V
V E F F
F E V F
F E F F
119
Expressões Lógicas
P Operador Q Resultado
V OU V V
V OU F V
F OU V V
F OU F F
120
Expressões Lógicas
P Operador Q Resultado
V XOR V F
V XOR F V
F XOR V V
F XOR F F
121
Expressões Lógicas
P Operador Resultado
V NÂO F
F NÂO V
122
Expressões Lógicas
123
Avaliação em Curto-Circuito
124
Expressões Lógicas
D B = 4 FALSO CB>A
D B=3
escreval("C= ",c)
escreval("D= ",d)
Fimalgoritmo 126
Tomada de Decisão
se <condição> entao
bloco de comandos (caso a condição é Verdadeira)
senao
bloco de comandos (caso a condição é Falsa)
fimse
▰ Exemplo
Leia(N)
se N>=0 entao
escreva(N," é um Número Positivo.")
senao
escreva(N," é um Número Negativo.")
fimse
128
Tomada de Decisão
Leia(N)
se Dinheiro >= 10 entao
se N%3=0 entao
Ir_ao_Cinema Verdadeiro
escreva(N," é Múltiplo de 3.")
fimse
fimse
129
Ninhos de SE se <condição1> entao
se <condição2> entao
bloco de comandos (condição2 Verdadeira);
fimse
▰ É possível colocar um senao
132
Escolha ... Caso
escreva("Categoria = ",categoria)
fimalgoritmo 133
Escolha ... Caso
Algoritmo "Times"
var time: caractere
inicio
escreva ("Entre com o nome de um time de futebol: ")
leia (time)
escolha time
caso "Flamengo", "Fluminense", "Vasco", "Botafogo"
escreval ("É um time carioca.")
caso "São Paulo", "Palmeiras", "Santos", "Corinthians"
escreval ("É um time paulista.")
outrocaso
escreval ("É de outro estado.")
fimescolha
fimalgoritmo
134
Escolha ... Caso
135
Algoritmo "Horario!"
Escolha ... Caso Var
h : inteiro
Inicio
escreval("Informa a hora: ")
leia(h)
escreval
escolha h
caso 0,1,2,3,4,5
escreval("Boa Madrugada!")
caso 6,7,8,9,10,11
escreval("Bom Dia!")
caso 12,13,14,15,16,17
escreval("Boa Tarde!")
outrocaso
escreva("Boa Noite!")
fimescolha
Fimalgoritmo 136
Estruturas de Repetição
137
Para ... Faca
para <variável de controle> de <valor inicial> ate <valor final> [passo <incremento>] faca
<lista de comandos>
fimpara
138
Para ... Faca
• Passo negativo
São equivalentes
141
Enquanto ... Faca
142
Enquanto ... Faca Algoritmo "Quadrado 1"
Var
numero:inteiro
Inicio
escreva("Digita um número : ")
leia(numero)
escreva("FIM DO PROGRAMA")
Fimalgoritmo
143
Enquanto ... Faca
Var
n,i:inteiro
Inicio
escreva("Digita um número : ")
leia(n)
i1
enquanto i<=n faca
escreval(i,". Boa tarde!")
i i+1
fimenquanto
escreva("FIM DO PROGRAMA")
Fimalgoritmo
144
Repita ... Ate
repita
<lista de comandos>
Var
numero : inteiro
Inicio
repita
escreva("Digita um número : ")
leia(numero)
escreval("O quadrado de ",numero," é: ",numero^2)
escreval
ate numero = 0
escreva("FIM DO PROGRAMA")
Fimalgoritmo 146
Repita ... Ate
1. Faça o algoritmo que mostra na tela todos os números pares até 21.
2. Faça o algoritmo que mostra na tela todos os números pares de 3 até 49.
3. Faça o algoritmo que mostra na tela todos os números pares no intervalo [a,b].
4. Faça o algoritmo que mostra na tela todos os números impares no intervalo [a,b].
5. Faça o algoritmo que calcula a divisão inteira n\p sem usar o operador \.
6. Faça o algoritmo que retorna o fatorial de um inteiro n (de duas formas diferentes).
7. Faça o algoritmo que mostra a série de Fibonacci até n.
148
Estruturas de Repetição
8. Elabore um algoritmo que vai ler n números fornecidos pelo usuário e que vai retornar
o menor número deles (Considere que o número zero indica o fim da entrada de dados).
9. Faça um algoritmo que, sem utilizar o operador de Exponenciação, realize a operação
XY, para qualquer X e Y fornecido pelo usuário.
10. Reescreva o algoritmo acima, utilizando as demais estruturas de repetição.
149
Estruturas de Repetição
13. Faça o Algoritmo que retorna a lista dos números primos até 100.
14. Faça o Algoritmo que retorna a lista dos números perfeitos ate 10000.
15. Faça o Algoritmo que retorna a lista dos números primos em um intervalo [a,b].
16. Faça o Algoritmo que retorna a lista dos números perfeitos em um intervalo [a,b].
150
Programação Modular
▰ Vantagens da Modularidade:
▻ Administrar a complexidade dos problemas
▻ Permitir a reutilização de módulos
▻ Reduzir o tamanho do algoritmo
▻ Facilitar os testes
▻ Facilitar a compreensão / legibilidade e visualização do
algoritmo.
152
Refinamento Sucessivo (Top-Down)
153
Subalgoritmos
154
Subalgoritmos
Var
// lista de declarações de variáveis
procedimento procedimento1(listadeargumentos)
Var declaraçãodasvariaveisdoprocedimento
Inicio
// ...
FimProceidmento
Inicio
procedimento1(listadeargumento)
FimAlgoritmo
155
Procedimentos
...
procedimento <nome_proc>(arg1:tipo, arg2:tipo, ... , argN:tipo)
<declaração de variáveis/constantes locais>
inicio
<bloco de comandos>
fimprocedimento
inicio
<nome_proc>(var1, var2, ... , varN) // Parâmetros
fimalgoritmo
156
Procedimentos
▰ Exemplo:
procedimento linha(c:caractere;n:inteiro)
Var i:inteiro
inicio
para i de 1 ate n faca
escreva(c)
fimpara
escreval
fimprocedimento
157
Procedimentos
▰ Observação:
158
Procedimentos
Algoritmo "Procedimentos"
Var // Bloco Principal
tam : inteiro
car : caractere Inicio
escreva("Entra com o caractere: ")
procedimento linha(c:caractere;n:inteiro) leia(car)
var i:inteiro
inicio escreva("Entra com o tamanho da linha: ")
para i de 1 ate n faca leia(tam)
escreva(c)
fimpara linha(car,tam) // chamada do Procedimento
escreval Fimalgoritmo
fimprocedimento
159
Procedimentos
// Bloco Principal
Algoritmo "Procedimentos"
Inicio
Var escreva("Entra com o caractere: ")
tam : inteiro leia(car)
car : caractere
escreva("Entra com o tamanho da linha: ")
procedimento linha(c:caractere;n:inteiro) leia(tam)
var i:inteiro para i de 1 ate tam faca
inicio linha(car,i) // chamada do procedimento
para i de 1 ate n faca fimpara
escreva(c)
fimpara para i de tam ate 1 passo -1 faca
linha(car,i) // outra chamada do procedimento
escreval fimpara
fimprocedimento Fimalgoritmo
160
Subalgoritmos
P1
161
Procedimentos
162
Funções
...
inicio
var ← <nome_func>(var1, var2, ... , varN)
Fimalgoritmo 163
Funções
164
Predicados
▰ Exemplo:
165
Recursividade
166
Recursividade Vs. Iteração
▰ Exemplo:
Definição Recursiva:
167
Recursividade
Algoritmo "Fatorial!"
Var
i,n,fat : Inteiro
Inicio
escreva("Entra com o valor de n: ")
leia(n)
// Versão Iterativa
fat 1
para i de 1 ate n faca
fat fat * i
fimpara
▰ Variáveis Globais.
São as variáveis declaradas na parte inicial do algoritmo (VAR). Elas têm
validade (”enxergadas”) em todo algoritmo i.e. qualquer módulo pode usá-las.
▰ Variáveis Locais
São as variáveis declaradas dentro de um módulo (Procedimento ou função).
Elas têm validade (“enxergadas”) apenas dentro daquele bloco.
▰ Dentro de um bloco, se tiver algum conflito (uma variável local tendo o
mesmo nome que uma variável global), a variável local tem prioridade.
171
Variáveis Globais Vs. Locais
procedimento p
var a:inteiro // Variável Local
inicio
a8
escreva(a)
fimprocedimento
inicio
a 10
p
escreva(a)
fimalgoritmo 172
Variáveis Globais Vs. Locais
173
Passagem de Parâmetros
174
Passagem de Parâmetros
176
Passagem de Parâmetros
177
Passagem de Parâmetros
r x+y escreval
fimprocedimento escreval("A Soma é: ",res)
fimalgoritmo
178
Procedimentos e Funções Predefinidas
▰ Limpatela
179
Procedimentos e Funções Predefinidas
Função Descrição
Abs (valor : real) : real Valor absoluto
180
Procedimentos e Funções Predefinidas
Função Descrição
Cos (valor : real) : real Cosseno
181
Procedimentos e Funções Predefinidas
Função Descrição
Maiusc (c : caracter) : caracter Converte em Maiúscula
182
Procedimentos e Funções Predefinidas
Função Descrição
Raizq (valor : real) : real Raiz quadrada
Tangente
Tan (valor : real) : real
183
Algoritmo "Caracteres!"
Procedimentos e Funções Predefinidas
Var
nome, sobrenome : Caractere
quant_caracteres, local_espaco : Inteiro
Inicio
escreva("Informa o nome: ")
leia(nome)
escreval
Algoritmo "Caracteres!"
Var
vi : Inteiro
vr : Real
Inicio
escreva("Informa um número Real: ")
leia(vr)
escreval
vi int (vr)
escreval("O valor em Inteiro é: ",vi)
Fimalgoritmo
185
▰ Dica:
▻ Pressionando (CTRL+J) o
Visualg mostra uma Lista de
funções predefinidas.
186
Procedimentos e Funções
187
Procedimentos e Funções
188
Procedimentos e Funções
189
Procedimentos e Funções
• AreaQuadrado • PerimetroQuadrado
• AreaRetangulo • PerimetroRetangulo
• AreaCirculo • PerimetroCirculo
• VolumeCubo
• VolumeParalelipedo
• VolumeCilindro
190
Procedimentos e Funções
191
Vetores e Matrizes
192
Vetores
193
Vetores
▰ Exemplo:
NOME : VETOR [1..20] DE CARACTERE
IDADE : VETOR [1..20] DE INTEIRO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Nome
Idade 194
Vetores
195
Vetores
▰ Exemplos:
nome[1] "Andrea"
idade[1] 22
nome[2] "Carlos"
idade[2] 32
nome[3] “Lucas”
idade[3] idade[1]+2
i4
nome[i] “Marina“
Idade[i] 20 196
Vetores
▰ Exemplos:
197
Vetores
▰ Exemplos:
198
Vetores
▰ Exemplos:
199
Vetores
▰ Exercício:
▻ Faça o algoritmo que cadastra nomes, preços e estoques de 10
produtos de uma loja.
▻ Calcula a média dos preços.
▻ Encontra o produto mais caro.
▻ Quantos produtos custam mais de R$ 1.000,00?
▻ Aumenta os preços dos produtos em 10%.
▻ Quais os produtos que precisamos de uma reposição de estoque
(estoque ≤ 10). 200
Matrizes
201
Matrizes
▰ Exemplo:
M[2,1] 25
203
Matrizes
▻ Preenche a matriz
▻ Encontra o maior valor da Matriz
▻ Multiplica a matiz A por 2
▻ Calcula o determinante de A.
204
Matrizes
205
Matrizes
206
Matrizes
207
Registros
208
Registros
209
Registros
Codigo : Inteiro
Titulo : Caractere
Autor : Caractere
Editora : Caractere
Genero : Caractere
Ano : Inteiro
Preco : Real
210
Registros
211
Registros: Declaração
algoritmo "Livros"
tipo
Livro = Registro
código : inteiro
titulo : caractere
autor : caractere
editora : caractere
gênero : caractere
preco : real
fimregistro
var
l1,l2 : livro // declaração de 2 livros l1 e l2
inicio
... 212
Registros: Acesso
L1.Codigo 120
L1.Titulo “The Singularity is Near”
L1.Autor “Ray Kurzweil”
L1.Genero “Ficção Científica”
L1.Editora “Penguin Group” L2.Codigo 125
L1.Ano 2005 L2.Titulo “Iniciação à Lógica Matemática”
L1.Preco 65,50 L2.Autor “Alencar Filho, Edgard”
L2.Genero “Computação”
L2.Editora “Nobel”
L2.Ano 2002
L2.Preco 45,00
213
Registros
inicio
215
fimalgoritmo
Registros: Leitura
para i de 1 ate n faca
algoritmo "Livros" escreva("Código: ")
leia(livros[i].codigo)
tipo
Livro = Registro escreva("Título: ")
codigo : inteiro leia(livros[i].titulo)
titulo : caractere escreva("Autor: ")
autor : caractere leia(livros[i].autor)
genero : caractere
ano : inteiro escreva("Genero: ")
preco : real leia(livros[i].genero)
fimregistro escreva("Ano: ")
var leia(livros[i].ano)
livros : vetor [1..50] de livro
i,n:inteiro escreva("Preço: ")
leia(livros[i].preco)
inicio escreval
escreva("Quantos Livros para cadastrar: ") fimpara
leia(n) fimalgoritmo
216
Registros: Exercícios
217
Arquivos
218
Arquivos
▰ Declaração / Criação:
Arquivo <nome-do-arquivo>
▰ Se o arquivo não existe, o VisuAlg cria o arquivo e faz uma leitura de dados por
meio da digitação (Teclado), armazenando os dados lidos neste arquivo, na ordem
em que forem lidos.
▰ Se o arquivo existe, o VisuAlg obterá os dados deste arquivo até chegar ao seu fim.
Daí em diante, fará as leituras de dados por meio da digitação.
221
Arquivos
inicio
para i de 1 ate 7 faca
leia (ln)
fimpara
fimalgoritmo
222
Arquivos
▰ Exemplo:
223
6
PROJETOS
224
Projeto 1
▰ P1
▰ P2
▰ P3
225
7
VISUAL G
226
Auto Digitação
227
Auto Digitação
Abreviação Ctrl - Esqueleto do Comando
Comando / Palavra- Espaço
Chave
algoritmo "semnome"
! var
inicio
Fimalgoritmo
// Disciplina : [Linguagem e Lógica de programa çao]
# // Professor(a):
// Descrição : Aqui você descreve o que o programa faz!
(função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual :
228
Auto Digitação
229
Auto Digitação
Ate
230
Auto Digitação
231
Comandos
▰ Execução Normal F9
232
8
CONCLUSÃO
233
Conclusão
235
OBRIGADO !
Sofiane Labidi
098 9.8860-6410
soflabidi@outlook.com
@slabidi
236
RECURSOS
237
Recursos
▰ Tools
▻ Google Classroom
▻ VisualG
(Google Sala de Aula)
▻ Python
▻ Kahoot
▻ Pseudocode (Mobile)
▻ Mentimiter
▻ TesteQI
▻ Google Meet
▻ Google Forms
238
Recursos
239
Sala de Aula Virtual
flqewiv
240
https://classroom.google.com/c/NjE5OTQwNDk0MjMz?cjc=
Tecnologia Educacional
242
Tecnologia Educacional