Você está na página 1de 74

Linguagens Procedurais

Professor Marcelo Pacote – @professorpacote

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Agenda

 Noções de linguagens procedurais


 Tipos de dados elementares e estruturados
 Funções
 Procedimentos
 Estruturas de Controle de Fluxo e Execução
 Estruturas de Sequência
 Estruturas de Decisão (Seleção)
 Estruturas de Repetição (Iteração)

Professor Marcelo Pacote - @professorpacote 2 W W W. D O M I N A N D OT I .CO M . B R


Linguagens de Programação

 Tipos de linguagens:
 Lógicas
 Funcional
 Procedurais (Estruturadas)
 Orientadas a Objetos
 Tipos de programação:
 Linear
 Estruturada
 Orientada a Objetos
Professor Marcelo Pacote - @professorpacote 3 W W W. D O M I N A N D OT I .CO M . B R
Linguagens de Programação

 Programação linear: não há alterações no fluxo de execução


 Programação estruturada: modularização, separação do
código em trechos reutilizáveis
 Programação orientada a objetos: baseada no conceito de
classes e objetos, encapsulamento, herança e polimorfismo

Professor Marcelo Pacote - @professorpacote 4 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Características

 Modularização
 Independência Funcional
 Uso de procedimentos ou funções

Professor Marcelo Pacote - @professorpacote 5 W W W. D O M I N A N D OT I .CO M . B R


Exercício [01] (EBC/2011/CESPE)

A respeito de programação estruturada, julgue os itens


seguintes.
( ) Um programa que possui somente um ponto de entrada e
somente um ponto de saída pode ser considerado estruturado.

Professor Marcelo Pacote - @professorpacote 6 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Tipos de dados

 Elementares (primitivos): não dependem de outros para serem


definidos
 Derivados (construídos): dependem de tipos elementares para
serem definidos

Professor Marcelo Pacote - @professorpacote 7 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Tipos de dados

 Elementares (primitivos):
 Inteiro
 Real (Ponto Flutuante)
 Literal (Caractere)
 Lógico (Booleano)
 Derivados (construídos):
 String
 Registro (tipo de dados do usuário)

Professor Marcelo Pacote - @professorpacote 8 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Tipos de dados

 Simples: armazenam somente um valor de um determinado


tipo.
 Compostos: armazenam mais de um valor de um tipo
definido. Ex: arranjos, matrizes (arranjos bidimensionais)

Professor Marcelo Pacote - @professorpacote 9 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Tipos de dados

 Tipos definidos pelo usuário:


 Estruturas (struct)
 Ex:
struct tipo_usuario {
int numero1;
int numero2;
char caractere;
}

Professor Marcelo Pacote - @professorpacote 10 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Tipos de dados

 Inteiros: representação como


Decimal Binário s/ sinal Binário (Compl. 2)

-8 - 1000

complemento de dois (maioria, -7 - 1001

quando signed) -6 - 1010

-5 - 1011

 X bits representam de -4 - 1100

-3 - 1101

-2x-1 até 2x-1-1 -2 - 1110

-1 - 1111

0 000 0000

1 001 0001

2 010 0010

3 011 0011

4 100 0100

5 101 0101

6 110 0110

7 111 0111

* Fonte (tabela): Wikipedia

Professor Marcelo Pacote - @professorpacote 11 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Tipos de dados

 Real: representação como ponto flutuante com número fixo


para os dígitos significativos
 Dígitos significativos x baseexpoente
 Exemplos:
 12237,827389 = 1,2237827389 x 104
 0,00003124675 = 3,124675 x 10-5

Professor Marcelo Pacote - @professorpacote 12 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Tipos de dados

 Caractere: representação
mais comum é a tabela
ASCII (outro exemplo
utilizado é o Unicode)

Professor Marcelo Pacote - @professorpacote 13 W W W. D O M I N A N D OT I .CO M . B R


Exercício [02] (ANAC/2009/CESPE)

( ) Tipos abstratos de dados só podem ser definidos em


linguagens que implementam o paradigma de programação
estruturada.

Professor Marcelo Pacote - @professorpacote 14 W W W. D O M I N A N D OT I .CO M . B R


Exercício [03] (FUB/2011/CESPE)

( ) Os tipos de dados inteiro, booleano e strings são


denominados primitivos, ou seja, não são definidos em termos
de outros tipos de dados.

Professor Marcelo Pacote - @professorpacote 15 W W W. D O M I N A N D OT I .CO M . B R


Exercício [04] (ABIN/2010/CESPE)

( ) Um array é um conjunto de elementos de tipos


homogêneos, ou seja, todos os seus elementos são do mesmo
tipo de dados. Uma estrutura, ou registro, é um conjunto de
elementos heterogêneos, porque seus elementos não são
obrigatoriamente do mesmo tipo de dados.

Professor Marcelo Pacote - @professorpacote 16 W W W. D O M I N A N D OT I .CO M . B R


Exercício [05] (TRE-MG/2009/CESPE)

Com relação aos tipos de dados, assinale a opção correta:


a) Os tipos de dados com vírgula flutuante são suportados diretamente
pelo hardware.
b) No tipo cadeia de caracteres, a entrada e a saída dos tipos são
rotuladas pelas cadeias constantes.
c) O armazenamento de números inteiros negativos por meio de
complemento de dois é usado para adição e subtração.
d) Nos tipos de dados decimais, um número variável de dígitos decimais
é armazenado com a vírgula decimal em uma posição variável no valor.
e) Os tipos booleanos armazenam os dados nos computadores por meio
de codificações ASCII.

Professor Marcelo Pacote - @professorpacote 17 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Procedimentos

 Modularização (subrotina)
 Recebe argumentos de entrada
 Não possui argumentos de saída
 Não pode ser usado em uma expressão no lugar de uma
variável

Professor Marcelo Pacote - @professorpacote 18 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Funções

 Modularização
 Recebe argumentos de entrada
 Retorna argumento de saída (valor)
 Pode ser usado em uma expressão no lugar de uma variável

Professor Marcelo Pacote - @professorpacote 19 W W W. D O M I N A N D OT I .CO M . B R


Exercício [06] (PRODAM-AM/2010/FUNCAB)

Em relação aos procedimentos e funções, pode-se afirmar que:


a) as funções não têm um valor de retorno.
b) os procedimentos têm valor de retorno.
c) as funções só permitem passagem de parâmetro por valor enquanto
que os procedimentos só permitem passagem de parâmetro por
referência.
d) os procedimentos só permitem passagem de parâmetro por função
enquanto as funções só permitem passagem de parâmetro por referência.
e) tanto as funções quanto os procedimentos permitem passagem de
parâmetro por valor e por referência.

Professor Marcelo Pacote - @professorpacote 20 W W W. D O M I N A N D OT I .CO M . B R


Exercício [07] (TRT 21ª -RN/2010/CESPE)

( ) Considere que, em um sistema, seja necessário montar


uma lista de opções e criar uma rotina para calcular a média
das notas dos alunos. Nessa situação, é correto escolher um
procedimento para a primeira ação e uma função para a
segunda.

Professor Marcelo Pacote - @professorpacote 21 W W W. D O M I N A N D OT I .CO M . B R


Exercício [08] (EBC/2011/CESPE)

Julgue os itens subsequentes, referentes aos módulos que


constituem a técnica de modularização, utilizada para
desenvolver algoritmos.
( ) Um procedimento ou sub-rotina é um conjunto de
instruções que realiza determinada tarefa. Um algoritmo de
procedimento, como qualquer outro algoritmo, deve ser
identificado e pode possuir variáveis, operações e até funções.

Professor Marcelo Pacote - @professorpacote 22 W W W. D O M I N A N D OT I .CO M . B R


Exercício [09] (EBC/2011/CESPE)

Julgue os itens subsequentes, referentes aos módulos que


constituem a técnica de modularização, utilizada para
desenvolver algoritmos.
( ) De forma semelhante aos procedimentos, as funções podem
ser utilizadas em expressões, como se fossem variáveis, ou
seja, elas retornam valores que são associados ao seu nome;
portanto, é necessário declarar que tipo de dados será
retornado.

Professor Marcelo Pacote - @professorpacote 23 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Escopo de variáveis

 Global: variáveis são visíveis por todo o programa (funções,


procedimentos)
 Local: têm visibilidade restrita ao bloco em que foram
declaradas
 Alocação estática: variáveis locais são armazenadas sempre
na mesma posição de memória (numa chamada recursiva os
valores da 2ª chamada sobrescrevem o da 1ª)

Professor Marcelo Pacote - @professorpacote 24 W W W. D O M I N A N D OT I .CO M . B R


Exercício [10] (EBC/2011/CESPE)

* Imagem adaptada (Var V8)

Professor Marcelo Pacote - @professorpacote 25 W W W. D O M I N A N D OT I .CO M . B R


Exercício [10] (EBC/2011/CESPE)

Considerando a figura acima, que ilustra um diagrama


representando a hierarquia para a resolução de um problema
em módulos, julgue os itens a seguir.
( ) A variável V3, declarada no algoritmo A, pode ser utilizada
pelos algoritmos A, B, D, E e F.

Professor Marcelo Pacote - @professorpacote 26 W W W. D O M I N A N D OT I .CO M . B R


Exercício [11] (EBC/2011/CESPE)

Considerando a figura acima, que ilustra um diagrama


representando a hierarquia para a resolução de um problema
em módulos, julgue os itens a seguir.
( ) As variáveis V6 e V8 podem ser utilizadas pelos respectivos
algoritmos em que foram declaradas e pelo algoritmo A.

Professor Marcelo Pacote - @professorpacote 27 W W W. D O M I N A N D OT I .CO M . B R


Exercício [12] (EBC/2011/CESPE)

Considerando a figura acima, que ilustra um diagrama


representando a hierarquia para a resolução de um problema
em módulos, julgue os itens a seguir.
( ) As variáveis V1 e V2, que foram declaradas no algoritmo
principal, podem ser utilizadas por todos os algoritmos
representados no diagrama apresentado.

Professor Marcelo Pacote - @professorpacote 28 W W W. D O M I N A N D OT I .CO M . B R


Exercício [13] (ABIN/2010/CESPE)

( ) Variáveis declaradas internamente a uma função ou


procedimento são chamadas variáveis locais e, dependendo da
linguagem de programação, possuem duração e escopo
limitados à função ou procedimento onde são declaradas. Se
uma linguagem de programação define a alocação de variáveis
locais de maneira estática, a utilização de recursividade não é
possível.

Professor Marcelo Pacote - @professorpacote 29 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Recursividade

 Função chama a si própria: cada chamada é armazenada


numa pilha de valores dos parâmetros e variáveis locais
 Teste para finalizar com as chamadas recursivas (teste de
saída ou condição de parada)
 Qualquer função recursiva pode ser descrita através de
iterações sucessivas.

Professor Marcelo Pacote - @professorpacote 30 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Recursividade

 Ex.: Fibonacci
int fibonacci(int x) {
if (x == 0) return 0; // teste de saída
if (x == 1) return 1; // teste de saída
return (fibonacci(x-1) + fibonacci(x-2)); // passo recursivo
}
...
fibonacci(10);
...
// 1ª chamada (externa): x -> 10
// 2ª chamada (x-1): x -> 9
// 3ª chamada (x-1-1): x -> 8
...
// Yª chamada (x-1-1-...): x -> 1: retorna 1

Professor Marcelo Pacote - @professorpacote 31 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Recursividade

 Direta: a rotina chama a si própria diretamente


 Indireta: a rotina chama outra(s) que, por sua vez, acaba
chamando a primeira novamente

Professor Marcelo Pacote - @professorpacote 32 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Recursividade

 Recursividade direta: Fibonacci, Fatorial


 Recursividade indireta: Análise de expressões

Professor Marcelo Pacote - @professorpacote 33 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Recursividade

 Vantagens:
 Código mais compactos, mais legíveis e mais fáceis de
serem compreendidos.
 Desvantagens:
 Mais lento que algoritmos iterativos
 Utiliza mais memória
 Não pode ser utilizado com alocação estática (valores de
cada chamada são perdidos)

Professor Marcelo Pacote - @professorpacote 34 W W W. D O M I N A N D OT I .CO M . B R


Exercício [14] (TJ-ES/2011/CESPE)

( ) Tanto a recursividade direta quanto a indireta necessitam de


uma condição de saída ou de encerramento.

Professor Marcelo Pacote - @professorpacote 35 W W W. D O M I N A N D OT I .CO M . B R


Exercício [15] (MPE-PI/2012/CESPE)

Professor Marcelo Pacote - @professorpacote 36 W W W. D O M I N A N D OT I .CO M . B R


Exercício [15] (MPE-PI/2012/CESPE)

Considerando o algoritmo acima, em que o procedimento proc


recebe como parâmetro um vetor composto de valores inteiros
e mais dois valores inteiros, retornando como resultado um
valor inteiro, que m[1] se refere ao primeiro elemento do vetor,
e, ainda, que a passagem de parâmetros é feita por referência,
julgue os itens a seguir.
( ) A implementação do referido algoritmo tem execução mais
rápida que a do algoritmo iterativo equivalente.

Professor Marcelo Pacote - @professorpacote 37 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Passagem de Parâmetros

 Parâmetros:
 Real: aquele que é passado como argumento numa função ou
procedimento. Ex: int x = 3; int quadrado = pow(x,2)
 Formal: o que é utilizado dentro da função ou procedimento. Pode
ser o valor ou o endereço do parâmetro real dependendo do tipo de
passagem
 Exemplo:
int soma(int x, int y);
...
int a = 1; int b = 2;
soma(a,b); // Quais são os parâmetros formais e reais

Professor Marcelo Pacote - @professorpacote 38 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Passagem de Parâmetros

 Por valor: valor do parâmetro real é copiado ao formal


 Por referência: endereço do parâmetro real é copiado ao
formal
 Exemplo:
int soma(int x, int y);
...
int a = 1; int b = 2;
soma(a,b); // Passagem por valor
soma(&a, &b); // Passagem por referência

Professor Marcelo Pacote - @professorpacote 39 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Passagem por Valor

 O parâmetro real tem seu valor copiado


 Manipulação de valores e não de endereços
 Parâmetro real permanece inalterado após a execução

Professor Marcelo Pacote - @professorpacote 40 W W W. D O M I N A N D OT I .CO M . B R


Linguagens Procedurais – Passagem por Referência

 O parâmetro real tem seu endereço copiado para o formal


 Manipulação de valores dos endereços passados
 Parâmetro real pode ser alterado durante a execução da
função ou procedimento

Professor Marcelo Pacote - @professorpacote 41 W W W. D O M I N A N D OT I .CO M . B R


Exercício [16] (MPE-PI/2012/CESPE) (1/3)

Professor Marcelo Pacote - @professorpacote 42 W W W. D O M I N A N D OT I .CO M . B R


Exercício [16] (MPE-PI/2012/CESPE) (2/3)

Considerando o algoritmo acima, em que o procedimento proc


recebe como parâmetro um vetor composto de valores inteiros
e mais dois valores inteiros, retornando como resultado um
valor inteiro, que m[1] se refere ao primeiro elemento do vetor,
e, ainda, que a passagem de parâmetros é feita por referência,
julgue os itens a seguir.
( ) Se todos os parâmetros fossem passados por valor, a
chamada ao procedimento proc(V, a, b) — em que V conteria os
valores [1, 2, 3, 4, 5, 6, 7, 8], a teria valor 1 e b teria valor 8 —
retornaria o valor 1.

Professor Marcelo Pacote - @professorpacote 43 W W W. D O M I N A N D OT I .CO M . B R


Exercício [16] (MPE-PI/2012/CESPE) (3/3)

( ) Considere V um vetor com os valores [2, 4, 6, 8, 10, 12, 14,


16], x um inteiro de valor 1 e y um inteiro de valor 8. Nesse
caso, a chamada ao procedimento proc(V, x, y) faz que V passe
a conter os valores [72, 70, 66, 60, 52, 42, 30, 46].

Professor Marcelo Pacote - @professorpacote 44 W W W. D O M I N A N D OT I .CO M . B R


Exercício [17] (PEFOCE/2012/CESPE)

( ) Em funções e procedimentos, a passagem de parâmetros


por valor é um modelo de implementação para parâmetros do
modo de saída, por isso, o valor do parâmetro real é usado para
inicializar o parâmetro formal correspondente.

Professor Marcelo Pacote - @professorpacote 45 W W W. D O M I N A N D OT I .CO M . B R


Exercício [18] (TRT 21ª-RN/2010/CESPE)

( ) Em uma função, os parâmetros podem ser passados por


meio de valor; isso, no entanto, implica que a mudança do valor
do parâmetro dentro da função irá afetar o valor da variável
original.

Professor Marcelo Pacote - @professorpacote 46 W W W. D O M I N A N D OT I .CO M . B R


Exercício [19] (FUB/2011/CESPE)

( ) Passagem por valor e passagem por referência são


métodos empregados para realizar a passagem de parâmetros
entre um programa e um subprograma. Em ambos os casos, a
pilha é utilizada para realizar a cópia do valor (passagem por
valor) ou do endereço (passagem por referência).

Professor Marcelo Pacote - @professorpacote 47 W W W. D O M I N A N D OT I .CO M . B R


Estruturas de Controle de Fluxo e de Execução

 Qualquer programa pode ser escrito com a combinação de


comandos de:
 Sequência
 Seleção
 Repetição1

1 – Dijkstra, E. W. Notes on Structured Programming

Professor Marcelo Pacote - @professorpacote 48 W W W. D O M I N A N D OT I .CO M . B R


Estruturas de Controle de Fluxo e de Execução

 Estrutura de sequência: execução linear de comandos na


ordem em que aparecem
 Estrutura de seleção: com base em um teste executa ou não
uma determinada sequência de comandos
 Estrutura de repetição: repete a execução de um conjunto de
comandos até que uma condição seja satisfeita (número
determinado ou indeterminado)

Professor Marcelo Pacote - @professorpacote 49 W W W. D O M I N A N D OT I .CO M . B R


Exercício [20] (EBC/2011/CESPE)

A respeito de programação estruturada, julgue os itens


seguintes.
( ) Em programação estruturada, por meio do mecanismo de
seleção, é possível testar determinada condição e estabelecer
ações a serem realizadas.

Professor Marcelo Pacote - @professorpacote 50 W W W. D O M I N A N D OT I .CO M . B R


Exercício [21] (EBC/2011/CESPE)

A respeito de programação estruturada, julgue os itens


seguintes.
( ) O mecanismo de iteração pode ser utilizado para sequenciar
comandos, controlando a execução do programa.

Professor Marcelo Pacote - @professorpacote 51 W W W. D O M I N A N D OT I .CO M . B R


Exercício [22] (BASA/2010/CESPE)

( ) Na programação estruturada, existem estruturas de


sequência, de decisão e de iteração. No primeiro tipo, uma
tarefa é executada após a outra, linearmente. No segundo, a
partir de um teste lógico, determinado trecho de código é
executado, ou não. No terceiro, a partir de um teste lógico,
determinado trecho de código é repetido por um número finito
de vezes.

Professor Marcelo Pacote - @professorpacote 52 W W W. D O M I N A N D OT I .CO M . B R


Estruturas de Controle de Fluxo e de Execução - Seleção

 Simples: testa uma condição para decidir se executa a


sequência ou não (IF-THEN-FI)
 Composta: após o teste decide qual das duas sequências será
executada (IF-THEN-ELSE-FI)
 Aninhadas: quando a sequência a ser executada também
possui estrutura de seleção (IF-THEN-IF-THEN-FI-FI)
 De múltipa escolha: mais de uma opção com base no valor de
uma variável (SWITCH-CASE)

Professor Marcelo Pacote - @professorpacote 53 W W W. D O M I N A N D OT I .CO M . B R


Estruturas de Controle de Fluxo e de Execução - Repetição

 Com testes no início (ou explícita1): testa antes de iniciar a


primeira iteração (WHILE_DO)
 Com testes no fim: executa a primeira iteração para depois
realizar o teste (DO_WHILE)
 Com variável de controle: uma variável é definida como base
para o teste da quantidade exata de iterações (FOR)
 Escape do enlace: próxima iteração ou sair do laço

1 – Leite, Mário. Técnicas de Programação: uma abordagem moderna. Brasport, 2006.

Professor Marcelo Pacote - @professorpacote 54 W W W. D O M I N A N D OT I .CO M . B R


Estruturas de Controle de Fluxo e de Execução - Repetição

 Passos da estrutura de repetição explícita1 (WHILE_DO):


 Passo 1: A condição tem que ser inicializada com valor verdadeiro
 Passo 2: A condição tem que ser testada a cada ciclo de operação
(iteração), para verificar o momento de romper o laço
 Passo 3: Para que as intruções possam ser repetidas é necessário
que um valor da condição seja incrementado (ou lido) para que
um novo testa seja feito. É o que se chama “realimentação do
loop”, sem o que o laço não termina nunca*

1 – Leite, Mário. Técnicas de Programação: uma abordagem moderna. Brasport, 2006.


* Transcrição da referência

Professor Marcelo Pacote - @professorpacote 55 W W W. D O M I N A N D OT I .CO M . B R


Exercício [23] (ABIN/2010/CESPE)

( ) Uma estrutura de seleção é chamada embutida quando


realiza uma série de decisões embasadas no valor de uma
única variável.

Professor Marcelo Pacote - @professorpacote 56 W W W. D O M I N A N D OT I .CO M . B R


Exercício [24] (PEFOCE/2012/CESPE)

( ) O uso de estrutura de repetição explícita necessita de


realimentação do loop.

Professor Marcelo Pacote - @professorpacote 57 W W W. D O M I N A N D OT I .CO M . B R


Exercício [25] (TJ-ES/2011/CESPE)

( ) Em uma estrutura de repetição com variável de controle, ou


estrutura para, a verificação da condição é realizada antes da
execução do corpo da sentença, o que impede a reescrita desse
tipo de estrutura por meio de estrutura de repetição pós-
testada.

Professor Marcelo Pacote - @professorpacote 58 W W W. D O M I N A N D OT I .CO M . B R


Exercício [26] (TJ-ES/2011/CESPE)

( ) Uma estrutura de repetição possibilita executar um bloco de


comando, repetidas vezes, até que seja encontrada uma dada
condição que conclua a repetição.

Professor Marcelo Pacote - @professorpacote 59 W W W. D O M I N A N D OT I .CO M . B R


Exercício [27] (TJ-ES/2011/CESPE)

( ) Em um laço de repetição, o controle do número de vezes


que o laço será repetido ocorre por meio de operadores lógicos.

Professor Marcelo Pacote - @professorpacote 60 W W W. D O M I N A N D OT I .CO M . B R


Exercício [28] (MPE-RN/2008/CESPE)

( ) Uma variável é uma abstração de células na memória de


um computador; o tempo de vida de uma variável é o tempo
durante o qual ela está vinculada a uma localização na
memória; variáveis estáticas são vinculadas às células após o
início da execução do programa e assim permanecem até a
execução encerrar-se.

Professor Marcelo Pacote - @professorpacote 61 W W W. D O M I N A N D OT I .CO M . B R


Exercício [29] (ABIN/2010/CESPE)

( ) As estruturas de controle sequenciais, de seleção (ou de


decisão) e de repetição (ou de iteração ou loop) são unidades
básicas na escrita de algoritmos. Todas essas estruturas
possuem condições a serem testadas; algumas realizam
atribuição de variáveis, mas somente uma pode inicializar
variáveis.

Professor Marcelo Pacote - @professorpacote 62 W W W. D O M I N A N D OT I .CO M . B R


Exercício [30] (FUB/2011/CESPE)

( ) Uma condição de saída é utilizada tanto na iteração como


na recursão. Na primeira, para encerrar um laço de repetição e,
na segunda, em uma estrutura de condição que encerra o
processo de chamadas. Uma estrutura de condição executa
mais rápido que um laço de repetição; portanto, um algoritmo
que usa recursão é executado em menor tempo que o mesmo
algoritmo que usa iteração.

Professor Marcelo Pacote - @professorpacote 63 W W W. D O M I N A N D OT I .CO M . B R


Gabarito

[01] certo [11] errado [21] errado


[02] errado [12] certo [22] certo
[03] errado [13] certo [23] errado
[04] certo [14] certo [24] certo
[05] C [15] errado [25] errado
[06] E [16] e,c [26] certo
[07] certo [17] errado [27] errado
[08] certo [18] errado [28] errado
[09] errado* [19] certo [29] errado
[10] errado [20] certo [30] errado * difere do gabarito oficial

Professor Marcelo Pacote - @professorpacote 64 W W W. D O M I N A N D OT I .CO M . B R


Exercícios Complementares
Questões ESAF/CESGRANRIO
Professor Marcelo Pacote – @professorpacote

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Exercício [01] (ATRFB/2012/ESAF)

Em programação Java, o comando while


a) executa um bloco exclusivamente de comandos de
atribuição.
b) executa um bloco de comandos enquanto sua condição for
verdadeira.
c) executa um bloco de comandos até que sua condição seja
verdadeira.
d) equivale ao comando what-if.
e) é idêntico ao comando do while.

Professor Marcelo Pacote - @professorpacote 66 W W W. D O M I N A N D OT I .CO M . B R


Exercício [02] (CGU/2012/ESAF)

Na linguagem Java, o comando continue tem a função de


a) fazer com que o comando de seleção seja inicializado.
b) permitir realçar a posição de determinados comandos.
c) modificar a estrutura do loop, realçando procedimentos.
d) fazer com que a continuidade da execução de um loop fique
condicionada a um teste de condição de continuidade.
e) fazer com que a condição do comando de loop seja novamente
testada, mesmo antes de alcançar o fim do comando.

Professor Marcelo Pacote - @professorpacote 67 W W W. D O M I N A N D OT I .CO M . B R


Exercício [03] (CGU/2012/ESAF)

O comando break tem a função de


a) interromper a execução de um loop.
b) condicionar a execução de um comando de atribuição a um
operador lógico.
c) segmentar a execução de um loop em duas ou mais partes
aninhadas.
d) estabelecer um intervalo de depuração durante a execução
de um loop.
e) impossibilitar o aninhamento de loops não lógicos.

Professor Marcelo Pacote - @professorpacote 68 W W W. D O M I N A N D OT I .CO M . B R


Exercício [04] (CGU/2012/ESAF)

No contexto de estrutura de dados, uma pilha é


a) uma lista do tipo LILO.
b) uma lista do tipo FIFO.
c) um tipo de lista linear em que as operações de inserção e remoção
são realizadas na extremidade denominada topo.
d) um tipo de lista linear em que as operações de inserção e remoção
são realizadas aleatoriamente.
e) um tipo de lista linear em que as operações de inserção são
realizadas em uma extremidade e as operações de remoção são
realizadas em outra extremidade.

Professor Marcelo Pacote - @professorpacote 69 W W W. D O M I N A N D OT I .CO M . B R


Exercício [05] (STN/2008/ESAF)

Navegadores Web armazenam as URLs (Uniform Resource Locators)


visitadas recentemente em uma determinada estrutura de dados. Com
isso, permite que o usuário visite o último site visitado, ao recuperar a
URL na estrutura, usando uma operação de retorno (back). A estrutura
de dados apropriada para implementar este recurso é a
a) fila.
b) árvore.
c) lista encadeada simples.
d) lista encadeada dupla.
e) pilha.

Professor Marcelo Pacote - @professorpacote 70 W W W. D O M I N A N D OT I .CO M . B R


Exercício [06] (ANA/2009/ESAF)

Na programação estruturada, são necessários apenas três


blocos de formas de controle para implementar algoritmos. São
eles:
a) seleção, repetição e aninhamento.
b) empilhamento, aninhamento e operação.
c) sequência, aninhamento e seleção.
d) sequência, seleção e repetição.
e) função, operação e programa.

Professor Marcelo Pacote - @professorpacote 71 W W W. D O M I N A N D OT I .CO M . B R


Exercício [07] (CHESF/2012/CESGRANRIO) (1/2)

Considere o
trecho de
código que
corresponde ao
método
principal de
uma classe em
linguagem Java.

Professor Marcelo Pacote - @professorpacote 72 W W W. D O M I N A N D OT I .CO M . B R


Exercício [07] (CHESF/2012/CESGRANRIO) (2/2)

Qual o resultado produzido por esse método quando ele é


corretamente executado?
a) 0
b) 1
c) 2
d) 3
e) 5

Professor Marcelo Pacote - @professorpacote 73 W W W. D O M I N A N D OT I .CO M . B R


Gabarito

[01] b
[02] e
[03] a
[04] c
[05] e
[06] d
[07] d

Professor Marcelo Pacote - @professorpacote 74 W W W. D O M I N A N D OT I .CO M . B R

Você também pode gostar