- 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.
      algoritmo prog;
     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.
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?