Prévia do material em texto
Prof. André Yoshimi Kusumoto
Prof. Nivio Paula de Souza
Lógica de Programação e Algoritmos
Instituto de Ciências Exatas e Tecnologia (ICET)
Curso de Ciência da Computação
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Portugol
• O Português Estruturado, ou Portugol, é uma técnica textual de representação de 
algoritmos na qual as estruturas de programação são representadas por um 
subconjunto de palavras da língua portuguesa. Há diversas variações do Portugol, 
porque se trata de uma pseudolinguagem de programação e é utilizada de forma 
acadêmica. Portanto, cada universidade cria sua própria variação, ou utiliza uma 
variação de uma outra universidade, ou utiliza uma variação da internet.
• No nosso caso, utilizaremos:
→ Portugol Studio (https://univali-lite.github.io/Portugol-Studio/) ou
→ Portugol Webstudio (https://portugol.dev/).
2/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Portugol
• Um algoritmo em Portugol é delimitado da seguinte maneira:
programa {
 funcao inicio() {
comando 1;
comando 2;
comando 3;
…
 }
}
3/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Portugol
• As instruções são sequenciais e são escritas de forma similar aos fluxogramas
• Sua interpretação também ocorre da mesma forma.
• A partir do comando de início de algoritmo, as instruções são interpretadas sequencialmente até 
o comando fim.
programa {
 funcao inicio() {
a = 1;
b = 2;
c = a + b;
 }
}
4/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Portugol
• Use indentação nos comandos de acordo com o nível que estejam, ou seja, alinhe comandos 
de mesmo nível e desloque comandos de nível inferior.
Ex.:
programa {
 funcao inicio() {
 comando1;
se condicao1 {
comando2;
comando3;
} senão {
comando4;
comando5;
}
comando6;
 }
}
5/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
• Ao criarmos uma variável, partimos do princípio que em algum momento ou vários momentos 
dentro do nosso algoritmo, ela receberá valores, ou seja, armazenaremos dados na memória 
através de nossas variáveis.
• Para atribuirmos um valor ou uma expressão a uma variável, utilizamos o comando de atribuição 
Assim, a sintaxe do comando é:
Exemplo:
salario = 1000;
nome = "Ana";
identificador = expressão;identificador = expressão;
Comando de Atribuição
6/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Comentários
• Comentários devem ser inseridos no algoritmo a fim de esclarecer seu desenvolvimento e o que 
busca com um trecho de código. Os comentários são inseridos das seguintes formas:
// Comentário de uma linha
/*
 Comentário
 de 
 várias
 linhas.
*/
7/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Comandos de Entrada e Saída
• Para atingirmos os objetivos de um algoritmo, necessitamos receber dados do mundo externo e 
precisamos exteriorizar as informações produzidas. Para obtermos e exteriorizarmos esses 
dados, utilizamos os seguintes comandos de entrada e saída, LEIA e ESCREVA. 
• O comando leia espera receber um determinado dado (sem importar a origem). 
• O comando escreva mostra a informação produzida no vídeo. 
8/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Comandos de Entrada e Saída
Veja a sintaxe dos comandos:
leia(variável);
escreva(lista de constantes, variáveis e/ou expressões);
Exemplo:
leia(numero1);
numero2 = numero1 * 2;
escreva('O dobro do número é ' + numero2);
9/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Exemplos Portugol
Escreva um algoritmo em pseudocódigo que leia os valores B1 e B2 de um aluno, calcule a sua 
média aritmética e mostre no final.
10/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Exemplos Portugol
Escreva um algoritmo em pseudocódigo que leia os valores B1 e B2 de um aluno, calcule a sua 
média aritmética e mostre no final.
programa {
 funcao inicio() {
 inteiro b1, b2
 real media
leia(b1)
 leia(b2)
media =(b1+b2)/2;
escreva(media);
 }
}
Comando de atribuição
 media = (b1+b2)/2;
11/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Operadores Aritméticos
• É comum necessitarmos realizar cálculos matemáticos com as informações que estamos manipulando. 
• Para isso, é necessário sabermos qual a representação dos símbolos de operações matemáticas. Vejamos:
Operador Operação Exemplo
+ Adição 10 + 15
- Subtração 20 – 10
* Multiplicação 5 * 2
/ Divisão 10 / 2 = 5
% Resto da divisão 7 % 2 = 1
Operadores
12/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Exemplos Portugol
Escreva um algoritmo em pseudocódigo que leia os valores B1 e B2 de um aluno, calcule a sua 
média aritmética e mostre no final.
programa {
 funcao inicio() {
 inteiro b1, b2
 real media
 leia(b1)
 leia(b2)
 media =(b1+b2)/2;
 escreva(media);
 }
}
Operadores Aritméticos
“+” e “/”
13/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Operadores Relacionais
• Além de operações matemáticas, é frequente nossa necessidade em comparar informações. 
• Por exemplo: Se média for maior ou igual a 7. Para isso, utilizamos operadores relacionais. 
Operador Relação
== Igualdade
!= Diferente
> Maior que
>= Maior ou igual que
, B
[ ] B >= (A + 2)
[ ] C = (B –A)
[ ] (B + A) B
18/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Exercícios
3) Sabendo que A=5,B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou 
falsas.
[ ] (A > C) e (C 10 ou (A+B) = (C+D)
[ ] (A>=C) e (D >= C)
19/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Constantes, Variáveis e Tipos de Dados
• Variáveis e constantes são os elementos básicos que um programa manipula. 
• Uma variável é um espaço reservado na memória do computador para armazenar um tipo de 
dado determinado.
• Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando 
necessário. 
• Um programa deve conter declarações que especificam de que tipo são as variáveis que ele 
utilizará e as vezes um valor inicial. 
• Tipos podem ser: inteiros, reais, caracteres, etc. 
• As expressões combinam variáveis e constantes para calcular novos valores.
20/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
• Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a 
execução de um programa. 
• Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal. 
Constantes
21/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
• Variável é a representação simbólica dos elementos de um certo conjunto. 
• Cada variável corresponde a uma posição de memória, cujo conteúdo pode se alterado ao longo 
do tempo durante a execução de um programa. Embora uma variável possa assumir diferentes 
valores, ela só pode armazenar um valor a cada instante.
Exemplos de variáveis:
VARIÁVEIS
total = produto * quantidade
VARIÁVEL CONTEÚDO DA 
VARIÁVEL
nome = "JOSÉ";
idade = 50;
Variáveis
22/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Tipos de Variáveis e Constantes
Numéricas
• Específicas para armazenamento de números (cálculos). Podem ser ainda classificadas como 
Inteiras ou Reais. As variáveis do tipo inteiro são para armazenamento de números inteiros e as 
Reais são para o armazenamento de números que possuam casas decimais.
Caracter
• Específicas para armazenamento de 1 caractere. Ex: a.
Cadeia
• Específicas para dados que contenham letras e/ou números. Pode em determinados momentos 
conter somente dados numéricos ou somente literais. Se usado somente para armazenamento 
de números, não poderá ser utilizada para operações matemáticas.
Lógicas 
• Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso.
23/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Exemplos Portugol
Escreva um algoritmo em pseudocódigo que leia os valores B1 e B2 de um aluno, calcule a sua 
média aritmética e mostre no final.
programa {
 funcao inicio() {
 inteiro b1, b2
 real media
 leia(b1)
 leia(b2)
 media =(b1+b2)/2;
 escreva(media);
 }
}
Variáveis
b1, b2 e media???
24/30
Declaração de variáveis
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Introdução à Lógica de Programação
Regras para construção do Algoritmo (1/2)
 Use comentários com frequência. Isto torna o algoritmo mais legível e facilita o entendimento 
da lógica empregada. 
 Seus algoritmos deverão ser lidos e entendidos por outras pessoas (e por você mesmo) 
de tal forma que possam ser corrigidos e receber manutenção. 
Obs: Não se esqueça de atualizar os comentários, em caso de manutenção. Pior do que um programa sem 
comentários, é um programa com comentários errados.
 Use comentários, também, no cabeçalho do algoritmo, incluindo, principalmente:
 Descrição do que faz o algoritmo
 Autor
 Data de criação
25/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Introdução à Lógica de Programação
Regras para construção do Algoritmo (2/2)
 Escolha nomes de variáveis significativos, todavia evite nomes muito longos.
• Prefira SalBruto ou SalarioBruto em vez de SB ou VAR1
• Prefira TotAlunosAprovDireta em vez de TotalAlunosAprovacaoDireta
 Utilize espaços e linhas em branco para melhorar a legibilidade
 Coloque apenas um comando por linha. Vários comandos em uma linha causam ilegibilidade e 
dificultam a depuração.
 Utilize parênteses para aumentar a legibilidade e prevenir erros.
26/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Introdução à Lógica de Programação
Método para desenvolvimento de algoritmos (1/2)
1. Faça uma leitura de todo o problema até o final, a fim de formar a primeira impressão. A 
seguir, releia o problema e faça anotações sobre os pontos principais.
2. Verifique se o problema foi bem entendido. Questione, se preciso, ao autor da especificação 
sobre suas dúvidas. Releia o problema quantas vezes for preciso para tentar entendê-lo.
3. Extraia do problema todas as suas saídas e entradas.
4. Identifique qual é o processamento principal.
5. Verifique se será necessário algum valor intermediário que auxilie a transformação das 
entradas em saídas. Esta etapa pode parecer obscura no início, mas com certeza no 
desenrolar do algoritmo, estes valores aparecerão naturalmente.
27/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Introdução à Lógica de Programação
Método para desenvolvimento de algoritmos (2/2)
5. Teste cada passo do algoritmo, com todos os seus caminhos para verificar se o 
processamento está gerando os resultados esperados. Crie valores de teste para submeter ao 
algoritmo.
6. Reveja o algoritmo, checando as boas normas de criação.
28/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Exercícios
1. Faça um algoritmo que leia os valores de COMPRIMENTO, LARGURA e ALTURA e apresente 
o valor do volume de uma caixa retangular. Utilize para o cálculo a fórmula VOLUME = 
COMPRIMENTO * LARGURA * ALTURA.
2. Escreva uma algoritmo que converta a temperatura de Fahrenheit para Celsius e mostre o 
resultado. C=(F – 32)/1,8
3. Faça um algoritmo que leia um valor inteiro e apresente os resultados do quadrado e do cubo 
do valor lido. 
4. Faça um algoritmo que leia dois valores para as variáveis A e B e efetue a troca dos valores 
de forma que a variável A passe a possuir o valor da variável B e a variável B passe a possuir 
o valor da variável A. Mostre os valores trocados no final.
29/30
Prof. André Y. Kusumoto – andrekusumoto.unip@gmail.com e Prof. Nivio Paula de Souza – nivio.souza@docente.unip.br
Referências
• FARRER, Harry, BECKER, Christiano G., FARIA, Eduardo C., MATOS, Helton Fábio de, SANTOS, Marcos Augusto 
dos, MAIA, Miriam Lourenço. Algoritmos Estruturados. Rio de Janeiro: Editora Guanabara, 1989.
• Forbellone, André Luiz Villar. Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados. 
São Paulo, Prentice Hall, 2005.
• GUIMARÃES, Angelo de Moura, LAGES, Newton A de Castilho. Algoritmos e estruturas de dados. Rio de 
Janeiro: LTC – Livros Técnicos e Científicos Editora, 1985.
• Unicamp - Centro de Computação – DSC. Sérgio de Moraes, abril 2000.
• SALVETTI, Dirceu Douglas, BARBOSA, Lisbete Madsen. Algoritmos. São Paulo: Makron Books, 1998.
• SILVA, Joselias Santos da. Concursos Públicos – Raciocínio Lógico. São Paulo: R&A Editora Cursos e Materiais 
Didáticos, 1999.
• WIRTH, Niklaus. Algoritmos e Estruturas de Dados. Rio de Janeiro: Editora Prentice-Hall do Brasil, 1986.
• Sites na Web: http://www.inf.pucrs.br/~egidio/algo1/
• UNIVALI. Portugol Webstudio. Disponível em https://portugol.dev/.
• UNIVALI. Portugol Studio. Disponível em https://univali-lite.github.io/Portugol-Studio/.
30/30
	Lógica de Programaçãoe Algoritmos
	Portugol
	Slide 3
	Portugol (2)
	Portugol (3)
	Comando de Atribuição
	Comentários
	Comandos de Entrada e Saída
	Comandos de Entrada e Saída (2)
	Exemplos Portugol
	Exemplos Portugol (2)
	Operadores
	Exemplos Portugol (3)
	Operadores (2)
	Operadores (3)
	Operadores (4)
	Prioridade na Avaliação de Expressões
	Exercícios
	Exercícios (2)
	Constantes, Variáveis e Tipos de Dados
	Constantes
	Variáveis
	Tipos de Variáveis e Constantes
	Exemplos Portugol (4)
	Introdução à Lógica de Programação
	Introdução à Lógica de Programação (2)
	Introdução à Lógica de Programação (3)
	Introdução à Lógica de Programação (4)
	Exercícios (3)
	Referências