Buscar

Aula 08

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 69 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 69 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 69 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

Prof. Victor Dalton 
 Aula 08 
 
 
1 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
 
 
 
Aula 08 
Informática para Agente e Escrivão da Polícia 
Federal - 2020 
Prof. Victor Dalton 
2020 
Prof. Victor Dalton 
 Aula 08 
 
 
2 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Sumário 
SUMÁRIO ............................................................................................................................................................ 2 
CONCEITOS BÁSICOS ........................................................................................................................................... 3 
LÓGICA DE PROGRAMAÇÃO ................................................................................................................................................... 3 
FORMAS DE REPRESENTAÇÃO DE UM ALGORITMO ..................................................................................................................... 4 
ELEMENTOS DE UM ALGORITMO ............................................................................................................................................. 6 
TIPOS DE VARIÁVEIS ............................................................................................................................................................. 8 
Vetores, matrizes e registros ......................................................................................................................................... 8 
ATRIBUIÇÃO ..................................................................................................................................................................... 10 
TESTE DE MESA ................................................................................................................................................................. 10 
OPERADORES ARITMÉTICOS, RELACIONAIS E LÓGICOS ............................................................................................................ 10 
INSTRUÇÕES “LER” E “ESCREVER” ........................................................................................................................................ 12 
PROCEDIMENTOS E FUNÇÕES .............................................................................................................................................. 12 
VARIÁVEIS LOCAIS E VARIÁVEIS GLOBAIS ................................................................................................................................ 13 
PASSAGEM DE PARÂMETROS POR VALOR E POR REFERÊNCIA ..................................................................................................... 14 
ESTRUTURAS DE CONTROLE .............................................................................................................................. 16 
ESTRUTURA SEQUENCIAL ................................................................................................................................................... 16 
ESTRUTURAS DE SELEÇÃO .................................................................................................................................................. 16 
Estrutura de seleção simples (ou estrutura de desvio, ou estrutura condicional, ou estrutura if-then) .............................. 16 
Estrutura de seleção composta (ou estrutura de desvio, ou estrutura condicional, ou estrutura if-then-else) ................... 17 
Estrutura de seleção aninhada .................................................................................................................................... 17 
Estrutura de seleção múltipla ..................................................................................................................................... 18 
ESTRUTURAS DE REPETIÇÃO ................................................................................................................................................ 18 
Estruturas de repetição com verificação antecipada ..................................................................................................... 18 
Estruturas de repetição com verificação no final .......................................................................................................... 21 
Estruturas de repetição com variável de controle ......................................................................................................... 21 
Comando break .......................................................................................................................................................... 22 
QUESTÕES COMENTADAS PELO PROFESSOR ..................................................................................................... 23 
CONSIDERAÇÕES FINAIS .................................................................................................................................... 55 
LISTA DE QUESTÕES .......................................................................................................................................... 55 
GABARITO ......................................................................................................................................................... 68 
RESUMO DIRECIONADO .................................................................................................................................... 68 
 
Olá amigos e amigas! Vamos quebrar a rotina? 
Nosso assunto de hoje é Lógica de Programação. Introdução FUNDAMENTAL para que você possa estudar 
Python e R. 
Estamos juntos? 
Prof. Victor Dalton 
 Aula 08 
 
 
3 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Conceitos Básicos 
Lógica de Programação 
A Lógica é um ramo da filosofia centrada no raciocínio. Na computação, a Lógica de Programação é a 
técnica de encadear pensamentos, com o objetivo de atingir determinado objetivo. 
Toda e qualquer atividade, por mais intuitiva que nos pareça, pode ser organizada em uma sequência lógica 
de passos. Por exemplo, para acessar um curso completo em PDFs aqui no Direção, você precisa: 
1.Ligar o computador; 
2.Abrir o navegador de Internet; 
3.Acessar o site do Direção Concursos; 
4.Selecionar o curso; 
5.Confirmar a compra; 
6.Se não for usuário cadastrado do site, preencher cadastro; 
7.Realizar o pagamento; 
8.Acessar os PDFs. 
Sem maiores aprofundamentos, organizei alguns procedimentos para a compra de um curso. Concorda 
comigo? Estando de acordo, experimente, mentalmente, trocar alguns passos de lugar. A tarefa fica sem sentido, 
não é mesmo? Perde o sentido, porque perde-se a lógica! 
A lógica de uma determinada tarefa ou atividade é centrada em um algoritmo. 
Um algoritmo é uma sequência finita de passos que levam à execução de determinada tarefa ou 
conjunto de tarefas. 
Por exemplo, um algoritmo que calcule a média entre dois números inteiros deverá: 
1. Ler dois números inteiros; 
2. Realizar uma soma entre os números; 
3. Dividir por dois o número obtido anteriormente; 
4. Escrever o resultado. 
Tudo bem até agora? 
Os algoritmos são definidos por cinco características. São elas: 
• Finitude: um algoritmo tem de terminar ao fim de um número finito de passos; 
• Clareza/definição: cada passo do algoritmo tem de ser definido com precisão, sem ambiguidades; 
• Entrada: um algoritmo pode ter zero ou mais entradas; 
• Saídas: um algoritmo tem uma ou mais saídas; 
• Eficácia/efetividade: todas as operações feitas por um algoritmo têm de ser suficientemente 
básicas. 
Prof. Victor Dalton 
 Aula 08 
 
 
4 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
 
Figura 1. Algoritmo 
Na computação, é comum a escrita de algoritmos em uma linguagem comum, que seja independente de 
linguagem de programação. Esta linguagem se chama pseudocódigo, ou portugol.Exemplo de pseudocódigo: 
Algoritmo que lê o nome e as quatro notas bimestrais de um aluno. Em seguida, calcula e escreve a média 
obtida: 
ALGORITMO MEDIA_FINAL; 
VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO; 
NOME: CARACTERE [35] 
INICIO 
LER (NOME); 
LER (NOTA1, NOTA2, NOTA3, NOTA4); 
MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; 
ESCREVER (NOME, MEDIA) 
FIM. 
Opa, veio muita informação ao mesmo tempo nesse algoritmo? Não se preocupe, iremos detalhar as 
características dele para você. Mas acho que você já percebeu que o pseudocódigo é um intermediário entre a 
linguagem natural e a linguagem de programação. Quando um algoritmo é traduzido para uma linguagem de 
programação propriamente dita, como C, C#, Pascal, Java, etc... ele passa a se chamar Programa. Mas 
continuemos a estudar o algoritmo! 
Formas de representação de um algoritmo 
Existem diversas formas de representação de algoritmos, e a utilização de determinada forma dependerá da 
situação, do público alvo e do nível de detalhe requerido, dentre outros. 
A descrição narrativa descreve o algoritmo em linguagem natural. Foi a forma que eu utilizei para iniciar a 
aula, explicando como se adquire um curso no Direção. Vamos escrever um algoritmo para calcular a média de 
dois números: 
1.Digite o primeiro número; 
2.Digite o segundo número; 
3.Caso os dois números sejam iguais a zero, volte ao passo 1; 
4.Some os dois números e divida por 2; 
5.Imprima o resultado encontrado. 
Uma outra forma de representar um algoritmo é a utilização de um fluxograma, ou diagrama de blocos. 
Conheça alguns símbolos dessa metodologia: 
Prof. Victor Dalton 
 Aula 08 
 
 
5 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
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: Calculo de dois números 
 
ENTRADA/SAÍDA (Genérica) 
Operação de entrada e saída de dados 
Exemplo: Leitura e Gravação de Arquivos 
 
SAÍDA 
Mostra informações ou resultados 
 
 DECISÃO 
 Permite elaborar processos de decisão 
 
Poderíamos escrever aquele mesmo algoritmo que calcula a média de dois números utilizando essa 
representação. Seria algo parecido com: 
Prof. Victor Dalton 
 Aula 08 
 
 
6 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
 
 
 
 
 
A terceira forma de representar um algoritmo é a linguagem estruturada, também chamada de 
pseudocódigo ou portugol. É a forma que mais trabalharemos nessa apostila. 
Elementos de um algoritmo 
Variável 
Variável é um espaço da memória do computador que armazena um dado. No algoritmo, a variável pode ser 
manipulada pelas instruções, modificando e trabalhando seus valores. 
Uma variável recebe um nome (também chamado de identificador), que a diferencia das demais, no 
algoritmo. Normalmente atribui-se um nome intuitivo à variável, para facilitar o entendimento do próprio 
algoritmo. 
Destacarei as variáveis no algoritmo já visto: 
ALGORITMO MEDIA_FINAL; 
VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO; (tipo de variável, número inteiro) 
Digite numero n1 
Digite numero n2 
n1 & 
n2 = 0? 
 Inicio 
Some n1 e n2 e divida por 2 
Imprima o resultado 
 Fim 
SIM 
NÃO 
Prof. Victor Dalton 
 Aula 08 
 
 
7 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
NOME: CARACTERE [35]; (tipo de variável, texto até 35 caracteres) 
INICIO 
LER (NOME); 
LER (NOTA1, NOTA2, NOTA3, NOTA4); 
MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; 
ESCREVER (NOME, MEDIA) 
FIM. 
Constante 
Constante, conforme o próprio nome diz, difere da variável por não permitir modificação em seus valores 
pelo algoritmo. 
ALGORTIMO AREA_CIRCUNFERENCIA; 
CONST PI = 3.1416; 
VAR RAIO, AREA: REAL; 
INICIO 
LER (RAIO); 
AREA:= PI * SQR(RAIO); 
ESCREVER (‘AREA =’, AREA) 
FIM. 
Instrução 
A instrução é o passo, ou etapa do algoritmo. Normalmente, é a linha de código seguida de ponto-e-vírgula. 
Declaração de variáveis 
Um algoritmo, via de regra, inicia-se pela declaração de variáveis. Perceba no nosso algoritmo exemplo, 
destacado em azul. 
ALGORITMO MEDIA_FINAL; 
VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO; 
NOME: CARACTERE [35] 
INICIO 
LER (NOME); 
LER (NOTA1, NOTA2, NOTA3, NOTA4); 
MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; 
ESCREVER (NOME, MEDIA) 
FIM. 
As constantes também são declaradas no início do algoritmo, juntamente com as variáveis. 
Conjunto de instruções 
O conjunto de instruções é a inteligência do algoritmo, a sua razão de ser. Veja, em destaque, no mesmo 
algoritmo: 
ALGORITMO MEDIA_FINAL; 
Prof. Victor Dalton 
 Aula 08 
 
 
8 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO; 
NOME: CARACTERE [35] 
INICIO 
LER (NOME); 
LER (NOTA1, NOTA2, NOTA3, NOTA4); 
MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; 
ESCREVER (NOME, MEDIA) 
FIM. 
Em pseudocódigo, costuma-se utilizar “Inicio” e “Fim” para delimitar o conjunto de instruções. 
E agora? Ficou mais compreensível o nosso algoritmo? Mas ainda tem mais! 
Tipos de variáveis 
Os tipos primitivos mais comuns de variáveis são: 
INTEIRO – número inteiro; 
REAL – número real; 
CARACTERE (string) – texto, que pode conter letras, símbolos e números; 
LÓGICO (boolean) – assumem apenas os valores verdadeiro ou falso. 
Vetores, matrizes e registros 
Vetores são estruturas unidimensionais, que possuem o mesmo princípio de uma matriz, contendo apenas 
uma linha e várias colunas. 
Descreve-se um vetor por meio do formato 
Vetor <variavel>[ <dimensao> ] de <tipo>, em que: 
variavel → nome da variável; 
dimensao → tamanho do vetor; 
tipo → tipo primitivo da variável (deverá ser único). 
 
Ex: VET A[10] de REAL; 
Esse vetor pode ser representado da seguinte forma: 
A 
E suas variáveis podem ser manipuladas individualmente, sem problemas. Basta selecioná-la pelo índice. 
Ao fazer, por exemplo, A[3] ← 1.33 tem-se: 
A 
 
Matrizes, por sua vez, são estruturas bidimensionais, podendo conter múltiplas linhas e colunas. 
 
 1,33 
Prof. Victor Dalton 
 Aula 08 
 
 
9 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Descreve-se uma matriz por meio do formato 
Vetor <variavel>[ <dimensao1> ] [ <dimensao2> ] de <tipo>, em que: 
variavel → nome da variável; 
dimensao1 → tamanho do vetor(colunas); 
dimensao2 → tamanho do vetor(linhas); 
tipo → tipo primitivo da variável (deverá ser único). 
 
Ex: MAT B[3][5] de INTEIRO; 
Essa matriz pode ser representado da seguinte forma: 
 
B 
 
 
 
E suas variáveis também podem ser manipuladas individualmente, sem problemas. Basta selecioná-la pelo 
índice. 
Ao fazer, por exemplo, B[1][2] ← 10 tem-se: 
 
B 
 
 
 
Tudo bem? Vetores e Matrizes podem ser utilizados livremente. Entretanto, sua utilidade poderá ser vista 
quando estudarmos as estruturas de controle. 
Por fim, Registros são estruturas de dados que agregam valores de diferentes tipos, possibilitando a criação 
de novos tipos de dados. Agregam dados logicamente relacionados, embora de tipos diferente. Registros podem 
conter outros registros. 
Ex: 
Registro PESSOA 
Nome: caractere[35] 
Endereco: caractere[100] 
Idade: inteiro 
 Em programação orientada a objetos, são objetos, propriamente ditos. 
 
 
 
 
 
 
10 
 
 
 
Prof. Victor Dalton 
 Aula 08 
 
 
10 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Atribuição 
Em lógica de programação, temos que prestar atenção à manipulação das variáveis. Representadaspor um 
“:=” ou por uma seta para a esquerda (←), a atribuição implica em atribuir a uma variável o valor do outro lado do 
símbolo (:= ou ←). 
Por exemplo, como você descreve o conteúdo dessa instrução? 
MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; 
Sim, eu quero que você verbalize a linha acima. 
Caso você tenha começado a sentença com “Média é igual a....” PARA TUDO!!! Entremos na lógica de 
programação desde já! 
Você deverá ler a sentença da seguinte forma: “Média recebe o valor de NOTA 1 + .......” 
Lembra que dissemos que variável é um espaço de memória do computador? Portanto, na atribuição, o valor 
resultante do lado direito da instrução é inserido na variável, do lado esquerdo da instrução. 
Veja, na tabela abaixo, alguns exemplos de possíveis atribuições: 
Atribuição Exemplo 
variável ← constante A ← 45 (“A recebe 45”) 
variável ← variável A ← B (“A recebe o valor de B”) 
variável ← expressão A ← B + C (“A recebe o valor de B + C”) 
variável ← função A ← calculo(B,C) (“A recebe o retorno da função calculo”) 
Em lógica de programação, a igualdade é utilizada para fins de comparação. Isso será visto adiante. 
Teste de Mesa 
Para desenvolver ou analisar um algoritmo, é altamente recomendável a realização do chamado teste de 
mesa, também chamado de teste chinês. Realizar o teste de mesa é acompanhar um algoritmo passo a passo, 
mantendo uma tabela com os valores das variáveis e registrar as mudanças nestas variáveis ao longo da execução 
do mesmo. 
 Nos exercícios, teremos a oportunidade de fazer e acompanhar vários testes de mesa. 
Operadores Aritméticos, Relacionais e Lógicos 
A hierarquia de operadores aritméticos em lógica de programação não foge a tradicional: 
Operador Símbolo Prioridade 
Multiplicação * 1ª 
Divisão / 1ª 
Prof. Victor Dalton 
 Aula 08 
 
 
11 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Adição + 2ª 
Subtração - 2ª 
O programador, via de regra, observa a utilização do parênteses para definir claramente a ordem das 
operações matemáticas. Na ausência deles, opera-se conforme a tabela acima, da esquerda para a direita da 
expressão matemática. 
Os operadores relacionais, por sua vez, são aqueles que comparam valores, variáveis, constantes e 
expressões, retornando verdadeiro ou falso. Eles estão descritos abaixo: 
Operador Significado 
> maior 
< menor 
= igual 
>= maior ou igual 
<= menor ou igual 
<> diferente 
Os operadores lógicos, finalmente, permitem verificar uma condição, também retornando verdadeiro ou 
falso. Esses operadores são importantíssimos para permitir a criação de diferentes estruturas de algoritmos, que 
serão vistas mais adiante São eles: 
Operação Operador 
Negação não 
Conjunção e 
Disjunção ou 
Disjunção exclusiva xou (lido como “ou exclusivo”) 
Importantíssimo conhecer a tabela verdade desses operadores (tudo bem que essas operações são bem 
intuitivas). Entretanto, interpretar erroneamente um operador lógico fatalmente conduz a uma interpretação 
equivocada de um algoritmo. 
 
 
X Y X e Y X ou Y não X X xou Y 
Prof. Victor Dalton 
 Aula 08 
 
 
12 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
V V V V F F 
V F F V F V 
F V F V V V 
F F F F V F 
Instruções “Ler” e “Escrever” 
Ler e Escrever(também chamado Imprimir) são instruções muito corriqueiras em pseudocódigo. De maneira 
bem resumida, Ler implica em solicitar ao usuário que entre com um dado, na tela do computador. No nosso 
algoritmo exemplo, as linhas: 
LER (NOME); 
LER (NOTA1, NOTA2, NOTA3, NOTA4); 
implicam em uma “paralisação” do algoritmo, que espera o usuário inserir esses valores no computador, para 
que ele possa continuar. 
Por fim, o comando “Escrever” imprime, na tela do computador, o dado. Portanto, o comando 
ESCREVER (NOME, MEDIA) 
imprime, lado a lado, o conteúdo das variáveis NOME e MEDIA, na tela do computador. 
Procedimentos e funções 
Os algoritmos (ou mesmo os programas) podem ser classificados como funções ou como procedimentos. 
Procedimento ou subrotina é o código que executa uma tarefa particular. O software, devido à sua natureza, 
é complexo, e o programador necessita organizar o seu código em diversas sub-rotinas. É comum, inclusive, que 
procedimentos disparem a execução de outros procedimentos, ou funções. 
Uma função, por sua vez, é um pouco mais peculiar, pois obrigatoriamente retorna um valor. 
Vamos rever um código, já mostrado anteriormente, que ilustre o que estamos falando: 
ALGORTIMO AREA_CIRCUNFERENCIA; 
CONST PI = 3.1416; 
VAR RAIO, AREA: REAL; 
INICIO 
LER (RAIO); 
AREA:= PI * SQR(RAIO); 
ESCREVER (‘AREA =’, AREA) 
FIM. 
O procedimento acima realiza o cálculo de uma área de circunferência. Uma vez que o usuário insira o valor 
para a variável RAIO, o algoritmo calcula a área de circunferência correspondente. 
Mas você reparou em SQR(RAIO)? 
Prof. Victor Dalton 
 Aula 08 
 
 
13 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
SQR(parâmetro) é uma função, que ainda não foi apresentada a você. Conheça seu código: 
SQR(NUMERO:real):real; 
VAR QUADRADO:real 
INICIO 
QUADRADO:= NUMERO * NUMERO; 
RETORNAR QUADRADO; 
FIM 
Compreendeu a natureza da função? 
A função, via de regra, recebe parâmetros, realiza alguma inteligência interna e retorna um valor. A função 
SQR(parâmetro), retorna um número real. Seu parâmetro, identificado como NUMERO, também deve ser um 
número real, conforme definido neste exemplo. Internamente, ela trabalha apenas com uma variável, que recebeu 
o valor do quadrado do número passado como parâmetro. A instrução RETORNAR “devolve”, para quem chamou 
a função, o valor calculado pela própria função. 
Criar funções facilita muito o trabalho do programador, uma vez que determinadas lógicas são empregadas 
com frequência dentro de um mesmo software de computador. Ao invés de escrever várias vezes a mesma coisa, 
cria-se uma única função, deixando apenas os parâmetros em aberto. 
Variáveis locais e Variáveis globais 
Os poucos algoritmos vistos até agora mostraram apenas variáveis locais. As variáveis locais apenas 
“existem” dentro do bloco no qual foram declaradas. Se uma função ou procedimento inicia declarando variáveis, 
aquelas variáveis são locais. Embora possam ser passadas como parâmetro dentro do programa em que estejam 
executando, o término do programa extingue essas variáveis. 
funcao ABC (parametro1,parametro2):inteiro 
VAR A,B,C:inteiro //variáveis locais 
INICIO 
...... 
FIM //ao término da função, as variáveis locais “desaparecem” 
Por outro lado, existem as chamadas variáveis globais. As variáveis globais são declaradas fora de todas as 
funções de um programa. Dessa forma, as variáveis são persistentes, e podem ser manipuladas por todas as 
funções. Veja abaixo, um “microprograma”, ilustrado em pseudocódigo: 
VAR D,E: inteiro//variáveis globais; estão fora de todas as funções 
funcao ABC (parametro1,parametro2):inteiro 
VAR A,B,C:inteiro //variáveis locais 
INICIO 
...... 
FIM //ao término da função, as variáveis locais “desaparecem” 
funcao XYX(parametro3, parametro4):inteiro 
VAR Z:inteiro //variável local 
INICIO 
Z← parametro3 +parametro4; 
Prof. Victor Dalton 
 Aula 08 
 
 
14 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
D← D + Z // variável global sendo manipulada 
FIM// variável local extinta, variável global modificada, e continua existindo 
Passagem de parâmetros por valor e por referência 
Você deve ter percebido que os parâmetros são elementos importantes na programação. É conveniente 
definir funções ou procedimentos que recebam parâmetros como entrada, e manipulem esse parâmetro no 
interior de seu código. 
Na programação estruturada, o bom programador deverá modularizar o seu código, ou seja, dividir as 
tarefas do seu software, decompor um grande problema em um conjuntode pequenos problemas simples. 
Em resumo, um módulo é um conjunto de instruções organizado em um trecho de algoritmo, para 
realizar uma tarefa bem definida. 
A modularidade traz diversos benefícios, pois deixa o código mais legível, mais fácil de manutenir, mais 
flexível, as tarefas podem ser divididas por mais programadores, dentre outros. 
Ao modularizar o código, busca-se alta coesão em cada módulo, ou seja, que os seus elementos possuam 
alto relacionamento e possuam uma tarefa bem definida. 
Ao mesmo tempo, deseja-se o baixo acoplamento, ou seja, que cada módulo comunique-se pouco com os 
demais. Naturalmente, a comunicação é inevitável, e, nesse contexto, a passagem de parâmetros entre módulos 
que se comunicam é comum. 
Na passagem de parâmetros por valor, a variável passada como parâmetro passa apenas o seu valor para o 
outro módulo, não sofrendo modificações no seu módulo de origem. 
Na passagem de parâmetros por referência, o parâmetro passado é, na verdade, um ponteiro (endereço 
de memória) que aponta para a própria variável. Ou seja, caso o parâmetro passado sofra modificações, a variável 
também muda o seu valor. 
Ficou complicado? 
Vamos retratar essa diferença por meio de dois exemplos bem didáticos, pode ser? 
Algoritmo VALOR 
VAR TESTE:inteiro 
INICIO 
TESTE ← 30; 
MANIPULA_VARIAVEL(TESTE); 
ESCREVA(TESTE); 
FIM 
Algoritmo MANIPULA_VARIAVEL(X:inteiro) 
INICIO 
X ← X + 10; 
ESCREVA(X); 
FIM 
 
Vamos executar o algoritmo VALOR? 
Prof. Victor Dalton 
 Aula 08 
 
 
15 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Este algoritmo começa atribuindo à variável TESTE o valor 30. No passo seguinte, é chamado o algoritmo 
MANIPULA_VARIAVEL, passando a variável TESTE como parâmetro. Nesse momento, o algoritmo VALOR 
“pausa”, e começa o algoritmo MANIPULA_VARIAVEL. 
O algoritmo MANIPULA_VARIAVEL atribui a X, seu parâmetro recebido, o próprio valor de X, acrescido de 
10. É uma forma de somar 10 ao valor recebido, seja ele qual for. Na sequência, imprime-se X na tela do 
computador, ou seja, o valor 40. E o algoritmo chega ao fim. 
Voltando ao algoritmo VALOR, imprime-se também o valor de TESTE na tela do computador. Como a 
passagem de parâmetro foi por valor, TESTE não sofreu nenhuma alteração, e o valor impresso em tela é 30. Tudo 
bem? 
Comparemos o mesmo código quando a passagem de parâmetros é por referência. Vejamos: 
Algoritmo REFERENCIA 
VAR TESTE:inteiro 
INICIO 
TESTE ← 30; 
MANIPULA_VARIAVEL(TESTE); 
ESCREVA(TESTE); 
FIM 
Algoritmo MANIPULA_VARIAVEL(X:inteiro) 
INICIO 
X ← X + 10; 
ESCREVA(X); 
FIM 
 Vamos executar o algoritmo REFERENCIA? 
Este algoritmo começa atribuindo à variável TESTE o valor 30. No passo seguinte, é chamado o algoritmo 
MANIPULA_VARIAVEL, passando a variável TESTE como parâmetro. Nesse momento, o algoritmo 
REFERENCIA “pausa”, e começa o algoritmo MANIPULA_VARIAVEL. 
O algoritmo MANIPULA_VARIAVEL atribui a X, seu parâmetro recebido, o próprio valor de X, acrescido de 
10. Na sequência, imprime-se X na tela do computador, ou seja, o valor 40. E o algoritmo chega ao fim. 
Voltando ao algoritmo REFERENCIA, imprime-se também o valor de TESTE na tela do computador. Como 
a passagem de parâmetro foi por referência, a variável TESTE foi modificada no algoritmo 
MANIPULA_VARIAVEL, e o valor impresso em tela é 40. Notou a diferença? 
Resumindo: 
Passagem de parâmetro por valor → apenas o valor da variável é passado como parâmetro. 
Modificações no parâmetro não modificam a variável original. 
Passagem de parâmetro por referência → o endereço da memória da variável é passado como 
parâmetro. Modificações no parâmetro são modificações na própria variável. 
Prof. Victor Dalton 
 Aula 08 
 
 
16 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Estruturas de controle 
Entendidos os fundamentos básicos acerca dos algoritmos, podemos avançar o nosso estudo para 
algoritmos mais complexos. 
Estrutura Sequencial 
A estrutura sequencial é a estrutura mais simples que um algoritmo pode possuir. Nela, as instruções são 
executadas sequencialmente, passo a passo. 
1.ALGORITMO MEDIA_FINAL; 
2.VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO; 
3.NOME : CARACTERE [35] 
4.INICIO 
5.LER (NOME); 
6.LER (NOTA1, NOTA2, NOTA3, NOTA4); 
7.MEDIA := (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; 
8.ESCREVER (NOME, MEDIA) 
9.FIM. 
Esse é o nosso já conhecido algoritmo MEDIA_FINAL. Nela, já vimos que os passos são seguidos, 
sequencialmente, de 1 a 9. 
Estruturas de Seleção 
As estruturas de seleção são aquelas em que, em algum passo, o algoritmo verifica determinada condição 
para, então seguir por algum caminho. Vejamos alguns subtipos. 
Estrutura de seleção simples (ou estrutura de desvio, ou estrutura condicional, ou estrutura if-then) 
Analise comigo o algoritmo a seguir: 
ALGORITMO NUMEROS_IGUAIS; 
1.VAR A, B: INTEIRO; 
2.INICIO 
3.LER (A, B); 
4.SE (A=B) 
5.ENTÃO ESCREVER (“Os números são iguais!”); 
6.FIM. 
Este é um algoritmo que possui uma estrutura de seleção simples. Diferentemente da estrutura sequencial 
pura, perceba que a linha 5 somente será executada se a condição analisada na linha 4 for atendida. 
Compreendeu? 
Então eu vou lançar mão de um recurso, daqui pra frente, chamado identação. Identação é a utilização de 
tabulação nas linhas de código, para visualizar o entendimento do mesmo. Veja novamente abaixo o mesmo 
código: 
ALGORITMO NUMEROS_IGUAIS; 
Prof. Victor Dalton 
 Aula 08 
 
 
17 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
1.VAR A, B: INTEIRO; 
2.INICIO 
3.LER (A, B); 
4.SE (A=B) 
 5.ENTÃO ESCREVER (“Os números são iguais!”); 
6.FIM. 
Perceba que a identação não mudou em nada o conteúdo do código. Mas, agora, fica mais fácil para você 
perceber a “subordinação” da linha 5 à análise da linha 4, não é mesmo? Caso a condição seja falsa, a linha 5 
simplesmente é pulada, e o código não faz nada. 
Estrutura de seleção composta (ou estrutura de desvio, ou estrutura condicional, ou estrutura if-then-
else) 
emos juntos mais um algoritmo: 
ALGORITMO MAIOR_NUMERO; 
1.VAR A, B: INTEIRO; 
2.INICIO 
3.LER (A, B); 
4.SE (A>B) 
 5.ENTÃO ESCREVER (A); 
 6.SENAO ESCREVER (B); 
7.FIM. 
Acho que você já está entrando no ritmo! 
Nesse caso, a estrutura ficou um pouco mais refinada. O Comando SE (if), na linha 4, apresenta uma 
condição. Se a condição for verdadeira, a linha 5 é executada. Se a condição for falsa, a linha 6 será a executada. 
Ou seja, obrigatoriamente uma, e somente uma das linhas 5 e 6 será executada, antes do código chegar ao 
seu fim, compreendeu? 
Os comandos chave para as estruturas condicionais são o se (if, que impõe a condição), o então (then, 
executado quando a condição é verdadeira) e o senão (else, executado quando a condição é falsa). 
Estrutura de seleção aninhada 
A estrutura de seleção aninhada não chega a ser uma outra variante. Apenas, mostra que é possível, de 
maneira variada, aproveitar-se com comandos if-then-else. Veja: 
ALGORITMO ACHA_MAIOR_NUMERO; 
1.VAR A, B, C: INTEIRO; 
2.INICIO 
3.LER (A, B, C); 
4.SE (A>B) E (A>C) 
5.ENTÃO ESCREVER (A) 
6.SENÃO SE (B>A) E (B>C) 
 7.ENTÃO ESCREVER (B) 
Prof. Victor Dalton 
 Aula 08 
 
 
18 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
 8.SENÃO ESCREVER (C) 
9.FIM. 
Captou o “espírito” desse algoritmo? Consegue acompanhar a execução dele? 
Então vou deixar um desafio no ar, para saber se você realmente entendeu. Se você souber escolher valores 
“maliciosos” para A, B e C, o algoritmo falha. Dica: envolve escolher números iguais. Resposta na última página da 
apostila! Mas tente resolver sozinha (o)! 
Estrutura de seleção múltipla 
Quando a utilização de uma condição envolve um julgamento de verdadeiro ou falso, utilizar if-then ou if-
then-else são condutas bastante válidas. Mas o quefazer quando se deseja uma seleção entre múltiplas escolhas? 
Nesse momento entra em ação o comando case. Podemos ir direto a um exemplo? 
ALGORITMO_NUMEROLOGIA 
VAR opcao:INTEIRO 
INICIO 
ESCREVA(“Digite um número de 1 a 9”); 
LEIA(opcao) 
ESCOLHA(opção) 
 CASO 1 
 ESCREVA(“Você é azarado!”); 
CASO 2 
 ESCREVA(“Você é sortudo!”); 
 CASO 3 
 ESCREVA(“Você vai passar nesse concurso!”); 
 ......... 
 OUTROCASO (“Eu pedi pra escolher entre 1 e 9!”); 
 
FIM 
Ten certeza que você entendeu! Utilizando o case, dependendo do valor da variável, apenas uma das 
múltiplas opções será executada. 
Nesse tipo de estrutura destacam-se os comandos como switch (ESCOLHA), case (CASO) e default 
(OUTROCASO – executado quando a variável não encontre nenhum correspondente entre os case. 
 Estruturas de repetição 
As estruturas de repetição são uma ferramenta poderosa. Sem medo de errar, afirmo que é o tipo de 
estrutura mais útil para o programador. Nela, é possível colocar um trecho de código em “loop”, ou laço de 
repetição, executando até que uma condição seja atingida, ou enquanto uma condição permanecer válida. 
Estruturas de repetição com verificação antecipada 
Vamos direto a um exemplo, já que é assim que se aprende? 
Prof. Victor Dalton 
 Aula 08 
 
 
19 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
 
O código abaixo apresenta uma estrutura nova, utilizando o comando enquanto (while). 
Para auxiliar o nosso teste de mesa, vamos fazer uma tabelinha controlando as variáveis J e X, tudo bem? 
J X 
 
 
 
 
 
 
 
Vamos acompanhar a execução desse código, passo a passo. 
As primeiras linhas desse código não possuem mistério algum. Duas variáveis, J e X são declaradas, como 
números inteiros, e já recebem valores iniciais, 1 e 2, respectivamente. Registremos em nossa tabela. 
X 
1 2 
 
 
 
 
 
 
Entremos na estrutura enquanto (while). 
Essa estrutura tem por característica verificar a condição de execução de seu código ANTES de executá-lo. 
Como J (1) é menor que 10, podemos iniciar o código. 
Nele, X é acrescido de 1, e J é acrescido de 2, assumindo os valores 3 e 3 , respectivamente. 
J X 
1 2 
3 3 
 
 
 
Prof. Victor Dalton 
 Aula 08 
 
 
20 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
 
Chegamos ao fim do enquanto. E agora vem a grande característica das estruturas de repetição! Ao invés de 
prosseguir com o código, devemos voltar à condição de verificação do while. Caso a condição permaneça 
verdadeira, devemos permanecer dentro desse laço! 
 
Laço: devemos permanecer dentro dele enquanto a condição for verdadeira 
Como J (3) é menor que 10, executamos o laço novamente, e X passa a valer 4, e J passa a valer 5. 
J X 
1 2 
3 3 
5 4 
 
 
 
 
Adiantando um pouco o passo, prossigamos até ter o seguinte estado: 
J X 
1 2 
3 3 
5 4 
7 5 
9 6 
 
 
Com J valendo 9, o laço é executado mais uma vez. X recebe o valor 7, e J recebe o valor 11. Acabou, é isso? 
NÃO! Chega-se ao fim do enquanto, e volta-se à condição de verificação, mais uma vez. 
J X 
1 2 
3 3 
5 4 
7 5 
9 6 
11 7 
 
Nesse momento, verifica-se que J (11) não é menor que 10. Aqui sim, o laço termina, e pula-se, então, para a 
linha imediatamente após o laço. 
Preste atenção! O laço só pode ser interrompido por ocasião da verificação! Durante a execução do laço, 
J poderia assumir os valores mais absurdos possíveis, que o laço continuaria executando. 
Prof. Victor Dalton 
 Aula 08 
 
 
21 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Imprimindo-se X e J, apareceria na tela do computador 7 e 11. Entendido? O while mantém o laço 
executando enquanto a condição for verdadeira. 
Estruturas de repetição com verificação no final 
Este tipo de estrutura é muito similar à anterior, mas a verificação ocorre após a execução do laço. Utiliza os 
comandos repeat e until. Mas, enquanto o while executa enquanto a condição for verdadeira, o repeat until 
executará até que a condição seja verdadeira. É uma diferença sutil, mas fácil de compreender. 
Exemplo: 
ALGORITMO EXIBE_NUMEROS; 
Var N: inteiro; 
Inicio 
Leia(N); 
REPITA 
Escreva(N); 
N:= N + 1 
ATÉ N>10; 
Fim 
Bem, acho que você já percebeu que esse algoritmo vai escrever, na tela do computador, números de N (que 
será a entrada do usuário) até 10, não é verdade? 
Ainda, o repeat until possui outra sutileza: obrigatoriamente ele deverá ser executado pelo menos uma 
vez, já que a verificação ocorre somente no final. Quando se utiliza o while, caso a condição imposta seja falsa, 
logo no começo, o laço sequer é executado! 
Estruturas de repetição com variável de controle 
Uma terceira forma de estrutura de repetição é a utilização de uma variável de controle, própria do laço de 
repetição. Inclusive, é a mais comumente utilizada. O comando chave, nestes moldes, é o comando PARA (for). 
ALGORITMO EXIBE_NUMEROS_COM_FOR; 
Var N: inteiro; 
Inicio 
Leia(N); 
PARA cont ←1 até N passo 1 FAÇA 
 Escreva(cont); 
FIM-PARA 
Fim 
A essa altura, creio que você já esteja entendendo bem. A estrutura PARA criou uma variável, chamada cont, 
que inicia com o valor 1. Esse laço deverá se repetir até que cont assuma o valor N, que, neste código, é uma 
entrada do usuário. 
Naturalmente, cont precisa sofrer alguma forma de modificação a cada passagem pelo laço. Caso isso não 
ocorresse, ficaríamos em loop infinito, presos no laço. Para o código acima, o passo 1 indica que, a cada volta no 
laço, cont deverá ser incrementado em um inteiro. 
Prof. Victor Dalton 
 Aula 08 
 
 
22 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Não existe uma convenção muito “amarrada” em pseudocódigo para esse incremento. Esse laço também 
poderia estar escrito assim: 
PARA cont ←1 até N FAÇA 
Escreva(cont); 
cont ← cont + 1; 
FIM-PARA 
Enfim, o “espírito” é o mesmo. 
Assim sendo, esse código imprimirá, na tela do computador, números de 1 a N, sendo N a entrada do usuário. 
Tudo bem? 
Comando break 
Break é um comando que interrompe estruturas de repetição. Por exemplo: 
ALGORITMO EXIBE_NUMEROS_COM_BREAK; 
Var N: inteiro; 
Inicio 
Leia(N); 
FOR cont ←1 até N passo 1 
Escreva(cont); 
if (cont >=25) break; 
END-FOR 
Imprima (“O programa chegou ao seu final”); 
Fim 
Neste caso, perceba que o break, nesse código, funciona como uma proteção. Caso o usuário atribua um 
valor acima de 25 a N, quando aquele if se tornar verdadeiro, o laço será interrompido “à força”, e o programa 
continua normalmente, fora do laço. No exemplo acima, após imprimir 25 na tela do computador, o algoritmo 
imprime O programa chegou ao seu final. Tudo bem? 
O comando break pode ser utilizado com for, while e repeat until, sem problemas. 
Enfim, vistos estes conceitos básicos, é hora de “enfiar a cara” nos exercícios. Eles trarão exemplos práticos 
e ajudarão a consolidar os conceitos que vimos na aula! 
 
Prof. Victor Dalton 
 Aula 08 
 
 
23 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Questões comentadas pelo professor 
1. (VUNESP – Pref. De Itapevi – 2019) 
Analise o seguinte algoritmo, apresentado na forma de pseudo-código (português estruturado). 
 
Caso os valores lidos para as variáveis a, b, c e d tenham sido, respectivamente, 4, 2, 6 e 2, ao final da execução 
desse algoritmo o valor presente na variável x será: 
a) 5 
b) 7 
c) 8 
d) 9 
e) 10 
Comentários: 
Vamos iniciar nosso teste de mesa? 
a -> 4 
b -> 2 
c -> 6 
d -> 2 
i -> 1 
x -> 0 
Neste primeiro momento, a iteração irá comparar se (a+b) > (c+d). 6 > 8 ? FALSO. Logo, vamos para o 
SENÃO. 
x recebe X+2, de zero vai a 2; 
a recebe a+2, de 4 vai a 6; 
Prof. Victor Dalton 
 Aula 08 
 
 
24 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal- 2020 
 
c recebe c+1, de 6 vai a 7. 
i irá de 1 a 2, para repetir a iteração. Logo, nossas variáveis atualizadas são: 
a -> 6 
b -> 2 
c -> 7 
d -> 2 
i -> 2 
x -> 2 
Na segunda iteração, compararemos se (a+b) > (c+d). 8 > 9 ? FALSO. Logo, vamos para o SENÃO. 
x recebe X+2, de 2 vai a 4; 
a recebe a+2, de 6 vai a 8; 
c recebe c+1, de 7 vai a 8. 
i irá de 2 a 3, para repetir a iteração. Logo, nossas variáveis atualizadas são: 
a -> 8 
b -> 2 
c -> 8 
d -> 2 
i -> 3 
x -> 4 
Na terceira iteração, compararemos se (a+b) > (c+d). 10 > 10 ? FALSO. Logo, vamos para o SENÃO. 
x recebe X+2, de 4 vai a 6; 
a recebe a+2, de 8 vai a 10; 
c recebe c+1, de 8 vai a 9. 
i irá de 3 a 4, para repetir a iteração. Logo, nossas variáveis atualizadas são: 
a -> 10 
b -> 2 
c -> 9 
d -> 2 
i -> 4 
x -> 6 
Na quarta iteração, compararemos se (a+b) > (c+d). 12 > 11 ? VERDADEIRO. Logo, vamos para o ENTÃO. 
x recebe X+1, de 6 vai a 7; 
Prof. Victor Dalton 
 Aula 08 
 
 
25 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
a recebe a+2, de 10 vai a 12; 
c recebe c+1, de 9 vai a 10. 
i irá de 4 a 5, para repetir a iteração. Logo, nossas variáveis atualizadas são: 
a -> 12 
b -> 2 
c -> 10 
d -> 2 
i -> 5 
x -> 7 
Na quinta e última iteração, compararemos se (a+b) > (c+d). 14 > 12 ? VERDADEIRO. Logo, vamos para o 
ENTÃO. 
x recebe X+1, de 7 vai a 8; 
a recebe a+2, de 12 vai a 14; 
c recebe c+1, de 10 vai a 11. 
i irá de 5 a 6, e a repetição chega ao fim. Nossas variáveis atualizadas são: 
a -> 14 
b -> 2 
c -> 11 
d -> 2 
i -> 6 
x -> 8 
Imprima X irá imprimir 8. 
Resposta certa, alternativa c). 
2. (IF Sul Rio-Grandense – IF Sul Rio-Grandense – 2019) 
Observe o seguinte pseudo-código: 
X[1] <- 10 
X[2] <- X[1] + 20 * 2 
X[3] <- 100 
Y <- X[2] 
SE X[1] = 10 ENTAO X[1] <- X[3] + X[1] + 50 
Z <- Y + X[1] + x[2] 
Prof. Victor Dalton 
 Aula 08 
 
 
26 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Ao final da execução do código acima, qual é o valor da variável Z? 
a) 260 
b) 220 
c) 230 
d) 200 
Comentários: 
Este é um pseudocódigo relativamente elementar. Vejamos: 
X[1] recebe o valor 10; 
X[2] recebe o valor de X[1] acrescido de 20*2. Logo, X[2] recebe 50; 
X[3] recebe 100; 
Y recebe o valor de X[2], ou seja, 50; 
X[1] é igual a 10? SIM. Logo executaremos o ENTÃO. 
X[1] recebe os valores X[3] + X[1] + 50. X[1] recebe 100+10+50, logo, recebe 160; 
Z recebe Y + X[1] + X[2], ou seja, 50 + 160 + 50, o que dará 260. 
Resposta certa, alternativa a). 
3. (FUNDEP – Pref. De Itatiaiuçu – 2018) 
Considere o trecho de um algoritmo em pseudocódigo que mostra comandos condicionais “se” aninhados com 
início e fim delimitados por { }: 
 
Analisando esse trecho, é correto afirmar que 
a) se T1 e T2 forem verdadeiros e T3 falso, o Comando1, o Comando2 e o Comando4 serão executados. 
b) o Comando7 será executado independentemente de qualquer valor dos testes. 
c) se T1 e T4 forem verdadeiros e T5 falso, o Comando5 e o Comando7 serão executados. 
d) se T1, T2 e T3 forem verdadeiros, o Comando1, o Comando2 e o Comando7 serão executados. 
Comentários: 
Analisando os itens: 
Prof. Victor Dalton 
 Aula 08 
 
 
27 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
a) Se T1 for verdadeiro, realmente o Comando1 será executado; Porém, sendo T2 verdadeiro e T3 falso, o 
segundo SE também será verdadeiro, e teremos Comando2 e Comando3 sendo executados. Item errado, pois 
insinua que Comando4 será executado; 
b) o Comando7 está dentro do primeiro SE, cujo parâmetro de avaliação é T1. Logo, caso T1 seja verdadeiro, 
é certo que Comando7 será executado, porém, se T1 for falso, Comando7 não será executado. Item errado; 
c) veja que se T4 for verdadeiro e T5 falso, o Comando5 terá que ser pulado, pois (T4 E T5) é falso. Item 
errado; 
d) Só de T1 ser verdadeiro, sabemos que Comando1 e Comando7 serão executados; E ou T2 ou T3 sendo 
verdadeiros, Comando2 e Comando3 são executados. Item correto! 
Resposta certa, alternativa d). 
4. (CEPS-UFPA – UNIFESSPA – 2018) 
Considere o seguinte pseudo-código: 
 
Para uma entrada a=5 e b=6, o resultado em tela depois da execução desse algoritmo, é 
a) 31. 
b) 60. 
c) 48. 
d) 66. 
e) 45. 
Comentários: 
Vamos acompanhar o código? 
Valores iniciais de a, b e c: 
a <- 5 
b <-6 
c <-0. 
i começa com 0 e deverá ir até 3, que é b/2. 
c = c + 3*a +i 
c = 0 + 3*5 + 0 
Prof. Victor Dalton 
 Aula 08 
 
 
28 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
c = 15; 
Com i = 1; 
c = c + 3*a +i 
c = 15 + 3*5 + 1 
c = 31; 
Com i = 2; 
c = c + 3*a +i 
c = 31 + 3*5 + 2 
c = 48; 
Com i = 3; 
c = c + 3*a +i 
c = 48 + 3*5 + 3 
c = 66; 
Logo, o valor final de c é 66. 
Resposta certa, alternativa d). 
5. (CESPE – ABIN – 2018) 
Julgue o item seguinte a respeito da construção de algoritmos, dos conceitos de variáveis e de bloco de comandos 
e das estruturas de controle. 
Uma das vantagens de se construir um algoritmo por meio do pseudocódigo é o fato de que a passagem do 
algoritmo para uma linguagem de programação qualquer se torna uma atividade quase que instantânea. 
Comentários: 
O objetivo do pseudocódigo é escrever código em uma linguagem genérica, que facilmente pode ser 
adaptada a qualquer linguagem de programação. 
Resposta certa, item correto. 
6. (CESPE – ABIN – 2018) 
Julgue o item subsequente, relativo à lógica de programação. 
O pseudocódigo a seguir, após executado, apresentará como resultado 13. 
funcao X (n) { 
se (n == 1 ou n == 2) então 
retorne n; 
senão 
Prof. Victor Dalton 
 Aula 08 
 
 
29 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
retorne X (n-1) + n * X (n-2); 
} 
escreva X(4); 
Comentários: 
A função X é uma função relativamente simples. 
Se o parâmetro passado for 1 ou 2, ela retorna o próprio parâmetro; caso contrário, o seu retorno é a própria 
função diminuída de 1 acrescida de n multiplicado pela própria função diminuída de 2. É a famosa 
RECURSIVIDADE, na qual a função chama a si mesma! 
Vamos lá: 
X(4), portanto, tem como resultado X(3) + 4*X(2). 
E agora? 
Vamos fazer uma parte de cada vez! 
X(3) 
X(3) é igual a X(2) + 3*X(1). 
X(2) e X(1) são conhecidos! X(2) é igual a 2 e X(1) é igual a 1. 
Logo, X(3) é tem como resultado 2 + 3*1 , que é igual a 5. 
X(4), portanto, tem como resultado 5 + 4*X(2). 
E, como X(2) é igual a 2, 
X(4) tem como resultado 5 + 4*2, que é igual a 13. 
Resposta certa, item correto. 
7. (FADESP – COSANPA – 2017) 
Considere o código-fonte abaixo, desenvolvido na linguagem de programação “Portugol”: 
 
O número visualizado ao final da execução deste código-fonte é 
a) 1. 
b) 2. 
Prof. Victor Dalton 
 Aula 08 
 
 
30 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
c) 3. 
d) 4. 
Comentários: 
Basicamente, o código faz comparações e irá atribuir a RESULTADO um valor, dependendo do caminho 
seguido. 
Vamos então enxergar o que acontece? 
SE (X < Y+ K) e (K*2 > 4) e (Z+K <12) -> (2<13) e (6>4) e (12 < 12). 
O critério em negrito é FALSO, e, portanto, precisaremos analisar o SENÃO: 
(Y + 10 < Z) ou (Z > 12) -> (14<9) ou (9>12). 
Veja que ambos os critérios são FALSOS. Logo, iremos para o próximo SENÃO: 
SE (X + 2) >= (Y - 4) -> 4 >= 0 . VERDADEIRO! 
Assim sendo, RESULTADO recebe o valor 3 e este será o valor impresso. 
Resposta certa, alternativa c). 
8. (QUADRIX – CFO-DF – 2017) 
Julgue o item que se segue acerca de desenvolvimento e manutenção de sistemas e aplicações. 
O portugol é uma das formas de se representar um algoritmo. 
Comentários: 
O Portugol, ou pseudocódigo, é a forma mais comum de de representar um algoritmo. 
Nela, escreve-se um código"genérico", que é fácil de ser adaptado a qualquer linguagem de programação. 
Resposta certa, item correto. 
9. (IBFC – TRE-AM – 2014) 
Ao analisarmos o algoritmo genérico abaixo, em Portugol, chega-se a conclusão que a variável Z, ao final do 
algoritmo, terá o valor de: 
 
a) 4 
Prof. Victor Dalton 
 Aula 08 
 
 
31 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
b) 5 
c) 1 
d) 8 
Comentários: 
Vamos lá: 
inicialmente, verifica-se se Z é menor do que Y, o que é falso, já que Z é 6 e Y é 4. 
Devemos ir para o SENÃO. 
Z receberá o valor de Z + Y/X. 
Z <- 6 + 4/2 
Z <- 6+2 
Z <- 8. 
Resposta certa, alternativa d). 
10. (CESPE – EBC – 2011) 
Acerca de pseudocódigo, descrição narrativa e fluxograma, que são usados para a descrição de algoritmos, julgue 
os próximos itens. 
A descrição narrativa é uma forma de algoritmo que utiliza linguagem estruturada e, embora sua estrutura e 
simbologia apresentem pequenas diferenças em relação à língua portuguesa, também é chamada de português 
estruturado. 
Comentários: 
A descrição narrativa é próxima da linguagem falada, e não utiliza nenhuma linguagem estruturada. 
É uma narração por escrito. 
Resposta certa, Item errado. 
11. (CESPE – EBC – 2011) 
Acerca de pseudocódigo, descrição narrativa e fluxograma, que são usados para a descrição de algoritmos, julgue 
os próximos itens. 
Uma forma universal de representação de um algoritmo, o fluxograma, ou diagrama de blocos, utiliza figuras 
geométricas a fim de ilustrar os passos a serem seguidos para a resolução de um problema. 
Comentários: 
É a exata definição de fluxograma. 
Resposta certa, Item correto. 
12. (CESPE – EBC – 2011) 
Prof. Victor Dalton 
 Aula 08 
 
 
32 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Acerca de pseudocódigo, descrição narrativa e fluxograma, que são usados para a descrição de algoritmos, julgue 
os próximos itens. 
Para especificar os passos de um algoritmo, o pseudocódigo utiliza uma linguagem natural com característica 
pouco formal, o que pode causar ambiguidade e propiciar interpretações errôneas. 
Comentários: 
O pseudocódigo, embora não seja nenhuma linguagem de programação específica, já possui formalismos 
em seu algoritmo a ponto de não deixar dúvidas e nem ambiguidades. 
Afinal, precisa possuir todas as características de um bom algoritmo, inclusas a finitude e a clareza. 
Resposta certa, Item errado. 
13. (FCC – TRE/SP – Técnico Judiciário - Programação de Sistemas – 2012) 
Analise o algoritmo a seguir: 
 
Se forem lidos os valores 2, 5, 7, 3 e 4, 
a) a saída será 840. 
b) haverá um erro, pois o resultado de um cálculo envolvendo a variável r não pode ser armazenado na própria 
variável r. 
c) a saída será 210. 
d) haverá um erro, pois o valor gerado será maior do que uma variável do tipo inteiro pode suportar. 
e) a saída será 0. 
Comentários: 
Este é um bom exercício para começar. 
Três variáveis são criadas, n, r, cont, todos números inteiros. Preparemos o nosso teste de mesa! 
n r cont 
 
Prof. Victor Dalton 
 Aula 08 
 
 
33 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
 
 
 
 
 
O código inicia atribuindo a r e cont o valor 1. 
n r cont 
 1 1 
 
 
 
 
 
Na sequência, percebe-se que, enquanto cont for menor que 5, ficaremos dentro do laço. N é variável inserida 
pelo usuário, e a questão já nos adianta que os valores inseridos serão 2, 7, 5, 3 e 4. 
Na primeira iteração do laço, r recebe o valor de r vezes n. 
n r cont 
2 1 1 
 2 
 
 
 
 
Cont é incrementado em 1, e o laço reinicia, pois a condição permanece válida. O usuário entra com o valor 
7 e r recebe o valor de r vezes n. 
Prof. Victor Dalton 
 Aula 08 
 
 
34 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
n r cont 
2 1 1 
7 2 2 
 14 
 
 
 
Já sabe onde isso vai dar? 
n r cont 
2 1 1 
7 2 2 
5 14 3 
3 70 4 
4 210 5 
 840 6 
Concorda comigo? Faça com calma, à mão. Perceba que cont alcança o valor 6, para então interromper o 
laço. 
Dessa forma, r, ao ser impresso, mostra 840 na tela do computador. 
Alternativa a). 
14. (UEL - CMTU – Analista Administrativo – Tecnologia da Informação - 2011) 
Observe o trecho do algoritmo a seguir 
atribuir 50 a I 
atribuir 0 a TOTAL 
atribuir 0 a K 
enquanto K < I faca 
tesinıcio 
testessomar 10 a K; 
Prof. Victor Dalton 
 Aula 08 
 
 
35 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
testesatribuir TOTAL+K a TOTAL 
testesimprimir(K); 
tesfim; 
fim-enquanto; 
imprimir(TOTAL); 
Ao final do processamento, a variável TOTAL e o número de vezes que a K será impresso são, respectivamente: 
a) 100 e 4 
b) 150 e 5 
c) 150 e 8 
d) 150 e 9 
e) 210 e 6 
Comentários: 
Outra linha de raciocínio! 
A estrutura de repetição, novamente, será a que lhe exigirá mais atenção no código: 
enquanto K < I faca 
tesinıcio 
testessomar 10 a K; 
testesatribuir TOTAL+K a TOTAL 
testesimprimir(K); 
tesfim; 
fim-enquanto; 
Essa estrutura do tipo “enquanto...faça” faz exatamente isso. Verifica uma condição, no caso, o valor de K, 
e, enquanto a condição estiver sendo atendida, ele executa o código no seu interior. Ao término, volta a verificar 
a condição e executa quantas vezes a condição estiver sendo atendida. Daí você conclui que, dentro desta 
estrutura, a variável de verificação (no caso, K), deve ser modificada ao longo da execução. Caso isso não 
acontecesse, teríamos um “loop infinito”. 
Enfim, quando a condição de verificação deixar de ser atendida, a estrutura “enquanto... faça” será pulada e 
o restante do código continuará a ser executado. 
Voltando ao exercício, temos primeiro algumas atribuições de variáveis: 
atribuir 50 a I – I passa a valer 50 
atribuir 0 a TOTAL – TOTAL passa a valer 0 
atribuir 0 a K – K passa a valer 0 
 Vejamos agora a estrutura mais delicada, a condicional: 
Prof. Victor Dalton 
 Aula 08 
 
 
36 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
enquanto K < I faca 
tesinıcio 
testessomar 10 a K; 
testesatribuir TOTAL+K a TOTAL 
testesimprimir(K); 
tesfim; 
fim-enquanto; 
Um dos objetivos é saber quantas vezes K será impresso. K será impresso tantas vezes quantas adentrar-se 
na estrutura de repetição. 
Com K = 0, entrar-se-á uma vez na estrutura. K passará a valer 10 (somar 10 a K). Entrar-se-á na estrutura 
novamente. 
Contando nos dedos da mão (sim, essa é a melhor forma de se contar, fazemos isso o tempo todo), percebe-
se que a estrutura será executada com k = 0,10,20,30,40 ou seja , 5 vezes. Perceba que é K<I, e não K<=I, o que são 
duas coisas diferentes! 
Tendo metade da resposta, falta agora saber o valor de TOTAL. 
Na primeira vez, TOTAL = TOTAL(0) + K(10) -> perceba que soma-se 10 a K antes da atribuição da soma a 
total; 
Na segunda vez, TOTAL = TOTAL(10) + K(20); 
Na terceira vez, TOTAL = TOTAL(30) + K(30); 
Na quarta vez, TOTAL = TOTAL(60) + K(40); 
Na quinta vez, TOTAL = TOTAL(100) + K(50); 
Ainda, observe que o último valor de K, 50, será reprovado na próxima verificação, por ser igual a I, e toda a 
estrutura “enquanto” será pulada. Entretanto, nada impediu que, quando dentro da estrutura, na passagem 
anterior, K, que valia 40, passasse a valer 50, pois a verificação somente ocorre no início. 
Pulada a estrutura “enquanto...faça”, o valor de TOTAL será impresso, e este equivale a 150. 
Portanto, nossa resposta certa é a letra b). 
15. (FCC – ARCE – Analista de Regulação - Analista de Sistemas – 2012) 
Considere o algoritmo em pseudocódigo: 
Prof. Victor Dalton 
 Aula 08 
 
 
37 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020Os valores de R1, R2 e R3, após a execução do algoritmo são: 
a) R1=0, R2=1, R3=1 
b) R1=1, R2=1, R3=0 
c) R1=1, R2=0, R3=0 
d) R1=0, R2=0, R3=1 
e) R1=0, R2=0, R3=0 
Comentários: 
Pois bem, pessoal, vamos analisar o nosso exercício. 
Antes da execução do algoritmo, propriamente dita, ocorre a declaração de variáveis. 
A,B e C são variáveis lógicas, também chamadas de booleanas, pois podem assumir apenas dois valores: 
certo e errado, true ou false, 1 ou 0; 
X e Y podem assumir valores de números reais; 
R1, R2 e R3 podem assumir valores de números inteiros. 
Quando o algoritmo se inicia, ocorre uma série de atribuição de valores. A e C são verdadeiros, B é falso, X 
vale 2,5 e Y 3,5. 
Na sequência, encontramos nossa primeira estrutura condicional: 
se (C ou (X – Y > 0)) 
Prof. Victor Dalton 
 Aula 08 
 
 
38 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
OU é uma estrutura do tipo “caso uma das condições seja verdadeira, tudo é verdadeiro”. X-Y será menor 
que zero, mas, como C é verdadeiro, isto significa que a condição foi atendida e o conteúdo condicional será 
executado. Então, R1 receberá o valor 1. 
Nossa segunda estrutura condicional diz que: 
se (((A e B) ou C) e ((X > Y) ou não(A))) 
Mais uma vez, temos que descobrir se a sentença nos retorna verdadeiro ou falso, para executarmos o então 
ou o senão. Como a nossa ao matemática nos ensina, vamos resolver os parênteses de dentro para fora: 
A e B -> B é falso, logo, A e B -> falso; 
falso ou C -> C é verdadeiro, logo, falso ou C -> verdadeiro; 
X>Y é falso; 
não(A) é falso, uma vez que A é verdadeiro; 
falso ou falso é falso; 
Então, aquela complexa estrutura condiciona ficou igual a: 
se (verdadeiro e falso) 
Assim sendo, a sentença é falsa e o próximo passo do algoritmo será executar o senão. Logo, R2 recebe o 
valor 0. 
 Por fim, temos a terceira estrutura condicional, cuja sentença é a mais extensa: 
se (( B ou (X-Y<0)) e ((B e não(A)) ou (não(C))) 
Vamos estudá-la em detalhes, e reescrevendo-a a cada passo. 
X-Y < 0 -> 2,5 – 3,5 < 0 -> verdadeiro; 
não(A) -> não (verdadeiro) -> falso; 
não(C) -> não (verdadeiro) -> falso; 
B -> falso; 
Com isso, temos: 
se (( falso ou verdadeiro) e ((falso e falso) ou falso)) 
 falso ou verdadeiro -> verdadeiro; 
 falso e falso -> falso; -> falso ou falso -> falso; 
E a sentença se resume a se (verdadeiro e falso), o que nos leva a falso, e, novamente, a condição executada 
será o senão. Isto posto, R3 recebe o valor 0. 
Finalizado o algoritmo, R1 vale 1, R2 e R3 valem 0. 
Conseguiu acompanhar? Um programa nada mais é que uma série de procedimentos simples, que, uma vez 
unidos, se tornam um todo altamente complexo. Portanto, para “debugá-lo”, o procedimento é decompor o 
problema até o nível que você enxerga passos simples, e assim consegue analisá-lo. 
Prof. Victor Dalton 
 Aula 08 
 
 
39 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Resposta certa, alternativa c). 
16. (FCC – TRF/4ª Região – Analista Judiciário – Informática – 2010) 
Considere: 
 
Dado o algoritmo representado na forma de português estruturado, o valor de saída contido na variável RESP será 
a) 6. 
b) 22. 
c) 86. 
d) 0. 
e) 342. 
Comentários: 
E continuemos a nos exercitar! 
Este exercício é um pouco mais complexo, pois possui uma estrutura de repetição dentro da outra. Tal 
visualização é possível por causa da identação, que é esse recurso visual de tabular mais à direita as estruturas que 
devem ser executadas dentro de outras estruturas. 
 Quando nos deparamos com esse tipo de exercício, a melhor coisa que se pode fazer, para não se perder 
durante a “debugação”, é fazer uma tabela com todas as variáveis e os valores que elas assumem ao longo da 
execução do programa. Assim: 
N 4 
X 2 
CONTA 
CONTB 
EXP 
Prof. Victor Dalton 
 Aula 08 
 
 
40 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
RESP 2 
Agora, toda vez que alguma variável sofrer uma modificação, basta escrevê-la na tabela, para não se perder. 
Sem mais rodeios, vamos encarar o algoritmo: 
Com N,X e RESP recebendo seus valores iniciais, temos a primeira estrutura para. Nela, CONTA recebe o 
valor 2 e tal estrutura deverá ser repetida até que CONTA alcance o valor de N (ou seja, quando o valor de CONTA 
for maior ao valor de N a estrutura deverá ser pulada). Detalhe: a estrutura tem passo 2, ou seja, o contador 
incrementa de 2 em 2 inteiros. Como 2 é menor do que 4, entra-se. 
Ao entrar no primeiro para, EXP recebe o valor de X, 2, CONTB recebe o valor de 1, e precisamos entrar na 
segunda estrutura para. Mantenhamos o controle do valor das variáveis! 
N 4 
X 2 
CONTA 2 
CONTB 1 
EXP 2 
RESP 2 
No segundo para, a estrutura deverá ser executada até que CONTB atinja o VALOR de CONTA-1, com passo 
1. Como 1 é igual a 1, entra-se. 
Dentro do segundo para, EXP recebe o próprio valor multiplicado por X, ou seja, 2*2, que é igual a 4. EXP 
passa a valer 4. 
No fim_para, volta-se ao seu início, incrementa-se o contador e verifica-se a condição novamente. CONTB 
agora vale 2, CONTA -1 continua sendo 1. Logo, o segundo para deve ser pulado. 
Ainda estamos dentro do primeiro para! Chegamos á linha remanescente, na qual RESP deverá receber seu 
próprio valor acrescido de EXP. 2 + 4, 6. Você continua controlando as variáveis? 
N 4 
X 2 
CONTA 2 
CONTB 1 2 
EXP 2 4 
RESP 2 6 
Prof. Victor Dalton 
 Aula 08 
 
 
41 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Chegamos ao fim do primeiro ciclo do primeiro para. Logo, devemos incrementar o contador, de passo 2, e 
tentar executar a iteração novamente. 
CONTA agora vale 4, ficando igual a N. Podemos prosseguir. 
EXP novamente assume o valor 2, e CONTB volta a assumir o valor 1. Tudo sob controle? 
N 4 
X 2 
CONTA 2 4 
CONTB 1 2 1 
EXP 2 4 2 
RESP 2 6 
No segundo para CONTB vale 1 e deverá ser incrementado até CONTA-1, ou seja, até 3. 
Na prática, EXP receberá o seu próprio valor multiplicado por X várias vezes. 
Quando CONTB = 1, EXP será 2*2, 4; 
Quando CONTB = 2, EXP será 4*2, 8; 
Quando CONTB = 3, EXP será 8*2, 16; 
Quando CONTB = 4, pula-se o segundo para. 
Acompanhou? 
N 4 
X 2 
CONTA 2 4 
CONTB 1 2 1 1 2 3 4 
EXP 2 4 2 4 8 16 16 
RESP 2 6 
Pulado o segundo para, executa-se a última linha do primeiro para, atribuindo a RESP o seu próprio valor 
acrescido de EXP. 6 + 16, 22. 
Agora CONTA passou a valer 6, por causa do passo 2, e como 6 é maior que 4, o primeiro para deve ser 
pulado. Mais controle! 
N 4 4 
Prof. Victor Dalton 
 Aula 08 
 
 
42 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
X 2 2 
CONTA 2 4 6 
CONTB 1 2 1 1 2 3 4 
EXP 2 4 2 4 8 16 16 
RESP 2 6 22 
RESP foi impresso, com o valor 22, e você já sabe os valores finais de todas as variáveis do código. É 
importante manter esse controle, para que você não se perca. 
Resposta certa, alternativa b). 
17. (FCC – METRÔ/SP – Analista Desenvolvimento Gestão Júnior – Ciências da Computação - 2012) 
Analise a estrutura abaixo. 
 
Considere mod o operador que calcula o resto da divisão entre dois números inteiros. 
Por meio de um teste de mesa é possível constatar que o portugol mostrado representa a resolução da equação: 
a) resp = 0 + 1 – 2 + 3 – 4 + 5 – ... (+ ou –) n 
b) resp = 0 + 1 – 22 + 34 – 46 + 5n 
c) resp = 0 – 1 – 2 – 3 – 4 – 5 – ... – n 
d) resp = 0 + 1! – 2! + 3! – 4! + 5! – n! 
e) resp = 0 – 1 + 2 – 3 + 4 – 5 + ... – n 
Comentários: 
Esse código já está com cara de que vai dar trabalho! Então, logo pra início de conversa, vamos fazer a nossa 
tabelinha comas variáveis do código: 
Prof. Victor Dalton 
 Aula 08 
 
 
43 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
N ? 
CONT 1 
RESP 0 
S -1 
N, pelo visto, será o parâmetro inserido pelo usuário. A função leia(n) nos mostra isso. Logo, toda vez que 
esse programa for executado, leia(n) trará o valor de N para o programa e continuará a sua execução. 
O algoritmo começa pra valer na estrutura de repetição “enquanto...faça”. Esta, por sua vez, já inicia com 
uma estrutura condicional: se (cont mod 2 = 0). 
mod, como o próprio enunciado da questão informa, é o operador que calcula o resto da divisão entre dois 
números inteiros. Saber se X mod 2 = 0, por exemplo, significa saber se o resto da divisão de X por 2 é zero ou não. 
Na prática, serve para analisar se o número é par ou ímpar, percebeu? É só analisar: 
1 mod 2 = 0 -> falso; 
2 mod 2 = 0 -> verdadeiro; 
3 mod 2 = 0 -> falso; 
4 mod 2 = 0 -> verdadeiro; 
Programação é isso, pequenos raciocínios o tempo todo. Continuemos: 
Na sequência, temos um então, executado quando o contador for par, e um senão, executado quando o 
contador for ímpar. 
Quando o contador é par, a resp é adicionado o valor do contador com sinal negativo (resp <- resp + cont*s); 
 Por sua vez, quando o contador é ímpar, a resp é adicionado o valor do próprio contador, sem modificações 
(resp <- resp + cont); 
Já conseguiu enxergar isso? Se você estiver enxergando, já será um excelente sinal. Veja como a tabela evolui 
ao longo de três contagens: 
N ? ? ? ? 
CONT 1 1 2 3 
RESP 0 1 
(0+1) 
-1(0+1-2) 2(0+1-2+3) 
S -1 -1 -1 -1 
 
O procedimento do algortimo é esse. Quando contador(CONT) ultrapassa o valor de N,a estrutura 
“enquanto...faça” é abortada e o valor de RESP é impresso. 
Prof. Victor Dalton 
 Aula 08 
 
 
44 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Assim sendo, percebemos que resp representa a solução da equação 0 + 1 - 2 + 3 - 4 + 5 ... (+ ou -) n. 
Alternativa a). 
18. (UEL - CELEPAR – Analista de Informática Júnior – Desenvolvimento de Sistemas - 2009) 
O seguinte algoritmo implementa um método de ordenação: 
 
Assinale a alternativa que indica quantas vezes o trecho destacado do algoritmo será executado, se o algoritmo 
for executado recebendo como parâmetros {6, 5, 4, 3, 2, 1} e 6. 
a) 0 
b) 1 
c) 3 
d) 5 
e) 6 
Comentários: 
Pessoal, esta aqui é a nossa questão desafio. Se você entender este código, não existe algortimo que você 
não consiga decifrar na prova. Além dos conceitos que vimos até agora, este código também trabalha com 
vetores, que nada mais são do que um conjunto de variáveis organizadas unidimensionalmente. 
ordena (int vet[], int n) é uma função que recebe como parâmetros um vetor de inteiros e um inteiro. 
Lembro que o que caracteriza um vetor (array) são os colchetes ([]), e não o nome “vet”. O nome da variável é 
apenas o nome dela. O vetor que a questão está passando é {6,5,4,3,2,1} e o inteiro é 6, conforme enunciado. 
Ao iniciar, a função cria 4 variáveis do tipo inteiro, i,j,pos e aux, sem definir valor a elas. 
Na sequência temos uma grande estrutura de repetição, que engloba uma estrutura de repetição e uma 
condicional. A primeira executará inicializando o valor de i com 1, e executará enquanto 1 for menor que n-1, ou 
seja , 5. Vamos precisar da nossa tabela auxiliar com as variáveis: 
Prof. Victor Dalton 
 Aula 08 
 
 
45 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
VET[] {6,5,4,3,2,1} 
N 6 
I 
J 
POS 
AUX 
Ao iniciar, atribui-se à variável pos o valor de i, que é 1. Na sequência, outra estrutura de repetição! Vá 
acompanhando com a mão, rabisque a lápis se necessário, mas acompanhe o código linha a linha! 
E é isso mesmo. Ao entrar em uma estrutura de repetição dentro de uma outra estrutura de repetição, a 
estrutura anterior só continua a sua execução após o término da interna. E, quando a estrutura externa retomar 
outro “loop”, a interna será executada novamente, como se nada tivesse acontecido antes. Acompanhe! 
Na segunda estrutura condicional, j começa com o valor de i + 1 (2), podendo ir até n (6). Vamos continuar 
anotando? 
No primeiro “loop”, tanto do primeiro para quanto do segundo para, temos: 
VET[] {6,5,4,3,2,1} 
N 6 
I 1 
J 2 
POS 1 
AUX 
Perceba que vet[1] é 6, vet[2] é 5, ..., e vet[6] é 1. Normalmente em pseudocódigo é assim. 
No primeiro se, que ocorre em se (vet[pos]> vet[j]), ocorre uma comparação. Caso o valor de vet[pos], pos 
valendo 1, seja maior que o valor de vet[j], j valendo 2, ele atribuirá a pos o valor de j, 2, atribuirá a j o valor de j + 
1 (3). Está ficando bem difícil, por isso desenhe em folha de papel à parte, continue acompanhando com a tabelinha 
e escreva os valores das variáveis e modifique eles à medida que o código modificá-la. Somente assim você 
conseguirá acompanhar! Como essa questão apresentou um vetor invertido, na verdade todo o vetor vai ser 
percorrido para verificação na primeira passagem, encerrando somente quando pos=6 e j=7. E agora a mágica 
começa. 
VET[] {6,5,4,3,2,1} 
Prof. Victor Dalton 
 Aula 08 
 
 
46 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
N 6 
I 1 
J 7 
POS 6 
AUX 
Após a segunda estrutura de repetição “para...faça”, será verificado se pos é diferente de i(na próxima 
estrutura condicional). Perceba que ainda estamos dentro da primeira estrutura “para...faça”. Não deixe de 
acompanhar a explicação lendo o código! 
Como pos vale 6 e i ainda vale 1, o conjunto dentro do quadrado trocará os valores de vet[i] e vet[pos], 
usando uma variável auxiliar como ferramenta. Conseguiu captar? vet, que é {6,5,4,3,2,1} passou a ser {1,5,4,3,2,6}. 
Olha a função ordena trabalhando! 
Feito isso, i será incrementado em 1, passando a valer 2, e o primeiro “para...faça” continua a trabalhar. 
pos recebe o valor de i (2), e o outro “para....faça” recomeça, com j=3,... e por aí vai, de maneira análoga ao 
raciocínio desenvolvido anteriormente. Vou deixar que você trabalhe o raciocínio no “braço”. 
Haverão mais duas modificações no vetor vet: de {1,5,4,3,2,6} ele ainda irá a {1,2,4,3,5,6} e a {1,2,3,4,5,6}, 
ficando ordenado. 
Rascunhe no braço a resolução! Parece difícil, mas a solução para decifrar algoritmos complicados é 
compartimentar os problema em pequenos problemas fáceis, fazendo passo a passo, linha a linha, e mantendo o 
controle dos valores de TODAS as variáveis. 
Tudo bem ter achado esse exercício difícil, e ele realmente o é. Se você tiver, ao menos, acompanhado esse 
raciocínio, está de ótimo tamanho. 
Por fim, a resposta correta é a alternativa c). 
(CESPE – SERPRO – Técnico – Programação - 2008) 
A respeito da lógica de programação, que é fundamental para o desenvolvimento de códigos por meio de 
linguagens de programação, julgue os itens subsequentes. 
19. 
Um algoritmo pode ser definido como uma sequência finita de passos que levam à execução de determinada tarefa 
ou conjunto de tarefas. 
Comentários: 
Definição clássica de algoritmo. 
Correto. 
20. 
Prof. Victor Dalton 
 Aula 08 
 
 
47 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Na lógica de programação, a instrução é o comando principal que indica a um programa uma condição estrutural 
a repetir. 
Comentários: 
A impressão é que faltou definir qual seria a instrução. While, for e repeat until são instruções que definem 
uma estrutura a ser repetida dentro de um programa. 
Errada. 
21. 
Um diagrama de blocos é uma forma padronizada para se representar os passos lógicos de determinado 
processamento. Por meio do diagrama, pode ser utilizada uma sequência de símbolos, com significadobem 
definido, para auxiliar a representação dos passos de um processamento. 
Comentários: 
Os diagramas são ferramentas úteis para representar visualmente a execução de um algoritmo. 
Correta. 
22. 
Os operadores relacionais são utilizados para comparar números. Para se comparar sequências de caracteres 
(strings), são utilizados os operadores lógicos, que retornam valores verdadeiro e falso. 
Comentários: 
É possível comparar strings (texto) utilizando operadores relacionais, que também retornam verdadeiro ou 
falso. Maior ou menor comparam tamanho, enquanto igual ou diferente comparam conteúdo. 
Errada. 
23. 
Em lógica de programação, uma constante é um valor fixo que não se modifica ao longo do tempo durante a 
execução de um programa. Essa constante pode ser numérica, lógica ou literal. 
Comentários: 
A constante não pode ser modificada, apenas a variável. 
Correta. 
24. 
Segundo o pseudocódigo abaixo, um vetor de 100 números é lido e, em seguida, é montado um segundo vetor a 
partir dos valores do primeiro vetor multiplicados por 3. 
início 
 VET1,VET2 : vetor [1..100] numérico 
 CONTADOR : numérico 
Prof. Victor Dalton 
 Aula 08 
 
 
48 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
 para CONTADOR de 1 até 100 faça 
 leia "Digite um número: ",VET1[CONTADOR] 
 VET2[CONTADOR] ← (VET1[CONTADOR] * 3) 
 fim-para 
fim 
Comentários: 
A montagem do segundo vetor ocorre paralelamente à montagem do primeiro vetor (não em seguida, como 
sugere a assertiva), já que a leitura dos valores do vetor ocorre dentro do laço. Faça o teste de mesa se tiver 
dúvidas! 
Errada. 
25. 
Nas estruturas de controle, tais como as estruturas de seleção simples, compostas ou encadeadas, é necessário 
verificar as condições para a realização de uma instrução ou sequência de instruções. 
Comentários: 
A verificação das condições ocorre no comando if. 
Correta. 
(CESPE – Banco da Amazônia – Técnico Científico – Análise de Sistemas - 2012) 
26. 
O comando while utilizado em algoritmos implementa laços com teste antecipado de condições, testando a 
condição e, sendo ela verdadeira, executando o bloco de comandos. 
Comentários: 
Já o repeat until verifica a condição depois da execução da estrutura. 
Correta. 
27. 
Quando um break é encontrado dentro de um laço for, a execução do código é interrompida e o programa é 
finalizado. 
Comentários: 
A execução do código é interrompida e o laço é encerrado, retomando a execução normal do programa, 
imediatamente após o laço. 
Errada. 
28. 
Prof. Victor Dalton 
 Aula 08 
 
 
49 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
Estruturas de repetição permitem que uma sequência de comandos seja executada repetidamente até que 
determinada condição de interrupção seja satisfeita. É possível que, em determinada execução do algoritmo, a 
sequência de comandos não seja executada nenhuma vez. 
Comentários: 
Se um comando while verificar uma condição que seja falsa logo na primeira verificação, a estrutura de 
repetição é pulada sem nenhuma execução. 
Correta. 
29. 
Estruturas de repetição são usadas para que determinado bloco de comandos seja executado diversas vezes. A 
garantia de parada da repetição ocorre por meio de uma condição que é verificada a cada nova iteração. 
Dependendo do tipo de estrutura de repetição utilizado, o bloco de comandos é executado pelo menos uma vez. 
Comentários: 
Quando se utiliza o repeat until, o bloco de comandos será executado pelo menos uma vez. 
Correta. 
30. (FCC – TRT/20 – Técnico Judiciário – Área Administrativa – 2016) 
Uma das funções da lógica de programação é definir os passos para se resolver problemas do mundo real através 
de programas de computador criados nas linguagens de programação. Considere, nesse contexto, a estrutura de 
passos em pseudolinguagem abaixo. 
 
Se for informado o valor 4000 para a variável salary será exibido o valor 
(A) 4400 
(B) 4300 
(C) 5000 
(D) 4200 
Prof. Victor Dalton 
 Aula 08 
 
 
50 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
(E) 9000 
Comentários: 
Na lógica se-então-senão, o fato de salary ser igual a 4000 levará o código a pular até a linha 12, para o último 
senão, que acrescentará 1000 à variável salary, fazendo-a receber o valor 5000, que será exibido ao final do 
programa. 
Resposta certa, alternativa c). 
31. (FGV – COMPESA – Administrador de Banco de Dados – 2016) 
Considere a série a seguir. 
1+ ¼ + 1/9 + 1/16 + 1/25 .... 
Assinale a opção que indica o pseudocódigo que calcula e exibe corretamente o somatório dos dez primeiros 
termos dessa série. 
a) 
b) 
c) 
d) 
Prof. Victor Dalton 
 Aula 08 
 
 
51 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
e) 
Comentários: 
Como é o perfil da FGV, a questão, desde o começo, exige um pouco do nosso raciocínio. 
Desde já, a primeira coisa que você precisa notar é que o somatório está sendo composto, nos 
denominadores dos termos, pelos quadrados dos números inteiros positivos, em ordem crescente. Afinal, 
1+ ¼ + 1/9 + 1/16 + 1/25 .... 
equivale a 
1+ 1/22 + 1/32 + 1/42 + 1/52 .... 
Logo, nas alternativas, eu já imagino que devo buscar algum algoritmo que faça tal procedimento. 
Vejamos a alternativa a: 
 
Preparemos nosso teste de mesa: 
S (somatório) 0 
K 1 
T 
Na primeira iteração, T recebe 1/1*1, que dá 1, S recebe 0 + 1, que dá 1, e K incrementa em 1, que também dá 
2. 
Ao final do primeiro loop, teremos: 
S (somatório) 0 1 
K 1 2 
T 1 1 
Ao iniciar a segunda iteração, T recebe 1/2*2, que dá ¼, certo? 
Prof. Victor Dalton 
 Aula 08 
 
 
52 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
ERRADO! 
Perceba que não há parênteses entre os operadores. E, neste caso, divisão e multiplicação estão igualmente 
posicionados na hierarquia dos operadores. 
Logo, 1/2*2 é 0,5*2, que dá 1! 
Portanto, percebe-se que a alternativa a) não conduzirá à resposta correta. 
Vendo a alternativa b). 
 
Preparemos, novamente, nosso teste de mesa: 
S (somatório) 0 
K 1 
T 
Na primeira iteração, T recebe 1/(1*1), que dá 1, S recebe 0 + 1, que dá 1, e K incrementa em 1, que também 
dá 2. 
Ao final do primeiro loop, teremos: 
S (somatório) 0 1 
K 1 2 
T 1 1 
Ao iniciar a segunda iteração, T recebe 1/(2*2), que dá ¼ , S recebe 1 + ¼ , que dá 1,25 , e K incrementa em 
1, que dá 3. 
S (somatório) 0 1 1 + ¼ 
K 1 2 3 
T 1 1 ¼ 
Nos parece o caminho certo! Vamos fazer a terceira iteração só pra confirmar? 
T receberá 1/(3*3), que dá 1/9, S recebe 1 + ¼ + 1/9, e K incrementa em 1, que dá 4. 
Prof. Victor Dalton 
 Aula 08 
 
 
53 de 69| www.direcaoconcursos.com.br 
Informática para Agente e Escrivão da Polícia Federal - 2020 
 
S (somatório) 0 1 1 + ¼ 1 + ¼ 
+ 1/9 
 
K 1 2 3 4 
T 1 1 ¼ 1/9 
Portanto, a alternativa b) é o item correto. 
Mas, professor, não seria ideal calcular o código até o final só pra confirmar que essa realmente é a alternativa 
certa? E não seria bom testar também TODAS as demais alternativas? 
Veja, você terá toda uma prova para fazer, além desta questão aqui. Estará com tempo sobrando? 
Quando você entende bem os passos de um algoritmo, nas primeiras duas ou três iterações, será capaz de 
confirmar o comportamento dele até o fim, sem precisar conferir passo-a-passo, não concorda? 
Resposta certa, alternativa b). 
32. (FGV – SEFIN/RO – Auditor Fiscal – 2018) 
Analise o trecho do pseudocódigo a seguir. 
a := 2; 
b := a*10; 
while a<10 anda b>14 
begin 
 if a<>b 
 begin 
 if a>5 
 print (a,b) 
 else 
 a:= a+3; 
 end 
 else 
 begin

Outros materiais