Baixe o app para aproveitar ainda mais
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:
Compartilhar