Sei sulla pagina 1di 100

Linguagens Procedurais

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

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 – marcelopacote@dominandoti.com.br 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
 Funcionais
 Procedurais (Estruturadas)
 Orientadas a Objetos
 Tipos de programação:
 Linear
 Estruturada
 Orientada a Objetos
Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br

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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 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 – marcelopacote@dominandoti.com.br 74 W W W. D O M I N A N D OT I .CO M . B R


Exercícios Complementares
Cespe (2012 e 2013)
Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

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
(DPF/2013/Cespe/Perito/68)

No que se refere às linguagens de programação, julgue os itens


subsecutivos.
A execução da função x descrita abaixo para o valor n igual a 8
fornecerá 21 como resultado.
long x(int n){
if (n<0) return -1;
if (n==0) return 0;
if (n==1) return 1;
return x(n-1) + x(n-2);
}

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 76 W W W. D O M I N A N D OT I .CO M . B R


(DPF/2013/Cespe/Perito/70)

O diagrama de blocos apresentado abaixo se refere à instrução


faça <conjunto de instruções> enquanto
<condição>.

Conjunto de V
condição
instruções

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 77 W W W. D O M I N A N D OT I .CO M . B R


(MS/2013/Cespe/An. TI/60 e 61)

AlgoritmoMaximo(x: inteiro; y: inteiro): inteiro


início
se (y = 0) então
retorne x
senão
retorne AlgoritmoMaximo ( y, resto(x, y) )
fim-se
fim-função
( ) No algoritmo é apresentada uma estrutura de repetição para que seja
alcançado o resultado final desejado.
( ) O valor do retorno da chamada para a função AlgoritmoMaximo(156,
270) é 6.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 78 W W W. D O M I N A N D OT I .CO M . B R


(UNIPAMPA/2013/Cespe/Analista de TI/97 e 98) (1/2)

1 var
2 x, y: real
3 inicio
4 escreva("Digite o primeiro número: ")
5 leia(x)
6 escreva("Digite o segundo número: ")
7 leia(y)
8 escreva("A soma é: ",x+y)
9 escreva("A subtração é: ",y-x)
10 escreva("A multiplicação é: ",x*y)
11 escreva("A divisão é: ",x/y)
12 fim

( ) Para evitar a ocorrência de um erro de divisão por zero, deve-se


inserir o comando se (y <> 0) então após a linha 10 do algoritmo.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 79 W W W. D O M I N A N D OT I .CO M . B R


(UNIPAMPA/2013/Cespe/Analista de TI/97 e 98) (2/2)

Caso os valores de x e y sejam, respectivamente, 3 e 6, a


execução do algoritmo fornecerá o seguinte resultado:
A soma é: 9
A subtração é: 3
A multiplicação é: 18
A divisão é: 0,5

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 80 W W W. D O M I N A N D OT I .CO M . B R


(UNIPAMPA/2013/Cespe/Analista de TI/99 a 101) (1/2)

AlgoritmoPampa(a: inteiro; b: inteiro): inteiro AlgoritmoEU(a: inteiro; b: inteiro): inteiro


início variáveis
se (b = 0) então divisor: inteiro
retorne a dividendo: inteiro
senão aux: inteiro
retorne AlgoritmoPampa ( b, resto(a, b) ) início
fim-se dividendo = a
fim-função divisor = b
enquanto (resto (dividendo ,divisor) < > 0)
início
aux = resto(dividendo , divisor)
dividendo = divisor
divisor = aux
fim-enquanto
retorne divisor
fim-função

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 81 W W W. D O M I N A N D OT I .CO M . B R


(UNIPAMPA/2013/Cespe/Analista de TI/99 a 101) (2/2)

Considerando os algoritmos acima, julgue os próximos itens.


( ) Ambos os algoritmos apresentados geram o mesmo
resultado.
( )Caso se faça a chamada Escreva
AlgoritmoPampa(1128, 338), o resultado obtido
será 12.
( ) Caso se faça a chamada Escreva
AlgoritmoEU(270,156), o resultado obtido será 6.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 82 W W W. D O M I N A N D OT I .CO M . B R


(UNIPAMPA/2013/Cespe/Analista de TI/102) (1/2)
início
variáveis
matriz[0][0] = 3;
inteiro matriz[3] [3]; matriz[0][1] = 4;
inteiro resultado[3][3]; matriz[0][2] = 5;
inteiro linhas; linhas = 3;
inteiro colunas; colunas = 1;
inteiro i; para ( j de 0 até linhas ) {
inteiro j; para ( i de 0 até linhas) {
inteiro k; resultado[i][j] = 0;
para (k de 0 até colunas) {
resultado[i][j] = resultado[i][j]+matriz[k][i]*matriz[k][j];
fim-para;
fim-para;
fim-para;
para (i de 0 até linhas)
para (j de 0 até linhas)
escreva resultado[i][j];
escreva " ";
fim-para;
fim-para;
fim;

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 83 W W W. D O M I N A N D OT I .CO M . B R


(UNIPAMPA/2013/Cespe/Analista de TI/102) (2/2)

Em face do algoritmo acima, é correto afirmar que:


( ) O resultado apresentando ao final do processamento é a
sequência 9 12 12 15 18 20 15 20 25.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 84 W W W. D O M I N A N D OT I .CO M . B R


(UNIPAMPA/2013/Cespe/Analista de TI/103) (1/2)

Com base no fluxograma apresentado, julgue o item abaixo.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 85 W W W. D O M I N A N D OT I .CO M . B R


(UNIPAMPA/2013/Cespe/Analista de TI/103) (2/2)

( ) Para evitar que “resultado” apresente um erro de divisão


por zero e que o valor de C seja maior que 0, basta alterar o
fluxograma conforme apresentado abaixo.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 86 W W W. D O M I N A N D OT I .CO M . B R


(SERPRO/2013/Cespe/Analista/51)

( ) Parâmetros são pontos de comunicação entre módulos de


um programa. A passagem de parâmetros, que consiste na
substituição do parâmetro formal pelo parâmetro real, pode ser
realizada por valor ou por referência.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 87 W W W. D O M I N A N D OT I .CO M . B R


(SERPRO/2013/Cespe/Analista/52)

( ) 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.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 88 W W W. D O M I N A N D OT I .CO M . B R


(CNJ/2013/Cespe/Analista/88)

Acerca de fluxograma e algoritmo, julgue os itens que se seguem.


No fluxograma abaixo, se A = 4, B = 4 e C = 8, o resultado que será
computado para Área é igual a 32.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 89 W W W. D O M I N A N D OT I .CO M . B R


(CNJ/2013/Cespe/Analista/89)

No algoritmo abaixo, se o valor de c for igual a 15, então o


resultado será igual a 59.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 90 W W W. D O M I N A N D OT I .CO M . B R


(TRT/2013/Cespe/Técnico judiciário/72)

O algoritmo abaixo executa o cálculo do volume de uma esfera


de raio R.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 91 W W W. D O M I N A N D OT I .CO M . B R


(TRT/2013/Cespe/Técnico judiciário/73)

O pseudocódigo abaixo representa um algoritmo que efetua a


multiplicação de dois inteiros quaisquer.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 92 W W W. D O M I N A N D OT I .CO M . B R


(TRT/2013/Cespe/Técnico judiciário/74)

Na maioria das linguagens de programação, são utilizadas


prioridades de operadores, tais como multiplicação e(ou) divisão
e adição e(ou) subtração, sendo essas duas prioridades
precedentes das operações embutidas em parênteses
encadeados mais internamente.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 93 W W W. D O M I N A N D OT I .CO M . B R


(TRE/2013/Cespe/Técnico judiciário/32) (1/2)

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 94 W W W. D O M I N A N D OT I .CO M . B R


(TRE/2013/Cespe/Técnico judiciário/32) (2/2)

Considerando o algoritmo escrito em pseudocódigo acima,


assinale a opção correspondente ao resultado que seria
impresso ao se executar esse trecho de código.
a) 50 50 50 50 50 50 50 50
b) 9 12 15 12 16 20 15 20 25
c) 9 9 12 12 16 16 20 20 25
d) 9 12 12 15 16 16 20 20 25
e) 9 25 16 20 15 16 12 15 25

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 95 W W W. D O M I N A N D OT I .CO M . B R


(INPI/2013/Cespe/Analista/82)

Com relação à linguagem Java, julgue os próximos itens.


( ) Os comandos dentro de um laço do sempre serão
executados pelo menos uma vez.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 96 W W W. D O M I N A N D OT I .CO M . B R


(BASA/2012/Cespe/Técnico científico/52 e 53)

( ) 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.

( ) Quando um break é encontrado dentro de um laço for, a


execução do código é interrompida e o programa é finalizado.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 97 W W W. D O M I N A N D OT I .CO M . B R


(BASA/2012/Cespe/Técnico científico/58 e 59)

Em códigos de programas, é muito comum o uso de estruturas


condicionais para que determinado código seja executado
mediante o atendimento de determinada condição. Julgue os
itens que se seguem, a respeito dessas estruturas.
( ) A estrutura while é um tipo de loop em que o código nela
contido será executado até que a condição especificada de
parada seja satisfeita.
( ) Em estruturas do tipo case, a execução de código ocorre
somente no caso de determinada condição especificada na
estrutura ter sido satisfeita.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 98 W W W. D O M I N A N D OT I .CO M . B R


(CPRM/2013/Cespe/Sistemas/89)

( ) Na implementação de recursividade, uma das soluções


para que se evite o fenômeno de terminação do programa - que
possibilita a ocorrência de um looping infinito - é definir uma
função ou condição de terminação das repetições.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 99 W W W. D O M I N A N D OT I .CO M . B R


Gabarito

(DPF/2013/Cespe/Perito/68) certo (TRT/2013/Cespe/Técnico judiciário/72)certo


(DPF/2013/Cespe/Perito/70) errado (TRT/2013/Cespe/Técnico judiciário/73) certo
(MS/2013/Cespe/An. TI/60 e 61) ec (TRT/2013/Cespe/Técnico judiciário/74) errado
(UNIPAMPA/2013/Cespe/Analista de TI/97 e 98) cc (TRE/2013/Cespe/Técnico judiciário/32) b
(UNIPAMPA/2013/Cespe/Analista de TI/99 a 101) cec (INPI/2013/Cespe/Analista/82) certo
(UNIPAMPA/2013/Cespe/Analista de TI/102) errado (BASA/2012/Cespe/Técnico científico/52 e 53) certo, errado
(UNIPAMPA/2013/Cespe/Analista de TI/103) certo (BASA/2012/Cespe/Técnico científico/58 e 59) errado, errado
(SERPRO/2013/Cespe/Analista/51) certo (CPRM/2013/Cespe/Sistemas/89) certo
(SERPRO/2013/Cespe/Analista/52) errado
(CNJ/2013/Cespe/Analista/88) errado
(CNJ/2013/Cespe/Analista/89) certo

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 100 W W W. D O M I N A N D OT I .CO M . B R

Potrebbero piacerti anche