Você está na página 1de 190

Lógica de

Programação

Marco Guimarães
marco.guimaraes@sistemafiepe.org.br
Algoritmo

“Algoritmo é uma sequência da passos que visa


atingir um objetivo bem definido.”
(FORBELLONE, 1999)

“Algoritmo é a descrição de uma sequência de


passos que deve ser seguida para a realização
de uma tarefa.” (Ascencio, 1999)
Em outras palavras!

“Na computação, os algoritmos fornecem aos


computadores um guia sucessivo para a conclusão de
ações. Eles são compostos por uma lista precisa de
instruções que descrevem exatamente como concluir
uma tarefa.”
Algoritmo

✓ Solucionar algum problema.

✓ Realizar determinada ação.

✓ O número de passos deve ser finito.

Importância na programação.
Representar o raciocínio lógico.
Focaliza-se primeiro na resolução algorítmica do problema,
possibilitando sua codificação em qualquer linguagem de
programação.
Método para a Construção de Algoritmos

✓ Compreender o problema
✓ Definir os dados de entrada

✓ Definir o processamento

✓ Definir os dados de saída

✓ Construir o algoritmo

✓ Testar o algoritmo
Algoritmo

Os algoritmos são comuns no cotidiano


Estamos sempre realizando uma sequência de passos para realizar alguma
ação:
Exemplo: Receita de bolo
Bata as claras em neve e reserve;
Misture as gemas, a margarina e o açúcar até obter uma massa homogênea;
Acrescente o leite e a farinha de trigo aos poucos, sem parar de bater;
Por último, adicione as claras em neve e o fermento;

...
Algoritmo
Tipos de Algoritmos

❑ Descrição narrativa
❑ Fluxograma

❑ Pseudocódigo ou portugol
Descrição Narrativa

Consiste em analisar o enunciado do


problema e escrever, utilizando uma
linguagem natural, os passos a serem
seguidos para sua resolução.
Descrição Narrativa

✓ Uma das formas mais simples;


✓ Linguagem natural e no idioma nativo;
✓ Consiste em apenas escrever, de forma textual, o que
precisa ser feito;
✓ É pouca utilizada por conta da não eficiência;
✓ Pode gerar más interpretações, ambiguidade, imprecisão.
Descrição Narrativa
Fluxograma

✓ Consiste em analisar o enunciado do problema e escrever,


utilizar símbolos gráficos predefinidos, descrevendo
organizadamente os passos a serem seguidos para sua
resolução;

✓ Tal propriedade facilita o entendimento das ideias contidas


nos algoritmos e justifica sua popularidade.
Fluxograma

Simbologia:
Fluxo de dados
Indica o sentido do fluxo de dados
Conecta os demais símbolos
Terminal
Indica o INÍCIO ou FIM de um processamento
Exemplo: Início do algoritmo
Processamento
Processamento em geral
Exemplo: Cálculo de dois números
Fluxograma
Simbologia:

Entrada
Operação de entrada de dados
Exemplo: Leitura de dados pelo teclado
Saída
Mostra informações ou resultados
Exemplo: Mostre o resultado do cálculo
Decisão
Permite elaborar processos de decisão
Escreva um algoritmo do seu cotidiano
Escreva um algoritmo do seu cotidiano
Pseudocódigo

Esta forma de representação de algoritmos é rica em detalhes.

Por assemelhar-se bastante à forma em que os programas são


escritos, encontra muita aceitação.

É linguagem intermediária entre a linguagem natural e uma


linguagem de programação.

É mais simples a implementação.

As regras do pseudocódigo devem ser aprendidas!


Pseudocódigo
<nome_do_algoritmo> é um identificador
dado ao algoritmo com a finalidade de
distingui-los dos demais.
<declaração_de_variáveis> consiste em
uma porção opcional onde são declaradas as
variáveis globais usadas no algoritmo principal
e, eventualmente, nos subalgoritimos.

<subalgoritmos> consiste de uma porção


opcional do pseudocódigo onde são definidos
os subalgoritmos.
Início e Fim são respectivamente as palavras
que delimitam o início e o término do conjunto
de instruções do corpo do algoritmo.
Pseudocódigo
Vantagens e Desvantagens de cada tipo de
representação

Vantagem Desvantagem
Narrativa Fácil de escrever Más interpretações
Linguagem Natural Ambiguidade
Pseudocódigo Fácil transição para a Necessário aprender regras do
linguagem de programação pseudocódigo
Fluxograma Fácil de visualizar Aprender os Símbolos
Fluxo Lógico
Portugol

Consiste em analisar o enunciado do problema


e escrever, por meio de regras predefinidas, os
passos a serem seguidos para sua resolução
Portugol

Exemplo 1

:
Etapas no Desenvolvimento de um Programa

Análise: estuda-se o problema para definir os dados de


entrada, o processamento e os dados de saída.
Algoritmo: Utiliza-se para descrever o problema com suas
soluções.
Codificação: Transforma o algoritmo em códigos de uma
linguagem de programação.
Exemplo de Problemas
Problema da Torre de Hanói
Seja a seguinte situação:
Deve-se mover todos os discos do primeiro eixo para o terceiro
mantendo-se a ordem original.
Em cada movimento, pode-se mover apenas um disco Um disco nunca
poderá ser sobreposto por outro maior.
Exemplo de Problemas

Passo 1:
mova disco menor para terceiro eixo
Exemplo de Problemas

Passo 2:
mova disco médio para segundo eixo
Exemplo de Problemas

Passo 3:
mova disco menor para segundo eixo
Exemplo de Problemas

Passo 4:
mova disco maior para terceiro eixo
Exemplo de Problemas

Passo 5:
mova disco menor para primeiro eixo
Exemplo de Problemas

Passo 6:
mova disco médio para terceiro eixo
Exemplo de Problemas

Passo 7:
mova disco menor para terceiro eixo
Exemplo de Problemas

Sequência de Passos Completa:


Passo 1: mova disco menor para terceiro eixo;
Passo 2: mova disco médio para segundo eixo;
Passo 3: mova disco menor para segundo eixo;
Passo 4: mova disco maior para terceiro eixo;
Passo 5: mova disco menor para primeiro eixo;
Passo 6: mova disco médio para terceiro eixo;
Passo 7: mova disco menor para terceiro eixo.
Jogo da Travessia do Rio

Como jogar:
As regras são as seguintes:
Somente o pai, a mãe e o policial sabem pilotar o barco;
A mãe não pode ficar sozinha com os filhos;
O pai não pode ficar sozinho com as filhas;
O prisioneiro não pode ficar sozinho com nenhum integrante da família;
O barco só pode transportar 2 pessoas por vez;
Você pode ir e vir com as pessoas quantas vezes precisar.
Jogo da Travessia do Rio

Jogo da Travessia do Rio


Vamos ao desafio!!
Jogo da Travessia do Rio

1 ida = policial + bandida 10 volta = pai


2 volta = policial 11 ida = pai + mãe
3 ida = policial + menino 12 volta = mãe
4 volta = policial + bandida 13 ida = mãe + menina
5 ida = pai + menino 14 volta = policial + bandida
6 volta = pai 15 ida = policial + menina
7 ida = pai + mãe 16 volta = policial
8 volta = mãe 17 ida = policial + bandida
9 ida = policial + bandida
Linguagens de Programação

Utilizada para escrever programas onde o computador e


o criador deste programa compreendam
Linguagens Compiladas e Linguagens Interpretadas
Paradigmas de Programação (dois mais conhecidos):

Programação Estruturada
Exemplos: Pascal e C
Programação Orientada a Objetos
Exemplos: C++, Python e Java
Compiladores

Um compilador tem a finalidade:


Converter uma linguagem – Linguagem Fonte – de fácil escrita
e leitura para os programadores, numa linguagem – Linguagem
alvo ou objeto – que possa ser executada pelas máquinas.
O código executável gerado pelo compilador é dependente do
Sistema Operacional e da linguagem de máquina para o qual o
código fonte foi traduzido.
Exemplos de Linguagens Compiladas:
Pascal, C, C++
Interpretadores

O funcionamento dos interpretadores é muito parecido ao dos compiladores.

O interpretador traduz o código linha a linha.


O código fonte não é totalmente traduzido antes de ser executado.
Não existem fases distintas nem se produz código intermediário.
Passa o tempo todo a ler e a traduzir código.

Exemplo de Linguagens Interpretadas:

HTML, PHP, ASP.


Compiladores x Interpretadores
Objetivos

1. Identificar os princípios básicos das formas de


construção de algoritmos;

2. Desenvolver algoritmos sequenciais.


Agenda

• Conceitos iniciais
• O que é lógica?
• O que é algoritmo?
• Tipos de algoritmo
Lógica
• O uso da palavra lógica está relacionado à coerência e à
racionalidade
• Podemos relacionar a lógica como “correção do
pensamento”, pois uma de suas preocupações é determinar
quais operações são válidas ou não
• “Arte do bem pensar”
• A lógica estuda e ensina a colocar “ordem no pensamento”
• Ex:
• Todo mamífero é um animal
• Todo cavalo é um mamífero
• Portanto, todo cavalo é um animal
Lógica
• Existe lógica no dia a dia?
• Podemos perceber a importância da lógica em nossa vida,
não só na teoria como na prática, já que quando queremos
pensar, falar, escrever ou agir corretamente, precisamos
colocar “ordem no pensamento”, ou seja, usar a lógica.
• Ex:
• A gaveta está fechada
• A caneta está dentro da gaveta
• Precisamos primeiro abrir a gaveta para depois pegar a caneta
Lógica de programação
É o uso correto do pensamento, da “ordem da razão” e de
processos de raciocínio e simbolização formais na
programação de computadores, objetivando a racionalidade
e o desenvolvimento de técnicas que cooperem para a
produção de soluções logicamente válidas e coerentes, que
resolvam com qualidade os problemas que se deseja
programar
Usando a lógica
• Lobo, carneiro e repolho
• Você tem um lobo, um carneiro e uma cesta de repolho,
e precisa levar todos eles para o outro lado do rio.
Porém, o seu barco só pode levar um de cada vez. Mas,
se você deixar o lobo e o carneiro sozinhos, o lobo
comeria o carneiro. Se deixar o carneiro e a cesta de
repolho, o carneiro comeria a cesta de repolho. Como
você os levará até o outro lado do rio?
• Para facilitar o raciocínio, você pode levar um no barco e
trazer o outro que por ventura esteja do outro lado do rio.
Usando a lógica

Como faço um bolo (de qualquer coisa aqui)?

•Posso colocar todos os ingredientes no fogo


para assar, depois misturá-los?
Algoritmo

Então o que é um algoritmo?


• É uma sequência de passos que visam atingir um
objetivo bem definido.
• É necessário utilizar ordem, ou seja, “pensar com
ordem”.
• Ex: Trocar uma lâmpada.
Algoritmo
Então o que é um algoritmo?
• É uma sequência de passos que visam atingir um objetivo bem definido
• É necessário utilizar ordem, ou seja, “pensar com ordem”.
• Ex: Trocar uma lâmpada.
• Pegar uma escada
• Posicionar a escada debaixo da lâmpada
• Buscar uma lâmpada nova
• Subir na escada
• Retirar a lâmpada velha
• Colocar a lâmpada nova
Algoritmo – Trocar uma lâmpada
Ex: Trocar uma lâmpada
• Pegar uma escada
• Posicionar a escada debaixo da lâmpada
• Buscar uma lâmpada nova
• Subir na escada
• Retirar a lâmpada velha
• Colocar a lâmpada nova
Este procedimento funciona mesmo para lâmpadas não queimadas.
Algoritmo – Trocar uma lâmpada
Ex: Trocar uma lâmpada
• Pegar uma escada
• Posicionar a escada debaixo da lâmpada
• Buscar uma lâmpada nova
• Acionar o interruptor
• SE a lâmpada não acender, ENTÃO
• Subir na escada
• Retirar a lâmpada velha
• Colocar a lâmpada nova
Tipos de algoritmo

• A descrição narrativa
• Fluxograma
• Diagrama de Capin
• Pseudocódigo (ou português estruturado, ou portugol)
A descrição narrativa nada mais é
do que descrever, utilizando uma
Descrição linguagem natural (português) as
Narrativa ações a serem realizadas no
tratamento dos dados de entrada
para os resultados de saída na
resolução do problema proposto.
Descrição Narrativa

Exemplo 1
O fluxograma é a forma de descrever as
ações a serem realizadas no tratamento
Fluxograma dos dados de entrada para os resultados
de saída usando uma representação
simbólica preestabelecida.
Fluxograma
Fluxograma
Diagrama
de Chapin
O pseudocódigo é a forma de descrever as
ações para a resolução de um problema
proposto por meio de regras preestabelecidas.
• Ex:

inicio
Pseudocódigo inteiro n
n <- 5
se n = 5 entao
escrever "N = 5"
fimse
fim
Código – Linguagem de programação
Portugol Pascal C
inicio program N; #include <stdio.h>
inteiro n var void main()
n <- 5 n: integer; {
begin int n;
se n = 5 entao n := 5; n = 5;
escrever “N = 5”
fimse if (n = 5) then if (n == 5)
fim begin {
writeln(‘N = 5’); printf(“N = 5”);
end; }
end. }
Sempre que se codifica um algoritmo em
uma linguagem de programação, este
programa precisa ser “traduzido” para a
Programa linguagem entendida pela máquina. Este
processo chama-se interpretação ou
compilação.
Algoritmo
Tópicos preliminares
(variáveis, constantes e operadores)
Agenda

• Apresentar os tipos de dados a serem adotados.


• Definir constantes e variáveis, explicando a sua utilização.
• Explicar as expressões aritméticas e lógicas.
• Conceituar o processo de atribuição.
• Aplicação de comandos de entrada e saída.
Tipos primitivos
Tipos básicos de dados presentes na
lógica de programação
Tipos primitivos

• Para entender os tipos primitivos, voltamos nossa


atenção para um conceito muito importante: a
informação.
• Informação é a matéria-prima que faz com que seja
necessária a existência dos computadores.
• Diferença entre dado e informação.
Toda e qualquer informação numérica que pertença
ao conjunto dos números inteiros relativos (negativa,
nula ou positiva).
• Alguns exemplos:
Inteiro • Ele tem 15 irmãos
• A escada possui 8 degraus
• Meu vizinho comprou 2 carros novos

• (* Diferença de dado e informação)


Toda e qualquer informação numérica que
pertença ao conjunto dos números reais
(negativa, nula ou positiva).
Real Alguns exemplos:
• Ela tem 1,65 metro de altura
• Meu saldo bancário é de R$ 3,50
• O peso de Fulano é 82,5 kg.
Toda e qualquer informação composta
de caracteres alfanuméricos:
Caracter • Numéricos: 0-9
• Alfabéticos: A-Z, a-z
• Especiais: @#$%&*()
• Toda e qualquer informação que pode
assumir apenas duas situações:
• Sim / Não
• Verdadeiro / Falso
Lógico • Ligado / Desligado
• Aberto / Fechado

• Alguns exemplos:
• A lâmpada pode estar acesa ou apagada
Variáveis e
constantes
Utilizando os dados, definindo identificadores, etc.
Constantes

• Algo que não varia. Não sofre alterações no decorrer do tempo.


• Seu valor é constante desde o início até o fim da execução do algoritmo.
• Constante nas diferentes execuções do algoritmo.

• Exemplos de uso:
• Pi, e outras constantes matemáticas.
• Valores de conversão .
• Velocidade da luz e do som (e de acordo com o material).

• Pensar: como calculamos distância com um sensor de ultrassom?


Variáveis
• Tem a possibilidade de ser alterado em algum instante no
decorrer da execução.
• O valor do dado sofre alteração ou o dado é dependente da
execução em um certo momento ou circunstância.
• Exemplos de uso:
• Cálculos de conversão
• Cálculos matemáticos em geral
• Pensar: onde armazenamos o cálculo de distância com um
sensor de ultrassom?
Variáveis e constantes - diferenciando

Calculando o valor da área da circunferência de um círculo:


2
𝐴 = 𝜋𝑟
• Qual(is) a(s) constante(s)?
• Qual(is) a(s) variável(is)?
• Qual a variável de entrada?
• Qual a variável de saída?
Identificadores
• Resumindo: Nome das variáveis e constantes
• Regras básicas:
• Devem começar por um caracter alfabético (*)
• Não use 1numero, use numero1
• Podem ser seguidos por mais caracteres alfabéticos ou
numéricos (*)
• Não devem ser usados caracteres especiais (**)

• * Algumas linguagens aceitam o caracter _


• ** Incluindo acentuações
Identificadores
Outras regras:
• Não é possível utilizar espaços ou acentuações
• Algumas linguagens tratam o uso de letras minúsculas e de
maiúsculas como caracteres completamente diferentes (case
sensitive). Assim, A é diferente de a.

• Não é possível fazer uso de palavras reservadas pela linguagem


• Inicio, fim, se, entao, senao, inteiro, real, logico, para, enquanto...
• Begin, end, if, then, else, int, float, bool, boolean, for, while...
Identificadores
Identificadores - exercícios
Quais identificadores são válidos?
• (x)
• U2
• A!
• Ab*c
• Asdrubal
• CEP
• Mês
• Dia/mes
• Inicio
• Rg_orgao
• _inicio
Identificadores – exercícios
Declarando variáveis
Declarando variáveis

No ambiente computacional as informações


variáveis são guardadas na memória.
Expressões e
Operadores
Expressões aritméticas

Denominamos expressão aritmética aquela cujos


operadores são aritméticos e cujos operandos são
constantes ou variáveis do tipo numérico (inteiro ou real)
Expressões aritméticas
Operadores aritméticos
Chamamos de operadores aritméticos o conjunto de símbolos
que representam operações básicas da matemática.
Operador Função Exemplo
+ adição 5+3
- subtração 2-a
* multiplicação b*c
/ divisão d / 10
Operadores aritméticos auxiliares
Além dos operadores aritméticos básicos, consideram-se,
para pseudocódigos, operadores aritméticos auxiliares para
outros cálculos, que são:
Operador Portugol IDE Função Exemplo
mod % Resto de divisão 7 mod 3 = 1
div / Quociente da divisão 7 div 3 = 2
pot Potencia ou ^ Potenciação pot(2,3) = 8
rad raiz Radiciação rad(9) = 3
Operadores aritméticos - exercício

10 + 2 – 2 * 0 = ?
Operadores aritméticos - exercício

10 + 2 – 2 * 0 = ?
0?
12 ?
Operadores aritméticos - prioridades
Para resolver expressões aritméticas em
pseudocódigo, deve-se obedecer a uma
hierarquia de prioridades entre operadores
aritméticos que é a seguinte:
✓ Parênteses mais internos
✓ pot rad
✓ * / div mod
✓+ -
Expressões lógicas (ou relacionais)

Aquelas cujos operadores são lógicos ou


relacionais e cujos operandos são relações ou
variáveis ou constantes do tipo lógico.
Expressões lógicas
Operadores relacionais

• Utilizamos operadores relacionais para realizar comparações


entre dois valores de mesmo tipo primitivo. Tais valores são
representados por constantes, variáveis ou expressões
aritméticas.
• Os operadores relacionais são comuns para construirmos
equações.
• O resultado obtido de uma relação é sempre um valor lógico.
• Exemplo: 1 > 3 retornará FALSO
Operadores relacionais
Embora os símbolos possam ser diferentes entre linguagens,
adotaremos como convenção:
Operador Função Exemplo Resultado
> Maior que 3>2 Verdadeiro
< Menor que 3<2 Falso
>= Maior ou igual a 5 – 2 >= 1 + 2 Verdadeiro
<= Menor ou igual a 5 – 2 <= 1 + 2 Verdadeiro
= Igual a 10 = 10 Verdadeiro
<> (VisuAlg) Diferente de 10 <> 10 Falso
=/= (Portugol IDE) 10 =/= 10
Expressões relacionais
Operadores Lógicos
Utilizaremos três operadores básicos para a formação de novas
proposições lógicas compostas a partir de outras proposições
lógicas simples.
Operador Função Descrição
E conjunção Será verdadeiro o resultado somente se na
comparação todos os valores forem verdadeiros.
OU disjunção Será verdadeiro o resultado se um dos valores na
comparação for verdadeiro.
NÃO negação Inversão. Será verdadeiro somente se a expressão
for falsa.
Tabela verdade
Operadores lógicos - exercícios

Se chover E relampejar eu fico em casa


• Quando eu fico em casa?
• Quando eu não fico?
Se chover OU relampejar eu fico em casa
• Quando eu fico em casa?
• Quando eu não fico?
Operadores lógicos - prioridades

1 – NAO
2–E
3 - OU
Prioridade entre operadores

1 – Parênteses mais internos


2 – Operadores aritméticos
3 – Operadores relacionais
4 – Operadores lógicos *

* Convém observar que essa última convenção de


precedência não é comum a todas as linguagens
Exercícios
Considere os valores das variáveis e resolva as expressões:
a <- 'b’
b <- 'a’
➢ a=b
➢ a = 'b’
➢ b=b
➢ b = 'b’
➢ 'b' = 'a’
➢ b = 'a’
➢ 'a' = b
Exercícios

Resolva as seguintes expressões:


•5 * 2 - 3 + 14 / 2 + 9
•5 - 2 ^ 3 + 4 - 2 * raiz( 4 )
•5 mod 2 + 3 < 3 ^ 2 * 10
•5 * 2 = 4 + 10 / 2
•3 < 7 E 5 * 2 - 2 + 1
•2 ^ 3 <= raiz( 9 ) OU 2 * 3 - 6 / 3 = 4
Exercícios
Considere os valores das variáveis e resolva as expressões:
x <- 3
y <- 5
z <- 0
x<3
x <= 3
x < 3 E y >= 5
x < 10 OU y >= 5
(x < 0 OU x > 2) E (y > 0)
(x < 0 E x > 2)
2 ^ 3 <= raiz( x * (2 + 1) ) OU y * 3 - 6 / 3 = 4 * z
x = 3 OU 4
Atribuição,
Entrada e Saída
Atribuição
• Simbologia diferenciada ( <- )
• Permite fornecer um valor para uma variável
• O tipo de dados deve ser compatível com o tipo da variável
• Exemplo:
• Logico A, B
• Inteiro X
• A <- B
• X <- 8 + 13 div 5
• B <- 5 = 3
• X <- 2
Atribuição
• Notemos também que uma variável pode ser utilizada diversas
vezes.
• Ao atribuirmos um segundo valor, o primeiro valor armazenado
será descartado.
X <- 1
X <- 3
Y <- 2
Y <- X
• Como trocar valores entre A e B?
Atribuição
Entrada e Saída
• Entrada: para que o algoritmo possa receber os dados de que
necessita, adotaremos um comando para entrada de dados cuja
finalidade é atribuir o dado a ser fornecido à variável identificada
• Ler
• Saída: para o algoritmo possa mostrar os dados que calculou,
como resposta ao problema que resolveu, adotaremos um
comando de saída de dados, cuja finalidade é exibir o conteúdo
de uma variável ou expressão
• Escrever
Entrada e Saída
Saída de dados
Algoritmo

inicio
inteiro x, y
escrever "Entre com um valor:"
ler x
y <- x * 2
escrever "O dobro do valor é", y
fim
Algoritmos
Estruturas de Controle
(sequencial e de decisão)
Agenda

✓ Estruturas de controle do fluxo de execução.


✓ Estrutura sequencial.
✓ Estrutura de seleção.
Estruturas de controle
• Na criação de algoritmos utilizamos os conceitos de blocos lógicos,
entrada e saída de dados, variáveis, constantes, atribuições, expressões
lógicas, relacionais e aritméticas, bem como comandos que traduzem este
conceito de forma a representar o conjunto de ações.

• Para que este conjunto de ações se torne viável, deve existir uma perfeita
relação lógica intrínseca ao modo pelo qual essas ações são executadas,
ao modo pelo qual é regido o fluxo de execução do algoritmo.
• Por meio das estruturas básicas de controle do fluxo de execução –
sequenciação, seleção, repetição – e da combinação delas, podemos
criar algoritmos para solucionar nossos problemas
Estrutura
Sequencial
Estrutura sequencial
Corresponde ao fato de que um conjunto de ações primitivas será executado em uma
sequência linear na mesma ordem em que foram escritas
• Modelo geral:
inicio // identificação do início do bloco correspondente
ao algoritmo
// declaração das variáveis
// corpo do algoritmo
ação 1
ação 2
ação 3
(...)
ação N
fim // fim do algoritmo
Exercícios de estrutura sequencial
Exercícios de estrutura sequencial

Construa um algoritmo que calcule a média aritmética


entre duas notas quaisquer fornecidas por um usuário
• Dados de entrada?
• Variáveis de entrada? Tipo?
• Dados de saída?
• Variáveis de saída?
• Processamento?
• Atribuições?
• Cálculos? Artiméticos?
Exercícios de estrutura sequencial

✓ Construa um algoritmo para calcular as raízes de


2
uma equação do 2º grau (𝐴𝑥 + 𝐵𝑥 + 𝐶) sendo
que os valores de A, B e C serão fornecidos pelo
usuário. Considere que a equação possui duas
raízes reais.
Exercícios de estrutura sequencial

✓ Faça um algoritmo para calcular o volume de


uma esfera de raio R, em que R será um dado
fornecido pelo usuário.
4
✓ O volume de uma esfera é dado por 𝑉 = 𝜋𝑅³
3
Exercícios de estrutura sequencial

✓ Escreva um programa para ler uma temperatura em


graus Fahrenheit, calcular e escrever o valor
correspondente em graus Celsius.

𝐶 𝐹 −32
✓ A fórmula para conversão é: =
5 9
Estruturas de Seleção
Estrutura de seleção

• Permite a escolha de um grupo de ações a ser


executado quando determinadas condições.
• As condições deverão ser representadas por
expressões lógicas ou relacionais.
Estrutura de seleção simples
• Quando precisamos testar uma certa condição antes de executar uma
ação
• Segue o modelo:
se <condição> então
(ação)
fimse
• <condição> é uma expressão lógica que, quando inspecionada, pode
gerar um resultado verdadeiro ou falso
• Se <condição> for verdadeira, a ação primitiva sob a cláusula entao
será executada. Caso contrário (<condição> for falsa), encerra-se a
seleção (fimse), neste caso sem executar nenhum comando.
Estrutura de seleção simples

verdadeiro
<condição>

falso ação
Estrutura de seleção simples

Ex: Cálculo de notas com status de aprovação


(Média >= 7)
Estrutura de seleção composta
• Quando houver situações onde duas alternativas dependem de uma
mesma condição
• Segue o modelo:
se <condição> então
(ação)
senao
(ação)
fimse
• Se <condição> for verdadeira, a ação primitiva sob a cláusula entao
será executada. Caso contrário (<condição> for falsa), teremos a
execução das ações sob a cláusula senao.
Estrutura de seleção composta

falso verdadeiro
<condição>

ação ação
Estrutura de seleção composta

Ex: Cálculo de notas com status de aprovação


(Média >= 7) ou não aprovação.
Estrutura de seleção encadeada

✓ Quando devido à necessidade de processamento,


agrupamos várias seleções.
✓ Normalmente tal formação ocorre quando uma
determinada ação ou bloco deve ser executado
se um grande conjunto de possibilidades ou
combinações de situações for satisfeito.
Estrutura de seleção encadeada

Ex: Cálculo de notas com status de


aprovação (Média >= 7), recuperação
(Média >= 3 e Média < 7), ou reprovado
(Média < 3)
Estrutura de seleção composta
Algoritmo “media_aluno"
Var
nome : caractere
n1, n2, n3, m : real
Inicio
escreva("Qual o nome do Aluno: ")
leia(nome)
escreva("Digite a 1ª nota: ")
leia(n1)
escreva("Digite a 1ª nota: ")
leia(n2)
escreva("Digite a 1ª nota: ")
leia(n3)
m := (n1+n2+n3)/3
se m >=7 entao
escreva("O aluno ",nome," foi aprovado com a média: ",m:2:2)
senao
se m >=5 entao
escreva("O aluno ",nome," ficou em recuperação com a média: ",m:2:2)
senao
escreva("O aluno ",nome," foi reprovado com a média: ",m:2:2)
fimse
fimse
Fimalgoritmo
Estrutura de seleção

Podemos realizar o mesmo exercício


usando apenas estruturas de seleção
simples?
Exercícios

✓ Escreva um programa para ler um valor e escrever


se é positivo ou negativo. Para este exercício
considere o valor zero como positivo.
✓ Reescreva o programa do exercício anterior
considerando o zero como um número neutro.
Exercícios

✓Escreva um programa para ler 2 valores e escrever


o maior deles.
✓Reescreva o programa anterior para que se forem
digitados dois valores iguais seja apresentado em
tela a frase “Os valores são iguais”.
Algoritmos
Estruturas de Controle
(decisão múltipla)
Marco Guimarães
Agenda

Estruturas de seleção múltipla


Estrutura de seleção múltipla escolha
Quando um conjunto de valores discretos precisa ser
testado e ações diferentes são associadas a esses valores
Se-senão-se
escolha X
caso V1: acao1
caso V2: acao2
caso V3: acao3
defeito: acao_para_outros_casos
fimescolha
Exercícios
Escreva um programa para ler 2 valores inteiros e uma das
seguintes operações a serem executadas (codificada da
seguinte forma:
• 1. Adição.
• 2. Subtração.
• 3. Divisão.
• 4. Multiplicação.
Calcular e escrever o resultado dessa operação sobre os dois
valores lidos. Observação:
Considere que só serão lidos os valores 1, 2, 3 ou 4.)
Estruturas de seleção múltipla
Decisão encadeada Múltipla escolha
inicio inicio
inteiro opcao inteiro opcao

escrever ("Selecione uma opção“) escrever ("Selecione uma opção“)


escrever ("1. praia“) escrever ("1. praia“)
escrever ("2. cinema“) escrever ("2. cinema“)
escrever ("3. churrasco“) escrever ("3. churrasco“)
escrever ("Outro: ficar em casa“) escrever ("Outro: ficar em casa“)
ler opcao ler opcao

se opcao =1 entao escolha opcao


escrever ("praia") caso 1:
senao escrever ("praia“)
se opcao=2 entao caso 2:
escrever ("cinema“) escrever ("cinema“)
senao caso 3:
se opcao=3 entao escrever ("churrasco“)
escrever ("churrasco“) defeito:
senao escrever ("fique em casa“)
escrever ("fique em casa“) fimescolha
fimse
fimse Fim
fimse

Fim
Estruturas de seleção múltipla
Quando usar?

Decisão encadeada Múltipla escolha


Pode testar mais de um valor ao Só pode testar igualdade e só
mesmo tempo. testa um valor por vez, por isso,
Ou seja, podem ser utilizadas não pode utilizar expressões
expressões relacionais. lógicas ou relacionais.
Estruturas de seleção múltipla - Exercício

Desenvolva uma calculadora simples, onde o


usuário entrará com dois números e a operação a
ser realizada.
Utilize o seguinte menu de opções (operadores):
• 1. Adição
• 2. Subtração
• 3. Multiplicação
• 4. Divisão
Estruturas de seleção múltipla - Exercício
✓Escreva um algoritmo que leia o número equivalente a um
mês do ano e diga se é do primeiro, segundo ou terceiro
bimestre. Se não for de nenhum, exiba a mensagem: “É do
segundo semestre.”
✓Escreva um algoritmo que leia o número equivalente a um
mês do ano e diga o número de dias do mês
correspondente. Exiba a mensagem “valor inválido”, se o
número digitado não corresponder a nenhum mês (1 a 12).
Algoritmo
Estrutura de repetição
Marco Guimarães
Agenda
Estruturas de repetição:
► Repetição com teste no início.
► Enquanto
► Repetição com teste ao final.
► Repita
► Repetição com variável de controle.
► Para
Estrutura de repetição

► É um fluxo de controle utilizado para decidir


quantas vezes determinado conjunto de
comandos se repetirá dentro do algoritmo.
► Cada estrutura de repetição pode ser simples
ou encadeada.
Estrutura de repetição - Enquanto

► Pode ser utilizada quando o algoritmo precisa


testar determinada condição antes de executar um
conjunto de comandos repetidas vezes.
► Utiliza-se a palavra enquanto e faca que
representam as palavras principais desta estrutura
e a palavra fimenquanto para determinar o fim do
bloco de execução desta estrutura.
Estrutura de repetição - Enquanto
algoritmo "demo"
var
x: inteiro
inicio
x <- 0
enquanto x < 3 faca
escreval("O valor de x é ", x)
x <- x + 1
fimenquanto
fimalgoritmo
Estrutura de repetição - Enquanto
algoritmo "contagem"
var
x, y: inteiro
inicio

escreva("Digite o valor inicial: ")


leia(x)
escreva("Digite o valor final: ")
leia(y)
enquanto x < y faca
escreval("O valor de x é ", x)
x <- x + 1
fimenquanto
fimalgoritmo
Estrutura de repetição - Enquanto
Algoritmo "semnome"
Var
n, tt : real
Inicio
escreval("Digite o nº 0 para sair!")
Enquanto verdadeiro faca
escreva("Qual o valor vc quer somar? ")
leia(n)
tt := tt + n
escreval("Até o momento a soma é: ",tt)
se n = 0 entao
interrompa
fimse
fimenquanto
Fimalgoritmo
Estrutura de repetição - Enquanto
Estrutura de repetição - Enquanto

O resultado da execução deste algoritmo será:


O valor de x é 0
O valor de x é 1
O valor de x é 2
Estrutura de repetição - Repita
► Pode ser utilizada quando o algoritmo precisa
testar determinada condição para parar de
executar um conjunto de comandos repetidas
vezes.
► Utiliza-se a palavra repita e ate como palavras
principais. A própria condição ate representa o
fim bloco de execução desta estrutura.
Estrutura de repetição – Repita
algoritmo "demo"
var
x: inteiro
inicio
x <- 0
repita
escreval("O valor de x é: ", x)
x <- x + 1
até x > 2
fimalgoritmo
Estrutura de repetição - Repete
Estrutura de repetição – Repete

O resultado da execução deste algoritmo será:


O valor de x é 0
O valor de x é 1
O valor de x é 2
Estrutura de repetição - Para

► Pode ser utilizada quando o algoritmo precisa ter


definido a quantidade de vezes que um conjunto de
comandos deve ser executado.
► Utiliza-se as palavras para, de, ate, passo (opcional) e
faca que representam as palavras desta estrutura e a
palavra fimpara para determinar o fim do bloco de
execução desta estrutura.
Estrutura de repetição – Para

algoritmo "demo"
var
x: inteiro
inicio
para x de 0 ate 2 passo 1 faca
escreval("O valor de x é: ", x)
fimpara
fimalgoritmo
Estrutura de repetição – Para
algoritmo "Contagem regressiva "
var
i,n: inteiro
inicio
// Seção de Comandos
escreva ("DIGITE O Nº: ")
leia (n)
i <- n
para i de n ate 0 passo -1 faca
escreva (i)
fimpara
fimalgoritmo
Estrutura de repetição - Para
Estrutura de repetição – Para

O resultado da execução deste algoritmo será:


O valor de x é 0
O valor de x é 1
O valor de x é 2
Estrutura de repetição - Comparação

Estrutura Condição Qtd. Exec. Condição


Enquanto Início 0 ou muitas Verdadeira
Repita Final Mínimo 1 vez Falsa
Para Não tem* ((vf-vi) div p)+1 v <= vf
Cuidado: Loop infinito

► É importante ressaltar que é imprescindível que


a lógica dos comando sejam precisas, correndo o
risco de o programa entrar em um loop infinito.
► Loop infinito é quando o programa entra em
um loop mas a condição para a sua saída não
existe, ou foi mal definida.
Cuidado: Loop infinito

► Estruturas afetadas:
► Enquanto
► Repita
► Estrutura não afetada:
► Para
Cuidado: Loop infinito
algoritmo "demo"
var
x: inteiro
inicio
x <- 0
enquanto x <= 2 faca
escreval(“O valor de x é: ”, x)
// alguém adivinha o que falta aqui?
fimenquanto
fimalgoritmo
Corrigindo: Loop infinito
algoritmo "demo“
var
x: inteiro
inicio
x <- 0
enquanto x <= 2 faca
escreval(“O valor de x é: ”, x)
// alguém adivinha o que falta aqui?
x := x+1 // A condição de parada
fimenquanto
fimalgoritmo
Cuidado: loop infinito
Exercícios

Escreva um programa que leia um número e


calcule seu fatorial.

► Ex: 5! = 5 * 4 * 3 * 2 * 1
Exercícios – Resposta 1
algoritmo "fatorial"
var
n, c, fat: inteiro
inicio
escreva("Digite um valor inteiro:")
leia(n)
se (n = 0) ou (n = 1) entao
fat <- 1
senao
fat <- 1
escreva(n, "! é: ")
para c de n ate 1 passo -1 faca
fat <- fat * c
escreva(c, ".")
fimpara
fimse
escreval(" Fatorial de ", n, " =", fat)
fimalgoritmo
Exercícios – Resposta 2
Algoritmo "Calculadora de Fatorial"
Var
numero, fatorial, contador: inteiro

Inicio
Escreva("Digite um número inteiro: ")
Leia(numero)

fatorial <- 1
contador <- numero

Enquanto contador > 1 faca


Escreva(contador)
Escreva(" x")
fatorial <- fatorial * contador
contador <- contador - 1
FimEnquanto

Escreva(" 1")
Escreva(" = ")
Escreva(fatorial)

Fimalgoritmo
Exercícios

Escreva na tela um programa que leia um


determinado número e exiba em tela a
tabuada desse número.
Exercícios - Resposta
algoritmo "Tabuada_MASG"

var
: inteiro //Variável contador - Inteiro
: inteiro //Variável tabuada - Inteiro

inicio //Início do algoritmo


Escreva("Qual tabuada você gostaria de ver? ") //Mostra pergunta na tela
Leia( ) //Recebe a resposta
PARA DE 0 ATE 10 PASSO 1 FACA //Cont indo de 0 a 10, faça
escreval( ," x ", ," = ", * ) //Tabuada x cont
FIMPARA //Fim da função "PARA"
escreval() //Mostra uma linha vazia

fimalgoritmo //Fim do algoritmo


Exercícios – Resposta 2
algoritmo "Tabuada Completa"

var
num, mult, res: inteiro

inicio
escreva("Digite um número: ")
leia(num)
escreval("Tabuada de ", num, ":")
escreval("===============")

mult <- 1
enquanto mult <= 10 faca
res <- num * mult
escreval(num, " x ", mult, " = ", res)
mult <- mult + 1
fimEnquanto

fimalgoritmo
Exercícios - Resposta
Escreva um programa que escreva em tela as tabuadas de 1 até 10.
algoritmo "Tabuada Completa"
var
i, num, mult, res: inteiro
inicio
para i de 0 até 9 faca
mult := 1
escreval("===============")
escreval("Tabuada de ", num+1, ":")
num := num + 1
escreval("===============")
enquanto mult <= 10 faca
res := num * mult
escreval(num, " x ", mult, " = ", res)
mult := mult + 1
fimenquanto
fimpara
fimalgoritmo
Fazendo o uso do ENQUANTO
algoritmo "tabuada"
var
n, cont: inteiro
inicio
escreva("Digite um valor (INTEIRO):")
leia(n)
cont <- 1
enquanto (cont <11) faca
escreval(n, " x ", cont, " = ", n * cont)
cont <- cont + 1
fimenquanto
fimalgoritmo
Fazendo o uso do CASO
algoritmo "exemplo3"
var
n: inteiro
inicio
escreva("Digite um numero de 1 a 12: ")
leia(n)
escolha (n)
caso 1
escreva("Janeiro")
caso 2
escreva("Fevereiro")
caso 3
escreva("Marco")
caso 4
escreva("Abril")
caso 5
escreva("Maio")
caso 6
escreva("Junho")
caso 7
escreva("Julho")
caso 8
escreva("Agosto")
caso 9
escreva("Setembro")
caso 10
escreva("Outubro")
caso 11
escreva("Novembro")
caso 12
escreva("Dezembro")
outrocaso
escreva("Numero invalido")
fimescolha
fimalgoritmo
algoritmo "exemplo_condicional"
Exemplo Condicional SE
var
a, b, operacao: inteiro
inicio
escreval("=== OPÇÕES ===")
escreval("[1] a + b * 4")
escreval("[2] (a - b)/ 2")
escreval("[3] b - a ")
escreval("[4] -1 * b / 3")
escreval("---------------")
escreva("Digite o primeiro número: ")
leia(a)
escreva("Digite o segundo número: ")
leia(b)
escreva("Digite a operação desejada: ")
leia(operacao)
se operacao = 1 entao
escreva("Resultado:", a + b * 4)
senao
se operacao = 2 entao
escreva("Resultado:", (a - b) / 2 :2:2)
senao
se operacao = 3 entao
escreva("Resultado:", b - a)
senao
se operacao = 4 entao
escreva("Resultado:", -1 * b / 3 :2:2)
senao
escreva("Operação inválida")
fimse
fimse
fimse
fimse
fimalgoritmo
Expoente
algoritmo "expoente"
var
base, expoente, cont, res: inteiro
inicio
escreva("Digite o valor da base: ")
leia(base)
escreva("Digite o valor do expoente: ")
leia(expoente)
res <- 1
enquanto cont < expoente faca
res <- res * base
cont <- cont + 1
fimenquanto
escreval(base, " ^ ", expoente, " = ", res)
fimalgoritmo
Sequência de Fibonacci
algoritmo "Sequência de Fibonacci"
var
v1, v2, v3, limite, cont: inteiro
inicio
escreva("Digite um limite:")
leia(limite)
v1 <- -1
v2 <- 1
cont <- 0
enquanto (cont < limite) faca
v3 <- v1 + v2
v1 <- v2
v2 <- v3
escreva(v3)
cont <- cont + 1
fimenquanto
fimalgoritmo
algoritmo "media"
Uso de funções
funcao media(x, y, z : real) : real
var
m : real
inicio
m := (x+y+z)/3
retorne m
fimfuncao
var
nome : caractere
n1, n2, n3, n : real
inicio
escreva("Digite o nome do aluno: ")
leia(nome)
escreva("Digite a 1º nota: ")
leia(n1)
escreva("Digite a 2º nota: ")
leia(n2)
escreva("Digite a 3º nota: ")
leia(n3)
escreval("----------------------------")
escreva("O aluno ", nome," Obteve a média: ",media(n1,n2,n3) :2:2)
fimalgoritmo
Escreva um algoritmo que solicite ao usuário a entrada de 5
números, e que exiba o somatório desses números na tela.
Após exibir a soma, o programa deve mostrar também os
números que o usuário digitou, um por linha.

Algoritmo "semnome"
Var
numeros : vetor [0..4] de inteiro
cont, soma : inteiro
Inicio
para cont de 0 ate 4 faca
escreval("Entre com",cont+1,"º número:")
leia(numeros[cont])
soma <- soma + numeros[cont])
fimpara
escreval("A soma dos números é", soma)
escreval()
escreval("Os números digitados foram:")
para cont de 0 ate 4 faca
escreval(numeros[cont])
fimpara
Fimalgoritmo
Estrutura - Vetor
algoritmo "vetores"
var
v: vetor [1..3] de real
indice: inteiro
media: real
inicio
para indice de 1 ate 3 faca
escreva("Digite a nota ", indice, ": ")
leia(v[indice])
fimpara
escreval("-------------------------")
para indice de 1 ate 3 faca
escreval("A nota ", indice, " foi: ", v[indice])
media <- media + v[indice]
fimpara
escreval("-------------------------")
escreval("A média final é: ", media/3 :2:2)
fimalgoritmo
Gerando dados de um Vetor em ordem Alfabética
algoritmo "Vetor_em_ordem_alfabetica"
var
vet: vetor[0..9] de inteiro
i, j, temp: inteiro
inicio
para i de 0 ate 9 faca
escreva("Digite um valor inteiro:")
leia(vet[i])
fimpara
para i de 0 ate 9 - 1 faca
para j de i + 1 ate 9 faca
se vet[i] > vet[j] entao
temp <- vet[i]
vet[i] <- vet[j]
vet[j] <- temp
fimse
fimpara
fimpara
para i de 0 ate 9 faca
escreval(vet[i])
fimpara
fimalgoritmo
Estrutura - Vetor
algoritmo "Exemplo de Uso de Vetor"
var
numeros: vetor[1..5] de inteiro
i: inteiro
inicio
// Leitura dos números
para i de 1 ate 5 faca
escreva("Digite o número ", i, ": ")
leia(numeros[i])
fimpara

// Exibição dos números em ordem inversa


limpatela()
escreval("Números em ordem inversa:")
para i de 5 ate 1 passo -1 faca
escreva(numeros[i],",")
fimpara
fimalgoritmo Marco Guimarães
marco.guimaraes@sistemafiepe.org.br
Estrutura - Vetor
algoritmo "vetores_3"
var
v: vetor [1..10] de real
indice: inteiro
media: real
inicio
para indice de 1 ate 10 faca
escreva("Digite a nota ", indice, ": ")
leia(v[indice])
fimpara
para indice de 1 ate 10 faca
escreval("A nota ", indice, " foi: ", v[indice])
media <- media + v[indice]
fimpara
escreval("A média final é: ", media/10)
fimalgoritmo
Crie um programa que solicite a entrada de 10 números pelo usuário,
armazenando-os em um vetor, e então monte outro vetor com os valores do
primeiro multiplicados por 5. Exiba os valores dos dois vetores na tela,
simultaneamente, em duas colunas (um em cada coluna), uma posição por linha.

Algoritmo "DoisVetores"
Var
nums1 : vetor [0..5] de inteiro
nums2 : vetor [0..5] de inteiro
cont : inteiro
Inicio
para cont de 0 ate 5 faca
escreval("Digite um número:")
leia(nums1[cont])
nums2[cont] <- nums1[cont] * 5
fimpara
escreval()
escreval("Resultado:")
para cont de 0 ate 5 faca
escreval(nums1[cont], " ", nums2[cont])
fimpara
escreval()
Fimalgoritmo
Crie um programa que armazene 10 números digitados pelo
usuário em dois vetores: um somente para números pares, e
outro somente para números ímpares. Após, exiba os valores
dos dois vetores na tela, em sequência. Obs.: As posições que
não receberem valores exibirão o número zero. Não se
preocupe com isso por enquanto.
Algoritmo "Vetor_Par_Impar"
Var
numPar : vetor [0..9] de inteiro
numImpar : vetor [0..9] de inteiro
num, cont : inteiro
Inicio
para cont de 0 ate 9 faca
escreval("Digite um número:")
leia(num)
se (num % 2 = 0 ) entao
numPar[cont] <- num
senao
numImpar[cont] <- num
fimse
fimpara
escreval()
escreval("Resultados:")
escreval("Array de Pares:")
para cont de 0 ate 9 faca
escreval(numPar[cont])
fimpara
escreval()
escreval("Array de Ímpares:")
para cont de 0 ate 9 faca
escreval(numImpar[cont])
fimpara
Fimalgoritmo
Modifique o programa anterior para não aceitar a entrada do número
zero, e requisitar a digitação de outro número neste caso.
Algoritmo "Vetor_Par_Impar_Sem_zero"
Var
numPar : vetor [0..9] de inteiro
numImpar : vetor [0..9] de inteiro
num, cont : inteiro
Inicio
para cont de 0 ate 9 faca
escreval("Digite um número:")
leia(num)
enquanto (num = 0) faca
escreval("Zero é número inválido. Digite outro número:")
leia(num)
fimenquanto
se (num % 2 = 0 ) entao
numPar[cont] <- num
senao
numImpar[cont] <- num
fimse
fimpara
escreval()
escreval("Resultados:")
escreval("Array de Pares:")
para cont de 0 ate 9 faca
escreval(numPar[cont])
fimpara
escreval()
escreval("Array de Ímpares:")
para cont de 0 ate 9 faca
escreval(numImpar[cont])
fimpara
Fimalgoritmo
Modifique novamente o programa anterior, de modo a não exibir na
saída os números zero que são mostrados para todas as posições que
não receberam nenhum valor durante a atribuição (e portanto estão
vazias). Algoritmo "semnome"
Var
numPar : vetor [0..5] de inteiro
numImpar : vetor [0..5] de inteiro
num, cont : inteiro
Inicio
para cont de 0 ate 5 faca
escreval("Digite um número:")
leia(num)
enquanto (num = 0) faca
escreval("Zero é número inválido. Digite outro número:")
leia(num)
fimenquanto
se (num % 2 = 0 ) entao
numPar[cont] <- num
senao
numImpar[cont] <- num
fimse
fimpara
escreval()
escreval("Resultados:")
escreval("Array de Pares:")
para cont de 0 ate 5 faca
se (numPar[cont] <> 0) entao
escreval(numPar[cont])
fimse
fimpara
escreval()
escreval("Array de Ímpares:")
para cont de 0 ate 5 faca
se (numImpar[cont] <> 0) entao
escreval(numImpar[cont])
fimse
fimpara
Fimalgoritmo
Escreva um algoritmo que solicite ao usuário a entrada de 5
nomes, e que exiba a lista desses nomes na tela. Após exibir
essa lista, o programa deve mostrar também os nomes na
ordem inversa em que o usuário os digitou, um por linha.
Algoritmo "Cadastro_de_Nomes"
Var
nomes : vetor [0..4] de caractere
cont : inteiro
Inicio
para cont de 0 ate 4 faca
escreval("Entrecom o",cont+1,"º nome:")
leia(nomes[cont])
fimpara
escreval()
escreval("Os nomes digitados foram:")
para cont de 0 ate 4 faca
escreval(nomes[cont])
fimpara
escreval()
escreval("Os nomes digitados em ordem inversa
foram:")
para cont de 4 ate 0 passo - 1 faca
escreval(nomes[cont])
fimpara
Fimalgoritmo
Procedimento
algoritmo “procedimento"
var
opc : inteiro
inicio
procedimento menu()
inicio
escreval("### MENU ### ")
escreval("(1) Cadastro ")
escreval("(2) Consulta ")
escreval("(3) Listagem ")
escreval("(4) Sair ")
escreval("-------------")
escreva ("Sua Opção: " )
leia(opc)
fimprocedimento
menu()
se opc = 4 entao
escreva("Saindo do sistema")
fimse
fimalgoritmo
algoritmo "variável_global_local"
Variáveis Locais
var
minha_global : inteiro
inicio
minha_global <- 1
escreval(minha_global)
função soma(v1, v2 : inteiro) : inteiro
var
resultado : inteiro
inicio
resultado <- v1 + v2
retorne resultado
fimfuncao
função subtracao(v1, v2 : inteiro) : inteiro
var
resultado : inteiro
inicio
resultado <- v1 - v2
retorne resultado
fimfuncao
escreval(soma(5, 3))
escreval(subtracao(5, 3))
//escreval(resultado)
fimalgoritmo

Você também pode gostar