Você está na página 1de 48

PROGRAMACAO

ALGORITMOS

1
PSEUDOCÓDIGOS
Sintaxe do VisualG

2
Operadores Aritméticos

3
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)

Exemplos:
2+5>4 resulta VERDADEIRO
3<>3 resulta FALSO
4
Operadores Lógicos
Os operadores lógicos actuam sobre expressões e também resultam em
valores lógicos VERDADEIRO ou FALSO.

Tabela de Verdade

EXEMPLO:
(2+5>4) e (3<>3)
resulta FALSO, pois
VERDADEIRO e FALSO
resulta FALSO. 5
Operador de Atribuição
Para "colocar" um valor em uma variável dentro de um algoritmo,
utilizamos o operador de atribuição. O operador de atribuição é
representado por uma seta (<-) apontando para a esquerda.

Exemplos:
Peso <- 78.7 // Este comando atribui à variável Peso o valor 78.7.
Nome <- "João da Silva" // Este comando atribui à variável Nome o
valor "João da Silva".
Achei <- FALSO // Este comando atribui à variável Achei o valor
FALSO. 6
Prioridades dos Operadores
Aritméticos

EXEMPLOS:
(2 + 2)/2 resulta 2
2 + 2/2 resulta 3

7
Prioridades dos Operadores

EXEMPLOS (Lógicos):
(2>3) ou (3<2) e (2<3) //resultado seria Falso
(2>3) e (3<2) ou (2<3) //resultado seria Verdadeiro 8
Prioridades dos Operadores

NOTA:
O software VisuAlg não possui relacionamento de categorias.
2*5>3 ou 5+1<2 e 2<7-2 // resulta em erro.
(2*5>3) ou (5+1<2) e (2<7-2) // certo seria assim.

9
SINTAX
Algoritmo "<nome do algoritmo>"
var
< declaração de variáveis>
inicio
< lista de comandos>
fimalgoritmo

10
SINTAX
VARIÁVEIS
VAR
<identificador 1>, <identificador 2>, ..., <identificador n>:
<tipo de dado>

11
SINTAX
VARIÁVEIS- ALGUMAS REGRAS

a. Nomes de variáveis não podem ser iguais a palavras reservadas;


b. Nomes de variáveis devem possuir como primeiro caractere uma
letra ou sublinhado '_' (os outros caracteres podem ser letras,
números e sublinhado);
c. Nomes de variáveis devem ter no máximo 127 caracteres;
d. Nomes de variáveis não podem conter espaços em branco;
e. Na sintaxe do Português Estruturado, não há diferença entre letras
maiúsculas de minúsculas (NOME é o mesmo que noMe). 12
SINTAX
VARIÁVEIS- ALGUMAS REGRAS

Exemplos:
Identificadores válidos: NOME, TELEFONE, IDADE_FILHO,
IdadeFilho, NOTA1, Est_Civil
Identificadores inválidos: 3Endereco, Estado Civil, PARA,
algoritmo, numero/complemento

13
SINTAX
PALAVRAS RESERVADAS

14
SINTAX
TIPOS DE DADOS

15
SINTAX
COMANDO DE ENTRADA E SAÍDA

SAÍDA:
Escreva (<expressão ou identificador ou constante>,
<expressão ou identificador ou constante>, ..., <expressão
ou identificador ou constante>)

ENTRADA:
Leia (<identificador>)

16
SINTAX
COMANDO DE ENTRADA E SAÍDA

EXEMPLO:
Escreva ("Digite seu nome: ")
Leia (nome)
Escreva ("Digite sua agencia: ")
Leia (NumeroAgencia)
Escreva ("Digite sua conta: ")
Leia (NumeroConta)

17
SINTAX
EXEMPLO
Algoritmo "Cálculo de Média Aritmética"
VAR A,B,Media : REAL
Inicio
Escreva ("Programa que calcula a média aritmética de dois valores.")
Escreva ("Digite um valor : ")
Leia (A)
Escreva ("Digite outro valor : ")
Leia (B)
Media <- (A+B)/2
Escreva ("A média dos dois valores é : ", Media)
FimAlgoritmo
18
PROGRAMACAO
VISUALG

19
VISUALG

20
ESTRUTURAS
DE
CONTROLE
21
SINTAX
COMANDO SE
se <condição> entao
<ações (uma ou mais) a serem realizadas se a condição for
verdadeira>
senao
<ações (uma ou mais) a serem realizadas se a condição for falsa>
Fimse

24
SINTAX
EXEMPLO
Algoritmo "Calcula Area do Circulo"
VAR
Area, Raio: Real
inicio
Escreva("Entre com raio do círculo")
Leia (Raio)
Se Raio > 0 entao
Area <- PI*(Raio^2)
Escreva ("A área do círculo de raio ", Raio, " é ", Area)
senao
Escreva ("Raio não pode ser nulo ou negativo!")
fimse
fimalgoritmo 25
SINTAX
ESCOLHA...CASO
escolha < expressão-de-seleção >
caso < exp 1 > , < exp 2 >, ... , < exp n >
< lista-de-comandos-1 >
caso < exp 1a > , < exp 2a >, ... , < exp na >
< lista-de-comandos-2 >
outrocaso
< lista-de-comandos-3 >
Fimescolha

26
SINTAX
EXEMPLO
Algoritmo "CLASSIFICAÇÃO DE ATLETAS
var caso 11,12,13,14,15
nome, categoria : caractere categoria <- "Juvenil"
idade : inteiro caso 16,17,18,19,20
Inicio categoria <- "Junior"
Escreva("Nome do Atleta = ") caso 21,22,23,24,25
Leia (nome) categoria <- "Profissional"
Escreva("Idade do Atleta = ") outrocaso
Leia (idade) categoria <- "INVALIDO"
Escolha idade Fimescolha
caso 5,6,7,8,9,10 Escreva (Nome," é da Categoria
categoria <- "Infantil" ",categoria)
fimalgoritmo
27
ESTRUTURAS
DE
REPETIÇÃO
28
SINTAX
Comando REPITA...ATE
repita
<lista de comandos>
ate <expressão lógica ou relacional>

29
SINTAX
EXEMPLO
Algoritmo que escreve os números de 1 a 10.
algoritmo "DemonstraRepeticao"
VAR
i: INTEIRO
inicio
i<- 1
repita
escreva (i)
i<- i + 1
ate i > 10
fimalgoritmo
30
SINTAX
EXEMPLO
Algoritmo que escreve os números pares de 10 a 2.
Algoritmo "DecrementoNumerosPares"
var
i: inteiro
inicio
i <- 10
Repita
escreva (i)
i <- i - 2
ate i < 2
Fimalgoritmo
31
SINTAX
Comando ENQUANTO..FACA
enquanto <expressão lógica ou relacional> faca
<lista de comandos>
Fimenquanto

32
SINTAX
EXEMPLO
Algoritmo que lê diversos números positivos e escreve para cada um a sua raiz
quadrada e pâra quando o número não for positivo.
algoritmo “ComEnquanto"
var
i,r: Real
Inicio
Escreval ("Introduza um numero:")
leia (i)
Enquanto i >0 faca
r<- i^0.5 // ou RaizQ(i)
escreva (r)
Escreval ("Introduza outro numero:")
leia (i)
fimenquanto
33
fimalgoritmo
SINTAX
Comando PARA..FACA
para <variável de controle> de <valor inicial> ate <valor final>
[passo<incremento>] faca
<lista de comandos>
fimpara

34
SINTAX
EXEMPLO
Algoritmo que lê 5 números e escreve todos os que forem positivos.
Algoritmo "Positivos"
var
i, numero: inteiro
inicio Note: Quando o passo é +1 não é
para i de 1 ate 5 passo 1 faca necessário a sua indicação no ciclo
escreval ("Digete um numero") porque é definido como padrão.
leia (numero)
se numero>0 entao
escreva (numero)
fimse
fimpara
fimalgoritmo
35
VARIÁVEIS INDEXADAS
(VECTORES E MATRIZES)

36
SINTAX
VECTORES

<identificador> : vetor [<tamanho>] de < tipo >

Tamanho [VI..VF]=> Vi= Valor inicial do índice e VF valor Final do


índice.
Atribuição:
nome[1] <- "João da Silva"
Exemplos
Idade[1] <- 35
1) IDADE: VETOR [1..5] DE INTEIRO
nome[3] <- "Maria Aparecida"
2) NOME: VETOR [1..5] DE CARACTERE
idade[3] <- idade[1]
i <- 5
idade[i] <- 45
37
SINTAX
VECTORES
ALGORITMO "vetores" Exemplo2: Algoritmo que
VAR recebe 6 números inteiros
NUMERO: VETOR [1..6] DE INTEIRO num vetor e escreve os
i, conta_neg: INTEIRO números recebidos e o total
inicio
de negativos.
conta_neg <- 0
para i de 1 ate 6 faca
para i de 1 ate 6 faca
escreval (NUMERO[i])
Escreval("Introduza o numero ", i)
se NUMERO[i] < 0 entao
leia (NUMERO[i])
conta_neg <- conta_neg + 1
Fimpara
fimse
fimpara
escreva ("Total de números
negativos: ", conta_neg)
38
FIMALGORITMO
SINTAX
MATRIZES

<identificador> : vetor [<tamanho1>,<tamanho2>] de < tipo >

Tamanho [VI..VF]=> Vi= Valor inicial do índice e VF valor Final do


índice.
Atribuição:
Exemplos pessoa[1,1] <- "João da Silva"
1) pessoa: vetor [1..2,1..3] de CARACTERE Pessoa[1,2]<-"Andre"
Pessoa[1,3]<-"Jo"
Pessoa[2,1]<-"Ze"
Pessoa[2,2]<-"Fu"
Pessoa[2,3]<-"To"
39
SINTAX
MATRIZES

<identificador> : vetor [<tamanho1>,<tamanho2>] de < tipo >

Tamanho [VI..VF]=> Vi= Valor inicial do índice e VF valor Final do


índice.

Exemplos
2) Algoritmo que pede e insere valores reais numa matriz de 3x3 e calcula as
somas:
a) da linha 3 de Valores;
b) da coluna 2 de Valores;
e) de todos os elementos da matriz.
40
SINTAX MATRIZES
ALGORITMO "Matriz" se j=2 entao
VAR somaColuna2 <- VALORES[i,j]+ somaColuna2
VALORES : VETOR [1..3,1..3] DE REAL Fims
somaLinha3, somaColuna2, somaTudo: REAL Fimpara
i, j: INTEIRO //os índice sempre inteiro Fimpara
Inicio Para i de 1 ate 3 faca
somaLinha3 <- 0 para j de 1 ate 3 faca
somaColuna2 <- 0 escreval (VALORES[i,j])
somaTudo <- 0 fimpara
Para i de 1 ate 3 faca fimpara
Para j de 1 ate 3 faca escreval ("Soma de todos os elementos é ",
Escreva("Digite um valor para a matriz") somaTudo)
Leia (VALORES[i,j]) escreval ("Soma dos elementos da linha 3 é ",
somaTudo <- VALORES[i,j] + somaTudo somaLinha3)
se i=3 entao escreval ("Soma dos elementos da coluna 2 é ",
somaLinha3 <- VALORES[i,j]+ somaLinha3 somaColuna2)
fimse FIMALGORITMO
41
SUBPROGRAMA

42
SINTAX
FUNÇÕES E PROCEDIMENTOS

- Eles reduzem o tamanho do algoritmo.


- Facilitam a compreensão e visualização do algoritmo.
- São declarados no início do algoritmo e podem ser chamados em
qualquer ponto da secção de comandos após sua declaração.

43
SINTAX FUNÇÕES FUNÇÕES DO PORTUGUÊS ESTRUTURADO

44
SINTAX FUNÇÕES FUNÇÕES DO PORTUGUÊS ESTRUTURADO

EXEMPLO:
Algoritmo "RETORNA UM VALOR INTEIRO"
var
valorReal : REAL
valorInteiro : INTEIRO
inicio
valorReal <- 5.8791
valorInteiro <- INT(valorReal)
Escreva("Valor inteiro ", valorInteiro)
Fimalgoritmo

45
SINTAX FUNÇÕES CRIADAS POR NÓS

ESTRUTURA DE ALGORITMO ESTRUTURA DA FUNÇÃO

funcao <identificador>
Algoritmo "<nome do algoritmo>" ([var]<parâmetros>) <tipo de
var retorno>
<declaração de variáveis globais> var
<definição de subprogramas> <declaração de variáveis locais>
inicio inicio
<lista de comandos>
< lista de comandos> retorne <variável de retorno>
Fimalgoritmo fimfuncao
Identificador: Nome da função

Passagem de parâmetros por referência: utiliza-se a construção


VAR antes dos identificadores para indicar a passagem por
referência. Os identificadores são separados por vírgula. 46
SINTAX FUNÇÕES FUNÇÕES CRIADAS POR NÓS

EXEMPLO:
Algoritmo "ExemploSoma" inicio
var Escreva("Valor1:")
valor1, valor2, soma:REAL Leia(valor1)
Funcao Fsoma(A,B:Real):Real Escreva("Valor2:")
var Leia(valor2)
total:Real soma<-Fsoma(valor1,valor2)
inicio Escreva(valor1,"+",valor2,"=",soma)
total<-A+B Fimalgoritmo
retorne total
Fimfuncao

47
SINTAX SUB-ROUTINA

procedimento <identificador> ([var]<parâmetros>)


var
<declaração de variáveis locais>
inicio
<lista de comandos>
Fimprocedimento

48
SINTAX SUB-ROUTINA

EXEMPLO:
inicio
Algoritmo "ExemploProcedimento" Escreva("X:")
var Leia(x)
x, y:REAL Escreva("Y:")
Procedimento troca(var A,B:Real) Leia(y)
var troca(x,y)
aux:Real Escreva("X=",x,"; Y=",y)
inicio Fimalgoritmo
aux<-A
A<-B
B<-aux
// Escreva("X=",A,"; Y=",B)
FimProcedimento
49
FIM

50

Você também pode gostar