

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
A Figura 1, abaixo, apresenta um algoritmo escrito no software VisuAlg 3.0.
algoritmo '' questao_tecnico'' var num1, num2: inteiro procedimento teste(var x, y: inteiro) var z: inteiro inicio z<-x x<-y y<-z fimprocedimento inicio leia(num1) leia(num2) escreva1(''1° Número:'', num1, ''- 2° Número:'', num2) teste(num1, num2) escreva(''1° Número:'', num1 '', ''- 2° Número:'', num2) fimalgorismo |
Figura 1 – Algoritmo escrito no software VisuAlg 3.0
Com relação ao procedimento "teste" do algoritmo da Figura 1, pode-se dizer que ele faz:
A leitura de dois números inteiros.
A troca de valores entre as variáveis "x" e "y", utilizando a variável auxiliar "z".
A ordenação das variáveis "x" e "y", utilizando a variável auxiliar "z".
Comparações entre as variáveis "x", "y" e "z".
Subtrações entre as variáveis "x", "y" e "z".
Em um algoritmo, todo resultado de uma operação de entrada de dados é armazenado em uma posição na memória.
Certo
Errado
As palavras de um computador são compostas por bits e podem representar números armazenados na memória. Estes números podem ter diferentes significados, como inteiros ou reais, serem positivos ou negativos. A manipulação dos números inclui operações de soma, subtração, multiplicação e divisão. Os computadores também manipulam palavras, através de campos de bits dentro de uma palavra ou mesmo bits individuais por instruções lógicas. Assinale a alternativa que mostra corretamente instruções implementadas na unidade lógica e aritmética de um processador:
NOT, AND, OR e ELSE.
NOT, AND, OR e XOR.
NOT, GOTO, FOR e END.
FOR, AND, OR e XOR.
Algoritmos servem para soluções de diversos tipos de situações cotidianas como uma otimização na linha de produção de uma indústria, organização das tarefas de trabalhos de uma equipe dentre outros. Analise o algoritmo a seguir:
1: algoritmo “prova” 2: 3: var 4: 5: i : inteiro 6: valores : vetor [2..6] de inteiro 7: 8: inicio 9: 10: para i de 2 ate 6 faca 11: valores[i] <- i % 2 12: escreval(valores[i]) 13: fimpara 14: 15: fimalgoritmo |
Assinale a alternativa que indica qual será o resultado gerado na saída:
4 6 8 10 12
0 1 0 1 0
4 5 6 7 8
0 1 2 3 4
1 0 1 0 1
Sobre complexidade de algoritmos é INCORRETO afirmar:
Se as funções f e g dominam assintoticamente uma a outra, não podemos discorrer sobre a equivalência dos algoritmos associados.
Se f é uma função de complexidade para um algoritmo F, então O(f ) é considerada a complexidade assintótica ou o comportamento assintótico do algoritmo F.
Podemos avaliar programas comparando as funções de complexidade, negligenciando as constantes de proporcionalidade.
Algoritmos de complexidade O(1) são ditos de complexidade constante.
A complexidade O(log n) é típica em algoritmos que transformam um problema em outros menores.
Sobre o algoritmo de busca binária, marque a alternativa INCORRETA
É um algoritmo mais eficiente, entretanto, requer que a lista esteja ordenada pelos valores da chave de busca.
É um eficiente algoritmo para encontrar um item em uma lista ordenada de itens. Funciona dividindo repetidamente pela metade a porção da lista que deve conter o item, até reduzir as localizações possíveis à apenas um.
O funcionamento consiste em, a partir do primeiro registro, pesquisar sequencialmente até encontrar o valor procurado ou até chegar ao fim do vetor e então parar.
Um dos modos mais comuns de se usar a busca binária é para encontrar um item em um array.
É um algoritmo de busca em vetores que segue o paradigma de divisão e conquista.
Analise as afirmações abaixo a respeito de sub-rotinas:
I - Quando utilizamos sub-rotinas, podemos realizar desvios na execução dos programas que, em geral, são estruturados linearmente.
II - O código de uma sub-rotina é carregado uma vez e pode ser executado quantas vezes forem necessárias.
III - Como o problema pode ser subdividido em pequenas tarefas, os programas tendem a ficar menores e mais organizados.
Está(ão) CORRETA(S) a(s) afirmação(ões):
I e II apenas.
III apenas.
II e III apenas.
II apenas.
I, II e III.
A figura a seguir ilustra um grafo. Assinale a alternativa que representa corretamente o grafo como uma matriz de adjacência






Carlos precisa trabalhar com três estruturas lógicas empregadas em seus algoritmos. Neste caso, ele deveria escolher:
AND, OR e NOT
IF, AND e NOT
IF, ELSE e AND
FOR, IF e ELSE
__Sobre algoritmos, estrutura de dados e programação orientada a objetos, considere as seguintes afirmações:
I) É possível representar QUALQUER código (seja função, procedimento, método etc) em pseudocódigo, esteja ele utilizando classes, heranças ou não.
II) Uma das poucas maneiras de sobrescrever um método privado de uma classe ancestral, é pela técnica de rastreio de algoritmos em que é realizada a injeção de dependência.
III) HEAP, QUICKSORT e BUBBLESORT são conhecidos algoritmos de agrupamento e classificação.
IV) Conceitualmente, uma classe descreve objetos de um mesmo tipo em particular. Sendo assim, a criação de novos objetos se dá pela instanciação de uma classe.
E assinale a alternativa correta.
Apenas II e III são verdadeiras.
Apenas I e III são verdadeiras.
Apenas II e IV são verdadeiras.
Apenas I e IV são verdadeiras.
Todas as afirmações são verdadeiras.
Ao longo de um algoritmo, “um procedimento pode fazer, em sua descrição, uma ou mais chamadas a si mesmo”. Assinale, a seguir, a denominação correta deste tipo de procedimento.
Contínuo.
Recursivo.
Repetitivo.
Condicional.
Pseudocódigo é uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples, sem necessidade de conhecer a sintaxe de nenhuma linguagem de programação. Considerando-se o pseudocódigo representado abaixo, numerar a 2ª coluna de acordo com a 1ª e, após, assinalar a alternativa que apresenta a sequência CORRETA:

(1) Linha 02.
(2) Linhas 04 e 05.
(3) Linha 06.
(4) Linha 07.
(_) Lê os valores inseridos pelo usuário e os guarda em variáveis.
(_) O operador atribui a soma das variáveis a uma nova variável que guardará a soma.
(_) Região de definição de variáveis.
(_) Nesse ponto, temos a amostragem dos dados para o usuário.
1 - 3 - 2 - 4.
4 - 3 - 1 - 2.
2 - 3 - 1 - 4.
2 - 1 - 3 - 4.
4 - 3 - 2 - 1.
Seja o pseudocódigo a seguir a representação de uma função recursiva denominada calcula, que retorna um número inteiro e recebe dois parâmetros, a saber:
• vetor, que é um vetor de números inteiros; e
• n, que é a quantidade de elementos do vetor.
Ressalta-se que, se o vetor possui n elementos, então o primeiro e o último elementos são designados como v[0] e v[n-1], respectivamente.
_função calcula (inteiro vetor[], inteiro n): retorna inteiro
__se (n == 1) então
___retorna vetor[0]
__fim-se
__se (n > 1) então
___declara variável x : inteiro
___x = calcula (vetor, n-1)
___se (x > vetor[n-1]) então
____retorna x
___fim-se
___se (x <= vetor[n-1]) então
____retorna vetor[n-1]
___fim-se
__fim-se
_fim-função
Um programa invoca a função calcula com os parâmetros:
• o vetor de inteiros: [100, 300, 50, 400, 200]; e
• a quantidade de elementos: 5 (cinco).
A sequência de valores retornados a partir da execução das instruções do tipo retorna é:
100, 300, 300, 400, 200.
100, 300, 50, 400, 200.
100, 100, 50, 50, 50.
100, 300, 300, 400, 400.
Assinale o valor retornado para:
xpto (9, [2, 3, 6, 8, 9, 10, 20, 99], 8)
-1.
5.
7.
9.
99.
Avalie o algoritmo apresentado a seguir e assinale qual é a resposta exibida após a sua execução:
1 Algoritmo "algoritmo"
2 Var
3 TRUE: logico
4 FALSE: logico
5 sinalizador: logico
6 Inicio
7 TRUE <- FALSO
8 FALSE <- VERDADEIRO
9 sinalizador <- (TRUE e FALSE) ou (TRUE ou FALSE) e (TRUE ou FALSE)
10 escreva (sinalizador)
11 Fimalgoritmo
TRUE e FALSE
FALSO
(TRUE e FALSE) ou (TRUE ou FALSE) e (TRUE ou FALSE)
VERDADEIRO
(TRUE e FALSE)
Considere os três trechos de código abaixo como partes de programas hipotéticos que cumprem todos os requisitos necessários para que possam ser executados.
I. Código:
cond = true
while (cond) {
x = processar(argumento)
if (x<=0) {
cond = false
}
}
II. Código:
while (true) {
x = processar(argumento)
}
III. Código:
cond = true
y = argumento
while (cond) {
x = processar(argumento)
y = y - 10
if (y<=0) {
cond = false
}
}
Considerando a identificação numérica de cada trecho de código, assinale a alternativa que indica corretamente o(s) código(s) capaz(es) de causar um loop infinito em tempo de execução.
Somente I e III.
Somente I e II.
Somente II e III.
Somente II.
Somente I.
Assinale a alternativa que contém a sintaxe correta no contexto de expressões regulares para encontrar qualquer caractere, exceto os caracteres x, y e z.
[ˆxyz]
[!xyz]
![x,y,z]
![x|y|z]
ˆ[x|y|z]
Abstraia-se da sintaxe das linguagens de programação e apenas siga a lógica:
Início
Campo1 = 4
Campo2 = 3
Do while Campo1 > 3
Campo1 = Campo1 – 1
Campo2 = Campo2 + 1
End Do
Do Until Campo1 > 3
Campo1 = Campo + 1
End Do
Campo1 = Campo1 + Campo2
Fim
Qual o valor de Campo1 que resultou dessa lógica?
6
9
8
7
5

Assinale a alternativa que apresenta a saída desse script exibido na tela.
Não é possível determinar a saída.
0,1,2,3,4,5,6,7,8,9,10
0,1,2,3,4,5,6,7,8,9
0,12,,3,4,5,6,7,8,9,
9,8,7,6,5,4,3,2,1,0
Considere o algoritmo apresentado a seguir, na forma de um pseudocódigo (português estruturado).
Início
Inteiro: a1, a2, a3, a4, b, i;
Leia a1, a2, a3, a4;
b ← 0;
Para i de 1 até 4 faça
[
Se (a1+a2+b) > (a3-a4)
Então
b ← b - 2;
Senão
b ← b + 1;
]
Imprima b;
Fim.
Os valores lidos no início do algoritmo para as variáveis a1, a2, a3 e a4 foram, respectivamente, 2, 4, 8 e 3. Então, o resultado impresso ao final do algoritmo foi:
-2
-1
0
1
2