Prévia do material em texto
1)
A estrutura de controle que permite avaliar uma variável e classificá-la é a de _____. Por exemplo, permite avaliar o trimestre no qual um determinado mês se encontra, ou seja, o usuário digita um mês, “6” por exemplo, e o algoritmo retorna “Segundo Trimestre”.
Quando precisamos que um algoritmo seja executado várias vezes, temos que usar obrigatoriamente uma estrutura de _____.
Nas principais estruturas de controle, temos um elemento fundamental para o correto funcionamento da estrutura. Ele define o início, a parada e a continuação da execução da estrutura. Trata-se da ______.
Em estruturas que serão executadas várias vezes, é fundamental que uma variável seja _____ para que o bloco a ser executado não fique executando infinitamente.
Assinale a alternativa que completa
adequadamente as lacunas:
Alternativas:
· Sequência; repetição;
condição; inicializada.
· Repetição; decisão;
condição; inicializada.
· Decisão; repetição;
condição; lógica.
· Decisão; repetição;
condição; real.
· Decisão; repetição;
condição; inicializada.
checkCORRETO
Resolução comentada:
As estruturas de decisão são responsáveis muitas vezes por classificações em geral. Dependendo do valor da variável, a classificação é feita. No caso, se o mês estiver entre 1 e 3, será o Primeiro Trimestre; se estiver entre 4 e 6, será o Segundo Trimestre; e assim por diante.
Para executar um trecho de algoritmo, ou o algoritmo todo, usamos estruturas de repetição.
As condições são obrigatórias para controlar o início, o fim e a continuidade das repetições a serem usadas como expressões lógicas em estruturas de decisão.
Se não criarmos e inicializarmos uma variável
antes de uma repetição, é bem provável que tenhamos um looping infinito.
Código da questão: 73879
2)
Sobre as procedures e as funções usadas em algoritmos e linguagens de programação, analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso):
( ) Toda função deve ter dentro do seu corpo uma palavra-chave ou um comando que retorne um valor para o programa chamador.
( ) A passagem por valor não altera o valor da variável que foi enviada por parâmetro para uma procedure ou função.
( ) Toda função ou procedure deve ter o código indentado para seu correto funcionamento.
( ) Uma rotina que calcula a temperatura em graus Fahrenheit e retorna o valor para o programa principal é chamada de função.
( ) Uma função recursiva é executada infinitamente.
Assinale a alternativa
que contenha a sequência correta de V e F:
Alternativas:
· V – V – F – V – F.
checkCORRETO
· V – V – V – V – F.
· F – V – F – V – F.
· V – V – F – V – V.
· V – F – F – V – V.
Resolução comentada:
A primeira, a segunda e a quarta afirmativas são verdadeiras.
Veja a forma correta das afirmativas falsas:
Terceira – A indentação é importante, mas não é obrigatória e serve somente para organizar o código.
Quinta – Uma função
recursiva normalmente tem um ponto de parada, chamado de ponto base, e é
executada enquanto houver memória disponível no dispositivo em que estiver
sendo executada.
Código da questão: 73898
3)
Sobre as expressões aritméticas em algoritmos, analise as assertivas a seguir e assinale-as com V (verdadeiro) ou F (falso):
( ) 1 + 2 * 3 = 7.
( ) (1 + 2) * (3 + 1) < = 12.
( ) ((1 +2) * (3 + 1)) < = 12.
( ) (1 + 1) * (1+1) * 1 + 1 = 5.
( ) 2 * 1 + 2 * 1 + 2 * 1 < = 6.
Assinale a alternativa que contenha a
sequência correta de V e F:
Alternativas:
· F – V – F – V – F.
· V – F – V – F – V.
· V – V – V – V – V
checkCORRETO
· V – F – F – V - F.
· V – V – F – V – F.
Resolução comentada:
Lembre-se de que, assim como as expressões aritméticas comuns, nos algoritmos, as expressões aritméticas também respeitam a precedência dos parênteses e das operações aritméticas. Dessa forma, todas as afirmativas estão corretas.
·
(1 +2) * (3 +1), temos 3 * 4 < = 12. Lembre-se de que o operador
relacional avalia se o resultado é menor OU igual a 12; logo, está correto.
Código da questão: 73870
4)
Uma vez que podemos criar uma variável unidimensional de um mesmo tipo estruturada por meio de um índice, considere o seguinte array:
a[0] = 101
a[1] = 102
a[2] = 103
a[3] = 104
a[4] = 105
a[5] = 106
Assinale a
alternativa correta.
Alternativas:
· Temos 6 elementos no array.
checkCORRETO
· É correto alterar o terceiro elemento para a[3]=’222’.
· O valor do primeiro elemento é 102.
· A forma correta de
declarar o array é int a[5].
· Temos 5 elementos no array.
Resolução comentada:
A forma correta de declarar o array do enunciado é int a[6].
O valor do primeiro elemento é o que está com o índice 0; logo, é o valor 101.
Temos 6 elementos no array, pois os índices vão de 0 a 5.
Não é possível
inserir ou alterar os valores do array com tipos diferentes de inteiro.
Código da questão: 73886
5)
Observe o algoritmo a seguir, escrito no software Portugol Studio. Suponha que a função “sorteia()” gere um número aleatório entre um intervalo de números toda vez que for executada.
Vamos supor que o número aleatório gerado tenha sido 31.
1 programa {
2 funcao inicio() {
3 inteiro vet = 0
4 preenche (vet)
5 escreva("Variavel antes:\n")
6 exibe (vet)
7 escreva("\n\nVariavel após:\n")
8 exibe (vet)
9 escreva("\n")
10 }
11 funcao preenche (inteiro &v) {
12 v = sorteia (1, 100)
13 }
14 funcao exibe (inteiro v) {
15 escreva (v, " ")
16 v = 5
17 }
18 }
Estude o algoritmo, analise as assertivas a seguir e identifique as corretas:
I. A função “preenche()” (linhas 11 a 13) recebe a variável “v” por referência.
II. O valor de v na linha 5 será 31.
III. O valor de v na linha 5 será 0.
IV. O valor de v na linha 7 será 31.
V. O valor de v na linha 5 será 0.
São verdadeiras:
Alternativas:
· I, II e III, apenas
· II, III e V, apenas.
· I, II e V, apenas.
· I, II e IV, apenas.
checkCORRETO
· II, III e IV, apenas.
Resolução comentada:
A afirmativa I é verdadeira, pois o “&” na frente da variável “v” na linha 11 indica que a variável entrará na função por referência.
A afirmativa II é verdadeira, pois, como é uma função que tem o parâmetro por referência, qualquer alteração feita nessa variável dentro da função alterará o valor da variável fora da função.
A afirmativa III é falsa, pois a variável “v” foi passada por referência; logo, o seu conteúdo é alterado na linha 12, influenciando o valor da variável fora da função.
A afirmativa IV é verdadeira, pois, como a variável foi alterada na função, seu valor não é alterado depois em nenhum lugar do algoritmo.
A afirmativa V é falsa,
pois a variável “v” foi passada por referência e teve seu conteúdo alterado na
linha 12.
Código da questão: 73901
6)
Observe e analise o algoritmo a seguir. O objetivo dele é ler duas variáveis e trocar os seus valores. Em seguida, assinale a alternativa correta.
início
inteiro a, b, aux
escreva("Informe um valor para a variável A: ")
escreva("Informe um valor para a variável B: ")
escreva("Variáveis antes da troca: \n")
escreva("A = ", a, "; B = ", b, "\n")
aux = a
a = b
b = aux
escreva("\n")
escreva("Variáveis após a troca: \n")
escreva("A = ", a, "; B = ", b, "\n")
fim
Alternativas:
· O algoritmo está incorreto, porque a linha “a =
b” está com a sintaxe errada.
· O algoritmo está correto e vai apresentar as
saídas programadas corretamente pelo comando escreva().
· O algoritmo está incorreto, porque não possui
comandos para ler as variáveis do usuário.
checkCORRETO
· O algoritmo está incorreto, porque não tem
estruturas sequenciais.
· O algoritmo está incorreto, pois não apresenta
instruções de decisão.
Resolução comentada:
O algoritmo está incorreto, porque não foramcolocadas instruções de leitura do teclado. O correto deve ser:
início
inteiro a, b, aux
escreva("Informe um valor para a variável A: ")
leia(a)
escreva("Informe um valor para a variável B: ")
leia(b)
escreva("Variáveis antes da troca: \n")
escreva("A = ", a, "; B = ", b, "\n")
aux = a
a = b
b = aux
escreva("\n")
escreva("Variáveis após a troca: \n")
escreva("A = ", a, "; B = ", b, "\n")
fim.
Código da questão: 73877
7)
As _____ são espaços de memória em que podemos guardar valores temporários enquanto um algoritmo está sendo executado. Existem vários tipos primitivos. O tipo que guarda números não decimais, positivos e negativos, além do zero, é o tipo _____. O operador relacional que conecta dois operandos lógicos e gera uma saída lógica é popularmente conhecido como _____. Toda variável possui obrigatoriamente duas partes: seu _____ e seu valor, que pode ser, inclusive, nulo, ou null.
Assinale a alternativa que completa adequadamente as lacunas:
Alternativas:
· Variáveis; inteiro;
booleano; identificador.
checkCORRETO
· Operações; booleano;
real; operando.
· Linguagens; numérico;
OR; tipo.
· Expressões; inteiro;
NOT; nome
· Expressões; string; AND; tipo
Resolução comentada:
As variáveis são os recursos usados pelos
algoritmos para guardar valores que podem mudar ou não durante a execução do
algoritmo. Elas ficam armazenadas na memória do computador e, para cada tipo de
valor atribuído a ela, possui um tipo diferente, podendo ser caracteres
alfanuméricos, números inteiros ou decimais e valores lógicos, também chamados
de booleanos. Toda variável possui um identificador, ou nome, e nem sempre
temos um valor atribuído a ela, caso em que ela guardará nulo.
Código da questão: 73869
8)
O valor que é passado para uma procedure ou função é chamado de ___.
Uma função ____ é um tipo de função que chama ela mesma.
As procedures são usadas pelos programadores principalmente para ____ a repetição de um código.
A passagem por ___ altera o valor das variáveis fora do corpo da função.
Assinale a alternativa
que completa adequadamente as lacunas:
Alternativas:
· Parâmetro; recursiva; reduzir; referência.
checkCORRETO
· Parâmetro; recursiva; aumentar; referência.
· Parâmetro; recursiva; aumentar; valor.
· Argumento; com retorno; reduzir; valor.
· Inteiro; modular; reduzir; referência.
Resolução comentada:
Os valores que são passados para funções ou procedures são chamados de parâmetros.
A função que pode chamar ela mesma é chamada de função recursiva, e o processo é chamado de recursão.
As procedures e as funções são usadas para reduzir o código e simplificá-lo.
A passagem por referência altera a variável que
é passada para a função fora da função, pois é passado o valor do endereço da
variável.
Código da questão: 73897
9)
Dados os exemplos a seguir, associe-os corretamente com uma estrutura de dados que poderia ser usada para implementar cada um.
I. Lista dos meses do ano
A. Registro.
II. Jogo de caça-palavras
B. Matriz bidimensional.
III. Cadastro de clientes
C. Vetor unidimensional.
Audiodescrição. Inicio da descrição. O quadro é formado por duas colunas e três linhas. A primeira coluna traz três opções: 1. Lista dos meses do ano; 2. Jogo de caça-palavras; e 3. Cadastro de clientes. A segunda coluna traz também três opções: A. Registro; B. Matriz bidimensional; e C. Vetor unidimensional. Fim da descrição.
Assinale a alternativa que traz a associação
correta entre as duas colunas:
Alternativas:
· I-C; II-A; III-B.
· I-A; II-B; III-C
· I-B; II-C; III-A
· I-C; II-B; III-A
checkCORRETO
· I-A; II-C; III-B
Resolução comentada:
A lista de meses do ano pode ser facilmente criada em um vetor unidimensional de strings contendo 12 elementos, em que cada um corresponde a um mês do ano.
Exemplo:
Array meses
0
1
2
3
4
5
6
Etc.
10
11
Jan
Fev
Mar
Abr
Maio
Jun
Jul
Etc.
Nov
Dez
Início da descrição. O quadro é formado por duas colunas e duas linhas. A primeira linha é formada por números e a segunda por meses. Os meses de agosto a outubro apresentam um etc., dando a ideia de continuação da lista. Assim, temos: 0 = janeiro; 1 = fevereiro; 2 = março; 3 = abril; 4 = maio; 5 = junho; 6 = julho; 10 = novembro; e 11 = dezembro.
O jogo de caça-palavras é obviamente a implementação de uma matriz bidimensional. O exemplo a seguir mostra um caça-palavras de 8 linhas por 10 colunas.
Exemplo: Caça-palavras de países
0
1
2
3
4
5
6
7
8
9
0
X
D
F
G
H
J
K
L
O
P
1
Q
A
Z
W
S
X
E
D
C
A
2
A
U
S
T
R
Á
L
I
A
R
3
R
F
V
T
G
B
Y
N
H
J
4
P
O
I
U
Y
T
R
D
E
W
5
Y
H
M
K
O
I
O
I
T
E
6
A
S
Á
F
R
I
C
A
M
P
7
A
S
D
F
G
H
J
K
L
O
Início da descrição. O quadro é formado por 11 colunas e 9 linhas. As letras estão dispostas aleatoriamente e formam o nome de países em algumas junções. Fim da descrição.
Um cadastro de clientes é uma estrutura mais complexa, que pode ser implementada em um registro contendo código do cliente, nome, endereço etc.
Exemplo:
Cliente é composto de:
nome – string com 255 posições.
endereço – string com 255 posições.
idade – inteiro.
Código da questão: 73890
10)
As estruturas unidimensionais homogêneas também são chamadas de vetores. Em relação ao seu tamanho e uma vez definidos, ______ alterar sua dimensão.
Uma matriz é uma estrutura de dados ________, a qual pode possuir _____ ou mais dimensões indexadas para serem trabalhadas.
Se você quiser criar uma coleção de livros, pode usar um _____ com diferentes _____, como id, autor, editora e número de páginas.
Assinale a alternativa que completa
adequadamente as lacunas:
Alternativas:
· Não é possível; homogênea; duas; registro;
campos.
checkCORRETO
· É possível; homogênea;
duas; registro; campos.
· Não é possível;
homogênea; duas; vetor; campos.
· Não é possível;
heterogênea; duas; registro; índices.
· É possível; homogênea;
duas; registro; índices.
Resolução comentada:
Os vetores, uma vez declarados e criados, são definidos com um tamanho e este não pode ser modificado.
As maiores aplicações de matrizes são em estruturas bidimensionais, como tabela. Porém, existem implementações em mais de uma dimensão, como é o caso dos cubos de dados.
Os registros são as estruturas capazes de
armazenar dados de vários tipos sob um mesmo nome.
Código da questão: 73888