- ID
- 5434
- Banca
- CESGRANRIO
- Órgão
- Petrobras
- Ano
- 2006
- Provas
- Disciplina
- Algoritmos e Estrutura de Dados
- Assuntos
A respeito de funções e algoritmos, assinale a afirmativa correta.
A respeito de funções e algoritmos, assinale a afirmativa correta.
Dadas as variáveis numéricas A e B, contendo os valores 2 e 6, respectivamente; a variável L, contendo o literal FALSO; e a variável lógica V, contendo o valor lógico verdadeiro, assinale a expressão lógica cujo resultado possui valor lógico falso.
A respeito de funções e algoritmos, assinale a afirmativa correta.
Sobre o algoritmo de ordenação heapsort, assinale a afirmação correta.
Julgue os itens que se seguem, com relação a conceitos de
construção de algoritmos.
Na construção de um algoritmo, utilizam-se estruturas de repetição para que um bloco de comandos seja executado várias vezes. Todos os tipos de estrutura de repetição permitem que o bloco de comandos seja executado zero, uma ou mais vezes, de acordo com uma condição que será avaliada a cada iteração.
Julgue os itens que se seguem, com relação a conceitos de
construção de algoritmos.
Na passagem de parâmetro por valor, o parâmetro formal tem seu valor inicializado pelo valor do parâmetro real. Por esse motivo, o parâmetro real nunca é alterado. O seu valor se mantém inalterado depois que o subprograma termina a execução.
Julgue os itens que se seguem, com relação a conceitos de
construção de algoritmos.
Um array é um agregado, possivelmente heterogêneo, de elementos de dados. Nele, um elemento individual é identificado por sua posição em relação ao primeiro.
Julgue os itens que se seguem, com relação a conceitos de
construção de algoritmos.
Uma função é dita recursiva quando faz uma chamada a si própria em seu corpo. Por essa característica, é importante a definição dos parâmetros formais e dos parâmetros reais utilizados na chamada recursiva. Caso os valores passados como parâmetro na chamada recursiva sejam os mesmos dos parâmetros recebidos pela função, sua execução será infinita.
Envolvido em premissa segundo a qual é fácil multiplicar dois números primos para obter um terceiro número, mas muito difícil recuperar os dois primos a partir desse terceiro número. Trata-se do algoritmo
Formalização de algoritmo proposto em 1936, universalmente conhecido e aceito. Trata-se de um mecanismo simples, que formaliza a ideia de uma pessoa que realiza cálculos, denominado
Uma estrutura de dados array pode ser do tipo
Analise as seguintes afi rmações relacionadas a conceitos básicos de programação e de algoritmos:
I. Considerando entradas totalmente desordenadas, em um algoritmo de "Ordenação por Inserção", o tempo consumido no processamento para ordenar uma entrada de mil números é o mesmo que o tempo gasto para ordenar uma entrada de três números, quando executados em uma mesma máquina com arquitetura RISC.
II. Considerando o tempo de execução do pior caso de um algoritmo, na pesquisa de um banco de dados em busca de um determinado fragmento de informação, o pior caso do algoritmo de pesquisa ocorrerá, na maioria das vezes, quando a informação não estiver presente no banco de dados.
III. Um algoritmo é dito recursivo quando, para resolver um problema, ele chama internamente vários outros algoritmos duas ou mais vezes para lidar com subproblemas intimamente relacionados.
IV. Para qualquer número inteiro N e qualquer número inteiro positivo K, o valor N mod K é o resto do quociente N/K.
Indique a opção que contenha todas as afi rmações verdadeiras.
Assinale a alternativa incorreta:
O produto da ação de algoritmos que fazem o mapeamento de uma sequência de bits de tamanho arbitrário para uma sequência de bits de tamanho fixo menor, com resistência à colisão e cujo processo reverso também não seja realizável, denomina-se
A necessidade de rearranjo de um certo conjunto de elementos, de acordo com um critério específico, indica
Considere a seguinte e somente a seguinte situação: Se um procedimento Px contiver uma referência a um outro procedimento Py que por sua vez contém uma referência direta ou indireta a Px, então
As estratégias de divisão e de conquista são utilizadas pelos algoritmos de ordenação
Relacionado à programação de computadores, um algoritmo, seja qual for a sua complexidade e a linguagem de programação na qual será codificado, pode ser descrito por meio da
O quicksort é um algoritmo que funciona usando o paradigma de dividir e conquistar, usando uma rotina de particionamento que divide o vetor de estruturas em dois pedaços em torno de um pivô. O pedaço da esquerda só contém elementos com chaves menores ou iguais que o elemento corrente e o pedaço da direita, só elementos com chaves maiores que o elemento corrente. O algoritmo procede, então, para o subproblema de ordenar cada um dos pedaços e seu desempenho total é um dos mais eficientes para ordenação de estruturas de dados. Qual das seguintes descrições representa uma correta característica do algoritmo quicksort?
Uma lista simplesmente encadeada pode ser transformada em uma lista duplamente encadeada em tempo O(1)
PORQUE
Para transformar uma lista simplesmente encadeada em duplamente encadeada basta fazer uma cópia invertida de cada ponteiro (o destino do novo ponteiro passa a ser a origem do ponteiro original e vice-versa) e existe um número constante e limitado de cópias a fazer.
Analisando as afirmações acima, conclui-se que
São métodos (algoritmos) de busca em cadeias
Último dado armazenado é o primeiro a ser recuperado caracteriza a estrutura de dados do tipo
Julgue os itens seguintes, relativos à lógica de programação e
construção de algoritmos.
Na construção de um algoritmo, é sempre possível substituir uma estrutura do tipo enquanto por uma estrutura do tipo para.
Julgue os itens seguintes, relativos à lógica de programação e
construção de algoritmos.
Na definição de uma função, a passagem de parâmetros por referência possibilita que o valor de uma variável passado como argumento seja alterado na função, e sua alteração mantenha-se mesmo após a execução da função.
Julgue os itens seguintes, relativos à lógica de programação e
construção de algoritmos.
Variáveis declaradas dentro de funções ou procedimentos são chamadas de variáveis locais e não são visíveis por outras funções. Por esse motivo, não é possível declarar variáveis que possam ser utilizadas por qualquer função de um programa.
Acerca das estruturas de informação, julgue os itens a seguir.
Entre os comandos básicos para a descrição de algoritmos, para que a execução de uma malha seja interrompida e seja executado o comando imediatamente seguinte, utiliza-se dentro da malha, o comando saia, também conhecido como escape de malha.
No que se refere à lógica de programação, julgue o item a seguir.
Em um algoritmo, uma expressão geralmente é considerada válida quando as suas variáveis e constantes respeitam o número e os tipos de argumentos das operações envolvidas.
No que se refere à lógica de programação, julgue o item a seguir.
Se um trecho de algoritmo tiver de ser executado repetidamente e o número de repetições for indefinido, então é correto o uso, no início desse trecho, da estrutura de repetição Enquanto.
O tipo de algoritmo cuja legibilidade depende muito de sua forma, incluindo aspectos de sua disposição em parágrafos (recuos), é conhecido como:
É a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações " primitivas" , das quais damos por certo que elas podem ser executadas. A descrição refere-se a:
Com relação a algoritmos e lógica de programação, julgue os
itens a seguir.
Procedimento ou sub-rotina é um conjunto de instruções que realiza determinada tarefa. As funções são criadas da mesma maneira que os procedimentos; a diferença é que as funções podem ser utilizadas em expressões, como se fossem variáveis, pois elas retornam valores associados ao seu nome.
Considere: zero é um número natural. O sucessor de um número natural é um número natural.
Assim, em termos de algoritmo, o enunciado trata da possibilidade de aplicação de uma técnica denominada
Os algoritmos podem ser representados de várias formas: Diagrama de Nassi-Shneiderman, Fluxograma e Português Estruturado. Com relação às formas de representação de algoritmos, analise as seguintes afirmativas:
I. Os Diagramas Nassi-Shneiderman, também conhecidos como Diagramas de Chapin, surgiram nos anos 70 como uma maneira de ajudar nos esforços da abordagem de programação estruturada.
II. Os Fluxogramas ou Diagramas de Fluxo, são uma representação gráfica que utilizam formas geométricas padronizadas ligadas por setas de fluxo, para indicar as diversas ações (instruções) e decisões que devem ser seguidas para resolver um problema.
III. O Português Estruturado, é uma forma especial de linguagem bem mais restrita que a Língua Portuguesa e com significados bem definidos para alguns termos utilizados nas instruções (comandos).
Podemos afirmar corretamente que:
Quando se pretende escrever um programa numa determinada linguagem de programação, a de que o computador possa executar um conjunto de passos e fornecer os resultados pretendidos, podemos elaborar um pseudocódigo de modo a facilitar a compreensão e escrita do programa. Com relação a pseudocódigo, analise as seguintes afirmativas:
I. Os pseudocódigos são constituídos usualmente pelo vocabulário de uma linguagem corrente, por exemplo, o português, e pela sintaxe global de uma outra, como por exemplo, a linguagem de Programação Estruturada.
II. A Iteração permite que partes de um programa sejam repetidas um número finito de vezes, segundo uma condição de controle.
III. Para indicar a operação de atribuição, utiliza-se o símbolo
Podemos afirmar corretamente que: " → "
Assinale a alternativa que contém o significado correto do símbolo de Algoritmos:
Três estruturas lógicas podem compor um algoritmo: (1) Estrutura sequencial, (2) Estrutura de seleção e (3) Estrutura de repetição. Assinale em qual dos trechos de algoritmo essas três estruturas estão presentes, simultaneamente.
Segundo Tanenbaum, existe um princípio que diz que “todos os algoritmos devem ser públicos, apenas chaves são secretas.” Este princípio é conhecido como princípio de:
01 class Prova{
02 public int a;
03
04 Prova(int _a){
05 a = _a;
06 }
07 public void acrescenta(int n){
08 a += n;
09 }
10 public void acrescenta(){
11 a++;
12 }
13 }
14 class SubProva extends Prova{
15 private int b;
16 SubProva(int umb, int uma){
17 super(uma);
18 b = umb;
19 }
20 public void acrescenta(int n){
21 b=b+n+2;
22 }
23 public static void main (String args[ ]) {
24 SubProva s = new SubProva(2,5);
25 Prova p = new Prova(2);
26 s.acrescenta(3);
27 p.acrescenta();
28 System.out.println(s.b+s.a);
29 System.out.println(p.a);
30 s.acrescenta();
31 System.out.println(" "+s.b+p.a+s.a) ;
32 }
33 }
Comrelação ao programa anterior, é correto afirmar que:
01 class Prova{
02 public int a;
03
04 Prova(int _a){
05 a = _a;
06 }
07 public void acrescenta(int n){
08 a += n;
09 }
10 public void acrescenta(){
11 a++;
12 }
13 }
14 class SubProva extends Prova{
15 private int b;
16 SubProva(int umb, int uma){
17 super(uma);
18 b = umb;
19 }
20 public void acrescenta(int n){
21 b=b+n+2;
22 }
23 public static void main (String args[ ]) {
24 SubProva s = new SubProva(2,5);
25 Prova p = new Prova(2);
26 s.acrescenta(3);
27 p.acrescenta();
28 System.out.println(s.b+s.a);
29 System.out.println(p.a);
30 s.acrescenta();
31 System.out.println(" "+s.b+p.a+s.a) ;
32 }
33 }
Comr elação ao programa anterior, é correto afirmar que a linha 29, ao executar o programa, a saída será:
01 class Prova{
02 public int a;
03
04 Prova(int _a){
05 a = _a;
06 }
07 public void acrescenta(int n){
08 a += n;
09 }
10 public void acrescenta(){
11 a++;
12 }
13 }
14 class SubProva extends Prova{
15 private int b;
16 SubProva(int umb, int uma){
17 super(uma);
18 b = umb;
19 }
20 public void acrescenta(int n){
21 b=b+n+2;
22 }
23 public static void main (String args[ ]) {
24 SubProva s = new SubProva(2,5);
25 Prova p = new Prova(2);
26 s.acrescenta(3);
27 p.acrescenta();
28 System.out.println(s.b+s.a);
29 System.out.println(p.a);
30 s.acrescenta();
31 System.out.println(" "+s.b+p.a+s.a) ;
32 }
33 }
Com relação ao programa anterior, é correto afirmar que:
Ao executar o trecho de programa a seguir, o valor de X no final do trecho será:
.
.
.
x=3;
x--;
if(x < 3)
x--;
else
x++;
x+=2;
.
.
.
Ao executar o trecho de programa a seguir, valor de x no final do trecho será:
.
.
.
x=1;
for(i=0;i < 5; i++)
x+= i;
for(i=4;i > 1; i--)
x -= i;
.
.
.
Considerando a passagem de informações para funções, julgue os itens abaixo e, em seguida, assinale a opção correta.
I – O mecanismo usado para transmitir informações para uma função é denominado argumento.
II – Todos os parâmetros em uma função devem ser do mesmo tipo.
III – Quando a informação é passada por valor, a função chamada não pode alterar o valor de uma variável da função que chama.
IV – A utilização de ponteiros como parâmetros irá causar erro de sintaxe no momento da compilação.
A quantidade de itens certos é igual a
Dentre os paradigmas para construção de algoritmos, o método Divisão-e-Conquista, caracteriza-se por:
Observe o trecho de código abaixo.
atribuir 13 a INDICE;
atribuir 0 a SOMA;
atribuir 0 a K;
enquanto K < INDICE faça
início
somar 1 a K;
atribuir SOMA+K a SOMA;
imprimir(K);
fim;
fim-enquanto;
imprimir(SOMA);
Ao final do processamento, a variável SOMA terá o seguinte valor:
Observe o trecho de código abaixo.
algoritmo ALG;
variáveis
X: lógico;
Y: string;
início
Y:=´MEC´;X:=FALSO;
repetir
imprimir(Y);
X:=NÃO X;
até que (NÃO X);
fim.
Após a execução, a quantidade de vezes que a variável Y será impressa é igual a:
Em relação às técnicas de programação e construção de algoritmos, assinale a alternativa que apresente corretamente duas características da estrutura de controle repetir ... até que.
Observe o pseudocódigo abaixo, que utiliza a estrutura de controle repetir ... até que ... .
repetir
se (N for impar) então imprimir (N);
atribuir N - 3 a N;
até que N < 3;
Para um valor inicial igual a 13 para a variável N, a estrutura enquanto ... faça ... equivalente e que gera os mesmos resultados, está indicada na alternativa:
O método de otimização empregado exclusivamente para a solução de problemas, no qual as funções objetivo e de restrição são lineares, é denominado
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.
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.
Os algoritmos são compostos por estruturas de controle de três tipos: sequencial, condicional e de repetição. Assinale a alternativa que apresenta apenas um tipo de estrutura de controle.
Acerca de algoritmos, estruturas de dados e lógica de programação,
julgue os itens subsequentes.
O algoritmo de Dijkstra utiliza a técnica de relaxamento e produz, ao final de sua execução, uma árvore de caminhos mais curtos entre um vértice origem s e todos os vértices que são alcançáveis a partir de s.
O seguinte trecho de pseudo-código representa a definição de uma função (sub-rotina) f com um único argumento x.
´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´
f(x)
x ← x + 1
devolva x
´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´
Considere agora o seguinte trecho de código que invoca a função f definida acima.
´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´
a ← 0
escreva a
escreva f(a)
escreva a
´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´
A execução do trecho de código acima resultaria na escrita de
Observe o algoritmo abaixo, referente a um programa de computador, onde / representa divisão entre inteiros.
var
array[1..8] of inteiros : tab;
lógica : achou;
inteiro : D, m, ini, fim, centro;
procedimento PROC11;
início
para m de 1 até 8 faça ler(tab[m]);
fim_do_procedimento;
procedimento PROC22;
início
ler(D);
achou=false;
ini = 1;fim = 8;centro = (ini+fim) / 2;
enquanto (D < > tab[centro]) e (ini < > fim) faça
início
se D > tab[centro] então ini = centro+1
senão fim = centro;
centro = (ini + fim) / 2;
fim_do_procedimento;
se D = tab[centro] então achou = VERDADEIRO
senão achou = FALSO;
se achou então escreva(D,' encontra-se na posição ',centro)
senão escreva(D,' não se encontra na tabela...');
fim_do_procedimento;
início
PROC11;
PROC22;
fim_do_algoritmo. algoritmo prog;
Na resolução de problemas relacionados com a construção de algoritmos, são usadas diversas estratégias. Uma delas consiste em dividir o problema em problemas menores até que cada parte seja pequena o bastante para que a solução seja encontrada.
Tal estratégia denomina-se
Acerca da utilização de algoritmos e fluxogramas em lógica de
programação, julgue os itens a seguir.
Quando um break é encontrado dentro de um laço for, a execução do código é interrompida e o programa é finalizado.
Com relação a diagrama de blocos, julgue o item abaixo.
Os diagramas de estado, também conhecidos como diagramas de bloco, são representações gráficas de algoritmos, ou seja, das instruções e(ou) módulos do processamento.
A respeito de algoritmos, estruturas de dados e objetos, julgue o item que se segue.
O algoritmo mostrado a seguir resume corretamente a inserção com um leque de, no máximo, sete elementos.
Type leque = record
topo: integer;
memo: array [1..7] of char;
end;
var L:leque;
p.topo: = 0
procedure push (var L:leque; x:char);
begin
if not L.topo>7 then
begin
L.topo :=L.topo+1;
L.memo [L.topo]:= x;
end;
end;
Fornecidos os dados das candidatas ao time de basquete: altura, peso e idade e as restrições abaixo:
altura: de 1.70 a 1.85 m
peso: de 48 a 60 kg
idade: de 15 a 20 anos
O trecho de algoritmo, em pseudocódigo, que verifica corretamente se os dados se enquadram nas restrições fornecidas é:
Considerando que A seja um algoritmo, {E1, ..., Em} o conjunto de todas as entradas possíveis de A, e ti o número de passos efetuados por A quando a entrada for Ei , assinale a opção correta.
Assinale a opção cujo pseudocódigo determina corretamente qual é o maior número entre A e B.
O algoritmo que escreve a sequência 1, 1, 2, 3, 5, 8, 13 é
Julgue os itens a seguir, relativos a algoritmos.
A abstração é processo em que o algoritmo identifica as propriedades relevantes do fenômeno que está sendo modelado. Ao se empregar um modelo abstrato, centra-se unicamente nas propriedades relevantes de cada operador, conforme a finalidade da abstração, desconsiderando-se as propriedades irrelevantes.
Julgue os itens a seguir, relativos a algoritmos.
O algoritmo abaixo executa o cálculo do volume de uma esfera de raio R.
Início
Real VOLUME, PI, R;
Constante PI = 3,1416;
R=0;
Enquanto R<= 6 Faça
VOLUME=4/3*PI*(R**3);
Imprima (R,VOLUME);
R=R+2;
Fim Enquanto;
Fim.
Julgue os itens a seguir, relativos a algoritmos.
O pseudocódigo abaixo representa um algoritmo que efetua a multiplicação de dois inteiros quaisquer.
algoritmo "exercício 1c"
var n1, n2: inteiro
inicio
escreva ("Digite o multiplicando e a seguir")
escreva (" o multiplicador (ambos inteiros): ")
leia (n1, n2)
escreva (n1, "*", n2, "=",n1*n2)
fimalgoritmo
Julgue os itens a seguir, relativos a algoritmos.
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.
Considere o algoritmo em pseudo linguagem:
início
caracter: nome, sexo;
imprima (“Qual é o seu nome? ”);
leia(nome);
imprima (“Qual é o seu sexo? (f/m) ”);
leia (sexo);
se (sexo = ‘f’ E sexo = ‘F’)
então imprima (“Você é do sexo feminino. ”);
senão
se (sexo = ‘m’ E sexo = ‘M’)
então imprima (“Você é do sexo masculino. ”);
senão
imprima (“Você digitou um valor de sexo invalido ”);
fim se;
fim se;
fim.
Sobre o algoritmo acima é correto afirmar que
Uma das diferenças entre o algoritmo de balde de símbolos (token bucket algorithm) e o algoritmo de balde furado (leaky bucket algorithm) se verifica quando o “balde” enche. Nesse momento,
Acerca de estruturas de programação, julgue os itens que se seguem.
No trecho de pseudocódigo a seguir, o teste condicional na estrutura seqüencial enquanto ocorre no final. Isso significa que a possibilidade de a repetição não ser executada é nula, visto que, mesmo quando a condição assume falso na primeira verificação, o comando é executado,
enquanto (condição)
comando;
Acerca de estruturas de programação, julgue os itens que se seguem.
Considere que um analista, ao especificar um código que execute 10 vezes determinado comando x, escreva o seguinte pseudocódigo.
para i → 1 até 10 faça
comando X;
Nesse caso, é correto afirmar que o analista utilizou uma estrutura de repetição cuja execução realizará o propósito desejado corretamente.
No algoritmo do programa abaixo, em português estruturado, temos as seguintes entradas para os valores da variável X quando requisitados: X [ 1 ] = 2, X [ 2 ] = 3, X [ 3 ] = 8, X [4] = 3. Identifique nas respostas abaixo qual será a saída do programa.
programa CONTA
var
RESULTADO : real
X : conjunto[ 1..4 ] de real
T : inteiro
Y : inteiro
início
Y ← 4
RESULTADO ← 0
para T de 1 até 4 passo 1 faça
leia X[ T ]
RESULTADO ← RESULTADO + X[ T ]
fim_para
RESULTADO ← RESULTADO / Y
escreva RESULTADO
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
Com base no algoritmo acima, julgue os itens.
No algoritmo é apresentada uma estrutura de repetição para que seja alcançado o resultado final desejado.
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
Com base no algoritmo acima, julgue os itens.
O valor do retorno da chamada para a função AlgoritmoMaximo(156, 270) é 6.
A maneira mais óbvia de fazer uma busca é comparar o elemento que se está procurando com todos os elementos guardados um a um, isto é, procurar o elemento sequencialmente até que ele seja encontrado. Sobre a busca sequencial, analise as assertivas e, em seguida, assinale a alternativa que apresenta a(s) correta(s).
I. O algoritmo que realiza essa busca é realmente muito simples e consiste em uma estrutura de repetição que “varre” toda a sequência de elementos, realizando uma condicional que compara o elemento desejado com os elementos existentes na sequência.
II. A execução da rotina de busca termina somente quando a condição de busca é satisfeita.
III. A busca sequencial é indicada para pesquisa numa lista ordenada.
Uma cadeia corresponde a uma sequência de elementos denominados caracteres. Considera-se “padrão” o texto que se deseja encontrar e “texto” a origem, o local a buscar o padrão desejado. Sobre algoritmos de pesquisa em cadeia de caracteres, assinale a alternativa INCORRETA.
Marque a opção que determina uma lista de procedimentos bem definida, que pega algum valor, ou conjunto de valores como entrada, e produz algum valor ou conjunto de valores como saída.
Acerca de funções, procedimentos e estruturas de controle de fluxo, julgue os próximos itens.
Em C, a sentença for é composta de três expressões, avaliadas em momentos diferentes da execução do laço. A primeira expressão é avaliada a cada vez que se executa o corpo do laço e, se a segunda expressão estiver ausente, esta será considerada verdadeira, tendo-se, assim, potencialmente um laço infinito.
Acerca de lógica de programação, algoritmos, tipos de dados e variáveis, julgue os itens a seguir.
Algoritmos podem ser entendidos como uma sequência de procedimentos que transformam valores de entrada em valores de saída. O denominado problema do caixeiro viajante é considerado um algoritmo eficiente.
Acerca de funções, estruturas e operadores de lógica de programação, julgue os itens subsequentes.
Em um programa que consiste de vários blocos de comando, variáveis declaradas com nomes iguais em diferentes blocos podem gerar erros de execução, visto que não será possível resolver a variável e sua declaração.
Em relação aos conceitos de programação orientada a objetos e lógica de programação, julgue os itens subsequentes.
O resultado abaixo será obtido ao se executar o algoritmo que a ele se segue.
Resultado:
1 0;
0 0;
2 1;
1 0;
3 2;
2 2;
Algoritmo:
program p;
var v: inteiro;
funcao f(v: inteiro; var k:inteiro): inteiro;
var p,q:inteiro;
inicio
se v < 2
então inicio
f := v;
k := 0;
fim
senão inicio
f := f(v-1, p) + f(v-2, q);
k := p + q + 1;
fim;
escreva(n,' ',k,'; ');
fim ;
inicio
n := 4;
escreva(f(3,n),n);
fim
Sabendo que o algoritmo pode ser considerado como uma sequência de ações executáveis para obtenção de uma solução para um determinado tipo de problema e que pode ser mensurado para se obter um tempo de execução em relação a algumas variáveis, marque os 3 cenários apresentados pelo tempo de execução de um algoritmo.
Em um algoritmo, apresentado o seguinte código:
"Se Condição1 então
Se Condição2 então
Comando1
Senão
Comando2
Comando3"
Quando a Condição1 for verdadeira, a próxima instrução a ser executada será :
Independente da linguagem de programação, ao passar um parâmetro por referência em uma função, toda a alteração feita .
var
x, y, i: inteiro
result: real
inicio
leia (x)
leia (y)
result ←1
se (y > 0)
entao inicio
para i←1 ate y passo 1 faça
inicio
result ← result * x
fim para
fim entao
senao inicio
y ← y * (-1)
para i←1 ate y passo 1 faça
inicio
result ← result * (1/x)
fim para
fim senao
imprima (result)
fim
Considerando o algoritmo apresentado é correto afirmar que se;
var
x, y, i: inteiro
result: real
inicio
leia (x)
leia (y)
result ←1
se (y > 0)
entao inicio
para i←1 ate y passo 1 faça
inicio
result ← result * x
fim para
fim entao
senao inicio
y ← y * (-1)
para i←1 ate y passo 1 faça
inicio
result ← result * (1/x)
fim para
fim senao
imprima (result)
fim
No algoritmo apresentado
Uma linguagem de programação permite que os parâmetros de uma função sejam passados por valor ou por referência. Suponha que nessa linguagem seja definida uma função F(A,B) onde A e B são os parâmetros formais, sendo que A é passado por valor, e B é passado por referência. Durante a execução de F, somamos 2 ao valor de A e subtraímos 2 do valor de B.
Caso F(X,Y) seja uma chamada da função, ao longo do programa, onde os parâmetros reais X e Y são variáveis cujos valores antes da chamada são, respectivamente, 10 e 20, esperamos que, ao terminar a função, os novos va- lores de X e Y sejam, respectivamente,
Acerca de construção de algoritmos, avaliação de expressões, variáveis e constantes, julgue os itens a seguir.
O algoritmo apresentado abaixo imprimirá a soma dos termos da sequência {1, 1/2, 1/3, ..., 1/20}.
início
CONTADOR, SOMA: numérico
SOMA ← 0
para CONTADOR de 1 até 20 faça
SOMA ← CONTADOR + (1/CONTADOR)
fim-para
escreva “O total da sequência é”, SOMA
fim
Acerca de construção de algoritmos, avaliação de expressões, variáveis e constantes, julgue os itens a seguir.
Para representar a idade e o registro geral de identificação de uma pessoa, bem como se ela é ou não maior de idade, utiliza-se constante numérica.
Em relação aos comandos em pseudocódigo correspondentes às estruturas de decisão e repetição dos algoritmos, correlacione as colunas a seguir:
Comando (pseudocódigo) Estrutura de decisão/repetição
I. Se...então ( ) Estrutura de repetição com teste no final
II. Escolha...Caso ( ) Estrutura de seleção simples
III. Repita...Até ( ) Estrutura de repetição com variável de controle
IV. Para...Até...Faça ( ) Estrutura de seleção de múltipla escolha
A sequência CORRETA, de cima para baixo, é:
Os dados armazenados na memória CACHE devem ser substituídos periodicamente, essas substituições obedecem a alguns algoritmos. O objetivo desses algoritmos é aumentar o número de acertos, evitando as falhas na busca de novas instruções para o processador. Assinale a que NÃO corresponde a um algoritmo de substituição de dados:
1. Inicio programa
2. Ler salario
3. Se salario >=1000
4. Então
5. salarionovo = salario * 1,05
6. Senão
7. salario = salario * 1,075
8. Fim Se
9. Exibir salario
10. Exibir salarionovo
11. Fim programa
Considerando a algoritmo apresentado acima, julgue os itens seguintes acerca de lógica de linguagens de programação.
O comando na linha 7 faz aumentar o valor da variável salario em 75%. Esse comando, contudo, não poderá ser implementado da forma apresentada, uma vez que não é possível atribuir valor à variável salario, pois ela já está sendo utilizada no cálculo.
1. Inicio programa
2. Ler salario
3. Se salario >=1000
4. Então
5. salarionovo = salario * 1,05
6. Senão
7. salario = salario * 1,075
8. Fim Se
9. Exibir salario
10. Exibir salarionovo
11. Fim programa
Considerando a algoritmo apresentado acima, julgue os itens seguintes acerca de lógica de linguagens de programação.
Caso a linha 5 fosse salarionovo = salario * * 2, o valor da variável salario seria multiplicado por 2 duas vezes, tal que, se o valor da variável salario fosse 1000, então o valor de salarionovo seria 4000.
1. Inicio programa
2. Ler salario
3. Se salario >=1000
4. Então
5. salarionovo = salario * 1,05
6. Senão
7. salario = salario * 1,075
8. Fim Se
9. Exibir salario
10. Exibir salarionovo
11. Fim programa
Considerando a algoritmo apresentado acima, julgue os itens seguintes acerca de lógica de linguagens de programação.
Para qualquer salario que for maior que 1000, o valor final de salario será acrescido em 50% de seu valor anterior.
Beto, estudante de programação, ao resolver um problema, testou diversos algoritmos e, com um deles, achou a seguinte impressão com o resultado correto:
soma = 39.
Esse resultado foi entregue ao professor. Indagado sobre com qual algoritmo tinha encontrado o resultado correto, Beto percebeu que não mais lembrava. E teve que repetir as experiências.
Qual foi o algoritmo utilizado pelo estudante?