Buscar

1 Lógica de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 72 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 72 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 72 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Lógica de 
Programação
50010114058010
51110514020010
SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL
ADMINISTRAÇÃO REGIONAL DO SENAC EM MINAS GERAIS
PRESIDENTE DO CONSELHO REGIONAL
Lázaro Luiz Gonzaga
ELABORAÇÃO DO CONTEÚDO
Simone Santos Pereira Bittencourt
REVISÃO LINGUÍSTICA
Elaine Fátima de Souza
GMP/SEMD - Setor de Material Didático
DIAGRAMAÇÃO 
Ricardo Tadeu Profeta
GMP/SEMD - Setor de Material Didático
DIRETOR REGIONAL
Luciano de Assis Fagundes
CAPA
Alex de Souza Carvalho
GMP/SEMD - Setor de Material Didático
PROJETO GRÁFICO
Ricardo Tadeu Profeta
GMP/SEMD - Setor de Material Didático
SENAC.DR.MG. Lógica de programação./Simone Santos Pereira 
Bittencourt. Belo Horizonte: SENAC/MG/SEMD, 2010. 72p. il. Inclui 
Bibliografia. 
Algoritmo; Funções; Vetor; Matriz; Programação. 
Ficha elaborada de acordo com as normas do SICS - Sistema de Informação e Conhecimento 
do Senac
© SENAC/DR.MG.2010 
Setor de Material Didático - SEMD
Rua Tupinambás, 1.086 - Centro
CEP 30.120-070 - Belo Horizonte - Minas Gerais
0800 7244440 - FAX.: (0xx31)3048-9174
Home page: www.mg.senac.br
Reimpressão, 2013
Sumário
O que é Lógica de Programação?, 5
O que é um Algoritmo?, 5
O que é uma Linguagem de Programação?, 6
Programação Estruturada, 6
Identificador, 8
Variáveis, Constantes e Operadores, 9
Operadores, 11
Constante, 13
Construção de um Algoritmo, 14
Comandos de Entrada e Saída de Dados, 18
Estrutura de Condição e Repetição, 21
Vetor e Matriz, 31
Procedimentos e Funções no Portugol, 43
Referências, 72
Lógica de Programação
senac minas 5
O que é Lógica de Programação?
Lógica de programação significa desenvolver um determinado raciocínio 
para programar, ou seja, criar um programa.
O computador executa uma série de instruções através dos programas. 
Para que essas instruções sejam executadas, um profissional da área 
deve escrevê-las primeiro, antes de sua execução. Com isso, surge um 
conceito importante na programação chamado Algoritmo.
O que é um Algoritmo?
Algoritmo é uma sequência de instruções que serão executadas de 
acordo com uma ordem lógica. 
O algoritmo não se aplica apenas na área de Informática, pois podemos 
ter sequência de instruções em qualquer área. Na vida cotidiana, por 
exemplo, podemos ter um algoritmo ensinando a fritar um ovo. Esse 
algoritmo segue uma série de instruções, tais como:
 Â Pegar o ovo.
 Â Pegar a frigideira. 
 Â Pegar a lata de óleo.
 Â Colocar o óleo na frigideira.
 Â Colocar a frigideira no fogão.
 Â Ascender o fogo do fogão.
 Â Quebrar o ovo dentro da frigideira.
 Â Jogar óleo quente sobre o ovo com a colher.
 Â Retirar o ovo da frigideira.
 Â Desligar o fogo do fogão.
Lógica de Programação
senac minas6
Já na área de Informática, podemos ter um algoritmo para somar dois 
números. Ao descrevermos a sequência de instruções necessárias para 
essa soma, podemos perceber que os dois números deverão ser sempre 
digitados para que a soma seja realizada e devemos também, que 
ter um resultado da operação aritmética. Esse algoritmo nos mostra 
a importância da entrada e saída dos dados. No decorrer do curso 
aprenderemos os comandos utilizados para entrada e visualização dos 
dados processados.
Para começarmos a programar, devemos passar por duas etapas:
1ª Etapa: Escrever o algoritmo.
2ª Etapa: Converter o algoritmo em uma linguagem de programação.
O que é uma Linguagem de Programação?
São comandos de informática que farão com que instruções sejam 
executadas. É uma representação concreta de um Algoritmo. Quando um 
Algoritmo é convertido para a linguagem do computador e executado, 
damos o nome de Programa.
Programação Estruturada
A ideia principal da Programação Estruturada é reduzir a complexidade 
das instruções, dividindo-as em três níveis:
 Â Top-Down: do geral para o mais detalhado. 
)) ExEmplo dE uma instrução dEscrita dE forma gEral:
colocar o óleo na frigideira. 
)) ExEmplo da mEsma instrução Escrita dE forma dEtalhada: 
abrir a tampa do recipiente com o óleo, pegar o recipiente 
e levá-lo até a frigideira, virar o recipiente na direção da 
frigideira para que o óleo caia sobre ela.
Lógica de Programação
senac minas 7
 Â Modularização: separar as instruções em módulos. Exemplo: 
criar um módulo com instruções para pegar o ovo, outro módulo 
com instruções para pegar a frigideira, outro para pegar a lata de 
óleo e assim por diante.
 Â Estrutura de Controle: construir cada módulo usando sequência 
simples, comando condicional (se o gás do fogão acabar), 
comando repetitivo (repetir o processo de jogar óleo quente 
sobre o ovo).
Para criarmos os nossos programas iremos usar uma linguagem para 
escrevermos os nossos algoritmos. Na verdade é uma pseudolinguagem 
chamada Portugol. Pelo fato de ser uma pseudolinguagem, não será 
reconhecida pelo computador. 
Durante a construção das instruções é importante ressaltar dois 
aspectos:
1) a Sintaxe, que se refere à forma de escrita;
2) a Semântica, que se refere ao significado da forma escrita.
Sintaxe
 Todos os comando devem ser escritos com letras minúsculas e 
sublinhadas.
 Usaremos “;” (ponto e vírgula) para terminar um comando e “,” 
(vírgula) para separar variáveis e/ou mensagens.
 Não usaremos pontuação ao terminar um comando condicional 
ou repetitivo.
 Usaremos o “.” (ponto final) para finalizarmos o algoritmo.
Lógica de Programação
senac minas8
Identificador
Ao elaborarmos os programas, trabalharemos com dados que serão 
armazenados temporariamente na memória. Mas, antes disso, devemos 
criar nomes que identifiquem esses dados.
)) ExEmplo: 
Programa que somará 2 valores. Devemos criar um identificador 
para armazenar o 1º valor, outro para armazenar o 2º valor e um 
terceiro para armazenar o resultado.
Sintaxe para criação de identificadores
 usar nomes escritos apenas com letras e dígitos numéricos;
 usar nomes escritos com letras maiúsculas;
 usar nomes começados sempre por letras;
 utilizar nomes não muito extensos;
 não usar espaço entre o nome;
 não usar caracteres especiais ( /, ª , { , ”” , $ , * , [ e outros)
)) ExEmplo dE idEntificadorEs:
•	 válidos - SOMA, NOME, TELEFONE
•	 inválidos - 1ªNOTA, 5x8, DATA DE ENTREGA, NOTA(2)
Tipos Básicos de Dados
 Â Inteiro: qualquer número inteiro, seja positivo, negativo ou nulo.
)) ExEmplos: 5, -30, 0, 12500
 Â Real: qualquer número real, seja positivo, negativo ou nulo.
)) ExEmplos: 12, 0 , -3 , 2,50 , -1,5
 Â Caracter: qualquer conjunto de caracteres alfanuméricos.
)) ExEmplos: Ana, Rua X, Escola Alfredo
 Â Lógico: valores “falso” ou “verdadeiro” em proposições lógicas. 
)) ExEmplos: falso, verdadeiro
Lógica de Programação
senac minas 9
Variáveis, Constantes e Operadores
Variável
É um local na memória rotulada com o nome do identificador e cujo 
conteúdo possui um dado do tipo inteiro, real, caracter ou lógico.
Declaração de Variáveis
Sintaxe:
tipo - LISTA DE NOME DE VARIÁVEIS
)) ExEmplo:
inteiro: NUMERO;
lógico: APROVADO;
real: SALDO, SALARIO;
caracter: NOME, CIDADE;
Atribuição de Valores a Variáveis
As variáveis podem receber um valor, uma expressão matemática ou 
o conteúdo de outra variável. Para isso, utilizaremos o símbolo de 
atribuição “ ← ".
Sintaxe: 
IDENTIFICADOR ← valor / expressão matemática / variável
Lógica de Programação
senac minas10
)) ExEmplo:
NUMERO ← 21;
APROVADO ← verdadeiro;
SALDO ← 345,15;
SALARIO ← 320 * 20,00;
NOME ← “Ana”;
CIDADE ← “Betim”;
Importante
•	 Quando	a	variável	é	declarada	do	tipo	inteiro,	ela	poderá	
receber	valor	de	uma	outra	variável	do	tipo	inteiro	ou	um	
número	inteiro.
•	 Quando	 a	 variável	 é	 declarada	 do	 tipo	 real,	 ela	 poderá	
recebervalor	de	uma	outra	variável	do	tipo	inteiro	ou	real	
e	um	número	inteiro	ou	decimal.
•	 Quando	a	variável	é	declarada	do	tipo	caracter,	ela	poderá	
receber	valor	de	uma	outra	variável	do	tipo	caracter	ou	
caracteres	entre	aspas (“ ”).
•	 Quando	a	variável	é	declarada	do	tipo	lógico,	ela	poderá	
receber	valor	de	uma	outra	variável	do	tipo	lógico	ou	os	
valores	verdadeiro	ou	falso.
Lógica de Programação
senac minas 11
Operadores 
Operadores Aritméticos
+ Adição
- Subtração
/ Divisão
* Multiplicação
** Potência
Operadores Relacionais
= igual
> maior que
>= maior ou igual a
< menor que
<= menor ou igual a
< > diferente
Observação
Se	 compararmos	 o	 valor	 de	 uma	 variável	 com	 outra	
através	de	um	Operador	Relacional,	teremos	um	resultado	
verdadeiro	ou	falso.	Exemplo:	SALARIO	>	SALDO
Lógica de Programação
senac minas12
Operadores Lógicos
e conjunção
ou disjunção
não negação
Veja abaixo, o resultado das condições realizadas com os operadores 
“e”,“ou” e “não”.
Operador OU
V ou V verdadeiro
V ou F verdadeiro
F ou V verdadeiro
F ou F falso
Operador E
V e V verdadeiro
V e F falso
F e V falso
F e F falso
Operador NÃO
não V falso
não F verdadeiro
Lógica de Programação
senac minas 13
Operações Mistas
Ordem de Execução Operações
1ª Parênteses e funções
2ª
Operadores aritméticos:
 - potência
 - multiplicação e divisão
 - adição e subtração
3ª Comparações
4ª
Operadores lógicos:
- não
- e
- ou
Funções
raiz(n) Calcula a raiz quadrada de n.
mod Fornece o resto da divisão entre dois valores inteiros.Exemplo: 7 mod 2 (resultado 1)
div
Fornece o quociente da divisão entre dois valores 
inteiros.
Exemplo: 7 div 2 (resultado 3)
Constante
É um local na memória rotulada com um nome, declarado no início do 
algoritmo e o seu conteúdo não pode ser alterado. 
)) ExEmplo: 
PI ← 3,14;
Lógica de Programação
senac minas14
Construção de um Algoritmo
Para darmos início a um algoritmo devemos escrever o comando início 
em minúsculo e sublinhado. Para finalizarmos um algoritmo, devemos 
escrever o comando fim em minúsculo, sublinhado e com um ponto final. 
Entre os comando Início e fim estarão as declarações e inicializações de 
variáveis e em seguida os comandos.
Sintaxe:
início
{ este algoritmo tem “ tal “ objetivo }
declaração e inicialização de variáveis
comandos e/ou estruturas (processamento)
 fim.
)) ExEmplo:
Veja o algoritmo que calcula o salário-família de um funcionário 
com 3 dependentes. Imprima o nº de dependentes, o salário-família 
por dependente e o cálculo do salário-família do funcionário.
O benefício por dependente é R$15,50.
Lógica de Programação
senac minas 15
início
{Calcular o salário-família do funcionário}
inteiro:NUMDEP;
real: SALARIO, CALCULO;
NUMDEP ← 3;
SALARIO ← 15,50;
CALCULO ← NUMDEP*SALARIO
Imprima (“Salário Família = “, CALCULO);
 fim.
)) outro ExEmplo:
Veja o algoritmo que calcula a soma e a média de dois números 
inteiros. Imprima o resultado da soma e da média.
início
{Calcular a soma e média de dois números inteiros}
inteiro:NUM1, NUM2, SOMA;
real: MEDIA;
NUM1 ← 10;
NUM2 ← 20;
SOMA ← NUM1+NUM2;
MEDIA ← SOMA/2
Imprima (“Soma = “, SOMA);
Imprima (“Média = “, MEDIA);
 fim.
Lógica de Programação
senac minas16
Você pode fazer o cálculo da soma e da média na hora da impressão. 
Veja o exemplo:
início
{Calcular a soma e média de dois números inteiros}
inteiro:NUM1, NUM2, SOMA;
real: MEDIA;
NUM1 ← 10;
NUM2 ← 20;
Imprima (“Soma = “,NUM1+NUM2);
Imprima (“Média = “,(NUM1+NUM2)/2);
 fim.
Comentário
Durante a construção de um algoritmo, sentimos a necessidade de 
acrescentar alguns textos explicativos sobre os comandos escritos. 
Esses textos não fazem parte do programa, ou seja, não são comandos 
que serão executados, são apenas comentários de trechos do algoritmo. 
Para indicar os comentários no meio do algoritmo, colocamos os 
comentários entre “chaves { }”.
Lógica de Programação
senac minas 17
)" atividadE 1: Construção de Algoritmo
1. Faça um algoritmo que calcule a média das seguintes notas 
70,50,80,90 e 60.
2. Faça um algoritmo que calcule o produto dos números 
10,20,5.
3. Faça um algoritmo que calcule a soma, o produto e a média 
dos valores: 20,30,40 e 50.
4. Faça um algoritmo que calcule o salário-família de um 
funcionário com 3 dependentes. O benefício por dependente 
é de R$9,35.
5. João foi à feira e comprou 3kg de batatas, 2kg de cenoura 
e 1kg de chuchu. O preço do sacolão é de R$ 0,49. Faça um 
algoritmo que calcule o valor total da compra.
6. Marta foi à farmácia comprar alguns remédios e o valor total 
da compra foi R$100,00. Mas, Marta possui um convênio 
que lhe concedia 10% de desconto. Faça um algoritmo que 
calcule quanto Marta pagou.
7. Rafael comprou um computador por U$ 800, considerando 
que o valor do dólar é R$1,75, faça um algoritmo que calcule 
o valor em reais.
8. A Sra. Fernanda está interessada em fazer uma compra de 
um veículo, cujo preço é R$ 13.500,00 e ela deverá dar uma 
entrada de 30% do valor do veículo e o restante será dividido 
em 36 vezes sem juros. Faça um algoritmo que calcule o valor 
de cada parcela.
Lógica de Programação
senac minas18
Comandos de Entrada e Saída de Dados
No exemplo anterior, referente ao Cálculo do Salário-Família, foram 
atribuídas às variáveis NUMDEP e SALARIO os valores 3 e 15,50 
respectivamente. Imagine agora, que o número de dependentes e o 
valor do Salário-Família passem a ser informados pelo usuário durante 
a execução do programa. Para isso, precisaremos de um comando 
de entrada, que permitirá ao usuário informar os valores a serem 
armazenados nas variáveis.
Esse comando é chamado “leia” e classificado como comando de 
entrada, devido ao uso do teclado ou outro periférico de entrada para 
a entrada de valores.
Sintaxe:
 leia ( VAR1, VAR2, VAR3, . . . , VARn );
Onde VAR1, VAR2, VAR3, . . . , VARn são variáveis que serão lidas através 
de um periférico de entrada.
Lógica de Programação
senac minas 19
)) ExEmplo:
início
{Calcular o salário-família do funcionário}
inteiro:NUMDEP;
real: SALARIO, CALCULO;
leia(NUMDEP);
leia(SALARIO);
CALCULO ← NUMDEP*SALARIO
Imprima (“Salário-Família = “, CALCULO);
 fim.
Em todos os exemplos anteriores o resultado dos cálculos foram 
impressos através de um comando chamado “imprima”, o qual é 
utilizado para visualizar ou imprimir textos ou dados armazenados nas 
variáveis através de um periférico de saída (Monitor, impressora, dentre 
outros).
Sintaxe:
imprima ( VAR1, VAR2, VAR3, . . . , VARn );
Onde VAR1, VAR2, VAR3, . . . , VARn são variáveis que possuiem valores 
a serem exibidos através de um periférico de saída.
 
Lógica de Programação
senac minas20
)" atividadE 2: comandos dE Entrada E saída dE dados
1. Faça um algoritmo que leia 5 números e eleve esses números 
ao cubo. O programa deverá imprimir o resultado de cada 
número.
2. Faça um algoritmo que calcule o valor pago a um professor 
que trabalhou em uma escola ganhando R$20,00 a hora. O 
usuário deverá informar o nº de horas trabalhadas para que 
o cálculo seja realizado.
3. Faça um algoritmo que:
•	 leia 4 números;
•	 calcule o quadrado de cada número;
•	 imprima os valores lidos e seus respectivos quadrados.
4. Faça um algoritmo que calcule 10% de lucro no preço de um 
produto. O usuário deverá informar o preço da compra e o 
programa informará o preço da venda, na qual foi acrescido 
o lucro.
5. Juca paga R$0,40 por kWh consumido de luz. Faça um 
algoritmo que o usuário informe a quantidade de kWh 
consumido e o programa imprima o valor do consumo.
 
Lógica de Programação
senac minas 21Estrutura de Condição e Repetição
Estrutura Condicional 
Durante a construção de um Algoritmo podemos nos deparar com 
situações que para realizarmos determinadas ações dependeremos de 
certas condições. 
)) ExEmplo: 
Para efetuarmos a divisão entre 2 números, dependeremos do 
denominador ser diferente de 0. Para elaborarmos uma condição, 
devemos usar o comando condicional “se”. 
O comando “se” foi dividido em 3 alternativas: Alternativa 
Simples, Alternativa Composta e se Aninhado.
Alternativa Simples
Com o comando condicional, a ação a ser executada dependerá do 
resultado da condição imposta, que poderá ser verdadeiro ou falso. No 
caso da Alternativa Simples, se o resultado da condição for verdadeiro 
todos os comandos após a palavra então serão executados e se o 
resultado da condição for falso não será executado nenhum comando 
específico.
O comando “se” tem uma estrutura que se inicia pelo nome do comando 
“se” e finaliza com o nome “fim se” seguido de ; (ponto e vírgula). 
Após fim se; os comandos subsequentes serão executados.
Lógica de Programação
senac minas22
Sintaxe:
 se condição
 então comando1;
 comando2;
 ...
 fim se.
não usar ; (ponto e vírgula) no final da condição
Importante
Condição	é	qualquer	expressão,	cujo	resultado	seja	falso	
ou	 verdadeiro.	 Em	 toda	 condição	 teremos	 operadores	
relacionais	e/ou		operadores	lógicos	com	duas	ou	mais	
condições.
)) ExEmplo:
início
{Divisão entre dois números}
real: NUM, DEN, DIV;
leia(NUM, DEN);
se DEN<>0
então DIV ← NUM/DEN;
fim se;
Imprima (“Divisão = “, DIV);
 fim.
Lógica de Programação
senac minas 23
Alternativa Composta
No caso da Alternativa Composta, se o resultado da condição for 
verdadeiro todos os comandos após a palavra então serão executados 
e se o resultado da condição for falso todos os comandos após a palavra 
senão serão executados.
Sintaxe:
se condição
então comando1;
 comando2;
senão comando3;
 comando4;
fim se.
Os comandos 1 e 2 serão executados quando a condição for verdadeira 
e os comandos 3 e 4, quando a condição for falsa.
)) ExEmplo:
início
{Verifica se o número é positivo ou negativo}
real: NUM;
leia(NUM);
se NUM>=0
então imprima (“Número Positivo”) 
senão imprima (“Número Negativo”)
fim se;
Imprima (“Divisão = “, DIV);
 fim.
Lógica de Programação
senac minas24
SE Aninhado
No “se aninhado” utilizaremos uma nova estrutura condicional, ou seja, 
outro comando se após a palavra então ou após a palavra senão.
)) ExEmplo:
início
{Verifica se o aluno foi Aprovado, Reprovado 
ou está de Recuperação}
real: NOTAFINAL;
leia(NOTAFINAL);
se NOTAFINAL<=40
então imprima (“Aluno Reprovado”);
senão se (NOTAFINAL>40) e (NOTAFINAL <60) 
então imprima (“Aluno de Recuperação”);
senão se NOTAFINAL > 60
então imprima(“Aluno Aprovado”);
fim se;
fim se; 
fim se;
 fim.
Lógica de Programação
senac minas 25
)" atividadE 3: comando sE
1. Faça um algoritmo que leia algumas informações sobre uma 
pessoa:
•	 Código do sexo (1=Feminino e 2=Masculino)
•	 Nome
•	 Idade
•	 Código do estado civil (1=Solteiro, 2=Casado, 
3=Viúvo, 4=Divorciado e 5=Outros)
Imprima o nome, idade, sexo e estado civil.
2. Calcule o valor que um funcionário paga de imposto, através 
da digitação de algumas informações:
•	 Código do funcionário
•	 Nome
•	 Salário
As condições para cálculo do imposto são:
•	 Isento para salário inferior a R$500,00
•	 Taxa de 5% para salário entre R$500,00 e R$1.000,00
•	 Taxa de 10% para salário acima de R$1.000,00
3. Faça um algoritmo que leia 3 números e calcule a soma 
apenas dos números ímpares.
Lógica de Programação
senac minas26
Estruturas de Repetição
Comando ENQUANTO...FAÇA
Muitas vezes, precisamos que um comando ou uma sequência de 
comandos sejam executados mais de uma vez. Para isso, precisaremos 
utilizar um comando do Algoritmo que proporcione tal repetição de 
comandos. Esse comando é chamado “enquanto”.
Sintaxe:
enquanto condição verdadeira faça
comando1;
comando2;
comando3; 
 .
 .
fim enquanto;
Para que esta repetição seja executada ou não, adotaremos o chamado 
FLAG. O FLAG é uma condição que determina se a repetição irá 
acontecer ou não. Para que a repetição aconteça, a condição deve ser 
verdadeira, caso contrário, o próximo comando, após o fim enquanto, 
será executado.
 Observação
Ao	 determinarmos	 a	 condição	 do	 comando	“enquanto”	
devemos	 ter	 muito	 cuidado	 para	 que	 a	 condição	 não	
fique	infinita.
Lógica de Programação
senac minas 27
)) ExEmplo:
início
{Calcular o salário-família do funcionário}
Caracter: NOME;
inteiro:NUMDEP;
real: SALARIO, CALCULO;
leia(NOME);
leia(SALARIO);
leia(NUMDEP);
enquanto SALARIO < > 0 faça
CALCULO ← NUMDEP*SALARIO
imprima (“O funcionário “ NOME 
“terá um benefício de “ CALCULO);
leia (NOME , SALÁRIO, NUMDEP);
fim enquanto;
 fim.
Comando PARA...DE...ATÉ...PASSO...FAÇA 
Conheça agora, outro comando de repetição chamado “Para”. Esse 
comando é controlado por uma variável numérica que determina 
quantas vezes haverá repetição.
Sintaxe:
para VAR1 de VALINI até VALFIM passo VALINC faça 
comando1;
comando2;
.
fim para;
Lógica de Programação
senac minas28
VAR1 é a variável numérica de controle; VALINI é o valor do limite inferior; 
VALFIM é o valor do limite superior e VALINC é o valor do incremento 
ou decremento da variável de controle, que pode ser omitido quando 
for igual a 1 (um). A variável VAR1 é inicializada com o valor de VALINI 
e os comandos serão executados até que o valor VAR1, que sofrerá 
o incremento ou decremento VALINC, ultrapasse VALFIM, isso quando 
o programa abandonar a estrutura de repetição, indo para o próximo 
comando após o fim para.
Veja abaixo o exemplo do Algoritmo que imprime os números pares 
de 0 a 10, usando o comando ENQUANTO e o mesmo Algoritmo usando 
o comando PARA.
Comando ENQUANTO 
NUM * 0;
enquanto NUM <= 10 faça
imprima (NUM);
NUM ← NUM + 2;
fim enquanto;
Comando FAÇA
para NUM de 0 até 10 passo 2 faça
imprima (NUM);
fim para;
Para interromper a estrutura de repetição antes do seu término, 
utilizaremos o comando abandone. Quando esse comando for 
executado, o computador abandonará os comandos da estrutura de 
repetição e irá para o primeiro comando após o fim da estrutura de 
repetição usada.
Lógica de Programação
senac minas 29
Veja o exemplo do comando abandone:
leia (VALOR);
enquanto VALOR < > 0 faça
se VALOR < 0
então abandone;
fim se;
imprima (VALOR);
fim enquanto;
imprima (“O programa prossegue a partir desta linha”);
Comando REPITA...ATÉ
Na estrutura de repetição “repita”, a condição para repetição dos 
comandos é testada no final da estrutura, ao contrário do comando 
“enquanto” em que a condição é testada no início. Sendo assim, as 
instruções da estrutura de repetição “repita” são executadas pelo 
menos uma vez antes do primeiro teste da condição.
 
Sintaxe:
repita
 Comando1;
 Comando2;
 .
 .
até condição
)) ExEmplo:
inicio
 NUM: inteiro;
 repita
 imprima NUM;
 NUM←NUM +1;
 até NUM > 10
fim.
Lógica de Programação
senac minas30
)" atividadE 4: Estruturas dE rEpEtição
1. Faça um algoritmo que leia 200 números e calcule a soma 
apenas dos números ímpares.
2. Faça um algoritmo que calcule a média dos números pares 
entre 150 e 250.
3. Faça um algoritmo que leia 50 números, eleve cada número 
ao cubo e imprima o resultado de cada um.
4. Faça um algoritmo que imprima o quadrado dos números de 
1 a 100.
5. Na última pesquisa feitano ano de 2010 sobre a população 
brasileira, foram pesquisados 1000 habitantes de uma 
cidadezinha do interior de Minas. Durante a pesquisa foram 
coletados os seguintes dados: idade, sexo (F/M) e salário. Faça 
um algoritmo que informe:
•	 a média do salário dos pesquisados
•	 quantidade de mulheres com salário acima R$800,00
•	 quantidade de homens
6. Faça um algoritmo que leia a Nota Final de 60 alunos de uma 
turma e imprima a maior nota.
7. Faça um algoritmo que leia a Nota Final de 40 alunos de uma 
turma e imprima a menor nota.
 
Lógica de Programação
senac minas 31
Vetor e Matriz
Vetores
As variáveis estudadas até hoje são capazes de armazenar apenas 1 dado 
por vez. Mas, poderá existir situações em que precisaremos armazenar 
mais de um dado em cada variável. Para armazenarmos mais de um 
dado em uma variável devemos declará-la como sendo do tipo vetor.
O que é um vetor?
É um tipo de variável capaz de armazenar mais de uma dado. 
É representado na memória desta forma:
1 2 3 4 5 6 7 8 9 10
70 90,5
Sintaxe de Declaração 
tipo v = vetor[LIMIN:LIMSU] < tipo básico >;
 v : NOME;
 v – corresponde ao tipo VETOR.
 LIMIN e LIMSU – correspondem ao tamanho do vetor, valor inicial 
e valor final que deverão ser números inteiros.
 <Tipo básico> - corresponde ao tipo de dado que será 
armazenado no vetor. 
 Nome – corresponde ao nome do vetor. Deve-se seguir as mesmas 
regras para nomes de variáveis.
Lógica de Programação
senac minas32
Declaração do Vetor
tipo v = vetor[1:10] real;
 v : NOTA;
Atribuição de valor ao conteúdo do Vetor 
 Para atribuir as notas 70 e 90,5 nos índices 1 e 2 do vetor NOTA, 
veja o exemplo abaixo:
NOTA[1] ← 70;
NOTA[2] ← 90,5;
 Para inicializarmos todos os índices do vetor com um mesmo valor, 
podemos usar o nome do vetor dissociado do índice, conforme 
exemplo abaixo:
NOTA ← 0 
equivale a 
NOTA[1] ← 0;
NOTA[2] ← 0;
 . . .
NOTA[10] ← 0;
 Para inicializar um vetor com valores diferentes, utilizamos um 
comando único.
NOTA ← (70, 90,5, 100, 60, . . ., 78)
Lógica de Programação
senac minas 33
equivale a:
NOTA[1] ← 70;
NOTA[2] ← 90,5;
NOTA[3] ← 100;
NOTA[4] ← 60;
. . .
NOTA[10] ← 78;
Utilizando o comando LEIA para preencher um Vetor 
O preenchimento do vetor pode ser individual ou de uma única vez, 
através do comando leia. 
Sempre que o nome de um vetor estiver dissociado do índice, significa 
que todos os índices serão lidos de uma só vez. 
Veja o exemplo abaixo:
Leia (NOTA) 
equivale a: 
leia (NOTA[1]);
leia (NOTA[2]);
 . . .
leia (NOTA[10]);
Utilizando o comando IMPRIMA para imprimir um Vetor 
A impressão do vetor pode ser individual ou de uma única vez, através 
do comando imprima. 
Sempre que o nome de um vetor estiver dissociado do índice, significa 
que todos os índices serão impressos de uma só vez. 
Lógica de Programação
senac minas34
Veja o exemplo abaixo:
imprima (NOTA) 
equivale a:
imprima (NOTA[1]);
imprima (NOTA[2]);
 . . .
imprima (NOTA[10]);
Exemplo de um Algoritmo com Vetor 
início
tipo v = vetor[1:10] real;
v : NOTA;
real: SOMA;
inteiro: I;
SOMA ← 0;
para I de 1 até 10 faça
leia ( NOTA[I]);
SOMA ← SOMA + NOTA[I];
fim para;
para I de 1 até 10 faça
imprima (NOTA[I]);
fim para; 
fim.
Lógica de Programação
senac minas 35
Matrizes 
A matriz é semelhante a um vetor, porém ela é construída por linhas e 
colunas, parecendo- se com uma tabela onde cada elemento é localizado 
pelo encontro da linha com a coluna.
Sintaxe de Declaração 
Um dos tipos 
existentes:
 - Real
 - Inteiro
 - Caracter
 - Lógico
tipo m= matriz [ LMI1:LMS1,LMS2:LMI2 ] <Tipo - básico>;
m: NOME;
 v – corresponde ao tipo MATRIZ.
 LMI1 - corresponde ao Limite inferior 1.
 LMS1 - corresponde ao Limite superior 1.
 LMI2 - corresponde ao Limite inferior 2.
 LMS2 - corresponde ao Limite superior 2.
 <Tipo básico> - corresponde ao tipo de dado que será 
armazenado na matriz. 
 NOME – corresponde ao nome da matriz. Deve-se seguir as 
mesmas regras para nomes de variáveis.
O número de elementos de uma matriz é dado por:
NE = (LMS1 - LMI1 + 1) * (LMI2 - MS2 + 1)
Lógica de Programação
senac minas36
Declaração da Matriz
tipo m = matriz [1:4,1:4] real; 
m:NOTA; 
Número de Linhas
Número de Colunas
Atribuição de valor ao conteúdo da Matriz 
 Numa matriz 4 x 4, podemos atribuir os valores 100 e 200 nas 
posições 1,1 e 1,2 da matriz NOTA. 
Veja o exemplo abaixo:
NOTA[1,1] ← 100;
NOTA[1,2] ← 200;
1 2 3 4
1 100 200
2
3
4
- Nº Elementos: (4 - 1 + 1) * (4 - 1 + 1) = 16
Lógica de Programação
senac minas 37
 Para inicializarmos todas as posições da matriz com um mesmo 
valor, podemos usar o nome da matriz dissociado do índice, 
conforme exemplo abaixo:
NOTA ← 0 
equivale a:
NOTA[1,1] ← 0;
NOTA[1,2] ← 0;
 . . .
NOTA[4,4] ← 0;
Utilizando o comando LEIA para preencher uma Matriz 
O preenchimento da matriz pode ser individual ou de uma única vez, 
através do comando leia. 
Sempre que o nome de uma matriz estiver dissociado do índice, significa 
que todos os índices serão lidos de uma só vez. 
Veja o exemplo abaixo:
Leia (NOTA) 
equivale a: 
leia (NOTA[1,1]);
 . . .
leia (NOTA[4,4]);
Lógica de Programação
senac minas38
Utilizando o comando IMPRIMA para imprimir uma Matriz 
A impressão do vetor pode ser individual ou de uma única vez, através 
do comando imprima. 
Sempre que o nome de um vetor estiver dissociado do índice, significa 
que todos os índices serão impressos de uma só vez. 
Veja o exemplo abaixo:
imprima (NOTA) 
equivale a:
imprima (NOTA[1,1]);
 . . .
imprima (NOTA[4,4]);
Lógica de Programação
senac minas 39
Exemplo de um Algoritmo com Matriz 
início
tipo m = matriz[1:4,1:4] real;
m : NOTA;
real : SOMA;
inteiro: I, J;
SOMA ← 0;
para I de 1 até 4 faça
para J de 1 até 4 faça
leia ( NOTA[I,J]);
SOMA ← SOMA + NOTA[I,J];
fim para;
fim para;
para I de 1 até 4 faça
para J de 1 até 4 faça
imprima ( NOTA[I,J]);
fim para;
fim para;
fim.
Lógica de Programação
senac minas40
)" atividadE 5: vEtor E matriz
ExErcício dE vEtor
1. De acordo com a tabela abaixo, calcule e imprima a soma e a 
média dos valores contidos em cada posição do vetor.
90 70 60 40 80
2. Faça um algoritmo que crie dois vetores de 30 posições. No 
primeiro vetor, preencher as 30 posições com o número zero. 
No segundo vetor preencher, cada posição do vetor, com o 
resultado do quadrado do seu índice. 
)) ExEmplo: 
Posição 1 terá 1, posição 2 terá 4, posição 3 terá 9 e assim 
por diante. imprima os elementos do 1º e 2º vetores.
3. No curso de Pós-graduação de uma determinada faculdade, 
foram aplicadas 2 avaliações para 30 alunos. Crie um vetor 
para armazenar as notas da 1ª avaliação e outro vetor para 
armazenar as notas da 2ª avaliação. Calcule e imprima a nota 
final (soma das 2 avaliações) de cada aluno e a média da 
turma.
4. Faça um algoritmo que preencha um vetor com números 
ímpares de 100 a 200 e os imprima invertidamente. 
)) ExEmplo: 
Preencha: 101, 103, 105, .... e Imprima: 199, 197, 195 ...
Lógica de Programação
senac minas 41
ExErcício dE matriz 
1. Calcular A + B e A - B, sabendo que:
A= 3 -2
 5 11
B= 5 7
 -4 6
2. Calcular A + B e A - B, sabendo que:
A= 1 0 7
 6 4 5
B= 8 -2 4
 0 -6 -4 
3. Faça um algoritmo que leia uma matriz 4 x 4 e imprima o 
maior valor encontrado nesta matriz, a média dos valores e a 
diagonal principal.4. Faça um algoritmo que leia 30 números e preencha uma 
matriz. Imprima a soma dos elementos que compõem a 
diagonal secundária.
Lógica de Programação
senac minas42
5. Sabe-se que existe uma matriz de 12 colunas (1 a 12) 
representadas por meses e de 4 linhas (2006 a 2010) 
representadas por anos. Essa matriz armazena o valor do 
faturamento anual dos últimos 4 anos de uma Empresa de 
Cosméticos. 
Faça um algoritmo que leia essa matriz e que:
a) informe o valor do faturamento de cada ano;
b) imprima o menor faturamento anual;
c) imprima o faturamento médio dos mês de dezembro de 
cada ano.
6. Faça um algoritmo que leia duas matrizes 5 x 10 e que gere 
a terceira matriz, contendo em cada elemento a média dos 
elementos das outras duas matrizes lidas. Imprima a média 
dos elementos da terceira matriz.
 
Lógica de Programação
senac minas 43
Procedimentos e Funções no Portugol 
Procedimento e função é caracterizado como sendo uma técnica de 
modularização, ou seja, criar programas em módulos. Essa técnica é 
muito utilizada quando criamos programas grandes, pois podemos dividir 
esse programas em módulo, ou seja, subprogramas independentes um 
do outro. 
Como até o momento utilizamos apenas um bloco no Algoritmo, 
delimitado por início e fim, aprenderemos programas utilizando a 
técnica de modularização, através de um Procedimento e uma Função. 
Tanto o procedimento quanto a função possuem a mesma estrutura de 
um programa.
O módulo principal recebe o nome de Programa Principal e os demais 
módulos de subprogramas ou bloco interno. Quando executamos um 
programa, as variáveis declaradas dentro do programa principal são 
criadas na memória e permanecem ativas até o término da execução do 
programa, já as variáveis declaradas dentro de um subprograma, ficam 
ativas quando o subprograma começa a ser executado e permanecem 
ativas até o término da execução do subprograma. As variáveis de um 
subprograma só são reconhecidas dentro dele.
Variáveis Locais e Globais
As variáveis que são declaradas dentro de um subprograma são chamadas 
de variáveis locais. As variáveis locais só são criadas na memória, quando 
necessário, ou seja, apenas quando o procedimento ou a função são 
executados. Com isto, podemos gerenciar a utilização da memória, pois 
as variáveis que são criadas dentro do programa principal, chamadas 
de variáveis globais, são reconhecidas tanto no programa principal, 
quanto no subprograma e ficam na memória durante toda a execução 
do algoritmo, sendo que as variáveis locais só ficam na memória e são 
reconhecidas durante a execução do subprograma.
Lógica de Programação
senac minas44
Procedimento
O procedimento é um bloco de comandos que serão executados 
apenas quando forem chamados. Ao término dos comandos dentro 
do procedimento, o próximo comando a ser executado será após o 
comando que chamou o procedimento. 
Ao	criarmos	um	procedimento	devemos	dar	um	nome	
para	ele	no	cabeçalho.	
Sintaxe:
procedimento <nome do procedimento> [lista de parâmetros];
início
{declaração de variáveis}; 
comando1;
comando2;
.
. 
comandoN;
fim.
Lembrar que, no Portugol, 
um bloco é composto por 
um conjunto de instruções 
delimitadas pelos comandos 
início e fim.
Lógica de Programação
senac minas 45
)) ExEmplo:
procedimento CABECALHO;
início
inteiro: I; 
imprima(“SENAC - Serviço Nacional de Aprendizagem Comercial”);
para I de 1 até 80 faça
 imprima(“-“);
fim para;
fim.
Lista de Parâmetros: correspondem a variáveis que irão receber o 
conteúdo passado no ato da chamada do procedimento. Nem sempre 
o uso do parâmetro é necessário. 
Importante
Um	procedimento	não	retorna	valor	para	o	corpo	do	
algoritmo	após		a	sua	execução.
Lógica de Programação
senac minas46
Passagem de Parâmetros 
Denominamos “Passagem de Parâmetros” quando a lista de 
parâmetros recebe conteúdos a serem passados no ato da chamada 
do procedimento ou função. A passagem de parâmetros pode ser por 
valor ou referência. A passagem por valor é quando uma cópia da 
variável original é passada ao parâmetro, e o valor original não sofre 
alterações. Quando a passagem é por referência, toda modificação 
feita na variável de parâmetro é repassada à variável utilizada na 
chamada.
Função
As funções são muito parecidas com os procedimentos. A principal 
diferença é que a função sempre retorna (devolve) um valor. Esse valor 
é retornado no lugar onde a função foi chamada. A função é muito 
utilizada quando tivermos a necessidade de atribuir o resultado dela 
a uma variável ou quando precisamos passar esse resultado para uma 
expressão aritmética ou até mesmo imprimi-las.
Lógica de Programação
senac minas 47
Sintaxe:
função <nome da função> [<lista de parâmetros>] : tipo-básico;
início
<declaração de varáveis locais>;
comando1;
comando2;
.
.
.
comandoN;
<nome da função> ← expressão;
fim. 
)) ExEmplo:
início
função QUADRADO (NUM) : inteiro;
início
QUADRADO ← NUM ** 2;
fim; 
inteiro : I,N;
para i de 1 até 10 faça 
leia (N)
imprima ( “ O quadrado de “, N, “é : “,QUADRADO (N));
fim para;
fim.
Lógica de Programação
senac minas48
)" atividadE 6: procEdimEnto E função
1. Faça uma função que some 3 valores e retorne o resultado.
2. Faça uma função que calcule a média de 4 valores e retorne 
o resultado.
3. Faça um procedimento que some 3 valores e imprima o 
resultado.
4. Faça um procedimento que calcule a média de 4 valores e 
imprima o resultado.
5. Faça uma função que calcule a potência de valores que 
serão passados como parâmetro. Passar como parâmetro: o 
expoente e a base.
6. Faça uma função que retorne o valor absoluto de um número 
(ausência do sinal -/+), ou seja, se o número passado como 
parâmetro for negativo, retornará o número positivo, mas 
sem o sinal do +.
 
Lógica de Programação
senac minas 49
)" ExErcícios propostos 
1. Foram abertas as inscrições para o concurso da Prefeitura 
de Belo Horizonte. Todos os candidatos deverão, no ato da 
inscrição, informar os dados pessoais. De acordo com as 
regras do Portugol, crie 5 variáveis que represente alguns 
dados pessoais. 
2. O setor de crediário de uma loja de calçados cadastra os 
seus clientes antes de imprimir o carnê. Durante o cadastro a 
atendente solicita um comprovante de renda e os seguintes 
documentos: RG, CPF, Título de eleitor e Carteira de Trabalho. 
Crie uma variável precedida do seu tipo para representar o 
comprovante de renda e outras também precedidas dos seus 
tipos para representar cada documento solicitado. 
3. De acordo com as regras do Portugol, identifique e justifique 
os nomes de identificadores inválidos.
a) SALARIO
b) 13ºSALARIO
c) DIA/MÊS/ANO
d) VAGA2
e) NOTA1
f) aluno
g) DATA-ADMISSAO
h) ESTADO CIVIL
4. Crie duas variáveis quaisquer para cada tipo: Inteiro, Real, 
Caracter e Lógico.
5. Num algoritmo foram criadas as seguintes variáveis:
Inteiro: CODIGO, NUMERO;
real: SALARIO, TOTAL;
caracter: RUA, CIDADE;
lógico: POSITIVO, MARCADO;
Lógica de Programação
senac minas50
Verifique se estas variáveis declaradas poderão receber os 
seguintes valores:
a) CODIGO←SALARIO;
b) SALARIO←NUMERO;
c) NUMERO←SALARIO;
d) RUA←MARCADO;
e) CIDADE←”BETIM”;
f) RUA←”MARCADO”;
g) POSITIVO←FALSO;
h) MARCADO←”FALSO”;
6. Conforme exemplo abaixo, quais são os valores armazenados 
nas variáveis RESULTADO do tipo inteiro, W do tipo lógico e 
TESTE do tipo caracter:
a) RESULTADO←(7 mod 2) * 5 – 2 ** 2;
b) X←4;
 Y←2;
 Z←X+Y;
 W←(X<Y) ou (Z<Y**2) e (Y>5) ou (Z>X);
c) A←”Cabelo”
 B←” ”
 C←”Castanho”
 TESTE←A+B+C
7. Observe as expressões abaixo e informe o resultado de cada 
uma:
X←100;
Y←-5;
Z←falso;
W←verdadeiro;Lógica de Programação
senac minas 51
a) X>Y;
b) X+Y>110;
c) não W;
d) (Y>X) e não Z;
e) (X>Y) ou (X>10);
f) (X=Y) ou (Z ou W) e (X=100);
g) não (Z e W);
h) (Y<X) e (X+Y<100) e não W;
i) X + Y * 2 < 4 ** 2 e Z ou W e (Y > -3)
8. Observe abaixo as operações mistas e escreva, para cada item, 
a precedência das operações:
a) 100 – X ** Y * (2 + A);
b) X + Y e X / 4;
c) não W ou X > Y e Z;
d) (Y>10) e não Z;
e) X + 4 * 2 ou X > 10 ** 2;
f) X * 2 > 4 e X mod 2 = 0;
g) não Z e W;
h) Y<X e X+Y<100 e não Z;
9. Na matemática escrevemos equações algébricas conforme 
exemplo abaixo. Reescreva estas equações em Portugol.
a) 1 + 1x
 y
b) x + y * 10
 2
c) 2x2 + 3x -2
d) y + x +2
 x + y
e) 1 + 1 + 32
 x y
f) x + 1 + y
 2 
Lógica de Programação
senac minas52
10. Observe o algoritmo abaixo e informe qual o valor da 
variável A:
inteiro: X, Y, Z;
lógico: A, B;
X←1;
Y←2;
Z←3;
A←não B;
B←(X>Y) e (Z>6);
Importante
Existe	 um	 erro	 no	 algoritmo	 acima?	 Caso	 exista,	 faça	
as	 correções	 e	 informe	novamente	 o	 valor	 contido	na	
variável	A.
11. Quais resultados serão impressos no algoritmo abaixo?
inicio
Inteiro: NUM, X, Y, Z, W;
NUM←3264;
W←NUM mod 10;
Z←(NUM div 10) mod 10;
Y←(NUM div 100) mod 10;
X←(NUM div 1000) mod 10;
Imprima (W,Z,Y,X);
fim.
Observe o valor da variável 
NUM e o valor de cada 
variável impressa na tela. 
Descreva em que situação 
usaria este algoritmo?
Lógica de Programação
senac minas 53
12. Faça um algoritmo que leia 5 números, eleve esses números 
ao cubo e imprima o resultado desses números. 
13. Observe o algoritmo abaixo e descubra o que ele faz.
inicio
inteiro: A, B;
leia (A, B);
B ← A + B;
A ← B - A;
B ← B - A;
imprima (A, B);
fim.
14. O algoritmo abaixo é equivalente ao algoritmo do exercício 
anterior?
inicio
inteiro: X, A, B; 
leia (A, B); 
X ← A; 
A ← B; 
B ← X; 
imprima (A, B);
fim.
Lógica de Programação
senac minas54
15. Qual o valor de NUM após a execução do algoritmo?
 
lógico: VALOR1, VALOR2, VALOR3;
real: Z, W;
inteiro: NUM; 
VALOR1 ← falso; 
VALOR2 ← verdadeiro; 
VALOR3 ← falso;
Z ← 11,5; 
W ← 3,2;
Z ← Z + 1;
se VALOR3 ou ((Z + W > 5) ou (não VALOR1 e VALOR2))
então NUM ← 0;
senão NUM ← 1;
fim se;
16. Descubra o erro do algoritmo abaixo?
 início
inteiro: NUM, RESULTADO, PAR;
leia (NUM); 
PAR ← NUM mod 2;
se PAR = 0
então RESULTADO * verdadeiro;
senão RESULTADO * falso;
fim se;
 fim.
Lógica de Programação
senac minas 55
17. Faça um algoritmo que leia os três lados de um triângulo e se 
os três lados forem iguais, imprima Triângulo Equilátero, se 
dois lados forem iguais, imprima Triângulo Isósceles e se os 
três lados forem diferentes, imprima Triângulo Escaleno.
18. Faça um algoritmo que leia três notas e as imprima em ordem 
crescente.
19. Faça um algoritmo que leia o nome de dois irmãos e suas 
respectivas datas de nascimento (dia, mês e ano). Imprima o 
nome do irmão mais novo.
20. Faça um algoritmo para as Olimpíadas realizadas em 2010, 
que cadastre as seguintes informações:
 o nome do atleta e o tempo gasto em cada prova; 
 a nota dos jurados nas modalidades Ginástica Artística 
e Ginástica Rítmica, sendo que a nota dos jurados na 
modalidade Ginástica Rítmica dependerá dos seguintes 
critérios:
•	 os atletas que atingirem o tempo superior ou igual 
a 7 na Ginástica Rítmica, receberão nota igual a 
nota da Ginástica Artística;
•	 os atletas que atingirem o tempo inferior a 7 na 
Ginástica Rítmica, receberão nota equivalente à 
metade da nota da Ginástica Artística.
Imprimir o Nome, a nota e o tempo de cada atleta. 
 
Lógica de Programação
senac minas56
21. Observe o algoritmo abaixo e responda quais comandos serão 
executados:
 
início
lógico: A, B, C;
leia (A, B, C);
se A
então COMANDO1;
senão se B 
então se C 
então COMANDO2;
senão COMANDO3;
COMANDO4;
fim se;
fim se;
fim se;
COMANDO5;
fim.
a) Se A = verdadeiro; B = verdadeiro; C = falso, quais os 
comandos que serão executados?
b) Se A= falso; B = verdadeiro; C = falso, quais os comandos 
que serão executados?
c) Se A = falso; B = verdadeiro; C = verdadeiro, quais os 
comandos que serão executados?
d) Quais os valores de A, B, C, para que somente o COMANDO5 
seja executado?
22. Criar um algoritmo que leia o Nome do aluno e a nota final 
do Trabalho de Matemática. Se a nota do trabalho for igual a 
Zero imprima o nome do aluno .
Lógica de Programação
senac minas 57
23. Descubra o valor que será impresso no algoritmo abaixo:
 
início
lógico: X;
inteiro: Y;
Y ← 0;
X ← falso;
enquanto Y <> 6 faça
X ← não X;
Y ← Y + 1;
se X 
então imprima (Y);
senão imprima (-Y); 
fim se;
fim enquanto;
fim.
24. Multiplicar os números inteiros e positivos de 1 a N, 
incrementando de 1 em 1 e o N será um valor lido.
25. Faça um algoritmo que imprima os números pares de 200 a 
400.
26. Faça um algoritmo que imprima os múltiplos de 2 entre os 
números de 1 a 100.
27. Faça um algoritmo que calcule o somatório abaixo:
S = 1 + 3 + 5 + 7 +.....+ 99
1 2 3 4 50
Lógica de Programação
senac minas58
28. Faça um algoritmo que calcule o valor de P:
P = 3 * 5 * 7 * 9 * 11 *.....* 101
2 4 6 8 10 100
29. Sendo, 
H = 1 + 1 + 1 + 1 +.....+ 1
 2 3 4 N
 faça um algoritmo que 
calcule o valor H. O número N é lido.
30. Faça um algoritmo que calcule o valor de S:
S = 1 _ 2 + 3 _ 4 + 5 _ 6 +....._ 10 
1 4 9 16 25 36 100
31. O SENAC tem cadastrados os seguintes dados dos seus 
funcionários:
 Matrícula
 Nome
 Endereço
 Nº da Carteira de Trabalho
 CPF
 RG
 Cargo
 Setor
 Salário Bruto
 Data de Nascimento
 Data de Admissão
 Número de dependentes
 Horas trabalhadas no mês
Lógica de Programação
senac minas 59
Faça um algoritmo que calcule:
a) Total de funcionários, média salarial e o gasto salarial com a 
folha de pagamento.
b) Maior e o menor salário, e imprimir a Matrícula do funcionário 
com o maior salário e o com o menor salário.
c) Salário Bruto, Salário Líquido e Total de Descontos de cada 
funcionário, conforme dados abaixo:
 se jornada de trabalho de cada funcionário ultrapassar 
160 horas mensais, o mesmo terá direito a hora extra.
 valor da Hora Extra = Acréscimo do valor da hora 
normal + 50%.
 Salário-Família = Acréscimo de R$15,00 por 
dependente.
 INSS = desconto de 11% do salário bruto.
d) O SENAC tem os seguintes setores: Tesouraria, CPD e 
Almoxarifado. Calcular o número de Funcionários em cada 
um desses setores.
e) Imprimir a Matrícula, Nome, Setor, Função, Salário Líquido e 
a data de admissão de cada funcionário.
32. No Sistema de Ensino de um determinado país, os alunos 
foram divididos por idade nos seguintes níveis:
 Educação Infantil – 01 a 05 anos
 Ensino Fundamental – 06 a 14
 Ensino Médio – 15 a 17
 Graduação – acima de 18
Lógica de Programação
senac minas60
Faça um algoritmo que:
a) leia o nome e a idade de cada aluno; 
b) imprima o nome lido, a idade e o nível de escolaridade.
33. Uma pastelaria localizada no centro de São Paulo, vende 
apenas dois sabores de pastéis (1- Carne e 2- Queijo). Faça um 
Algoritmo para ler um conjunto de 50 fichas, contendo, cada 
uma, o código do sabor, a quantidade comprada e o preço 
unitário (Carne-R$1,50 e Queijo-R$1,30). Calcule e imprima:
 a média da quantidade vendida de pastel de carne;
 a média da quantidade vendida de pastel de queijo;
 o preço total vendido de pastéis.
34. No curso de Informática de uma determinadaescola o aluno 
deverá atender às seguintes regras:
 durante o curso o aluno deverá fazer quatro provas;
 a nota final será obtida pela média das notas das 
quatro provas;
 serão aprovados os alunos que obtiverem a nota final 
superior ou igual a 70 e 60% de frequência.
Faça um algoritmo que:
a) leia a matrícula, o nome, a nota de cada prova e a 
porcentagem de frequência;
b) calcule e imprima:
 a nota final e o resultado de cada aluno;
 a maior e a menor nota final;
 a média das notas finais;
 o total de alunos reprovados;
 a porcentagem de alunos reprovados em relação 
ao total geral de alunos.
Lógica de Programação
senac minas 61
35. Uma Academia pesa 100 clientes durante o teste de Avaliação 
Física. Cada cliente possui uma ficha com o seu código e peso. 
Faça um algoritmo que:
a) imprima o código e o peso do cliente mais gordo e do 
mais magro;
b) modifique o algoritmo para que ele imprima os códigos 
e respectivos pesos dos dois clientes mais gordos e dos 
dois clientes mais magros.
36. Foi realizado um concurso público do Tribunal de Justiça na 
cidade de Belo Horizonte. Para cada cargo foram coletadas as 
seguintes informações:
 código do cargo oferecido
 número de vagas por cargo
 número de candidatos do sexo masculino
 número de candidatos do sexo feminino
Para finalizar o cadastro o último código deverá ser igual a 
zero. Faça um algoritmo que:
 calcule e imprima o código do cargo, o número de 
candidatos inscritos no concurso;
 porcentagem de candidatos do sexo masculino;
 porcentagem de candidatos do sexo feminino.
Lógica de Programação
senac minas62
37. Em uma loja de calçados, os funcionários remarcam os preços 
das sandálias que chegam para a comercialização. Faça um 
algoritmo que facilite essa remarcação. Sandálias com preço 
de compra abaixo ou igual a R$ 30,00 serão remarcadas com 
60% de lucro, as com preço de compra acima de R$30,00 
e abaixo ou igual a R$60,00 serão remarcadas com 50% de 
lucro e as sandálias com preço de compra acima de R$60,00 
serão remarcadas com 40% de lucro. 
Este algoritmo deverá:
 ler o preço de cada sandália, calcular o preço de 
venda de acordo com a porcentagem do lucro acima 
e imprimir quantas sandálias tiveram o lucro de 60%, 
50% e 40%.
 imprimir também, o valor total de compra e venda de 
todas as sandálias, assim como o lucro total da loja.
38. Numa determinada Escola de Inglês, para os alunos 
serem aprovados, eles deverão ter 75% de frequência e 
aproveitamento acima de 70 pontos, caso contrário, serão 
reprovados. 
Faça um algoritmo que:
 leia a matrícula, o nome, a nota final do aluno e a sua 
frequência (“F” indica que é frequente e “I” indica que 
é infrequente) referente a 10 aulas. 
 conte a quantidade de “F” e “I” e calcule a porcentagem 
de falta em relação às 10 aulas. 
 imprima a matrícula, o nome do aluno, a nota final, 
a porcentagem de faltas e o resultado Aprovado ou 
Reprovado.
Lógica de Programação
senac minas 63
39. Faça um algoritmo que calcule o valor de uma conta de energia 
elétrica. Para realizar esse cálculo o algoritmo deverá:
 ler o consumo mensal em kWh, a alíquota do imposto 
PIS/CONFIS (ex: 0,06405%), alíquota do ICMS (ex: 30%), 
valor do kWh sem tributo e o COSIP(Contribuição para 
o Custeio da Iluminação Pública);
 calcular o valor do imposto PIS/CONFIS que será igual 
a alíquota do imposto PIS/CONFIS(%) X valor do kWh 
sem tributo;
 calcular o valor do imposto ICMS que será igual a 
alíquota do imposto ICMS(%) X valor do kWh sem 
tributo;
 calcular o valor do KWh com tributo que será igual ao 
valor do kWh sem tributo/1 - (valor do imposto PIS/
CONFIS+ valor do imposto ICMS);
 calcular o valor a pagar da conta de energia elétrica 
que será igual ao valor do KWh com tributo X Consumo 
mensal em kWh + COSIP.
40. Para calcular o imposto de renda de um empregado, o 
algoritmo deverá:
a) ler o CPF, o nome, número de dependentes, a remuneração 
do mês e o valor da Pensão Alimentícia, quando houver;
b) calcular o valor do INSS, sendo que, será necessário 
consultar a alíquota na tabela abaixo:
Remuneração Alíquota
até R$ 1.040,22 08%
de R$ 1.040,23 a R$ 1.733,70 09%
de R$ 1.733,71 até R$ 3.467,40 11%
Lógica de Programação
senac minas64
INSS = Remuneração X Alíquota
c) calcular a dedução dos dependentes que será o número 
de dependentes X R$150,69.
d) obter a Base de Cálculo do Imposto de Renda:
Base de Cálculo = Remuneração – dedução dos dependentes 
– Pensão Alimentícia.
e) calcular o IRRF, sendo que, será necessário consultar a 
alíquota na tabela abaixo:
Base de Cálculo Alíquota Parcela a deduzir
até R$ 1.499,15 - -
de R$ 1.499,15 a R$ 2.246,75 7,5% R$112,43 
de R$ 2.246,76 até R$ 2.995,70 15% R$280,94
de R$ 2.995,71 a R$ 3.743,19 22,5% R$505,62
Acima de R$ 3.743,19 27,5% R$692,78
IRRF = Base de cálculo * Alíquota – Parcela a deduzir
f) o último registro, que não será considerado, terá o 
número de CPF igual a zero;
g) imprimir o CPF, o nome e o IRRF de cada funcionário.
Lógica de Programação
senac minas 65
41. Para calcular uma conta de telefone mensal, será necessário 
cadastrar os seguintes dados:
 número do telefone;
 plano (1 se for de minutos locais e 2 se for minutos longa 
distância);
 número de impulsos das chamadas locais;
 número de impulsos das chamadas de longa distância;
 número em Gb da taxa de transferência (Serviço adicional 
no acesso à internet) .
Considerações
a) Se o Plano for “Minutos locais” o valor do impulso será 
R$0,12.
b) Se o Plano for “Minutos longa distância” o valor do 
impulso será R$0,48.
c) Se a taxa de transferência do uso da internet ultrapassar 
4G será cobrada uma taxa adicional de R$10,75.
 Calcule o valor da conta. 
 Imprima o número do telefone e o valor de sua conta 
mensal.
42. Uma empresa classificou o salário dos funcionários por nível, 
sendo que os funcionários com salário de R$510,00 a R$800,00 
teriam nível 1, com salário de R$800,01 a R$1.500,00 teriam 
nível 2, com salário de R$1.500,01 a R$3.000,00 teriam nível 
3 e acima de R$3.000,01 teriam nível 4. 
Faça um algoritmo que:
a) leia a matrícula, o nome e nível do funcionário;
b) imprima o Nome, o Salário e o nível; 
Lógica de Programação
senac minas66
43. Faça um algoritmo que converta graus Fahrenheit para Centígrados. 
A fórmula é Centígrados = 5 / 9 (Fahrenheit - 32). Informe o 
Fahrenheit de 50 a 150, incrementando de 1 em 1 e imprima o 
Graus Fahrenheit e Centígrados correspondentes. 
44. Leonardo de Pisa, conhecido como, Fibonacci criou uma sequência 
de números chamada “Sequência de Fibonacci” para descrever o 
crescimento de uma população de coelhos. Essa sequência começa 
de 0 e 1, obtém-se o próximo número somando-se os dois anteriores. 
Exemplo: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ..., etc. Escreva um 
algoritmo que gere a Sequênca de Fibonacci até o 55º termo.
45. Em uma pilha de pratos, o último prato a ser colocado na pilha, 
será o primeiro a ser retirado. Seguindo esse raciocínio, faça um 
algoritmo que leia três valores numéricos e os imprima na ordem 
inversa. Exemplo: ler 1,2,3 e imprimir 3,2,1.
46. Um criador controla a sua reprodução anual de coelhos, através de 
um arquivo que lê mensalmente o número de coelhos nascidos e 
calcula a média de reprodução anual. Faça um algoritmo que faça 
esse cálculo e imprimia a média de reprodução anual e o mês que 
nasceu o maior número de coelhos.
47. O clube Poliesportivo de uma determinada cidade, está selecionando 
talentos para a formação de um novo time de jogadores de vôlei. 
Os requisitos são faixa etária de 19 a 21 anos e altura mínima de 
1,80 para o sexo feminino e, 1,95 para o sexomasculino. Faça 
um algoritmo que leia o nome, idade, sexo e altura do candidato. 
Calcule e imprima o número de candidatos inscritos, o número de 
candidatos do sexo feminino que foram aprovados, o número de 
candidatos do sexo masculino que foram aprovados e o número de 
candidatos eliminados dos sexos feminino e masculino.
Lógica de Programação
senac minas 67
48. A prova de 100m rasos é uma modalidade olímpica de 
Atletismo. Nos Jogos Olímpicos de 96, foi cronometrado 
o tempo gasto de cada atleta durante a prova. Faça um 
algoritmo que:
 leia o número de inscrição, o nome e o tempo de cada 
atleta;
 imprima o número de atletas que participaram da corrida, 
o tempo gasto de cada um e o nome do atleta que fez o 
menor tempo.
49. Na matemática, o resultado do quadrado de um número x 
(inteiro positivo) corresponde a soma dos x primeiros números 
ímpares.
Exemplos: 
a) o quadrado de 2 é => 1 + 3 = 4
b) o quadrado de 4 é => 1 + 3 + 5 + 7 = 16
Faça um algoritmo que leia um número inteiro positivo e 
imprima o número lido, os x primeiros números e o resultado 
do seu quadrado conforme exemplo acima.
50. Faça um algoritmo que preencha um vetor de 10 posições 
com números pares de 1 a 20 e imprima o conteúdo desse 
vetor.
51. Faça um algoritmo que preencha dois vetores de 5 posições 
com números e gere um terceiro vetor de 5 posições com o 
resultado da multiplicação dos elementos dos dois vetores 
lidos.
Lógica de Programação
senac minas68
52. Faça um algoritmo que preencha um vetor de 20 posições 
com o número correspondente ao índice de sua posição. 
Exemplo: A primeira posição do vetor receberá o seu índice 
1, a segunda posição do vetor receberá o seu índice 2 e assim 
por diante.
53. Num vetor de 100 posições preencha-o com números de 1 a 
100 respectivamente e imprima o índice dos elementos pares 
desse vetor.
54. Faça um algoritmo que preencha um vetor de 10 posições, 
com nome de estados da região Sudeste do Brasil. Imprima 
os índices dos elementos do vetor que tiver o valor igual a 
“SP”. 
55. Faça um algoritmo que preencha um vetor de 40 posições 
com as notas finais dos alunos e imprima a maior, a menor 
e a média das notas.
56. No Vestibular de uma determinada Universidade de Minas 
Gerais, os alunos marcaram as respostas de 20 questões 
do gabarito de Biologia. Para facilitar a correção, faça um 
algoritmo que leia a resposta de todo o vetor e imprima o 
número de questões com os seguintes resultados “a”, “b”, 
“c”, “d”, “e”.
Lógica de Programação
senac minas 69
57. Os 1000 funcionários de uma empresa de alimentos tiveram 
os seus salários classificados por níveis. Crie uma matriz 10 x 
2 e preencha-a com os valores abaixo:
Níveis Salário
1 510,00
2 850,00
3 1.200,00
4 1.600,00
5 2.000,00
6 2.400,00
7 2.800,00
8 3.100,00
9 3.500,00
10 4.000,00
Faça um algoritmo que:
a) leia a matrícula, o nome do funcionário e o nível que está 
na matriz criada;
b) imprima a matrícula, o nome, o salário do funcionário e 
a quantidade de funcionários em cada nível.
Lógica de Programação
senac minas70
58. Crie uma tabela 4 x 12, que leia os gastos mensais das 
contas de Água, Luz, Telefone e Escola no ano e imprima 
separadamente o total gasto com a Água, a Luz, o Telefone 
e a Escola. As colunas representarão os meses do ano, por 
exemplo, Janeiro, Fevereiro... e as linhas os gastos, por 
exemplo, conta de água, luz, telefone e escola. 
Veja exemplo da tabela:
Meses
Gastos
1 2 3 4 5 6 7 8 9 10 11 12
1
2
3
4
59. Faça um algoritmo que crie uma tabela para lançamento das 
notas de 10 alunos referente ao 1º, 2º, 3º e 4º bimestre. 
Veja exemplo da tabela:
 Bimestre
Alunos
1 2 3 4
1
2
3
4
5
6
7
8
9
10
a) Imprima a nota final de cada aluno e a média das notas 
de cada bimestre.
Lógica de Programação
senac minas 71
60. Faça um algoritmo que crie uma tabela 10 x 3 contendo 
informações da venda de 10 produtos referente ao material 
escolar de uma determinada escola. Leia o nome do produto, 
a quantidade e o preço unitário. Calcule o valor pago por 
cada produto e imprima o valor total da venda. 
Veja exemplo da tabela:
Quantidade Preço
1 2 3
1
2
3
4
5
6
7
8
9
10
Produto
Lógica de Programação
senac minas72
Referências 
GUIMARÃES, A. M.; LAGES, N. A .C. Algoritmo e Estrutura de 
Dados. 1ª Edição. LTC, 1985. 216 p.
SENAC.DR.MG. Fundamentos de lógica de programação/ 
Newton Lopes. Belo Horizonte: SENAC/MG/SEMD, 2004. 212p. II.

Outros materiais

Outros materiais