Escolar Documentos
Profissional Documentos
Cultura Documentos
Algortimos de Programação
Prof. Dr. Sofiane Labidi
Sofiane Labidi, PhD.
soflabidi@outlook.com
Wa. 098 9.8867-0046
@slabidi
2
Overview
▰ Conceitos ........................................................................................ 04
▰ Exemplos ......................................................................................... 14
▰ Fases de Desenvolvimento ................................................................. 23
▰ Formas de Representação .................................................................. 45
▰ Portugol .......................................................................................... 63
▻ Variáveis ............................................................................................. 71
▻ Atribuição de Valores ............................................................................ 79
▻ E/S ..................................................................................................... 81
▻ Expressões Aritméticas ........................................................................ 90
▻ Expressões Relacionais ........................................................................ 101 9
Overview
▻ Expressões Lógicas ............................................................................. 105
▻ Tomada de Decisão ............................................................................. 116
▻ Estruturas de Repetição ........................................................................ 126
▻ Programação Modular .......................................................................... 140
▻ Vetores e Matrizes .............................................................................. 181
▻ Registros ........................................................................................... 197
▻ Arquivos ............................................................................................ 206
▰ Projetos ........................................................................................ 212
▰ Conclusão ...................................................................................... 221
4
1
CONCEITOS
5
Conceitos
6
Definição
7
Sequência Lógica
8
Instrução
9
1º Exemplo
10
Algoritmo “Fritar Ovo”
▰ Instruções/Ações:
▻ “ligar fogão”
▻ “quebrar ovos”
▻ “pôr frigideira no fogo”
▻ “bater ovos”
▻ “pôr sal”
▻ “pôr óleo/manteiga na frigideira”
▻ “fritar ovos batidos”
11
Algoritmo “Fritar Ovo”
▰ Sequência Lógica:
12
Algoritmo “Fritar Ovo”
14
2
EXEMPLOS
15
Receita de Bolo
▰ A receita de um bolo
é um Algoritmo.
16
Receita de Bolo de Chocolate
Ingredientes Preparo
▰ 1 xícara (de chá) de óleo ▰ Coloque o óleo, leite, ovos, chocolate e açúcar no liquidificador.
▰ 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 mais ou menos 30 minutos (não abra
o forno nos primeiros 20 minutos).
▰ Depois que ele estiver crescido, enfie o palito, se ele sair limpo, está bom.
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
“Torre de Hanói”
20
“Trocar Pneu”
▰ Afrouxar as Porcas
▰ Levantar o Carro
▰ Retirar as Porcas
▰ Tirar o Pneu
▰ Colocar o Estepe
▰ Apertar as Porcas
▰ Abaixar o Carro
21
Algoritmos Não Computacionais
22
Raciocino Lógico Matemático
23
3
FASES DE DESV. DE ALGORITMOS
24
Problema?
25
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? É possível fazer uma
Problema
figura, um esquema ou um diagrama? É possível estimar a resposta?
2 Elaborar um Plano
Qual é o seu plano para resolver o problema? Que estratégia você tentará desenvolver? Você se
lembra de um problema semelhante que pode ajudá-lo a resolver este? Tente organizar os dados em
tabelas e gráficos. Tente resolver o problema por partes (dividir para conquistar)
3 Executar o Plano
Execute o plano elaborado, verificando-o passo a passo. Efetue todos os cálculos indicados no
plano. Execute 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? É
Verificação (feedback) possível usar o método empregado para resolver problemas semelhantes?
26
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?
ou 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?
28
Etapas Questões
29
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 oi 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.
31
Elaboração do Plano
33
Processamento de Dados
ENTRADA DE SAÍDA DE
PROCESSAMENT
RECURSOS DE PRODUTOS DE
DADOS O DE DADOS INFORMAÇÃO
34
IPO Chart
35
IPO Chart
36
Exemplo: Média Final de Aluno
37
Método de Desenvolvimento
38
Média Final de Aluno
39
Média Final de Aluno
PROCESSING OUTPUT
INPUT
• Processamento: • escreva(media)
• leia(P1,P2,P3)
ou media (P1+P2+P3)/3
leia(P1) se aproado=Verdadeiro entao
leia(P2) escreva(“Aluno Aprovado“)
se media >= 7 entao senao
leia(P3) aprovado Verdadeiro escreva(“Aluno Reprovado”)
senao fimse
aprovado Falso
fimse
40
Média Final de Aluno
Fahrenheit = (9/5)*(Celsius) + 32
42
Exercício 2
▰ Dando o peso e a altura de uma pessoa, verificar se ela está normal, com
sobrepeso ou obesa!
A definição da obesidade depende do IMC da pessoa (IMC=P/A²
kg/m²)
▻ IMC < 25,0 Normal
▻ 25,0 ≤ IMC ≤ 29,9 Sobrepeso
▻ 30,0 ≤ IMC ≤ 34,9 Obesidade Grau I
▻ 35,0 ≤ IMC ≤ 39,9 Obesidade Grau II
▻ IMC ≥ 40,0 Obesidade Grau III
43
Exercício 3
44
Exercício 4
45
4
FORMAS DE REPRESENTAÇÃO
46
FORMAS DE REPRESENTAÇÃO
47
Narrativa
48
Narrativa
▰ Desvantagens:
50
Fluxogramas
51
Símbolos
Decisão / Teste
52
Fluxo de Dados
Símbolos
Decisão / Teste
53
Fluxo de Dados
Início
N1, N2
Média
(N1+N2)/2
M>=7
“Aprovado” “Reprovado”
Fim
54
Diagrama de Chapin Nassi-Shneiderman
Início
Num, AbsNum : Inteiro
Leia(Num)
Num<0
Sim
Não
AbsNum Num * -1 AbsNum Num
Escreva(“Valor Absoluto: ”,AbsNum)
FimAlgoritmo
55
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/
56
LucidChart
57
Editores de Fluxogramas
LucidChart
58
Pseudocódigo
▰ Pseudocódigo
ou Português Estruturado.
59
Portugol
60
Pseudocódigo
M (N1 + N2)/2
escreva (“Média =“, M)
Fim.
61
Fluxograma Portugol
INICIO
FIM
LEIA()
ESCREVA()
Todas as Operações
SE
ENTAO
SENAO 62
FIMSE
VisualG
▰ http://www.inf.ufsc.br/~bosco.sobral/ensino/ine5201/Visualg2_
manual.pdf
▰ https://www.devmedia.com.br/introducao-ao-visualg/25748
63
5
PORTUGOL
64
Dica de Aprendizagem
65
Português Estruturado
▰ Pseudocódigo
▰ Portugol
▰ PseudoLinguagem
66
Estrutura de um Algoritmo
Algoritmo <nome_do_algoritmo>;
Var
<declaração_de_variáveis>;
Inicio
<corpo_do_algoritmo>;
Fim
67
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. 69
Comentários
▰ Exemplo:
// Input
leia(Nome)
71
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.
72
Variáveis
A 20 @1
▻ Nome
▻ Endereço C 5 @3
▻ Tipo
▻ Conteúdo (que pode variar, mas sem mudar de tipo)
73
Nome de uma Variável
▰ Nomes:
a
b1
nome_aluno
_Idade
inicio
c 3
75
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
79
Atribuições de Variáveis
▰ O símbolo de atribuição :
a 8
a8
ba b 89
bb+1
80
Atribuição de Variáveis
▰ A 10
▰ Nm ”Maria do Carmo”
81
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!”)
82
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,".") 83
Fimalgoritmo
Algoritmo SWAP
84
Algoritmo SWAP
▰ 1ª Solução: 87
a b 7
b a b
▰ 2ª Solução: 87
x a 7
8
a b b
b x
a
▰ 3ª Solução: 87
a a+b 7
8
b a-b b
a a-b
89
Algoritmo SWAP
Memória Processa-
(Espaço) mento
(Tempo)
90
Expressões Aritméticas
▰ Exemplo:
8 - -2 + 4 * 2 ^ 3 - 7
8 - (-2 + 4) * 2 ^ 3 - 7
91
Linearização das Expressões
5x³+7x²−4x−1 5*X^3+7*X^2-4*X-1
-6 [ 2
-6*(2/3-(5-3)+1)
= 𝑁 1+ 𝑁 2
𝑀 M (N1+N2)/2
2
92
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.
93
Operadores Aritméticos
Operação
() mais alta
- unário
^ Prioridade
* /
mais baixa
+ -
-6^2
36 -36
?
95
Expressões Aritméticas
96
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
97
Outros Operadores Aritméticos
Operação Símbolo
98
Operadores Aritméticos
Operação
() mais alta
-
^ Prioridade
* / div \ mod %
mais baixa
+ -
99
Expressões Aritméticas
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
100
Expressões Aritméticas Algoritmo “Avaliação"
Var
a,b,c,x,y,z,t:inteiro
xa+b*c x? 23 xa+b*c
ya−b∗c%3 y? 1 ya-b*c%3
z -5 + 3 * 8 \ 7
z -5 + 3 ∗ 8 \ 7 z ? -2 t5\3%2
t5\3%2 t? 1
escreval("x= ",x)
escreval("y= ",y)
escreval("z= ",z)
escreval("t= ",t)
101
Fimalgoritmo
Expressões Relacionais
103
Operadores Relacionais
Operação Símbolo
Igual a =
Diferente de <>
104
Expressões Relacionais
A8 B6
A=B Falso
A<>B Verdadeiro
A>B Verdadeiro
A>=B Verdadeiro
A<B Falso
A<=B Falso
105
Expressões Lógicas
106
Operadores Lógicos
▰ Operadores Lógicos:
E ( ^ ) Conjunção
OU ( v ) Disjunção
NÃO ( ! ) Negação
XOR () Disjunção Exclusiva / Ou Exclusivo
107
Expressões Lógicas
▰ Exemplos:
A <= B F
(A <> B) E (C=5) V
V
NÃO (A<=B) E (A-4=B) OU (A=7)
108
Expressões Lógicas
P Operador Q Resultado
V E V V
V E F F
F E V F
F E F F
109
Expressões Lógicas
P Operador Q Resultado
V OU V V
V OU F V
F OU V V
F OU F F
110
Expressões Lógicas
P Operador Q Resultado
V XOR V F
V XOR F V
F XOR V V
F XOR F F
111
Expressões Lógicas
P Operador Resultado
V N ÂO F
F N ÂO V
112
Expressões Lógicas
113
Avaliação em Curto-Circuito
114
Expressões Lógicas
escreval("C= ",c)
escreval("D= ",d)
Fimalgoritmo 116
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
118
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
119
Ninhos de SE se <condição1> entao
se <condição2> entao
bloco de comandos (condição2 Verdadeira);
fimse
▰ É possível colocar um senao
122
Escolha ... Caso
escreva("Categoria = ",categoria)
fimalgoritmo 123
Escolha ... Caso
Aalgoritmo "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
124
Escolha ... Caso
125
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 126
Estruturas de Repetição
127
Para ... Faca
para <variável de controle> de <valor inicial> ate <valor final> [passo <incremento>] faca
<lista de comandos>
fimpara
128
Para ... Faca
• Passo negativo
São equivalentes
131
Enquanto ... Faca
132
Enquanto ... Faca Algoritmo "Quadrado 1"
Var
numero:inteiro
Inicio
escreva("Digita um número : ")
leia(numero)
escreva("FIM DO PROGRAMA")
Fimalgoritmo 133
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
134
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 136
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.
138
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.
139
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].
140
Programação Modular
▰ Vantagens da Modularidade:
▻ Administrar a complexidade dos problemas
▻ Permitir a reutilização de módulos
▻ Eles reduzem o tamanho do algoritmo
▻ Facilitar os testes
▻ Facilitam a compreensão / legibilidade e visualização do
algoritmo.
142
Refinamento Sucessivo (Top-Down)
143
Subalgoritmos
144
Subalgoritmos
Var
// lista de declarações de variáveis
procedimento procedimento1(listadeargumentos)
Var declaraçãodasvariaveisdoprovcedimento
Inicio
// ...
FimProceidmento
Inicio
procedimento1(listadeargumento)
FimAlgoritmo
145
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
146
Procedimentos
▰ Exemplo:
procedimento linha(c:caractere;n:inteiro)
Var i:inteiro
inicio
para i de 1 ate n faca
escreva(c)
fimpara
escreval
fimprocedimento
147
Procedimentos
▰ Observação:
148
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
Fimalgoritmo
escreval
fimprocedimento
149
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
150
Subalgoritmos
P1
151
Procedimentos
152
Funções
...
inicio
var ← <nome_func>(var1, var2, ... , varN)
Fimalgoritmo 153
Funções
154
Predicados
▰ Exemplo:
155
Recursividade
156
Recursividade Vs. Iteração
Definição Iterativa:
▰ Exemplo:
Fatorial (n) = 1 x 2 x 3 x ... x n
▻ Fatorial Definição Recursiva:
157
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 qualqeur módulo pode usá-las.
▰ Variáveis Locais
São as variáveis declaradas dentro de um módulo (Procedimento ou função).
Elas são 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.
161
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 162
Variáveis Globais Vs. Locais
163
Passagem de Parâmetros
▰ Dois Tipos:
▻ Por Valor
▻ Por Referência
164
Passagem de Parâmetros
▰ Para fazer passagem por referência basta usar a palavra VAR que antecede a lista
dos parâmetros.
166
Passagem de Parâmetros
167
Passagem de Parâmetros
r x+y escreval
fimprocedimento escreval("A Soma é: ",res)
fimalgoritmo
168
Procedimentos e Funções Predefinidas
▰ Limpatela
169
Procedimentos e Funções Predefinidas
Função Descrição
Abs (valor : real) : real Valor absoluto
170
Procedimentos e Funções Predefinidas
Função Descrição
Cos (valor : real) : real Cosseno
171
Procedimentos e Funções Predefinidas
Função Descrição
Maiusc (c : caracter) : caracter Converte em Maiúscula
Minusc (c : caracter) : caracter Converte em Minúscula
Numpcarac (n : inteiro ou real) : Converte um numero inteiro
caracter ou real para caractere
Pi : real Valor Pi Pi
Pos (subc, c : caracter) : inteiro Retorna a posição do
caractere.
Quad (valor : real) : real Elevado quadrado
Radpgrau (valor : real) : real Converte Radiano para grau.
172
Procedimentos e Funções Predefinidas
Função Descrição
Raizq (valor : real) : real Raiz quadrada
Rand : real Gerador de números
aleatórios entre 0 e 1
Randi (limite : inteiro) : inteiro Gerador de números inteiros
aleatórios com um limite
determinado
Sen (valor : real) : real Seno
Tangente
Tan (valor : real) : real
173
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 Real é: ",vi)
Fimalgoritmo
175
▰ Dica:
▻ Pressionando (CTRL+J) o
Visualg mostra uma Lista de
funções predefinidas.
176
Procedimentos e Funções
177
Procedimentos e Funções
𝑃 ! ( 𝑀 − 𝑃) !
178
Procedimentos e Funções
179
Procedimentos e Funções
• AreaQuadrado • PerimetroQuadrado
• AreaRetangulo • PerimetroRetangulo
• AreaCirculo • PerimetroCirculo
• VolumeCubo
• VolumeParalelipedo
• VolumeCilindro
180
Procedimentos e Funções
181
Vetores e Matrizes
182
Vetores
183
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 184
Vetores
185
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“
Idasde[i] 20 186
Vetores
▰ Exemplos:
187
Vetores
▰ Exemplos:
188
Vetores
▰ Exemplos:
▰ 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$ 1000,00?
▻ Aumenta os preços dos produtos em 10%.
▻ Quais os produtos que precisamos de uma reposição de estoque
(estoque ≤ 10). 190
Matrizes
191
Matrizes
192
Matrizes
M[2,1] 25
193
Matrizes
▻ Preenche a matriz
▻ Encontra o maior valor da Matriz
▻ Multiplica a matiz A por 2
▻ Calcula o determinante de A.
194
Matrizes
195
Matrizes
196
Matrizes
197
Registros
198
Registros
Codigo : Inteiro
Titulo : Caractere
Autor : Caractere
Editora : Caractere
Genero : Caractere
Ano : Inteiro
Preco : Real
199
Registros
200
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
201
fimalgoritmo
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
202
Registros
inicio
204
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
205
Registros: Exercícios
206
Arquivos
207
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.
210
Arquivos
inicio
para i de 1 ate 7 faca
leia (ln)
fimpara
fimalgoritmo
211
Arquivos
▰ Exemplo:
212
6
PROJETOS
213
Projeto 1
▰ P1
▰ P2
▰ P3
214
7
VISUAL G
215
Auto Digitação
216
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 :
217
Auto Digitação
218
Auto Digitação
Ate
219
Auto Digitação
220
Comandos
▰ Execução Normal F9
221
8
CONCLUSÃO
222
Conclusão
225
RECURSOS
226
Recursos
▰ Instalar:
▻ VisualG
▻ TesteQI
▻ Kahoot
▻ Mentimiter 227
Recursos
228
Sala de Aula Virtual
229
Tecnologia Educacional
231