Buscar

atividade 2 logica

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Atividade 2 
 
Assim como as estruturas condicionais, os laços de repetição também podem ser encadeados. Podemos, 
ainda, utilizá-los combinando-os com comandos de decisão. Usualmente, utilizamos laços de repetição 
para executarmos trechos de códigos por diversas vezes. Um detalhe importante é que devemos sempre 
analisar adequadamente a condição de parada de um laço de repetição. Considerando a introdução 
apresentada, analise as asserções a seguir e a relação proposta entre elas. 
 
I. O comando “Repita” será utilizado sempre que temos a certeza da quantidade de vezes que o bloco 
deve ser executado. 
 
Porque: 
 
II. Estruturas condicionais podem estar dentro de estruturas de repetição e vice-versa. 
 
A seguir, assinale a alternativa correta: 
 
 
 
Um algoritmo possui códigos que podem ser executados sequencialmente, mas também que dependem 
da análise de uma condição para serem executados. Essas condições são chamadas estruturas 
condicionais, que podem ser simples, compostas ou encadeadas. A definição correta de estrutura 
encadeada é: 
 
 
 
Algoritmos são sequências de passos que visam atingir um objetivo específico. Dentre esses passos, 
podemos citar aqueles que possuem o objetivo de repetir um determinado trecho de comandos, chamados 
laços de repetição. Podemos definir o laço de repetição ENQUANTO como: 
 
Resposta correta. A estrutura de repetição ENQUANTO-FAÇA é uma estrutura cujo teste da 
condição é feito no início do laço, antes de cada execução dos trechos de código existentes no 
laço. 
 
Leia o excerto a seguir: 
“Todas as repetições têm uma característica comum: o fato de haver uma verificação de condição que 
pode ser representada por um valor lógico, para determinar se a repetição prossegue ou não”. 
 
CESAR, R.; MEDINA, M.; FERTIG, C. Algoritmos e Programação:teoria e prática. 2 ed. São Paulo: 
Novatec Editora, 2006. p. 60. 
 
Considerando a citação apresentada e os conteúdos abordados no texto-base, analise as asserções a 
seguir e a relação proposta entre elas. 
 
I. O laço “enquanto” caracteriza-se por uma verificação condicional após o final da execução de um bloco 
de instruções. 
 
Porque: 
 
II. A estrutura “enquanto” pode conter uma estrutura que indique que alguma instrução será executada 
quantas vezes forem necessárias. 
 
A seguir, assinale a alternativa correta: 
 
Resposta correta. 
A asserção I é falsa, pois a estrutura do laço “enquanto” caracteriza -se por uma verificação 
condicional antes de se iniciar um looping ou reiniciar uma possível execução dos blocos a serem 
repetidos. A asserção II é verdadeira, pois o laço “enquanto” pode conter uma estrutura que, por 
exemplo, realizará a contagem de quantas vezes algo está sendo repetido, e dessa forma, como 
condição, ao atingir um determinado número de vezes, o laço se encerra. 
CESAR, R.; MEDINA, M.; FERTIG, C. Algoritmos e Programação:teoria e prática. 2 ed. São Paulo: 
Novatec Editora, 2006. p. 60. 
 
Uma seleção de múltipla escolha é aplicada quando se tem um conjunto de valores prévio, e, a partir 
desses valores, podemos realizar uma determinada atividade, como a execução de um trecho de código, 
ou ainda, um simples menu. Analise o trecho de código apresentado na sequência: 
 
Inicio 
... 
escolha X 
caso “+”: Escreva 
(“A soma é: ”, a+b); 
caso “-”: Escreva 
(“A subtração é: ”, a+b); 
caso “*”: Escreva 
(“A Multiplicação é: ”, a*b);; 
caso “/”: Escreva (“A divisão é: ”, a/b);; 
caso contrário: Escreva (“Opção 
Incorreta!”); 
fimescolha. 
... 
Fimalgoritmo. 
 
Fonte: Elaborada pelo autor. 
 
Considerando o exposto e o conteúdo apresentado no texto-base, analise as afirmativas a seguir: 
 
I - Na opção de divisão, deveria ter uma tratativa condicional a respeito do valor de b, que deve ser 
diferente de 0. 
II - Na estrutura exposta, serão executados todos os casos, independentemente do que é digitado pelo 
usuário. 
III - Em todos os casos, será realizado somente o cálculo relacionado à opção, sem realizar a impressão 
na tela. 
IV - A opção “Caso Contrário” da estrutura múltipla escolha, é uma tratativa de erro para caso não haja 
opções digitadas. 
 
É correto o que se afirma em: 
 
Resposta correta. 
A afirmativa I é verdadeira, pois não se pode realizar a divisão direta dos dados; devemos realizar 
uma tratativa condicional para verificar se o valor de b é igual a zero; se sim, não será realizada a 
divisão. A afirmativa IV é verdadeira, pois a estrutura de múltipla escolha possui, em sua estrutura, 
uma tratativa de erros, para que, quando o usuário digite um opção inexistente, seja impresso que 
não realizou corretamente o procedimento. 
 
Estruturas de repetição são importantes na implementação de determinadas funções em um algoritmo, 
visto que um laço repetirá um trecho de código diversas vezes. Podemos dizer, ainda, que com os laços 
de repetição não temos trechos de código repetidos. Um laço do tipo REPITA pode ser definido como: 
 
Resposta correta. 
A estrutura REPITA-ATÉ é uma estrutura cuja condição é testada no final do laço, sendo 
verificada após a execução do loop de repetição dos comandos existentes dentro do laço. 
 
Podemos representar algoritmos através de fluxogramas, pois facilita o entendimento do fluxo dos dados 
de um programa por qualquer pessoa que o observe. Análise o fluxograma a seguir: 
 
Fonte: Elaborada pelo autor. 
 
Estruturas condicionais, dependendo do seu valor lógico, mudam o fluxo dos dados a serem executados. 
Considerando essas informações e o conteúdo estudado, analise as afirmativas a seguir, e assinale (V) 
para a(s) verdadeira(s) e (F) para a(s) falsa(s): 
 
( ) Podemos verificar, no fluxograma, a presença de uma estrutura de decisão composta, sendo que com 
base em um valor lógico verdadeiro, será executada uma ação, e se falso, outra ação. 
( ) Se for é implementado em uma linguagem específica, o código fonte criado conterá um erro na 
sintaxe, pois caso a nota seja igual a sete, o programa será finalizado sem ação. 
( ) Observamos, pelo fluxograma, que se trata de um algoritmo que realizará a média de dois dados, e se 
o valor for maior do que sete, será impresso aprovado; caso contrário, será impresso reprovado. 
( ) Com a presença de uma estrutura de decisão simples, no fluxograma, verificamos que será impressa, 
para o usuário, a situação “aprovado”, se M for maior ou igual a 7, e, após isso, finalizado o algoritmo. 
 
Com base nas associações, assinale a alternativa que apresenta a sequência correta: 
 
Resposta correta. A afirmativa I é verdadeira, pois podemos visualizar uma 
estrutura de decisão composta, que após analisada imprimirá um valor caso 
verdade, e outro, caso falso. A afirmativa III é verdadeira, pois o problema resolvido 
pelo fluxograma é a leitura de dois dados, feito sua média, e impresso aprovado ou 
reprovado, dependendo do valor lógico de comparação. 
 
Estruturas condicionais são importantes em todo código criado. Normalmente, são utilizadas em códigos 
que necessitam de uma análise de um dado para a execução de um determinado trecho de código. Dentre 
as estruturas de seleção encadeada, temos: 
 
 
 
Estruturas de repetição têm o intuito de repetir determinado trecho de código. Esse tipo de estrutura auxilia 
programadores no que tange à execução de comandos, por diversas vezes, não sendo necessária a 
repetição de linhas de código. Com isso, o algoritmo fica mais legível e enxuto. 
 
Considerando essas informações e o conteúdo estudado, analise as afirmativas a seguir, e assinale (V) 
para a(s) verdadeira(s) e (F) para a(s) falsa(s): 
 
( ) A estrutura de repetição Enquanto (While) pode ser chamada loop pré-testado, já que a verificação 
lógica é realizada antes da primeira execução do loop. 
( ) A estrutura de repetição Para (For) é parecida com a estrutura Enquanto, porém tem uma diferença 
crucial, sua verificação condicional é verificada apósexecutar o bloco de comandos. 
( ) A escolha entre o Enquanto e o Repita pode ser indiferente, pois executam as mesma funcionalidade; o 
que ajudará na escolha é sua estrutura e o que deixar o algoritmo mais simples e legível. 
( ) O laço Repita executará comandos por X vezes. Serão verificadas uma situação inicial, uma condição 
inicial e uma ação a ser executada para cada repetição do trecho de código. 
 
Com base nas associações, assinale a alternativa que apresenta a sequência correta: 
 
 
É possível, em um algoritmo, utilizar tanto laços de repetições quanto estruturas condicionais. Ainda, 
podemos aplicar essas condições dentro dos laços de repetições, a fim de verificar condições e executar 
comandos diversas vezes. Analise o trecho de código a seguir: 
 
Inicio 
 ... 
 Escreva (“Entre com um número a ser testado”); 
Leia (numero); 
divisível <- f; 
Se (numero resto 2 = 0) e (numero > 2) então 
 divisível <- v; 
Senão 
 divisível <-3; 
fimse; 
Enquanto (não(divisivel) e divisor <= numero raiz 2) faça 
 Se (numero resto divisor = 0) entao 
 divisivel <- v; 
 Senão 
 divisivel <- divisor +2; 
fimenquanto; 
... 
Fimalgoritmo. 
 
Fonte: Elaborada pelo autor. 
 
Tanto laços de repetição quanto estruturas condicionais devem ter sua análise feita de forma correta, para 
que possam executar suas funcionalidades com exatidão. Considerando a introdução apresentada, analise 
as asserções a seguir e a relação proposta entre elas. 
 
I. Na utilização do operador lógico “e”, para a execução do trecho de comando é necessário que o valor 
lógico dos dois seja verdadeiro. 
 
Porque: 
 
II. O operador “não”, que compõe a condição do laço de repetição “enquanto”, indica que o valor não é 
divisível por nenhum outro número. 
 
A seguir, assinale a alternativa correta: 
 
Sua resposta está incorreta. A alternativa não se enquadra, já que a asserção I 
é verdadeira, pois o operador lógico “e” possui, como característica principal, 
a análise de duas condições, e que estas sejam verdadeiras. Dessa forma, para 
a execução de um trecho de código que está dentro dessa condicional, é 
necessário que o valor lógico de tais análises seja verdadeiro. A asserção II é 
falsa, pois o operador “não”, tem a função de inverter o valor lógico de uma 
operação, e não indicar que não é divisível por um determinado número. No 
caso do laço de repetição, ele inverterá o valor lógico de divisível. 
 
Atividade 3 
 
Percebemos o quão importante é você estar ciente de como é o funcionamento dos comandos em lógica de 
programação. Cada comando possui um propósito e com ele podemos perceber qual é o melhor comando 
para realizar determinada atividade. Neste sentido, analisemos o caso problematizador abaixo: 
O IBGE (Instituto Brasileiro de Geografia e Estatística) desejou realizar uma estatística nas cidades 
pertencentes ao estado do Paraná, verificando dados sobre acidentes de trânsito. Neste estudo, precisava-
se obter alguns dados, que podemos verificar abaixo: 
 código da cidade; 
 número de veículos de passeio; 
 número de acidentes de trânsito com vítimas. 
Desejava-se saber ainda: 
 qual o maior e o menor índice de acidentes de trânsito e a que cidades pertencem; 
 qual a média de veículos nas cidades juntas; 
 qual a média de acidentes de trânsito nas cidades com menos de 2000 veículos de passeio. 
Analisando, assim, o nosso caso problematizador, você, aluno(a), deverá realizar um algoritmo que 
resolva este problema. Utilize-se de todos os conceitos aprendidos até o presente momento. Bom 
trabalho. 
 
 
Possibilidade 1 
 
programa { 
 funcao inicio() { 
 inteiro codigo_menor_cidade = 0 
 inteiro codigo_maior_cidade = 0 
 //real indice_menor_cidade = 0 
 inteiro indice_menor_cidade = 0 
 //real indice_maior_cidade = 0 
 inteiro indice_maior_cidade = 0 
 inteiro soma_geral_de_veiculos = 0 //NOVO 
 //real media_de_veiculos_cidades = 0 
 real media_de_veiculos_cidades = 0.0 
 inteiro soma_acidentes_menor_2000 = 0 //NOVO 
 //real media_de_acidentes_menor_2000 = 0 
 real media_de_acidentes_menor_2000 = 0.0 
 inteiro numero_cidades = 0 
 inteiro numero_cidades_veiculos_menor_200 = 0 
 inteiro continuar_a_pedir_dados = 1 
 
 enquanto(continuar_a_pedir_dados == 1) { 
 escreva("Insira o Codigo da Cidade diferente de 0: ") 
 inteiro codigo_digitado 
 leia(codigo_digitado) 
 
 escreva("Insira numero veiculos de passeio: ") 
 inteiro veiculos_digitado 
 leia(veiculos_digitado) 
 
 //escreva("Insira numero acidentes: ") 
 escreva("Insira número de acidentes de trânsito com vítimas: ") 
 inteiro acidentes_digitado 
 leia(acidentes_digitado) 
 
 
 /*media_de_veiculos_cidades += veiculos_digitado*/ 
 soma_geral_de_veiculos += veiculos_digitado 
 numero_cidades += 1 
 se (acidentes_digitado < indice_menor_cidade ou 
indice_menor_cidade == 0) { 
 codigo_menor_cidade = codigo_digitado 
 indice_menor_cidade = acidentes_digitado 
 } 
 se (acidentes_digitado > indice_maior_cidade ou 
indice_maior_cidade == 0) { 
 codigo_maior_cidade = codigo_digitado 
 indice_maior_cidade = acidentes_digitado 
 } 
 se (veiculos_digitado<2000) { 
 //media_de_acidentes_menor_2000 += veiculos_digitado 
 soma_acidentes_menor_2000 += veiculos_digitado 
 numero_cidades_veiculos_menor_200 +=1 
 } 
 
 escreva("Para continuar digite 1: ") 
 leia(continuar_a_pedir_dados) 
 } 
 
 media_de_veiculos_cidades = soma_geral_de_veiculos / numero_cidades 
 media_de_acidentes_menor_2000 = soma_acidentes_menor_2000 / 
numero_cidades_veiculos_menor_200 
 
 escreva("\nCodigo menor cidade: ", codigo_menor_cidade) 
 escreva("\nCodigo maior cidade: ", codigo_maior_cidade) 
 escreva("\nMedia de Veiculos: ", media_de_veiculos_cidades) 
 escreva("\nMedia de Veiculos Menor 2000: ", 
media_de_acidentes_menor_2000) 
 } 
} 
 
 
Possibilidade 2 
 
programa { 
 funcao inicio() { 
 inteiro codigo_menor_cidade = 0 
 inteiro codigo_maior_cidade = 0 
 inteiro codigo_menos_acidente = 0 
 inteiro codigo_mais_acidente = 0 
 real indice_menor_cidade = 0 
 real indice_maior_cidade = 0 
 inteiro soma_geral_de_veiculos = 0 
 real media_de_veiculos_cidades = 0 
 inteiro soma_acidentes_menor_2000 = 0 
 real media_de_acidentes_menor_2000 = 0 
 inteiro numero_cidades = 0 
 
 /aqui na variável abaixo, apenas inclui mais um zero, ela indicava 
apenas 200/ 
 inteiro numero_cidades_veiculos_menor_2000 = 0 
 inteiro continuar_a_pedir_dados = 1 
 inteiro maior_indice_acidentes = 0 
 inteiro menor_indice_acidentes = 0 
 
 enquanto(continuar_a_pedir_dados == 1) { 
 escreva("Insira o Codigo da Cidade diferente de 0: ") 
 inteiro codigo_digitado 
 leia(codigo_digitado) 
 
 escreva("Insira numero veiculos de passeio: ") 
 inteiro veiculos_digitado 
 leia(veiculos_digitado) 
 
 escreva("Insira número de acidentes de trânsito com vítimas: ") 
 inteiro acidentes_digitado 
 leia(acidentes_digitado) 
 
 soma_geral_de_veiculos += veiculos_digitado 
 numero_cidades += 1 
 se (acidentes_digitado < indice_menor_cidadeou 
indice_menor_cidade == 0) { 
 codigo_menor_cidade = codigo_digitado 
 indice_menor_cidade = acidentes_digitado 
 } 
 se (acidentes_digitado > indice_maior_cidade ou 
indice_maior_cidade == 0) { 
 codigo_maior_cidade = codigo_digitado 
 indice_maior_cidade = acidentes_digitado 
 } 
 se (veiculos_digitado<2000) { 
 
 /aqui abaixo o errinho mais grave, a resposta estava saindo 
a média de veículos total, troquei a variável veículos_digitado pela 
acidentes_digitado e foi resolvido, agora a resposta sai exatamente a média 
de acidentes ocorridos nas cidades com menos de 2000 veículos de passeio./ 
 soma_acidentes_menor_2000 += acidentes_digitado 
 numero_cidades_veiculos_menor_2000 +=1 
 } 
 se (acidentes_digitado < menor_indice_acidentes ou 
menor_indice_acidentes == 0){ 
 codigo_menos_acidente = codigo_digitado 
 menor_indice_acidentes = acidentes_digitado 
 } 
 se (acidentes_digitado > maior_indice_acidentes ou 
maior_indice_acidentes == 0){ 
 codigo_mais_acidente = codigo_digitado 
 maior_indice_acidentes = acidentes_digitado 
 } 
 
 escreva("Para continuar digite 1 ou outro valor para finalizar: 
") 
 leia(continuar_a_pedir_dados) 
 } 
 
 media_de_veiculos_cidades = soma_geral_de_veiculos / numero_cidades 
 media_de_acidentes_menor_2000 = soma_acidentes_menor_2000 / 
numero_cidades_veiculos_menor_2000 
 
 escreva("\nMenor índice de acidentes: ", menor_indice_acidentes) 
 escreva("\nCidade com menos acidentes: ", codigo_menor_cidade) 
 escreva("\nMaior índice de acidentes: ", maior_indice_acidentes) 
 escreva("\nCidade com mais acidentes: ", codigo_maior_cidade) 
 escreva("\nMedia de Veiculos: ", media_de_veiculos_cidades) 
 escreva("\nMedia de acidentes em cidades com menos de 2000 veiculos 
de passeio: ", media_de_acidentes_menor_2000) 
 } 
} 
 
 
Atividade 4 
 
1Matrizes são estruturas compostas homogêneas que podem possuir n-dimensões. No entanto, 
usualmente são chamadas de matrizes bidimensionais. Uma matriz ainda possui informações todas do 
mesmo tipo, como mesmo nome e alocados em memória. 
 
Considerando as informações expostas e o conteúdo estudado, analise as afirmações a seguir: 
 
I. Uma matriz que possui o tamanho de linhas e y colunas irá conter (x * y) dados. 
II. A soma dos dados de uma matriz pode ser realizada utilizando-se de dois laços e repetição aninhados, 
um indicando as linhas e o outro indicandoas colunas.v 
III. A soma de duas matrizes sendo representado por linhas e y colunas resultará em uma matriz do tipo 
2*x em termos de linhas e 2*y em termos de colunas. 
IV. O multiplicação de duas matrizes de tamanho representado por x linhas e y colunas irá resultar em 
uma matriz em termos de n linhas e n colunas. 
 A afirmativa III está incorreta, pois a soma de duas matrizes de m linhas e n colunas resulta de um matriz ainda de m 
linhas e n colunas. 
A afirmativa I está correta, pois uma matriz declara de m linhas e n colunas, irá possuir o produto 
cartesiano destes dados, sendo assim será m*n dados. 
A afirmativa II está correta, pois para realizar a soma de elementos de uma matriz, podemos nos utilizar de 
laços de repetições aninhados, uma que irá analisar as linhas e outro para as colunas . 
A afirmativa IV está correta, pois, o produto de duas matrizes indicam que sempre uma matriz terão n 
linhas e m colunas 
É correto o que se afirma em: 
 
Resposta correta. A afirmativa I está correta, pois uma matriz declara de m 
linhas e n colunas, irá possuir o produto cartesiano destes dados, sendo assim será m*n dados. A 
afirmativa II está correta, pois para realizar a soma de elementos de uma matriz, podemos nos 
utilizar de laços de repetições aninhados, uma que irá analisar as linhas e outro para as colunas . A 
afirmativa IV está correta, pois, o produto de duas matrizes indicam que sempre uma matriz terão n 
linhas e m colunas 
 
2Cada linguagem possui a sua especificidade e às vezes, uma forma diferenciada de declaração. O que 
devemos ter em mente sempre é entender como é o funcionamento de uma declaração de variável do tipo 
vetor e matriz. 
 
A partir deste entendimento, a declaração das variáveis passa a ser facilitada, já que buscar a sintaxe de 
cada linguagem depende muito com qual linguagem será trabalhado. Considerando a citação apresentada 
e os conteúdos estudados, analise as asserções a seguir e a relação proposta entre elas: 
 
I - Na declaração de vetores, devemos indicar o seu nome, as posições e o tipo de dados, sendo da 
seguinte forma: tipo identificador = vetor [LI .. LF] de tipo primitivo; onde LI representa o limite inicial do 
vetor e LF o seu limite final. 
 
Porque 
 
II - Em se tratando de matrizes, há uma diferença na declaração, já que é um tipo de variável n-
dimensional. Assim sendo sua declaração será: tipo identificador = matriz [LI1..LF1, LI2..LF2] de tipo 
primitivo; onde LI1..LF1, LI2..LF2 são os limites dos intervalos de variação dos índices da variável. 
A asserção I é uma proposição correta, pois para se declarar uma variável do tipo vetor, devemos 
nomeá-la, com suas quantidades de posições e o tipo e dados, que será na forma: tipo X = vetor 
[1..10] do tipo inteiro, sendo que o intervalo entre o colchetes é o tamanho do vetor. 
A asserção II é uma proposição correta, pois matrizes possui uma diferença na declaração, ao 
adicionarmos o tamanho, devemos especificar a quantidade de dimensões entre os colchetes, 
ficando a declaração da seguinte forma: tipo x = matriz [1..10, 1..10] do tipo inteiro. 
A seguir, assinale a alternativa correta: 
 
 
3Uma variável possui como definição poder armazenar somente um valor por vez de um tipo determinado. 
Quando trabalhamos com vetores, estendemos o armazenamento de um valor, para uma quantidade 
determinada de valores, no entanto continuam a ser do mesmo tipo. 
 Assim, um vetor é considerado uma variável multidimensional sendo indexada. Considerando a citação 
apresentada e os conteúdos estudados, analise as asserções a seguir e a relação proposta entre elas: 
 
I. Um vetor sempre deve ser declarado utilizando uma estrutura determinada, sendo pelo nome, seu 
tamanho e por fim seu tipo de dados. 
 Porque 
 II. Ao atribuirmos valores em um vetor, devemos proceder adicionando elemento por elemento, alterando-
se sempre o índice do vetor. 
A asserção I é uma proposição correta, pois sempre que formos declarar um vetor em um algoritmo, devemos determinar o seu limite, ou seja, a 
quantidade de posições que ele deve ter. Ainda, na declaração, devemos impor um nome a este vetor e o tipo de dados que ele irá aceitar. A 
asserção II é uma proposição verdadeira, sendo que ao atribuirmos um valor ao vetor, devemos indicar em qual índice ele irá pertencer. Devemos 
proceder adicionando elemento por elemento, alternando-se o índice a cada inserção. 
A seguir, assinale a alternativa correta: 
Resposta correta. A asserção I é uma proposição correta, pois sempre que formos declarar um 
vetor em um algoritmo, devemos determinar o seu limite, ou seja, a quantidade de posições que ele 
deve ter. Ainda, na declaração, devemos impor um nome a este vetor e o tipo de dados que ele irá 
aceitar. A asserção II é uma proposição verdadeira, sendo que ao atribuirmos um valor ao vetor, 
devemos indicar em qual índice ele irá pertencer. Devemos proceder adicionando elemento por 
elemento, alternando-se o índice a cada inserção. 
 
 
 
4Existem certas estruturas que não podem ser representadas pelos vetores. Desta forma, há a existência 
de uma outra estrutura que possui maior complexidade eauxilia na resolução de problemas específicos. 
Estamos falando da estrutura conhecida como Matriz, que possui a definição: 
Resposta correta. Uma matriz é uma variável composta bidimensional, sendo assim possui pelo 
menos uma dimensão a mais que os vetores. Essas estruturas precisam de dois parâmetros para 
identificá-la e podem ser representadas por meio de matrizes. 
 
 
5Algoritmos possuem estruturas, como vetores, que armazenam valores que são utilizados para a 
resolução de determinados problemas. Para verificar se os dados e a lógica utilizada está de acordo com o 
problema, devemos realizar o teste de mesa, analisando assim linha por linha do nosso código. 
Considere o algoritmo em pseudocódigo a seguir: 
 
Inicio 
tipo A = vetor [1..4] de inteiro <- {3, 5, 7}; 
tipo B = vetor [1..5] de inteiro <- {4, 6, 10, 18, 20}; 
tipo C = vetor [1..9] de inteiro; 
inteiro: Ia <- 1, Ib <- 1, Ic <- 1; 
inteiro: Na <-3, Nb <- 5, cont <- 0, i; 
 
enquanto (Ia <= Na) e (Ib <=Nb) faça 
se (A[Ia] <= B[Ib]) então 
 c[Ic] <- A[Ia]; 
 Ia <- Ia +1; 
senão 
 c[Ic] <- B[Ib]; 
 Ib <- Ib +1; 
Fimse; 
Ic <- Ic +1; 
cont <- cont +1; 
 fimenquanto; 
 para I de Ia ate Na passo 1 faça 
c[Ic] <- A[i]; 
Ic <- Ic +1; 
fimpara; 
Fimalgoritmo. 
 
Analisando as informações e o algoritmo apresentado, é correto afirmar que: 
Resposta correta. O algoritmo irá realizar a análise dos números dos vetores, intercalando-os e 
ordenando-os.
 
6Nas rodovias paranaenses, os veículos pagam pedágio em função do número de eixos e da sua 
categoria (que são no total 15). Para se ter o valor que deve ser pago, é realizado um cálculo, existe uma 
tarifa mínima que é multiplicada pelo valor correspondente ao número de eixos. Sendo assim, analise o 
vetor a seguir que indica a categoria do veículo (colunas), a primeira linha a quantidade de eixos e a 
segunda linha o valor que a tarifa mínima deve ser multiplicada. 
 
Exemplos: o veículo 0 é motocicleta que tem 2 eixos, mas é isento; o veículo 5 é caminhonete/furgão que 
tem 2 eixos e paga 2 tarifas; o veículo 9 é uma carreta que tem 9 eixos e paga 9 tarifas. 
 
Considerando o exposto, o conteúdo de vetores e que X é a categoria do veículo, que Y é a tarifa mínima 
e que a estrutura é denominada pedágio, o trecho em pseudocódigo que calcula valor pedágio, o valor 
pedágio, corretamente, é: 
Resposta correta. Analisando a problemática, o cálculo do valor do pedágio deve ser realizado da 
seguinte forma: deve-se multiplicar a tarifa mínima pelo valor correspondente ao número de eixos. 
Assim, no array pedágio, deve-se indicar a linha referente a quantos eixos e em qual índice dos 
veículos correspondentes, indicado por X, a partir desta correspondência, deve-se multiplicar pelo 
valor de Y que é o valor da tarifa mínima. 
 
 
 
7Podemos armazenar diversas informações tanto em uma variável do tipo vetor quanto em uma variável 
do tipo matriz, o que devemos ter atenção é como estas informações deverão ser armazenadas. 
 
Sempre que formos trabalhar com essas estruturas, devemos nos utilizar de laços de repetição. 
Considerando a citação apresentada e os conteúdos estudados, analise as asserções a seguir e a relação 
proposta entre elas. 
 I. Tanto num vetor quanto numa matriz, o acesso a um dado em uma posição específica deve ser por 
meio do número de seu índice. 
Porque 
 
II. Sempre que formos utilizar uma estrutura do tipo vetor ou matriz, devemos evitar que o conjunto de 
informações que possuem o mesmo tipo de dado sejam guardados em uma destas estruturas. 
 A asserção II é uma proposição incorreta, pois é justamente o contrário que diz na afirmativa, sempre que formos 
nos utilizar de vetores ou matrizes, o que devemos armazenar são valores que possuem o mesmo tipo de dado. 
 
A seguir, assinale a alternativa correta: 
Resposta correta. A asserção I é uma proposição correta, pois como definição, vetores e matrizes 
devem ser acessadas por índices, que indicam em qual posição deve ser armazenado ou acessado 
um referido dado. 
 
8Vetores também são conhecidos como Arrays e são considerados estruturas que possuem o mesmo tipo 
de dados, o mesmo nome e possuem o mesmo tamanho durante a execução do algoritmo 
 
O número da posição em colchetes é chamado de índice e deve ser um número inteiro. Considerando 
essas informações e o conteúdo estudado, analise as afirmativas a seguir e assinale (V) para a(s) 
verdadeira(s) e (F) para a(s) falsa(s): 
 
I. ( ) Os Vetores podem ser declarados para conter a maioria dos tipos de dados existentes nas 
linguagens de programação. 
II. ( ) Em um Vetor cujo tipo de dados é primitivo, nem todo elemento precisa conter um valor do tipo que 
foi declarado no vetor. 
III. ( ) Uma variável controladora pode ser declarada e inicializada em uma mesma instrução no algoritmo. 
IV. ( ) Em um vetor, quando é feita uma referência a um valor inexistente, ocorre uma exceção referente 
ao índice de saída. 
 A afirmativa II está incorreta, pois sempre que inserido um elemento, deve conter um valor do mesmo tipo que foi 
declarado. A afirmativa IV está incorreta, pois quando se faz uma referência de um valor inexistente, o algoritmo irá 
ser executado, e realizado instruções não previstas, ou ainda, ser encerrado o executável. 
Resposta correta. A afirmativa I está correta, pois os vetores são estruturas que utilizam o mesmo 
tipo de dados, porém podem conter todos os tipos de dados existentes na linguagem de 
programação. A afirmativa III está correta, pois uma variável controladora pode ser declarada e 
inicializada em uma mesma instrução, porém, também podem ser feitas de forma separada. 
 A partir das associações feitas anteriormente, assinale a alternativa que apresenta a seqüência correta: 
 
 
 
9Conhecer o funcionamento de cada estrutura presente na programação é essencial, desta forma, não 
teremos possíveis problemas quando executarmos nosso algoritmo. Cada estrutura possui suas 
características que devem ser respeitadas. 
 
As estruturas apresentadas dos laços de repetição, vetores e matrizes necessitam uma análise especial 
na construção dos algoritmos. Considerando essas informações e o conteúdo estudado, analise as 
afirmativas a seguir e assinale (V) para a(s) verdadeira(s) e (F) para a(s) falsa(s): 
 
I. ( ) Para incluirmos o tipo de estrutura vetor, devemos no algoritmo indicar: tipo identificador = vetor [LI .. 
LF] de tipo primitivo. 
II. ( ) Para inserir elementos em um vetor, devemos nos utilizar de laços de repetição, onde a variável de 
controle do laço irá indicar cada dado inserido em cada coluna, ou ainda, diretamente em uma posição 
específica. 
III. ( ) Para a inserção de dados em uma matriz devemos nos utilizar somente de um laço de repetição, ou 
a inserção pode ser feita diretamente em uma posição específica, como MAT[3,2] = 7. 
IV. ( ) Para incluirmos o tipo de estrutura matriz, devemos o algoritmo indicar: tipo identificador = matriz 
[LI1..LF1] de tipo primitivo. 
 
A partir das associações feitas anteriormente, assinale a alternativa que apresenta a seqüência correta: 
Resposta correta. A afirmativa I está correta, a estrutura de um vetor deve seguir a sintaxe tipo 
identificador = vetor [LI .. LF] de tipo primitivo. A afirmativa II está correta, pois podemos adicionar 
elementos em uma posição específica, ou nos utilizando de um laço de repetição para ir incluindo 
os dados. 
 
 
10As estruturas de Vetor e Matriz sempre utilizam laços de repetição para adicionar e percorrer seus 
índices. Os índices servem para identificar a posição de cada elemento das estruturas, sendo que em 
cada laço, deve-se sempre incrementar a posição do índice para o acesso. 
 
É importante uma análise correta em relação aos índices, para que assim não ocorra problemas ao 
executar os algoritmos.Considerando o exposto e o conteúdo estudado, analise as afirmativas a seguir: 
 
I. É possível a partir da leitura de um Vetor de 18 posições, distribuir todos os seus elementos em uma 
matriz de 3 linhas e 6 colunas. 
II. Para adicionar os valores de um Vetor em uma matriz, deve-se adicionar os valores analisando a 
parada em relação ao número de colunas da matriz, ao atingir, muda-se a linha e continua a inserção dos 
valores. 
III. Ao declarar o vetor e a matriz para o problema, deve-se ser feito da seguinte forma: tipo X = vetor [1..3, 
1..6] de inteiros; tipo X = matriz [1..18] de inteiros. 
IV. Para a inserção dos valores do vetor na matriz, utilizamos somente laços de repetição. 
a afirmativa I esta correta, pois podemos em um algoritimo transformar os dados de um vetor em uma 
matriz, devemos assimsaber o tamanho deste vetor e depois realizar quantas quantas posicoes entre 
linhas e colunas sao necessarias para a matriz 
A afirmativa II esta correta, pois para fazermos a conversao de um vetor para uma matriz, devemos 
analisar ate onde deve ser a parada na coluna, com um dimencional `se`, e a partir disso ir para a linha 
seguinte, repetindo ate atigir o final de linhas e colunas 
A afirmativa III está incorreta, pois a declaração correta dos vetores e matrizes devem ser a sintaxe seguinte: tipo X = 
vetor [1..3, 1..6] de inteiros; tipo X = matriz [1..18] de inteiros. A afirmativa IV está incorreta, pois além de laços de 
repetição, devemos também nos utilizar de estruturas condicionais para a análise e conversão. 
Resposta correta. A afirmativa I está correta, pois podemos em um algoritmo transformar os dados 
de um vetor em uma matriz, devemos assim saber o tamanho deste vetor e depois realizar quantas 
posições entre linhas e colunas são necessárias para a matriz. A afirmativa II está correta, pois 
para fazermos a conversão de um vetor para uma matriz, devemos analisar até onde deve ser a 
parada da coluna, com um condicional “SE”, e a partir disso ir para a linha seguinte, repetindo até 
atingir o final de linhas e colunas. 
É correto o que se afirma em:

Outros materiais