NEW
Font size
S
M
L
XL
WorksheetsAvaliação: Lógica de Programação - Vetores, Matrizes e Registros
Total questions: 20
Worksheet time: 10mins
Name
Class
Date
1.
Analise o algoritmo abaixo, que gerencia o embarque de passageiros. Para armazenar os nomes de cinco pessoas em uma única estrutura, o código utiliza a declaração 'onibus:vetor[1..5] de caractere'. Essa estrutura de dados permite que o programa:
a)
armazene cinco nomes diferentes acessíveis por um índice numérico.
b)
grave apenas um nome que será substituído cinco vezes na memória.
c)
crie cinco variáveis com nomes distintos sem relação entre si.
d)
execute uma repetição de cinco vezes sem armazenar dados.
e)
organize os nomes automaticamente em ordem alfabética.
2.
Observe o algoritmo a seguir. Um vetor é utilizado para armazenar os dias da semana, onde 'dia[1]' recebe "domingo" e 'dia[7]' recebe "sábado". Para exibir na tela especificamente o terceiro dia da semana armazenado, o comando deve referenciar a posição:
a)
dia[0]
b)
dia[1]
c)
dia[2]
d)
dia[3]
e)
dia[4]
3.
O algoritmo abaixo lê 5 notas de um aluno e as armazena em um vetor para calcular a média final. A estrutura de repetição 'para i de 1 ate 5 faca' é utilizada tanto para a leitura quanto para a soma das notas. A função da variável 'i' dentro dos comandos 'leia(nota[i])' e 'soma<-soma+nota[i]' é:
a)
indicar a quantidade total de notas a serem lidas.
b)
definir o valor da nota que está sendo digitada.
c)
controlar a posição específica do vetor a ser acessada.
d)
armazenar o resultado final da soma das notas.
e)
calcular a média aritmética automaticamente.
4.
Ao executar o algoritmo abaixo, o sistema solicita ao usuário a digitação de 10 números inteiros. O código verifica cada número armazenado no vetor 'num' através da condição 'se(num[i]%2=0) entao'. Essa verificação lógica tem o objetivo de identificar se o número armazenado:
a)
é divisível por dois.
b)
é um número positivo.
c)
é maior que zero.
d)
possui casas decimais.
e)
é um número ímpar.
5.
O algoritmo a seguir lê 10 números inteiros e os armazena em um vetor. Após a leitura, o algoritmo apresenta uma estrutura de repetição configurada como 'para i de 10 ate 1 faca'. Essa configuração específica do laço de repetição resulta na exibição dos números:
a)
ordenados do menor para o maior valor.
b)
na mesma ordem em que foram digitados.
c)
apenas das posições pares do vetor.
d)
na ordem inversa à que foram inseridos.
e)
somados uns aos outros sequencialmente.
6.
No algoritmo "onibus", a atribuição de valores é feita de forma manual, como em 'onibus[1]<-"Cicero"' e 'onibus[2]<-"Hadassa"'. Se o programador desejar alterar o nome do passageiro que está na quarta posição do vetor para "Ana", o comando necessário é:
a)
onibus[4] <- "Ana"
b)
onibus["Ana"] <- 4
c)
leia(onibus, "Ana")
d)
escreval("Ana", 4)
e)
vetor[4] <- "Ana"
7.
O algoritmo abaixo utiliza um laço de repetição para ler cinco nomes e outro laço subsequente para exibi-los. O comando 'leia(nome[i])' está inserido dentro da estrutura 'para i de 1 ate 5 passo 1 faca'. O uso do vetor nesta situação garante que, ao final da execução do primeiro laço:
a)
apenas o último nome digitado permaneça na memória.
b)
todos os cinco nomes estejam disponíveis na memória.
c)
os nomes sejam gravados diretamente no disco rígido.
d)
a variável simples 'nome' concatene todos os textos.
e)
o programa encerre imediatamente após a quinta leitura.
8.
O algoritmo a seguir declara uma estrutura de dados como 'mat:vetor[1..2,1..2] de inteiro'. Essa declaração define uma variável composta multidimensional capaz de armazenar:
a)
2 elementos inteiros organizados em uma lista.
b)
4 elementos inteiros organizados em linhas e colunas.
c)
2 elementos reais e 2 elementos inteiros misturados.
d)
4 caracteres organizados em uma estrutura linear.
e)
8 números inteiros distribuídos aleatoriamente.
9.
No algoritmo "matriz" abaixo, a estrutura é percorrida utilizando dois laços de repetição aninhados: 'para L de 1 ate 2 faca' e 'para C de 1 ate 2 faca'. Neste contexto, as variáveis 'L' e 'C' controlam, respectivamente, os índices das:
a)
linhas e das colunas da matriz.
b)
colunas e das linhas da matriz.
c)
somas e das médias dos valores.
d)
primeiras e das últimas posições.
e)
variáveis e das constantes locais.
10.
O algoritmo "matriz_3x3" solicita ao usuário o preenchimento de uma matriz de inteiros. O comando de saída 'escreva("mat[",i,",",j,"]:")' é utilizado antes da leitura do valor. A finalidade visual desse comando durante a execução é:
a)
mostrar o valor que já está salvo na memória.
b)
indicar as coordenadas da célula que será preenchida.
c)
exibir o resultado da multiplicação dos índices.
d)
apagar o conteúdo anterior daquela posição.
e)
pular uma linha na interface do usuário.
11.
O algoritmo abaixo realiza uma operação matemática em todos os elementos da matriz através do comando 'mat[i,j]<-mat[i,j]*multiplicador'. Ao fornecer o valor 3 para a variável 'multiplicador' em uma matriz preenchida com o número 10 em todas as posições, os novos valores armazenados serão:
a)
13
b)
7
c)
30
d)
100
e)
3
12.
No algoritmo a seguir, o código define 'data:vetor[1..2,1..3] de caractere' para guardar dia, mês e ano de duas datas distintas. Para acessar especificamente o mês da segunda data registrada, deve-se utilizar o índice:
a)
data[1, 2]
b)
data[2, 1]
c)
data[2, 2]
d)
data[2, 3]
e)
data[3, 2]
13.
Observe o preenchimento manual da matriz de nomes no código abaixo, onde o algoritmo atribui valores como 'nome[1,1]<-"Zumira"' e 'nome[2,2]<-"Beltrano"'. Esses comandos ilustram que, em uma matriz, cada elemento é identificado de forma única pela combinação de:
a)
um nome de variável e um tipo de dado.
b)
um índice de linha e um índice de coluna.
c)
um valor inteiro e um valor caractere.
d)
uma estrutura condicional e um laço.
e)
um comando de leitura e um de escrita.
14.
O algoritmo "matriz_3x3" utiliza a estrutura 'para i de 1 ate 3 faca' contendo internamente 'para j de 1 ate 3 faca' para exibir os dados na tela. Essa organização dos laços garante que a matriz seja apresentada na tela preenchendo:
a)
uma linha completa antes de passar para a próxima.
b)
uma coluna completa antes de passar para a próxima.
c)
apenas a diagonal principal da estrutura.
d)
os valores de forma aleatória e desordenada.
e)
os elementos na ordem inversa de leitura.
15.
O algoritmo "q1_aluno_basico" define um novo tipo de dado personalizado chamado 'TAluno' contendo 'matricula', 'nome' e 'curso'. A criação desse registro permite ao programador:
a)
agrupar dados de tipos diferentes sob uma única estrutura lógica.
b)
converter automaticamente textos em números inteiros.
c)
criar um vetor infinito para armazenamento de nomes.
d)
executar cálculos matemáticos complexos sem variáveis.
e)
separar cada variável em arquivos de texto distintos.
16.
No algoritmo abaixo, a variável 'end' é declarada como sendo do tipo 'TEndereco'. Para realizar a leitura do nome da rua, utiliza-se o comando 'leia(end.rua)'. O uso do ponto ( . ) entre 'end' e 'rua' serve para:
a)
finalizar a instrução de leitura de dados.
b)
separar duas variáveis independentes.
c)
acessar um campo específico do registro.
d)
declarar uma nova variável do tipo texto.
e)
concatenar o valor lido com uma vírgula.
17.
O algoritmo a seguir utiliza um registro 'TProduto' com os campos 'codigo', 'nome' e 'preco'. Ao declarar a variável 'p:Tproduto', o sistema reserva espaço na memória para armazenar:
a)
apenas o código do produto.
b)
apenas o nome do produto.
c)
um vetor com vários produtos.
d)
os três campos definidos no tipo simultaneamente.
e)
qualquer tipo de dado sem estrutura definida.
18.
No algoritmo "q2_aluno_3_notas", o cálculo da média é realizado acessando os campos da variável 'al' através da expressão '(al.n1+al.n2+al.n3)/3'. Isso demonstra que os campos numéricos de um registro:
a)
comportam-se como variáveis comuns em expressões aritméticas.
b)
não podem ser somados devido ao encapsulamento.
c)
são convertidos automaticamente para texto ao serem usados.
d)
perdem seus valores originais após a primeira operação.
e)
devem ser transferidos para vetores antes do cálculo.
19.
O algoritmo "q3_endereco_formatado" exibe os dados lidos utilizando 'escreval(end.rua,",",end.numero,"-",end.bairro...)'. Essa forma de escrita acessa os campos do registro para:
a)
realizar a soma dos valores numéricos do endereço.
b)
formatar a saída de dados concatenando textos e números.
c)
criar um novo registro com os dados invertidos.
d)
apagar os dados da memória após a impressão.
e)
verificar se o endereço existe em um banco de dados.
20.
Analisando o algoritmo "q1_aluno_basico", nota-se a estrutura 'tipo TAluno=registro ... fimregistro' declarada antes do bloco 'var'. Essa posição da declaração é necessária porque:
a)
o registro é uma variável global que não precisa de tipo.
b)
o comando 'inicio' apaga todas as definições anteriores.
c)
o tipo personalizado deve existir antes de ser utilizado nas variáveis.
d)
os registros só funcionam fora do bloco principal do código.
e)
o compilador ignora tudo que é escrito após o início.
Reset
