

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.
Considere o algoritmo a seguir, expresso por meio de uma pseudolinguagem.
Início
[
Inteiro: N;
N ← 3;
Enquanto (N ≤ 5) faça
[
Imprima (N, ″ x 3 = ″, N*3);
N ← N+1;
]
]
Fim.
O resultado impresso ao final da execução desse algoritmo será:
3 x 3 = 9
3 x 3 = 12
3 x 3 = 9
4 x 3 = 12
3 x 3 = 9
3 x 3 = 12
3 x 3 = 15
3 x 3 = 9
4 x 3 = 9
5 x 3 = 9
3 x 3 = 9
4 x 3 = 12
5 x 3 = 15
Analise o algoritmo abaixo, que mostra o uso de uma função:
algoritmo "IFCE" var __NR, XY, M,N : inteiro funcao FORTALEZA(SOBRAL:inteiro):inteiro início se SOBRAL <« 2 entao __retorne 1 senao __retorne SOBRAL * FORTALEZA(SOBRAL-1) fimse fimfuncao início __XY <-47 __M <- XY MOD 13 __N <- FORTALEZA(M) + 9 __escreval("M = ",M:4," N="N:d) fimalgoritmo |
Ao final da execução, serão mostrados para as variáveis M e N, respectivamente, os seguintes conteúdos:
1 e 10.
1 e 33.
4 e 33.
4 e 10.
A figura mostra um algoritmo para realizar a troca de valores entre duas variáveis: primeiro por meio do auxílio da variável TOCA e, em seguida, sem essa variável.
algoritmo "EMGEPRON" var M, Q, TROCA : inteiro inicio escreva("Digite um valor para M : ") leia(M) escreva("Digite um valor para Q: ") leia(Q) escreval("M = ",M:3," Q = ",Q:3) / <<<< BLOCO-COM >>>> escreval("M = ",M:3," Q = ",Q:3) / <<<< BLOCO-SEM >>>> escreval("M = ",M:3," Q = ",Q:3) fimalgoritmo |
Os blocos de instruções que devem substituir as referências
<<<< BLOCO-COM >>>> |
e
<<<< BLOCO-SEM >>>> |
são, respectivamente:
TROCA <- M M <- Q Q <- TROCA |
e
M <- M + Q M <- M - Q Q <- M - Q |
TROCA <- M M <- Q Q <- TROCA |
e
M <- M + Q Q <- M - Q M <- M - Q |
TROCA <- M Q <- M M <- TROCA |
e
M <- M + Q Q <- M - Q M <- M - Q |
TROCA <- M Q <- M M <- TROCA |
e
M <- M + Q M <- M - Q Q <- M - Q |
O mecanismo de funcionamento de um algoritmo é representado pela sequência
dados, processamento e informação.
dados, entrada e saída.
entrada, saída e banco de dados.
declaração, comandos e encerramento.
informação, processamento e saída.
Sobre algoritmos, analise as afirmativas abaixo e dê valores Verdadeiro (V) ou Falso (F).
( ) São procedimentos precisos, não ambíguos, eficientes e corretos.
( ) Um algoritmo representa os passos necessários para realização de uma tarefa.
( ) São representados somente por fluxogramas.
Assinale a alternativa que apresenta a sequência correta de cima para baixo.
F, V, V
V, V, F
F, F, V
V, F, F
Na programação de computadores, as funções são bastante empregadas. Neste contexto, analisa-se a figura que contém um pseudocódigo com o emprego de uma função.
algoritmo "EMGEPRON"
var
SOL, LUA, NR: inteiro
funcao FNC(MAR:inteiro) : inteiro
inicio
se MAR < 2 entao
retorne 1
senao
retorne MAR * FNC(MAR-1)
fimse
fimfuncao
inicio
SOL <- 47
para NR de 0 ate 1 faca
se NR = 0 entao
SOL <- SOL MOD 21
SOL <- FNC(SOL)
senao
LUA<- 4
LUA <- FNC (LUA)
fimse
fimpara
escreval("SOL = ",SOL:4," LUA = ",LUA:4)
fimalgoritmo
Após a execução, os valores finais das variáveis SOL e LUA são, respectivamente:
720 e 24
720 e 12
120 e 24
120 e 12
Considere a seguinte tabela-verdade, com três entradas (A, B, C) e uma saída S.
A | B | C | S |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
A saída S é corretamente expressa em:
A.B.C
A.B.C
A⊕ B⊕ C
(A .B. C ) + ( A.B.C)
(A +B +C ) ∙ (A+B+C)
1. var
2. valores: vetor [1..5] de inteiro
3. resultado, x: real
4.
5. inicio
6. para i de 1 ate 5 faca
7. __leia(valores)
8. __x<- x + valores
9. fimpara
10. resultado <- x / 5
11. escreva("Resultado: ", resultado)
12. fimalgoritmo
O resultado da lógica dos algoritmos precedente é a
média dos valores da matriz vetor.
soma dos valores de 1 a 5, ou seja, 15.
média dos valores de 1 a 5, ou seja, 3.
soma dos valores da matriz vetor.
ordenação dos valores de 1 a 5.
Em sistemas computacionais, a exclusão mútua impede que dois ou mais processos acessem um mesmo recurso simultaneamente. Diversas soluções foram propostas para garantir a exclusão mútua de processos. Uma delas apresenta a solução para o problema da exclusão mútua entre dois processos que se alternam na execução de suas seções críticas (região crítica) e seções remanescentes, requerendo que dois processos compartilhem dois itens de dados. Nessa solução, além das variáveis de condição (CA e CB), que indicam o desejo de cada processo entrar em sua região crítica, é introduzida outra variável (chamada Vez) para resolver os conflitos gerados pela concorrência, indicando de quem é a vez de entrar em sua seção crítica (região crítica). Antes de acessar a região crítica, o processo sinaliza esse desejo através da variável de condição, assim, o processo cede o uso do recurso ao outro processo, indicado pela variável "Vez". Desse modo, além da garantia da exclusão mútua, o bloqueio indefinido de um dos processos no loop nunca ocorrerá, já que a variável "Vez" sempre permitirá a continuidade da execução de um dos processos. Assinale a opção que apresenta a solução descrita.
Primeiro algoritmo.
Instrução test-and-set.
Algoritmo de Dekker.
Algoritmo de Peterson.
Algoritmo do Padeiro de Lamport.
Um algoritmo é uma sequência lógica de ações a serem executadas para se executar uma determinada tarefa. Um programa é a formalização de um algoritmo em uma determinada linguagem de programação, segundo suas regras de sintaxe e semântica, de forma a permitir que o computador possa entender a sequência de ações. No que diz respeito a uma metodologia de algoritmos, observe abaixo, uma lista com diversas atividades, fora de uma sequência lógica para execução.
I. Formular um esboço da solução.
II. Implementar numa linguagem de programação.
III. Se o algoritmo estiver suficientemente detalhado, testar com um conjunto de dados significativos.
IV. Fazer uma primeira aproximação das variáveis necessárias.
V. Rever os passos originais, detalhando.
VI. Entender o problema.
A sequência correta e lógica a ser seguida
I – IV – V – III – II – VI
IV – V – III – II – VI – I
V – III – II – VI – I – IV
VI – I – IV – V – III - II
No contexto da metodologia empregada na construção de algoritmos são empregadas estruturas de controle, representadas na forma de pseudocódigo ou portugol e comandos básicos de leitura e impressão. Como exemplo, observe o trecho de pseudocódigo abaixo.
NR <- -5
repita
-NR <- NR + 2
-escreva(NR:3)
ate NR > 1
fimrepita
Após a execução, a sequência de números de saída é
-5 -3 -1 1 3
-5 -4 -3 -1 1
-3 -1 1 3
-3 -2 -1 0 1
Em relação à metodologia empregada na construção de algoritmos, observe o código abaixo, que ilustra o uso da estrutura para ... fimpara.
para K de -3 ate 3 faca
----escreva (K:4)
fimpara
Para gerar o mesmo resultado, o código equivalente à para ... fimpara, mas que usa a estrutura de controle enquanto ... fimenquanto, está indicado na seguinte alternativa
K <- -3
enquanto K < 3 faca
-------k <- K + 1
-------escreva (K:4)
fimenquanto
K <- -4
enquanto K > 3 faca
-------k <- K + 1
-------escreva (K:4)
fimenquanto
K <- -3
enquanto K < 3 faca
-------escreva (K:4)
-------k <- K + 1
fimenquanto
K <- -4
enquanto K < 3 faca
-------k <- K + 1
-------escreva (K:4)
fimenquanto
Ao analisar um programa elaborado, o programador identificou que uma subrotina recebia um parâmetro X passado por referência. Portanto, ao ser chamada essa subrotina,
o endereço da variável original será passado como parâmetro, possibilitando que, caso a subrotina altere o valor de X, o valor da variável original também seja alterado.
o endereço da variável original será passado como parâmetro, o que impedirá que a subrotina altere o valor de X e, por consequência, o valor da variável original.
uma cópia do valor da variável original é passada como parâmetro e, caso a subrotina altere o valor de X, o valor da variável original também será alterado.
uma cópia do valor da variável original é passada como parâmetro e, caso a subrotina altere o valor de X, o valor da variável original não será alterado.
uma cópia do valor da variável original é passada como parâmetro e, caso a subrotina tente alterar o valor de X, uma exceção será gerada, e o programa será interrompido.
início
v <- vetor (2, 4, 6, 8 , 10 ,12 );
escreva ( v[0] + " " +v[1] );
fim;
O resultado do pseudocódigo apresentado será 6.
Certo
Errado
Algoritmos de ordenação por comparação são aqueles em que a ordem dos elementos na solução é determinada exclusivamente por meio da comparação entre elementos da entrada. Tais algoritmos são necessários quando não se sabe nenhuma outra informação sobre a entrada (como por exemplo, o maior elemento ou a quantidade de bits de cada elemento), além da ordem relativa entre os elementos. Para uma entrada, nessas condições com n elementos, assinale a alternativa correta.
Existe apenas um algoritmo conhecido que pode ordenar esses elementos em tempo O (n log2 n) no pior caso.
A implementação padrão do algoritmo Ordenação por Separação, ou Quick Sort, ordenará este conjunto em tempo no O (n log2 n) pior caso.
No melhor caso, o algoritmo Ordenação por Inserção, ou Insertion Sort, termina em tempo Θ(n2).
Qualquer algoritmo de ordenação por comparação deverá realizar Ω (n log2 n) comparações no pior caso.
Algoritmos de ordenação por comparação podem ordenar os n elementos apenas se eles forem números inteiros ou reais.
Os pseudocódigos são técnicas de construções de algoritmos de forma mais simples, facilitam o aprendizado de algoritmos antes da implementação em uma linguagem de programação. Observe o pseudocódigo abaixo e responda.
INICIO
declare A, B, C, D, E, NUM
escreva("informe um valor positivo para
NUM")
leia(NUM)
A=1
B=2
C=0
D=1
E=2
enquanto(NUM !=0)
faça A = B+C+D+E+1
NUM = NUM – 1
fim-enquanto
FIM
Caso o usuário entre com o número 5 para o NUM, após a execução do pseudocódigo, os valores para declarações de entradas serão, respectivamente:
6,5,1,1,2,0
6,4,2,1,2,0
6,2,0,1,2,0
6,3,3,5,6,0
6,2,0,2,2,0
Dentre os problemas identificados pela gerência de um banco comercial, está a localização das contas dos seus titulares nas listagens e nos relatórios impressos em diferentes situações. Um especialista de TI sugeriu ordenar as contas por meio dos CPF dos seus n titulares antes das impressões.
Dentre alguns algoritmos pré-selecionados para essa ordenação, o especialista escolheu o algoritmo de ordenação por inserção, no qual o consumo de tempo é, no melhor caso, proporcional a
n log n
log n
n2
n
1
Um professor preparou uma série de experimentos para avaliar, juntamente com seus alunos, três algoritmos de ordenação: o da bolha, o de ordenação por inserção e o de ordenação por seleção. Para tal, ele escreveu três métodos Java, um para cada algoritmo. Todos eles recebem como único parâmetro um array de inteiros (int vet[ ] = {81,15,4,20,7,47,14,20,4}), que será ordenado em ordem crescente.
Para acompanhar a evolução desse array sendo ordenado, cada um dos três métodos exibe a configuração dos elementos do array ao término de cada iteração do comando de repetição mais externo. Vale lembrar que esses três algoritmos de ordenação são compostos por dois comandos de repetição aninhados (dois comandos for ou dois comandos while).
Terminada a codificação, o professor executou os métodos relativos aos três algoritmos de ordenação e projetou no quadro as configurações do array relativas às três primeiras iterações de cada um dos algoritmos de ordenação, conforme mostrado a seguir.
Algoritmo 1
4 15 81 20 7 47 14 20 4
4 4 81 20 7 47 14 20 15
4 4 7 20 81 47 14 20 15
Algoritmo 2
15 81 4 20 7 47 14 20 4
4 15 81 20 7 47 14 20 4
4 15 20 81 7 47 14 20 4
Algoritmo 3
15 4 20 7 47 14 20 4 81
4 15 7 20 14 20 4 47 81
4 7 15 14 20 4 20 47 81
As configurações 1, 2 e 3, exibidas acima, correspondem, respectivamente, aos algoritmos
da bolha, de seleção e de inserção
da bolha, de inserção e de seleção
de seleção, de inserção e da bolha
de seleção, da bolha e de inserção
de inserção, de seleção e da bolha
programa
{
funcao inicio()
{
inteiro x, y, z
x=3
y=5
z=2
escreva (x*y-4*z*z*z)
}
}
Assinale a opção que apresenta resultado do programa precedente.
−17
−15
12
15
17
No Portugol, há quatro tipos básicos de dados que podem ser utilizados. Assinale o INCORRETO.
Real.
String.
Inteiro.
Lógico.