SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
VisuALG #1 – Introdução
VisuALG
O VisuALG (Visualizador de algoritmo), criado pelo professor Cláudio Morgado de Souza, é um
programa que edita, interpreta e executa algoritmos escritos em pseudocódigo (Portugol), como um
programa normal de computador. É um programa de livre uso e distribuição, empregado no ensino
de programação em várias escolas e universidades no Brasil e no exterior.
Instalação
O VisuALG é um programa simples, que não depende de DLLs, OCXs ou outros componentes. Sua
instalação não copia arquivos para nenhuma outra pasta a não ser aquela em que for instalado, e
toma em torno de 1 MB de espaço em disco. A instalação é muito simples, basta executar o
instalador e acionar os botões Avançar. Ao inciar o software, vemos uma tela com o esqueleto de
um algoritmo já criado, cuja intenção é, além de poupar trabalho ao usuário, mostrar o formato
básico de algoritmo que deve ser utilizado, bem como a forma dos comentários, conforme a
imagem abaixo:
A tela principal do VisuALG
1. Barra de menus;
2. Barra de ferramentas;
3. Barra de execução de algoritmo;
4. Editor de texto;
5. Visualizador de variáveis;
6. Simulador de saída;
7. Barra de status.
Olá mundo! Hello World!
O “Olá Mundo” ou “Alô Mundo” é um famoso programa de computador que imprime “Olá
Mundo!” ou “Hello World!”, no dispositivo de saída. É utilizado como um teste ou como um
exemplo de código minimalista de uma linguagem de programação. Dito isto, vamos escrever nosso
“Olá mundo” em Portugol, no VisuALG.
Insira o código abaixo no editor de texto do VisuALG, em seguida pressione a tecla F9 do seu
teclado. A tecla F9 inicia, ou continua, a execução automática do algoritmo.
1
2
3
4
5
6
7
8
9
10
11
12
13
algoritmo "Olá mundo"
// Função: Olá mundo
// Autor: Andrey Smith
// Data: 01/05/2014
// Seção de Declarações
var
inicio
// Seção de Comandos
escreva ("Olá mundo!")
fimalgoritmo
Este deve ser o resultado.
Conclusão
Programar utilizando o VisuALG é simples e fácil. Por utilizar uma linguagem em nosso idioma,
ele torna-se um grande facilitador para iniciantes em programação.
Até o próximo!
:wq!
Andrey Smith
https://andreysmith.wordpress.com/2014/05/01/visualg-1-introducao/
VisuALG #2 – Algoritmo
Algoritmo
É uma forma estruturada de resolver problemas numa sequência lógica, passo a passo até obter o
resultado desejado. Todo tipo de problema que temos no dia a dia, resolvemos através de
algoritmos, que muitas vezes não são nem percebidos como tal.
Abaixo temos um exemplo de algoritmo para realizar uma chamada telefônica em um telefone
público:
1
2
3
4
5
6
7
8
9
10
11
12
13
Tirar o telefone do gancho;
Ouvir o sinal de linha;
Inserir o cartão no telefone público;
Teclar o número desejado;
Se chamar e alguém atender...
* Conversar;
* Desligar;
* Retirar o cartão;
Senão...
* Desligar;
* Voltar ao início.
De forma bem simples, para facilitar o entendimento, algoritmo é uma receita.
Abaixo temos um exemplo de receita:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Picanha assada no forno
Receita da Tia Nastácia
Ingredientes
01 picanha;
02 tabletes de caldo de carne;
250 gramas de margarina;
02 colheres (sopa) de molho inglês;
01 cebola grande ralada;
Sal, alho e pimenta.
Modo de preparo
Tempere a picanha com alho socado, sal e pimenta e deixe tomar
gosto por 02 horas;
Coloque a picanha em uma assadeira, com a parte da gordura para
baixo;
Espalhe o molho inglês misturado com o caldo de carne, margarina
e cebola ralada;
Cubra com papel alumínio e asse em forno quente por 20 minutos;
Retire o papel, vire a parte da gorda para cima e asse por mais
25 minutos;
Retire e sirva com arroz branco, vinagrete e aipim cozido.
Nos dois exemplos vistos, foi necessário seguir uma sequência ordenada de passos para se obter o
resultado desejado. A receita acima está dividida em duas partes: ingredientes e modo de preparo.
Vamos dividir nossa receita-algoritmo em três partes: Cabeçalho, sessão de declarações e sessão de
comandos.
No cabeçalho encontramos informações gerais, como data, autor, contato do autor, comentários e
etc.
A sessão de declarações pode ser comparada com os ingredientes da receita. A sessão de comandos
pode ser comparada com o modo de preparo da receita.
Comentário
É utilizado para adicionar informações afim de: facilitar o entendimento de quem ler o algortimo,
adicionar observações sobre o funcionamento do programa, etc. É importante frisar que os
comentários não são executados pelo programa, ou seja, no momento da execução do programa os
comentários são ignorados.
No VisuALG, um comentário inicia com //.
Exemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
algoritmo "Olá mundo!"
// Isso é um comentário!
// Função: Demonstrar como é fácil utilizar o VisuALG!
// Autor: Andrey Smith
// Data: 01/05/2014
// Seção de Declarações
var
inicio
// Seção de Comandos
escreva ("Olá mundo!")
fimalgoritmo
Resultado do algoritmo:
Declaração
Consiste na definição dos nomes e valores das constantes e dos nomes e tipos das variáveis que
serão utilizadas pelos algoritmos, incluindo comentário, quando se fizerem necessários.
A declaração deve estar no início do algoritmo, antes das constantes e variáveis serem de fato
utilizadas no algoritmo.
Constante
As contantes são dados estáticos, o seu conteúdo pode ser acessado a qualquer momento. O
conteúdo de uma constante será atribuído no momento de sua criação e não poderá ser mais
alterado.
A atribuição de valores é feita com o operador. Exemplos: pi, polegada.
1
2
3
4
5
6
7
8
9
pi <- 3.14159265359
polegada <- 2.54
+-----------+------------+--------------+
| Constante | Atribuição | Conteúdo |
+-----------+------------+--------------+
|pi | <- |3.14159265359 |
|polegada | <- |2.54 |
+-----------+------------+--------------+
Variável
As variáveis armazenam dados em caráter temporário e tem conteúdo dinâmico, ou seja, podem ser
acessadas ou alteradas a qualquer momento.
Exemplos: Em um algoritmo que recebe um determinado raio, para calcular a área do círculo,
teremos duas variáveis: raio e área.
1
2
3
4
5
6
7
8
9
raio: real
area: real
+----------+------+
| Variável | Tipo |
|----------+------+
|raio | real |
|area | real |
+----------+------+
Tipos de dados
Em computação, existem os seguintes tipos básicos de dados, também conhecidos como tipos
primitivos: Numéricos (inteiro e real), caractere e lógico
Inteiro – Representa valores inteiros, ou seja, SEM CASAS DECIMAIS. Exemplos: 10, 5, -5, -10.
1
2
3
4
5
6
7
8
9
idade: inteiro
temperatura: inteiro
+------------+---------+
| Variável | Tipo |
|------------+---------+
|idade | inteiro |
|temperatura | inteiro |
|------------+---------+
Real – Representa valores reais, ou seja, COM CASAS DECIMAIS.
Exemplos: 10.555, 15.5, -14.67, -1000.000.
Obs.: Em nossos algoritmos vamos assumir que o separador decimal sempre será o . (ponto) e não
a, (vírgula). E nunca vamos inserir o separador do milhar. Exemplo: 1500 em vez de 1.500.
1
2
3
4
5
6
7
8
9
altura: real
peso: real
+--------+----+
|Variável|Tipo|
|--------+----+
|altura |real|
|peso |real|
+--------+----+
Caractere – Representa uma seqüência de um ou mais caracteres.
Exemplos: “O resultado da soma é: “, “B”, “1234”, “Seleção Brasileira”.
Obs.: Os caracteres devem estar sempre entre ” ” (aspas duplas)
1
2
3
4
5
6
7
8
9
nome: caractere
endereço: caractere
+--------+---------+
|Variável| Tipo |
|--------+---------+
|nome |caractere|
|endereço|real |
+--------+---------+
Lógico – Representa valores lógicos, os quais possuem apenas 2 estados: Verdadeiro e falso.
Abaixo temo um exemplo de algoritmo que, solicita o raio de um círculo para então calcular sua
área:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
algoritmo "Área do círculo"
// Função: Área do círculo
// Autor: Andrey Smith
// Data: 02/05/2014
// Seção de Declarações
var
raio, area: real // Estes são exemplos de variáveis.
inicio
pi <- 3.14159265359 // Este é um exemplo de constante.
// Seção de Comandos
escreva ("Informe o raio do círculo: ")
leia (raio)
area <- pi * raio ^ 2
escreval ("A área do círculo é: ", area)
fimalgoritmo
Resultado do algoritmo:
Conclusão
Algoritmo é a lógica de um programa computacional, ou seja, são as instruções que o homem
fornece ao computador para que determinadas tarefas sejam executadas. Portanto, se um programa
não está funcionando corretamente, não culpe o computador. = )
Até o próximo!
:wq!
Andrey Smith
https://andreysmith.wordpress.com/2014/05/02/visualg-2-algoritmo/
VisuALG #3 – Operadores
Introdução
Para falarmos sobre operadores, precisamos primeiramente entender o funcionamento das
expressões aritméticas no ambiente computacional.
Linearização de Expressões
Para a construção de algoritmos que realizam cálculo matemáticos, todas as expressões aritméticas
devem ser linearizadas, ou seja, colocadas em linhas, devendo também ser feito o mapeamento dos
operadores da aritmética tradicional para os do Português Estruturado.
Operadores Aritméticos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
algoritmo "Operadores Aritméticos"
// Função: Operadores Aritméticos
// Autor: Andrey Smith
// Data: 03/05/2014
// Seção de Declarações
var
numero1, numero2: inteiro
resultado: real
inicio
// Seção de Comandos
numero1 <- 14
numero2 <- 4
resultado <- numero1 + numero2
escreval (numero1, " +", numero2, " =", resultado)
escreval ("")
resultado <- numero1 - numero2
escreval (numero1, " -", numero2, " =", resultado)
escreval ("")
resultado <- numero1 * numero2
escreval (numero1, " *", numero2, " =", resultado)
escreval ("")
resultado <- numero1 / numero2
escreval (numero1, " /", numero2, " =", resultado)
escreval ("")
resultado <- numero1  numero2
escreval (numero1, " DIV", numero2, " =", resultado)
escreval ("")
resultado <- numero1 % numero2
escreval (numero1, " MOD", numero2, " =", resultado)
escreval ("")
resultado <- numero1 ^ numero2
escreval (numero1, " EXP", numero2, " =", resultado)
fimalgoritmo
Resultado do algoritmo:
Precedência entre operadores aritméticos
1
2
3
4
5
6
7
8
+------------+--------------------------------------------+
| Prioridade | Operadores |
+------------+--------------------------------------------+
|1º | Parênteses internos |
|2º | ^ (Potenciação) e raiz (Quando disponível) |
|3º | * / div e mod |
|4º | + e - |
+------------+--------------------------------------------+
Os casos abaixo exemplificam a importância da precedência entre operadores aritméticos.
1º CASO: (2+2)/2=2
Solução (Certo)
1º. Resolvemos o que está entre parênteses (2+2), e encontramos 4 como resultado;
2º. Resolvemos a divisão 4/2, e encontramos 2 como resultado.
2º CASO: 2+2/2=3
Solução 01 (Certo)
1º. Resolvemos a divisão 2/2, e encontramos 1 como resultado;
2º. Resolvemos a adição 2+1, e encontramos 3 como resultado.
Solução 02 (Errado)
1º. Resolvemos a adição 2+2, e encontramos 4 como resultado;
2º. Resolvemos a divisão 4/2, e encontramos 2 como resultado.
Operadores Relacionais
Os operadores relacionais realizam a comparação entre dois operandos ou duas expressões, e
resultam em valores lógicos (VERDADEIRO ou FALSO).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
algoritmo "Operadores relacionais"
// Função: Operadores relacionais
// Autor: Andrey Smith
// Data: 03/05/2014
// Seção de Declarações
var
numero1, numero2: inteiro
resultado: logico
inicio
// Seção de Comandos
numero1 <- 14
numero2 <- 4
resultado <- numero1 > numero2
escreval (numero1, " > ", numero2, " ?", resultado)
resultado <- numero1 < numero2
escreval (numero1, " < ", numero2, " ?", resultado)
resultado <- numero1 >= numero2
escreval (numero1, " >=", numero2, " ?", resultado)
resultado <- numero1 <= numero2
escreval (numero1, " <=", numero2, " ?", resultado)
resultado <- numero1 = numero2
escreval (numero1, " = ", numero2, " ?", resultado)
resultado <- numero1 <> numero2
escreval (numero1, " <>", numero2, " ?", resultado)
fimalgoritmo
Resultado do algoritmo:
Operadores lógicos
Os operadores lógicos atuam sobre expressões e também resultam em valores lógicos
VERDADEIRO ou FALSO.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
algoritmo "Operadores lógicos - E, OU, NÃO"
// Função: Operadores lógicos - E, OU, NÃO
// Autor: Andrey Smith
// Data: 03/05/2014
// Seção de Declarações
var
numero1, numero2: inteiro
resultado: logico
inicio
// Seção de Comandos
numero1 <- 14
numero2 <- 4
escreval ("Testando o operador lógico E:")
resultado <- (numero1 > numero2) e (numero1 > numero2)
escreval (numero1, " >", numero2, " E",numero1, " >", numero2, "
=", resultado)
escreval ("Duas proposições VERDADEIRAS!")
escreval("")
escreval ("Testando o operador lógico OU:")
resultado <- (numero1 < numero2) ou (numero1 < numero2)
escreval (numero1, " <", numero2, " OU",numero1, " <", numero2, "
=", resultado)
escreval ("Duas proposições FALSAS!")
escreval("")
escreval ("Testando o operador lógico NÃO:")
resultado <- nao (numero1 > numero2)
escreval (numero1, " >", numero2, " =", resultado)
escreval ("O que é VERDADEIRO se torna FALSO!")
escreval("")
escreval ("Testando o operador lógico NÃO:")
resultado <- nao (numero1 < numero2)
escreval (numero1, " <", numero2, " =", resultado)
escreval ("O que é FALSO se torna VERDADEIRO!")
escreval("")
fimalgoritmo
Resultado do algoritmo:
Tabela verdade
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
algoritmo "Operadores lógicos - Tabela verdade"
// Função: Operadores lógicos - Tabela verdade
// Autor: Andrey Smith
// Data: 03/05/2014
// Seção de Declarações
var
numero1, numero2: inteiro
resultado: logico
inicio
// Seção de Comandos
numero1 <- 14
numero2 <- 4
escreval ("Testando o operador lógico E:")
resultado <- (numero1 > numero2) e (numero1 > numero2)
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
escreval (numero1, " >", numero2, " E",numero1, " >", numero2, "
=", resultado)
resultado <- (numero1 > numero2) e (numero1 < numero2)
escreval (numero1, " >", numero2, " E",numero1, " <", numero2, "
=", resultado)
resultado <- (numero1 < numero2) e (numero1 > numero2)
escreval (numero1, " <", numero2, " E",numero1, " >", numero2, "
=", resultado)
resultado <- (numero1 < numero2) e (numero1 < numero2)
escreval (numero1, " <", numero2, " E",numero1, " <", numero2, "
=", resultado)
escreval("")
escreval("")
escreval ("Testando o operador lógico OU:")
resultado <- (numero1 > numero2) ou (numero1 > numero2)
escreval (numero1, " >", numero2, " OU",numero1, " >", numero2, "
=", resultado)
resultado <- (numero1 > numero2) ou (numero1 < numero2)
escreval (numero1, " >", numero2, " OU",numero1, " <", numero2, "
=", resultado)
resultado <- (numero1 < numero2) ou (numero1 > numero2)
escreval (numero1, " <", numero2, " OU",numero1, " >", numero2, "
=", resultado)
resultado <- (numero1 < numero2) ou (numero1 < numero2)
escreval (numero1, " <", numero2, " OU",numero1, " <", numero2, "
=", resultado)
escreval("")
escreval("")
escreval ("Testando o operador lógico NÃO para A (Primeira
prosição):")
resultado <- nao (numero1 > numero2)
escreval (resultado)
resultado <- nao (numero1 > numero2)
escreval (resultado)
resultado <- nao (numero1 < numero2)
escreval (resultado)
resultado <- nao (numero1 < numero2)
escreval (resultado)
escreval("")
escreval("")
escreval ("Testando o operador lógico NÃO para B (Segunda
prosição):")
resultado <- nao (numero1 > numero2)
escreval (resultado)
resultado <- nao (numero1 < numero2)
escreval (resultado)
resultado <- nao (numero1 > numero2)
escreval (resultado)
resultado <- nao (numero1 < numero2)
escreval (resultado)
fimalgoritmo
Resultado do algoritmo:
Conclusão
Operadores são indispensáveis em nossos programas, mas para que possamos criar algoritmos
eficientes, precisamos atentar às particularidades dos operadores, bem como à ordem de
precedência de cada um.
Até o próximo!
:wq!
Andrey Smith
https://andreysmith.wordpress.com/2014/05/03/visualg-3-operadores/
VisuALG #4 – Desvio condicional simples (SE… ENTÃO…
FIMSE)
SE… ENTÃO… FIMSE
O desvio condicional simples tem por finalidade executar uma ou mais instruções SE uma
CONDIÇÃO for VERDADEIRA, ou seja, SE uma CONDIÇÃO for SATISFEITA. Uma
CONDIÇÃO é uma comparação que possui dois valores possíveis: VERDADEIRO ou FALSO.
Ao encontrar este comando, o VisuALG analisa a CONDIÇÃO, SE o seu resultado for
VERDADEIRO, todos os comandos da SEQUÊNCIA DE COMANDOS são executados. SE o
resultado for FALSO, os comandos da SEQUÊNCIA DE COMANDOS são desprezados e a
execução do algoritmo continua a partir da primeira linha depois do comando FIMSE.
Sintaxe:
1
2
3
4
5
se <condição> entao
<sequência de comandos>
fimse
Para facilitar o entendimento, vamos pensar na seguinte situação:
1
2
3
4
5
se <sua esposa pegar seu cartão de crédito> entao
<compras, compras, compras, compras...>
fimse
Entendeu? Vamos ao exemplo!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
algoritmo "Desvio condicional simples"
// Função: Demonstrar a utilização do desvio condicional simples.
// Autor: Andrey Smith
// Data: 17/05/2014
// Seção de Declarações
var
nome: caractere
nota1, nota2, media: real
inicio
// Seção de Comandos
escreva ("Informe o nome do aluno: ")
leia (nome)
escreva ("Informe a nota da P1: ")
leia (nota1)
escreva ("Informe a nota da P2: ")
leia (nota2)
media <- (nota1 + nota2) / 2
se ( media >= 7) entao
escreval ("A média do aluno ", nome, " é:", media)
fimse
escreval ("O aluno ", nome, " precisa comparecer na coordenação
do curso.")
fimalgoritmo
Resultado do algoritmo com a CONDIÇÃO VERDADEIRA:
Resultado do algoritmo com a CONDIÇÃO FALSA:
Observe que, como dito anteriormente, pelo fato do resultado ser FALSO, a SEQUÊNCIA DE
COMANDOS foi desprezada e a execução do algoritmo continuo a partir da primeira linha depois
do fimse.
Conclusão
Nunca deixe sua esposa (Noiva, namorada, filha, etc) pegar seu cartão de crédito, pois esta é uma
CONDIÇÃO que, SE SATISFEITA, pode trazer alguns problemas. =)
Até o próximo!
:wq!
Andrey Smith
https://andreysmith.wordpress.com/2014/05/18/visualg-4-desvio-condicional-simples-se-entao/
VisuALG #5 – Desvio condicional composto (SE… ENTÃO…
SENÃO… FIMSE)
SE… ENTÃO… SENÃO… FIMSE
O desvio condicional composto (SE… ENTÃO… SENÃO… FIMSE) funciona exatamente como
o desvio condicional simples (SE… ENTÃO… FIMSE), com apenas uma diferença. No desvio
condicional simples, somente podemos executar comandos SE a CONDIÇÃO for
VERDADEIRA.
No desvio condicional composto, os comandos sempre serão executados independente da
CONDIÇÃO, ou seja, SE a CONDIÇÃO for VERDADEIRA os COMANDOS DA
CONDIÇÃO VERDADEIRA serão executados, SENÃO (SE a CONDIÇÃO for FALSA) os
COMANDOS DA CONDIÇÃO FALSA serão executados.
Sintaxe:
1
2
3
4
5
6
7
8
9
se <condição> entao
<comandos da condição verdadeira>
senao
<comandos da condição falsa>
fimse
Para facilitar o entendimento, vamos pensar naquela situação do cartão de crédito que vimos no post
anterior:
1
2
3
4
5
6
7
8
9
se <sua esposa pegar seu cartão de crédito> entao
<compras, compras, compras, compras...>
senao
<fica na vontade>
fimse
Entendeu né? Vamos ao exemplo!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
algoritmo "Desvio condicional composto"
// Função: Demonstrar a utilização do desvio condicional
composto.
// Autor: Andrey Smith
// Data: 18/05/2014
// Seção de Declarações
var
nome: caractere
nota1, nota2, media: real
inicio
// Seção de Comandos
escreva ("Informe o nome do aluno: ")
leia (nome)
escreva ("Informe a nota da P1: ")
leia (nota1)
escreva ("Informe a nota da P2: ")
leia (nota2)
media <- (nota1 + nota2) / 2
se ( media >= 7) entao
escreval ("A média do aluno ", nome, " é:", media)
senao
escreval ("O aluno ", nome, " não alcançou a média.")
fimse
fimalgoritmo
Resultado do algoritmo com a CONDIÇÃO VERDADEIRA:
Resultado do algoritmo com a CONDIÇÃO FALSA:
Conclusão
O desvio de concional composto amplia as possibilidades do desvio condicional simples que vimos
no post anterior. No próximo post veremos desvio condicional encadeado (SE… ENTÃO…
SENÃO… SE… ENTÃO… SENÃO) que ampliara ainda mais nosso poder de fogo nos
algoritmos. =)
Até o próximo!
:wq!
Andrey Smith
https://andreysmith.wordpress.com/2014/05/18/visualg-5-desvio-condicional-composto-se-entao-senao-fimse/

Mais conteúdo relacionado

Mais procurados

Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmosAdilio Tavares
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Arquitetura e Manutenção de Computadores
Arquitetura e Manutenção de ComputadoresArquitetura e Manutenção de Computadores
Arquitetura e Manutenção de ComputadoresEmanoel Lopes
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileCloves da Rocha
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Pacc UAB
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisAbnel Junior
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Os principios do game design
Os principios do game designOs principios do game design
Os principios do game designAryel Bargas
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Leinylson Fontinele
 
Periféricos - Curso de Informática
Periféricos - Curso de InformáticaPeriféricos - Curso de Informática
Periféricos - Curso de InformáticaLeandro Martins
 
Programming Fundamentals lecture 2
Programming Fundamentals lecture 2Programming Fundamentals lecture 2
Programming Fundamentals lecture 2REHAN IJAZ
 

Mais procurados (20)

Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmos
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
Arquitetura e Manutenção de Computadores
Arquitetura e Manutenção de ComputadoresArquitetura e Manutenção de Computadores
Arquitetura e Manutenção de Computadores
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao Mobile
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Os principios do game design
Os principios do game designOs principios do game design
Os principios do game design
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
 
Periféricos - Curso de Informática
Periféricos - Curso de InformáticaPeriféricos - Curso de Informática
Periféricos - Curso de Informática
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Programming Fundamentals lecture 2
Programming Fundamentals lecture 2Programming Fundamentals lecture 2
Programming Fundamentals lecture 2
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 

Semelhante a Visualg primeira interação

Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxaronoliveira3
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptINFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptPatricaNascimento1
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfssuser059c2c1
 
Lógica de Programção - Módulo 1 - algoritmos-introdução
Lógica de Programção - Módulo 1 - algoritmos-introduçãoLógica de Programção - Módulo 1 - algoritmos-introdução
Lógica de Programção - Módulo 1 - algoritmos-introduçãoProfessor-David Remigio
 
Apostila sobre controlador lógico programável avançado
Apostila sobre controlador lógico programável avançadoApostila sobre controlador lógico programável avançado
Apostila sobre controlador lógico programável avançadoClaudio Arkan
 
Lógica parte 1 - Introdução
Lógica   parte 1 - IntroduçãoLógica   parte 1 - Introdução
Lógica parte 1 - IntroduçãoWallison Parreira
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Alex Camargo
 
Linguagem visualg2.0
Linguagem visualg2.0Linguagem visualg2.0
Linguagem visualg2.0Lucas Emanuel
 
PROJETO MODELO editado.docx
PROJETO MODELO editado.docxPROJETO MODELO editado.docx
PROJETO MODELO editado.docxDiedisonRamos1
 

Semelhante a Visualg primeira interação (20)

PDF.pdf
PDF.pdfPDF.pdf
PDF.pdf
 
Excel VBA: Aula 2
Excel VBA: Aula 2Excel VBA: Aula 2
Excel VBA: Aula 2
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptINFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
 
Algoritmos com java script
Algoritmos com java scriptAlgoritmos com java script
Algoritmos com java script
 
Apostila Visualg
Apostila VisualgApostila Visualg
Apostila Visualg
 
Apostila s7
Apostila s7Apostila s7
Apostila s7
 
Lógica de Programção - Módulo 1 - algoritmos-introdução
Lógica de Programção - Módulo 1 - algoritmos-introduçãoLógica de Programção - Módulo 1 - algoritmos-introdução
Lógica de Programção - Módulo 1 - algoritmos-introdução
 
Apostila sobre controlador lógico programável avançado
Apostila sobre controlador lógico programável avançadoApostila sobre controlador lógico programável avançado
Apostila sobre controlador lógico programável avançado
 
Lógica parte 1 - Introdução
Lógica   parte 1 - IntroduçãoLógica   parte 1 - Introdução
Lógica parte 1 - Introdução
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Visu alg ref (2)
Visu alg ref (2)Visu alg ref (2)
Visu alg ref (2)
 
Linguagem visualg2.0
Linguagem visualg2.0Linguagem visualg2.0
Linguagem visualg2.0
 
PROJETO MODELO editado.docx
PROJETO MODELO editado.docxPROJETO MODELO editado.docx
PROJETO MODELO editado.docx
 

Visualg primeira interação

  • 1. VisuALG #1 – Introdução VisuALG O VisuALG (Visualizador de algoritmo), criado pelo professor Cláudio Morgado de Souza, é um programa que edita, interpreta e executa algoritmos escritos em pseudocódigo (Portugol), como um programa normal de computador. É um programa de livre uso e distribuição, empregado no ensino de programação em várias escolas e universidades no Brasil e no exterior. Instalação O VisuALG é um programa simples, que não depende de DLLs, OCXs ou outros componentes. Sua instalação não copia arquivos para nenhuma outra pasta a não ser aquela em que for instalado, e toma em torno de 1 MB de espaço em disco. A instalação é muito simples, basta executar o instalador e acionar os botões Avançar. Ao inciar o software, vemos uma tela com o esqueleto de um algoritmo já criado, cuja intenção é, além de poupar trabalho ao usuário, mostrar o formato básico de algoritmo que deve ser utilizado, bem como a forma dos comentários, conforme a imagem abaixo:
  • 2. A tela principal do VisuALG 1. Barra de menus; 2. Barra de ferramentas; 3. Barra de execução de algoritmo; 4. Editor de texto; 5. Visualizador de variáveis; 6. Simulador de saída; 7. Barra de status. Olá mundo! Hello World! O “Olá Mundo” ou “Alô Mundo” é um famoso programa de computador que imprime “Olá Mundo!” ou “Hello World!”, no dispositivo de saída. É utilizado como um teste ou como um exemplo de código minimalista de uma linguagem de programação. Dito isto, vamos escrever nosso “Olá mundo” em Portugol, no VisuALG. Insira o código abaixo no editor de texto do VisuALG, em seguida pressione a tecla F9 do seu teclado. A tecla F9 inicia, ou continua, a execução automática do algoritmo.
  • 3. 1 2 3 4 5 6 7 8 9 10 11 12 13 algoritmo "Olá mundo" // Função: Olá mundo // Autor: Andrey Smith // Data: 01/05/2014 // Seção de Declarações var inicio // Seção de Comandos escreva ("Olá mundo!") fimalgoritmo Este deve ser o resultado. Conclusão Programar utilizando o VisuALG é simples e fácil. Por utilizar uma linguagem em nosso idioma, ele torna-se um grande facilitador para iniciantes em programação. Até o próximo! :wq! Andrey Smith https://andreysmith.wordpress.com/2014/05/01/visualg-1-introducao/
  • 4. VisuALG #2 – Algoritmo Algoritmo É uma forma estruturada de resolver problemas numa sequência lógica, passo a passo até obter o resultado desejado. Todo tipo de problema que temos no dia a dia, resolvemos através de algoritmos, que muitas vezes não são nem percebidos como tal. Abaixo temos um exemplo de algoritmo para realizar uma chamada telefônica em um telefone público: 1 2 3 4 5 6 7 8 9 10 11 12 13 Tirar o telefone do gancho; Ouvir o sinal de linha; Inserir o cartão no telefone público; Teclar o número desejado; Se chamar e alguém atender... * Conversar; * Desligar; * Retirar o cartão; Senão... * Desligar; * Voltar ao início. De forma bem simples, para facilitar o entendimento, algoritmo é uma receita. Abaixo temos um exemplo de receita: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Picanha assada no forno Receita da Tia Nastácia Ingredientes 01 picanha; 02 tabletes de caldo de carne; 250 gramas de margarina; 02 colheres (sopa) de molho inglês; 01 cebola grande ralada; Sal, alho e pimenta. Modo de preparo Tempere a picanha com alho socado, sal e pimenta e deixe tomar gosto por 02 horas; Coloque a picanha em uma assadeira, com a parte da gordura para baixo; Espalhe o molho inglês misturado com o caldo de carne, margarina e cebola ralada;
  • 5. Cubra com papel alumínio e asse em forno quente por 20 minutos; Retire o papel, vire a parte da gorda para cima e asse por mais 25 minutos; Retire e sirva com arroz branco, vinagrete e aipim cozido. Nos dois exemplos vistos, foi necessário seguir uma sequência ordenada de passos para se obter o resultado desejado. A receita acima está dividida em duas partes: ingredientes e modo de preparo. Vamos dividir nossa receita-algoritmo em três partes: Cabeçalho, sessão de declarações e sessão de comandos. No cabeçalho encontramos informações gerais, como data, autor, contato do autor, comentários e etc. A sessão de declarações pode ser comparada com os ingredientes da receita. A sessão de comandos pode ser comparada com o modo de preparo da receita. Comentário É utilizado para adicionar informações afim de: facilitar o entendimento de quem ler o algortimo, adicionar observações sobre o funcionamento do programa, etc. É importante frisar que os comentários não são executados pelo programa, ou seja, no momento da execução do programa os comentários são ignorados. No VisuALG, um comentário inicia com //. Exemplo: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 algoritmo "Olá mundo!" // Isso é um comentário! // Função: Demonstrar como é fácil utilizar o VisuALG! // Autor: Andrey Smith // Data: 01/05/2014 // Seção de Declarações var inicio // Seção de Comandos escreva ("Olá mundo!") fimalgoritmo Resultado do algoritmo:
  • 6. Declaração Consiste na definição dos nomes e valores das constantes e dos nomes e tipos das variáveis que serão utilizadas pelos algoritmos, incluindo comentário, quando se fizerem necessários. A declaração deve estar no início do algoritmo, antes das constantes e variáveis serem de fato utilizadas no algoritmo. Constante As contantes são dados estáticos, o seu conteúdo pode ser acessado a qualquer momento. O conteúdo de uma constante será atribuído no momento de sua criação e não poderá ser mais alterado. A atribuição de valores é feita com o operador. Exemplos: pi, polegada. 1 2 3 4 5 6 7 8 9 pi <- 3.14159265359 polegada <- 2.54 +-----------+------------+--------------+ | Constante | Atribuição | Conteúdo | +-----------+------------+--------------+ |pi | <- |3.14159265359 | |polegada | <- |2.54 | +-----------+------------+--------------+ Variável As variáveis armazenam dados em caráter temporário e tem conteúdo dinâmico, ou seja, podem ser acessadas ou alteradas a qualquer momento.
  • 7. Exemplos: Em um algoritmo que recebe um determinado raio, para calcular a área do círculo, teremos duas variáveis: raio e área. 1 2 3 4 5 6 7 8 9 raio: real area: real +----------+------+ | Variável | Tipo | |----------+------+ |raio | real | |area | real | +----------+------+ Tipos de dados Em computação, existem os seguintes tipos básicos de dados, também conhecidos como tipos primitivos: Numéricos (inteiro e real), caractere e lógico Inteiro – Representa valores inteiros, ou seja, SEM CASAS DECIMAIS. Exemplos: 10, 5, -5, -10. 1 2 3 4 5 6 7 8 9 idade: inteiro temperatura: inteiro +------------+---------+ | Variável | Tipo | |------------+---------+ |idade | inteiro | |temperatura | inteiro | |------------+---------+ Real – Representa valores reais, ou seja, COM CASAS DECIMAIS. Exemplos: 10.555, 15.5, -14.67, -1000.000. Obs.: Em nossos algoritmos vamos assumir que o separador decimal sempre será o . (ponto) e não a, (vírgula). E nunca vamos inserir o separador do milhar. Exemplo: 1500 em vez de 1.500. 1 2 3 4 5 6 7 8 9 altura: real peso: real +--------+----+ |Variável|Tipo| |--------+----+ |altura |real| |peso |real| +--------+----+ Caractere – Representa uma seqüência de um ou mais caracteres.
  • 8. Exemplos: “O resultado da soma é: “, “B”, “1234”, “Seleção Brasileira”. Obs.: Os caracteres devem estar sempre entre ” ” (aspas duplas) 1 2 3 4 5 6 7 8 9 nome: caractere endereço: caractere +--------+---------+ |Variável| Tipo | |--------+---------+ |nome |caractere| |endereço|real | +--------+---------+ Lógico – Representa valores lógicos, os quais possuem apenas 2 estados: Verdadeiro e falso. Abaixo temo um exemplo de algoritmo que, solicita o raio de um círculo para então calcular sua área: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 algoritmo "Área do círculo" // Função: Área do círculo // Autor: Andrey Smith // Data: 02/05/2014 // Seção de Declarações var raio, area: real // Estes são exemplos de variáveis. inicio pi <- 3.14159265359 // Este é um exemplo de constante. // Seção de Comandos escreva ("Informe o raio do círculo: ") leia (raio) area <- pi * raio ^ 2 escreval ("A área do círculo é: ", area) fimalgoritmo Resultado do algoritmo:
  • 9. Conclusão Algoritmo é a lógica de um programa computacional, ou seja, são as instruções que o homem fornece ao computador para que determinadas tarefas sejam executadas. Portanto, se um programa não está funcionando corretamente, não culpe o computador. = ) Até o próximo! :wq! Andrey Smith https://andreysmith.wordpress.com/2014/05/02/visualg-2-algoritmo/
  • 10. VisuALG #3 – Operadores Introdução Para falarmos sobre operadores, precisamos primeiramente entender o funcionamento das expressões aritméticas no ambiente computacional. Linearização de Expressões Para a construção de algoritmos que realizam cálculo matemáticos, todas as expressões aritméticas devem ser linearizadas, ou seja, colocadas em linhas, devendo também ser feito o mapeamento dos operadores da aritmética tradicional para os do Português Estruturado. Operadores Aritméticos
  • 11. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 algoritmo "Operadores Aritméticos" // Função: Operadores Aritméticos // Autor: Andrey Smith // Data: 03/05/2014 // Seção de Declarações var numero1, numero2: inteiro resultado: real inicio // Seção de Comandos numero1 <- 14 numero2 <- 4 resultado <- numero1 + numero2 escreval (numero1, " +", numero2, " =", resultado) escreval ("") resultado <- numero1 - numero2 escreval (numero1, " -", numero2, " =", resultado) escreval ("") resultado <- numero1 * numero2 escreval (numero1, " *", numero2, " =", resultado) escreval ("") resultado <- numero1 / numero2 escreval (numero1, " /", numero2, " =", resultado) escreval ("") resultado <- numero1 numero2 escreval (numero1, " DIV", numero2, " =", resultado) escreval ("") resultado <- numero1 % numero2 escreval (numero1, " MOD", numero2, " =", resultado) escreval ("") resultado <- numero1 ^ numero2 escreval (numero1, " EXP", numero2, " =", resultado) fimalgoritmo Resultado do algoritmo:
  • 12. Precedência entre operadores aritméticos 1 2 3 4 5 6 7 8 +------------+--------------------------------------------+ | Prioridade | Operadores | +------------+--------------------------------------------+ |1º | Parênteses internos | |2º | ^ (Potenciação) e raiz (Quando disponível) | |3º | * / div e mod | |4º | + e - | +------------+--------------------------------------------+ Os casos abaixo exemplificam a importância da precedência entre operadores aritméticos. 1º CASO: (2+2)/2=2 Solução (Certo) 1º. Resolvemos o que está entre parênteses (2+2), e encontramos 4 como resultado; 2º. Resolvemos a divisão 4/2, e encontramos 2 como resultado. 2º CASO: 2+2/2=3 Solução 01 (Certo) 1º. Resolvemos a divisão 2/2, e encontramos 1 como resultado; 2º. Resolvemos a adição 2+1, e encontramos 3 como resultado. Solução 02 (Errado) 1º. Resolvemos a adição 2+2, e encontramos 4 como resultado; 2º. Resolvemos a divisão 4/2, e encontramos 2 como resultado.
  • 13. Operadores Relacionais Os operadores relacionais realizam a comparação entre dois operandos ou duas expressões, e resultam em valores lógicos (VERDADEIRO ou FALSO). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 algoritmo "Operadores relacionais" // Função: Operadores relacionais // Autor: Andrey Smith // Data: 03/05/2014 // Seção de Declarações var numero1, numero2: inteiro resultado: logico inicio // Seção de Comandos numero1 <- 14 numero2 <- 4 resultado <- numero1 > numero2 escreval (numero1, " > ", numero2, " ?", resultado) resultado <- numero1 < numero2 escreval (numero1, " < ", numero2, " ?", resultado) resultado <- numero1 >= numero2 escreval (numero1, " >=", numero2, " ?", resultado) resultado <- numero1 <= numero2 escreval (numero1, " <=", numero2, " ?", resultado) resultado <- numero1 = numero2 escreval (numero1, " = ", numero2, " ?", resultado) resultado <- numero1 <> numero2 escreval (numero1, " <>", numero2, " ?", resultado) fimalgoritmo Resultado do algoritmo:
  • 14. Operadores lógicos Os operadores lógicos atuam sobre expressões e também resultam em valores lógicos VERDADEIRO ou FALSO.
  • 15. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 algoritmo "Operadores lógicos - E, OU, NÃO" // Função: Operadores lógicos - E, OU, NÃO // Autor: Andrey Smith // Data: 03/05/2014 // Seção de Declarações var numero1, numero2: inteiro resultado: logico inicio // Seção de Comandos numero1 <- 14 numero2 <- 4 escreval ("Testando o operador lógico E:") resultado <- (numero1 > numero2) e (numero1 > numero2) escreval (numero1, " >", numero2, " E",numero1, " >", numero2, " =", resultado) escreval ("Duas proposições VERDADEIRAS!") escreval("") escreval ("Testando o operador lógico OU:") resultado <- (numero1 < numero2) ou (numero1 < numero2) escreval (numero1, " <", numero2, " OU",numero1, " <", numero2, " =", resultado) escreval ("Duas proposições FALSAS!") escreval("") escreval ("Testando o operador lógico NÃO:") resultado <- nao (numero1 > numero2) escreval (numero1, " >", numero2, " =", resultado) escreval ("O que é VERDADEIRO se torna FALSO!") escreval("") escreval ("Testando o operador lógico NÃO:") resultado <- nao (numero1 < numero2) escreval (numero1, " <", numero2, " =", resultado) escreval ("O que é FALSO se torna VERDADEIRO!") escreval("") fimalgoritmo Resultado do algoritmo:
  • 16. Tabela verdade 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 algoritmo "Operadores lógicos - Tabela verdade" // Função: Operadores lógicos - Tabela verdade // Autor: Andrey Smith // Data: 03/05/2014 // Seção de Declarações var numero1, numero2: inteiro resultado: logico inicio // Seção de Comandos numero1 <- 14 numero2 <- 4 escreval ("Testando o operador lógico E:") resultado <- (numero1 > numero2) e (numero1 > numero2)
  • 17. 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 escreval (numero1, " >", numero2, " E",numero1, " >", numero2, " =", resultado) resultado <- (numero1 > numero2) e (numero1 < numero2) escreval (numero1, " >", numero2, " E",numero1, " <", numero2, " =", resultado) resultado <- (numero1 < numero2) e (numero1 > numero2) escreval (numero1, " <", numero2, " E",numero1, " >", numero2, " =", resultado) resultado <- (numero1 < numero2) e (numero1 < numero2) escreval (numero1, " <", numero2, " E",numero1, " <", numero2, " =", resultado) escreval("") escreval("") escreval ("Testando o operador lógico OU:") resultado <- (numero1 > numero2) ou (numero1 > numero2) escreval (numero1, " >", numero2, " OU",numero1, " >", numero2, " =", resultado) resultado <- (numero1 > numero2) ou (numero1 < numero2) escreval (numero1, " >", numero2, " OU",numero1, " <", numero2, " =", resultado) resultado <- (numero1 < numero2) ou (numero1 > numero2) escreval (numero1, " <", numero2, " OU",numero1, " >", numero2, " =", resultado) resultado <- (numero1 < numero2) ou (numero1 < numero2) escreval (numero1, " <", numero2, " OU",numero1, " <", numero2, " =", resultado) escreval("") escreval("") escreval ("Testando o operador lógico NÃO para A (Primeira prosição):") resultado <- nao (numero1 > numero2) escreval (resultado) resultado <- nao (numero1 > numero2) escreval (resultado) resultado <- nao (numero1 < numero2) escreval (resultado) resultado <- nao (numero1 < numero2) escreval (resultado) escreval("") escreval("") escreval ("Testando o operador lógico NÃO para B (Segunda prosição):") resultado <- nao (numero1 > numero2) escreval (resultado) resultado <- nao (numero1 < numero2) escreval (resultado) resultado <- nao (numero1 > numero2)
  • 18. escreval (resultado) resultado <- nao (numero1 < numero2) escreval (resultado) fimalgoritmo Resultado do algoritmo: Conclusão Operadores são indispensáveis em nossos programas, mas para que possamos criar algoritmos eficientes, precisamos atentar às particularidades dos operadores, bem como à ordem de precedência de cada um. Até o próximo! :wq! Andrey Smith https://andreysmith.wordpress.com/2014/05/03/visualg-3-operadores/
  • 19. VisuALG #4 – Desvio condicional simples (SE… ENTÃO… FIMSE) SE… ENTÃO… FIMSE O desvio condicional simples tem por finalidade executar uma ou mais instruções SE uma CONDIÇÃO for VERDADEIRA, ou seja, SE uma CONDIÇÃO for SATISFEITA. Uma CONDIÇÃO é uma comparação que possui dois valores possíveis: VERDADEIRO ou FALSO. Ao encontrar este comando, o VisuALG analisa a CONDIÇÃO, SE o seu resultado for VERDADEIRO, todos os comandos da SEQUÊNCIA DE COMANDOS são executados. SE o resultado for FALSO, os comandos da SEQUÊNCIA DE COMANDOS são desprezados e a execução do algoritmo continua a partir da primeira linha depois do comando FIMSE. Sintaxe: 1 2 3 4 5 se <condição> entao <sequência de comandos> fimse Para facilitar o entendimento, vamos pensar na seguinte situação: 1 2 3 4 5 se <sua esposa pegar seu cartão de crédito> entao <compras, compras, compras, compras...> fimse Entendeu? Vamos ao exemplo!
  • 20. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 algoritmo "Desvio condicional simples" // Função: Demonstrar a utilização do desvio condicional simples. // Autor: Andrey Smith // Data: 17/05/2014 // Seção de Declarações var nome: caractere nota1, nota2, media: real inicio // Seção de Comandos escreva ("Informe o nome do aluno: ") leia (nome) escreva ("Informe a nota da P1: ") leia (nota1) escreva ("Informe a nota da P2: ") leia (nota2) media <- (nota1 + nota2) / 2 se ( media >= 7) entao escreval ("A média do aluno ", nome, " é:", media) fimse escreval ("O aluno ", nome, " precisa comparecer na coordenação do curso.") fimalgoritmo Resultado do algoritmo com a CONDIÇÃO VERDADEIRA:
  • 21. Resultado do algoritmo com a CONDIÇÃO FALSA: Observe que, como dito anteriormente, pelo fato do resultado ser FALSO, a SEQUÊNCIA DE COMANDOS foi desprezada e a execução do algoritmo continuo a partir da primeira linha depois do fimse.
  • 22. Conclusão Nunca deixe sua esposa (Noiva, namorada, filha, etc) pegar seu cartão de crédito, pois esta é uma CONDIÇÃO que, SE SATISFEITA, pode trazer alguns problemas. =) Até o próximo! :wq! Andrey Smith https://andreysmith.wordpress.com/2014/05/18/visualg-4-desvio-condicional-simples-se-entao/
  • 23. VisuALG #5 – Desvio condicional composto (SE… ENTÃO… SENÃO… FIMSE) SE… ENTÃO… SENÃO… FIMSE O desvio condicional composto (SE… ENTÃO… SENÃO… FIMSE) funciona exatamente como o desvio condicional simples (SE… ENTÃO… FIMSE), com apenas uma diferença. No desvio condicional simples, somente podemos executar comandos SE a CONDIÇÃO for VERDADEIRA. No desvio condicional composto, os comandos sempre serão executados independente da CONDIÇÃO, ou seja, SE a CONDIÇÃO for VERDADEIRA os COMANDOS DA CONDIÇÃO VERDADEIRA serão executados, SENÃO (SE a CONDIÇÃO for FALSA) os COMANDOS DA CONDIÇÃO FALSA serão executados. Sintaxe: 1 2 3 4 5 6 7 8 9 se <condição> entao <comandos da condição verdadeira> senao <comandos da condição falsa> fimse Para facilitar o entendimento, vamos pensar naquela situação do cartão de crédito que vimos no post anterior: 1 2 3 4 5 6 7 8 9 se <sua esposa pegar seu cartão de crédito> entao <compras, compras, compras, compras...> senao <fica na vontade> fimse Entendeu né? Vamos ao exemplo!
  • 24. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 algoritmo "Desvio condicional composto" // Função: Demonstrar a utilização do desvio condicional composto. // Autor: Andrey Smith // Data: 18/05/2014 // Seção de Declarações var nome: caractere nota1, nota2, media: real inicio // Seção de Comandos escreva ("Informe o nome do aluno: ") leia (nome) escreva ("Informe a nota da P1: ") leia (nota1) escreva ("Informe a nota da P2: ") leia (nota2) media <- (nota1 + nota2) / 2 se ( media >= 7) entao escreval ("A média do aluno ", nome, " é:", media) senao escreval ("O aluno ", nome, " não alcançou a média.") fimse fimalgoritmo Resultado do algoritmo com a CONDIÇÃO VERDADEIRA:
  • 25. Resultado do algoritmo com a CONDIÇÃO FALSA: Conclusão O desvio de concional composto amplia as possibilidades do desvio condicional simples que vimos no post anterior. No próximo post veremos desvio condicional encadeado (SE… ENTÃO…
  • 26. SENÃO… SE… ENTÃO… SENÃO) que ampliara ainda mais nosso poder de fogo nos algoritmos. =) Até o próximo! :wq! Andrey Smith https://andreysmith.wordpress.com/2014/05/18/visualg-5-desvio-condicional-composto-se-entao-senao-fimse/