Baixe o app para aproveitar ainda mais
Prévia do material em texto
16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 1/18 AO2 (DP/ADAP Novembro) Entrega 28 de nov de 2022 em 23:59 Pontos 6 Perguntas 10 Disponível até 28 de nov de 2022 em 23:59 Limite de tempo Nenhum Instruções Este teste não está mais disponível, pois o curso foi concluído. Histórico de tentativas Tentativa Tempo Pontuação MAIS RECENTE Tentativa 1 21 minutos 6 de 6 Pontuação deste teste: 6 de 6 Enviado 23 de nov de 2022 em 23:13 Esta tentativa levou 21 minutos. Importante: Caso você esteja realizando a atividade através do aplicativo "Canvas Student", é necessário que você clique em "FAZER O QUESTIONÁRIO", no final da página. 0,6 / 0,6 ptsPergunta 1 Leia o texto abaixo: As matrizes bidimensionais costumam ser utilizadas para representar tabelas de valores, consistindo em informações organizadas em linhas e colunas. Para identificar um elemento particular da tabela, devemos especificar os subscritos. As matrizes bidimensionais são compostas por m linhas e n colunas, e são chamadas de matrizes m por n, e estes elementos m e n determinam o tamanho da matriz. Cada elemento da matriz bidimensional é identificado (acessado) por um nome de elemento seguido dos subscritores que identificam sua localização na matriz. A+ A A- https://famonline.instructure.com/courses/26320/quizzes/117598/history?version=1 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 2/18 (Fonte: DEITEL, H. M.; DEITEL, P. J. C++: Como Programar. 5. ed. São Paulo: Pearson Prentice Hall, 2006. p. 279). Considerando as informações apresentadas, avalie as afirmações a seguir: I. Suponha uma declaração de uma matriz bidimensional (linguagem C): “int qtd[4][3];”. Com isso, o comando “printf("\n qtd %d = ", qtd[1 [5]);” possui um erro conceitual referente à manipulação de matrizes. II. Para acessar os dados de uma matriz bidimensional, utilizamos os índices i e j, que correspondem respectivamente à referência de colunas e linhas da matriz. III. Para percorrer todas as linhas e colunas de uma matriz, é recomendado o laço de repetição for. Está correto o que se afirma em: III, apenas. I e III, apenas. Correto!Correto! Alternativa A Alternativa está correta. A afirmativa I é verdadeira porque conceitualmente o acesso a uma tabela bidimensional tem a seguinte regra: Os valores dos indexadores estão limitados ao tamanho da matriz, ou seja, o tamanho de uma matriz bidimensional é dado pelos valores declarados para a linha e a coluna (i e j respectivamente). No caso do comando print..., ele manipulando a coluna [5], porém na declaração o valor máximo é [3]. A afirmativa II é falsa porque, para acessar os dados de uma matriz bidimensional, utilizamos índices i e j que correspondem respectivamente à referência de linhas e colunas da matriz. A afirmativa III é verdadeira porque, por definição, o laço de repetição for é recomendado quando o número de repetições é controlado por uma variável de valor conhecido. Uma matriz é definida como sendo uma área de tamanho definido em linhas e colunas. O laço de repetição for é então o paradigma de laço de repetição ideal para percorrer uma matriz bidimensional. Logo, a alternativa correta é I e III, apenas. A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 3/18 I, apenas. I e II, apenas. I, II e III. 0,6 / 0,6 ptsPergunta 2 Leia os textos a seguir: O que é estrutura de repetição? Dentro da lógica de programação é uma estrutura que permite executar mais de uma vez o mesmo comando ou conjunto de comandos, de acordo com uma condição ou com um contador. São utilizadas, por exemplo, para repetir ações semelhantes que são executadas para todos os elementos de uma lista de dados, ou simplesmente para repetir um mesmo processamento até que a condição seja satisfeita. (...) While É dentre as 3 a mais simples. Repete um bloco de código enquanto uma condição permanecer verdadeira Caso a condição seja falsa, os comandos dentro do while não serão executados e a execução continuará com os comandos após o while A repetição do while é controlada por uma condição que verifica alguma variável. Porém para que o while funcione corretamente é importante que essa variável sofra alteração dentro do while. Ex: um contador. Após entrar dentro da repetição, o bloco de comandos sempre será executado, mesmo que dentro do bloco a variável que está controlando a execução seja alterada. (...) A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 4/18 Fonte: ZANELATO, J. Lógica de Programação - estruturas de repetição. Disponível em: https://podprogramar.com.br/logica-de- programacao-estruturas-de-repeticao/ (https://podprogramar.com.br/logica-de-programacao-estruturas-de- repeticao/) . Acesso em: 05 de abril de 2021. Analise o código a seguir em linguagem C: #include <stdio.h> int main() { int a, b; a = 1; while (a < 10) { b = a + 2; while (b < 10) { printf("%d ",a); printf("%d ",b); b = b + 1; } a = a + 1; } return 0; } A+ A A- https://podprogramar.com.br/logica-de-programacao-estruturas-de-repeticao/ 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 5/18 Assinale a alternativa correta que descreve quantas vezes o comando printf será executado? 53 vezes. 28 vezes. 10 vezes. 55 vezes. 56 vezes. Correto!Correto! Alternativa correta. O programa será executado entrando no primeiro while, e atribuindo um valor a B através de um cálculo. A partir disso, ele vai entrar no segundo while, onde temos dois printf, que serão executados algumas vezes, enquanto a condição do segundo while for verdadeira. Quando o segundo while não for mais verdadeiro, o programa vai sair desse while e voltar para o primeiro, vai fazer o incremento da variável a e executar o primeiro while novamente. Isso vai se repetir até que a condição do primeiro while seja falsa. Tudo isso fará com que o printf execute 56 vezes. A saída do programa será: 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 4 2 5 2 6 2 7 2 8 2 9 3 5 3 6 3 7 3 8 3 9 4 6 4 7 4 8 4 9 5 7 5 8 5 9 6 8 6 9 7 9. 0,6 / 0,6 ptsPergunta 3 Leia o texto a seguir: Toda linguagem de programação possui comandos que permitem a execução repetida de um determinado trecho de código de programa. Com esse recurso, o programador não precisa duplicar as linhas de código em virtude da necessidade de executá-las várias vezes. Os diversos comandos disponíveis são denominados estruturas de repetição, comumente conhecidas como laços ou loop. A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 6/18 (Fonte: ALVES, W. P. Linguagem e Lógica de Programação. São Paulo: Érica, 2015 - Adaptado). Posto isso, avalie as afirmações a seguir: I. A utilização das estruturas de repetição “enquanto...faça...” e “para...de...ate...faça” podem ser utilizadas nos mesmos casos que necessitem de solução com laço de repetição com a quantidade de iterações definidas. II. A utilização do laço de repetição “para...de...ate...faça” é recomendada para o laço de repetição cujas quantidades de iterações não são previsíveis. III. A utilização de laço de repetição “enquanto...faça...” atende somente a soluções que necessitem de um laço de repetição com a quantidade deiterações indefinidas. É correto o que se afirma em: I, II e III. I e II, apenas. III, apenas. II e III, apenas. I, apenas. Correto!Correto! A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 7/18 Alternativa A Alternativa está correta. A afirmativa I é verdadeira porque a estrutura de repetição “enquanto...faça...” pode ser utilizada em soluções que necessitem de um laço de repetição com a quantidade de interações definidas, pois pode-se controlar a quantidade de iterações na variável sentinela. A afirmativa II é falsa, pois a estrutura de repetição “para...de...ate...faça” é apropriada para soluções que necessitem de um laço de repetição com a quantidade de iterações definidas, porque o controle de iterações já faz parte da estrutura do comando. Assim, as duas estruturas de repetição podem ser utilizadas nos mesmos casos que necessitem de uma solução com um laço de repetição com a quantidade de iterações definidas. A afirmativa III é falsa porque a estrutura de repetição “enquanto...faça...” atende tanto às soluções que necessitem de um laço de repetição com a quantidade de iterações indefinidas, quanto às quantidades de iterações indefinidas. Por isso, a alternativa correta é I, apenas. 0,6 / 0,6 ptsPergunta 4 Leia o texto a seguir: Na programação estruturada, acredita-se que algumas estruturas básicas auxiliam o programador a resolver todos os problemas que se apresentarem. Programas estruturados são executados de forma gravitacional, contando com estruturas de seleção, de repetição e desvio. Qual é a estrutura (ou comando) condicional utilizada para escolher um entre dois comandos alternativos, e que permite o encadeamento (pode ser aninhado), e escalada? Comando if Correto!Correto! Alternativa correta. O comando de seleção que permite o encadeamento e a escalada, é o comando if. Comando switch A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 8/18 Comando ? Comando continue Comando while 0,6 / 0,6 ptsPergunta 5 Leia o trecho abaixo: Em um programa de computador, as instruções são executas em uma sequência, partindo-se da primeira instrução do algoritmo e, pelo fato de não haver desvios (condições e laços de repetição), segue gravitacionalmente até alcançar a última instrução da sequência. Para que o fluxo seja interrompido, utilizam-se recursos imperativos, como o comando goto, também conhecido por comando de interrupção abrupta, ou comando de chamada de função, além de alguma estrutura de repetição ou por estrutura de decisão. Os comandos de controle automático de fluxo (while, for, do-while) são comandos que proporcionam ao programador uma forma segura de condução do fluxo natural do programa, enquanto o comando goto atribui ao programador este controle. A partir dessas informações, avalie as afirmações a seguir: I. Uma boa prática de programação é a utilização de quantos comandos goto forem necessários para controlar o fluxo do programa. Isso evidencia também que o programador é muito habilidoso na manipulação dos comandos que controlam o fluxo de execução dos programas. II. O comando return é utilizado quando a função necessita retornar ao ponto de onde ela foi chamada. Esse comando retorna um valor ou pode não retornar valor, ou seja, quando a função não tiver um valor associado a ela (void). III. O comando break é utilizado quando o programador necessita encerrar a execução do programa imediatamente. A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 9/18 É correto o que se afirma em: I e II, apenas. II, apenas. Correto!Correto! Alternativa está correta. A afirmativa I é falsa porque o comando goto é um recurso que deve ser evitado na lógica de programação, posto que ele possibilita que o fluxo normal da lógica seja interrompido, e isso propicia muitas oportunidades de erros de lógica. Não se coloca em dúvida a habilidade de quem o usa, porém, partindo-se do princípio de que programas são passíveis de manutenção, o comando goto dificulta o entendimento da lógica e potencializa os riscos de surgimento de bugs. A afirmativa II é verdadeira porque o comando return é utilizado para retornar à função chamada para o ponto que a chamou. Trata-se de um desvio porque faz com que a execução retorne ao ponto onde a chamada da função foi feita. Sua sintaxe é return expressão. A “expressão” é opcional, caso a função chamada não tiver um valor associado a ela (void). A afirmativa III é falsa porque a função break não encerra o programa, mas: i) Terminar um case (Comando switch); ii) Forçar o fim de um laço de repetição (for, while ou do-while). O comando que encerra um programa é o exit(). Logo, a alternativa correta é II, apenas. I, II e III. III, apenas. I, apenas. 0,6 / 0,6 ptsPergunta 6 Leia o texto abaixo: Um programador deve ter competência para resolver problemas computacionais organizadamente. Ele deve praticar os seguintes passos para a resolução sistemática de um problema computacional, no qual temos o entendimento macro do problema, a elaboração do algoritmo, a diagramação da solução e a codificação do programa. A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 10/18 Todas as fases assinaladas são importantes. Destacamos a de elaboração do algoritmo, que traz subsídios sólidos para que a busca do programa seja com baixo índice de erros em suas soluções computacionais. Considerando o trecho acima, avalie as seguintes asserções e a relação proposta entre elas. I. Uma pseudolinguagem possui uma estrutura que simula as linguagens de programação formais praticadas por programadores profissionais. PORQUE II. Um programa codificado em pseudolinguagem deve ser totalmente aderente à estrutura de controle de fluxo e comandos das linguagens formais de programação. A respeito dessas asserções, assinale a opção correta: As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I. Correto!Correto! A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 11/18 Alternativa A Alternativa está correta. A asserção I é uma proposição verdadeira porque uma pseudolinguagem é uma reprodução informal das linguagens de programação formais. Portanto, uma pseudolinguagem deve ter a seguinte estrutura: Início do programa, uma seção para a declaração de variáveis e uma seção para a codificação do algoritmo. Além disso, é necessário que a pseudolinguagem possua regras para os aspectos lexicais, sintáticos e semânticos que toda linguagem de programação possui. A asserção II é uma proposição verdadeira e justifica corretamente a asserção I. Uma pseudolinguagem precisa ter uma estrutura em conformidade com as linguagens formais porque faz com que a transformação da pseudolinguagem para o código formal tenha uma correspondência de paradigmas entre ambas. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. As asserções I e II são proposições falsas. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 0,6 / 0,6 ptsPergunta 7 Leia o texto a seguir: Pseudocódigo é uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve, de forma a ser entendida por qualquer pessoa) sem necessidade de conhecer a sintaxe de nenhuma linguagem de programação. Um exemplo de pseudocódigo é o Portugol. É uma linguagem de programação genérica e rica em detalhes. É um tipo de linguagem chamada de linguagem de projeto deprogramação. Essa pseudolinguagem assemelha-se bastante à forma como os programas são escritos. A A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 12/18 diferença entre a descrição narrativa e o pseudocódigo está principalmente no vocabulário finito e bem menor do pseudocódigo e nas estruturas de controle que apresenta. A utilização de uma gama menor de termos facilita a expressão do raciocínio lógico na medida em que reduz a possibilidade de mal entendimento das instruções. Fonte: https://pt.wikipedia.org/wiki/Pseudoc%C3%B3digo (https://pt.wikipedia.org/wiki/Pseudoc%C3%B3digo) Acesso em: 13/10/2020. A psedolinguagem conta com alguns elementos conforme ilustração a seguir: Assinale a opção correta abaixo que apresenta os elementos da pseudolinguagem Portugol. Estrutura do algoritmo, identificação do programa, área para definição das variáveis a serem utilizadas no algoritmo, lógica a ser desenvolvida no algoritmo. Espaço de memória acessado por meio de endereço, que pode conter dados fixos ou variáveis. Quando fixos são chamados constantes e quando variáveis são chamados de variável. A+ A A- https://pt.wikipedia.org/wiki/Pseudoc%C3%B3digo 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 13/18 Estrutura do algoritmo, que se divide em partes menores, e mais facilmente tratáveis, que podem ser classificados como procedimentos ou funções, sendo que as funções trabalham com valores recebidos por meio de argumentos. Identificação do programa, área de definição de constantes, onde constam os campos numéricos, alfanuméricos, ou outros tipos que serão utilizados no algoritmo, área onde se desenvolve a lógica, utilizando-se dos operadores cartesianos. Identificação do programa, área de definição de variáveis, onde constam os campos numéricos, alfanuméricos, ou outros tipos que serão utilizados no algoritmo, área onde se desenvolve a lógica, utilizando-se dos operadores lógicos, relacionais e aritméticos. Correto!Correto! Alternativa correta. Os elementos da pseudolinguagem são: sua estrutura, que é composta por identificação do programa, área para definição das variáveis a serem utilizadas no algoritmo e lógica a ser desenvolvida no algoritmo. Na área de definição de variáveis é onde serão definidos os diversos tipos de campos, numéricos, alfanuméricos, caractere, e lógicos. Já na área onde será desenvolvida a lógica, serão utilizados os operadores lógicos “e” e “ou”, os relacionais (>, <, =, >=, <=, <>) e os aritméticos (+, -, *, /, %). 0,6 / 0,6 ptsPergunta 8 Leia o texto a seguir: Uma função é uma unidade de código de programa autônoma projetada para cumprir uma tarefa particular. Funções permitem grandes tarefas de computação, sejam divididas em tarefas menores. Uma das principais razões da existência de funções é evitar que o A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 14/18 programador tenha de escrever o mesmo código repetidas vezes. As funções em C são utilizadas como funções, quando retornam valores; podem ser chamadas de dentro de uma expressão e não recebem parâmetros. Podem ser utilizadas também como sub-rotinas, quando não retornam valores; são chamadas por um comando CALL e recebem parâmetros. No entanto, não pode haver aninhamento de uma função dentro de outras funções. Cada bloco de um programa em C é uma e somente uma função. Adaptado de: https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_13_- _Introdu%C3%A7%C3%A3o_%C3%A0_Linguagem_C_-_FIC (https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_13_- _Introdu%C3%A7%C3%A3o_%C3%A0_Linguagem_C_-_FIC) . Acesso em: 13/10/2020. Considerando o texto acima, assim como o conteúdo visto, avalie as afirmações a seguir: 1. A passagem de valores entre funções pode acontecer por valor ou referência, sendo que a passagem por referência pode ser ainda efetuada como Matriz, como Matriz sem dimensão ou como ponteiro. 2. A diferença entre passagem por referência e por valor é que na passagem por valor, quando acaba a função os parâmetros não foram alterados pela execução da função chamada. Já na chamada por referência, quando acaba a função os parâmetros são alterados pela execução da função chamada. 3. Na chamada por referência é feita uma cópia do valor do argumento no parâmetro formal da sub-rotina, logo as alterações de valores que acontecerem dentro da sub-rotina, não serão refletidas nas variáveis do chamador. É correto o que se afirma em: II e III apenas. A+ A A- https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_13_-_Introdu%C3%A7%C3%A3o_%C3%A0_Linguagem_C_-_FIC 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 15/18 III apenas. I e II apenas. Correto!Correto! Alternativa correta. São corretas as afirmativas I e II, pois quando se passa valores entre funções na linguagem C, esses valores podem ser passados de duas formas: por valor ou por referência, sendo que na passagem por valor, quando acaba a função os parâmetros não foram alterados pela execução da função. Isso ocorre, pois os parâmetros estão em uma área de memória que pertence somente à função chamadora. Já na chamada por referência, quando acaba a função os parâmetros são alterados pela execução da função chamada. Isso ocorre, pois na chamada por referência a manipulação dos parâmetros ocorre na área da memória que é compartilhada entre a função chamadora e a função chamada. Há três formas de se efetuar uma chamada por referência: como Matriz, como Matriz sem dimensão ou como ponteiro. II apenas. I apenas. 0,6 / 0,6 ptsPergunta 9 Observe o código a seguir: #include <stdio.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int temp, cont; int vetor_prova[10] = {9,8,7,6,5,4,3,2,1,0}; while (cont < 10) { A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 16/18 temp = vetor_prova[cont]; vetor_prova[cont] = vetor_prova[9-cont]; vetor_prova[9-cont] = temp; cont = cont + 1; } for (cont = 0; cont <=9; cont++) { printf ("posição %d é igual a %d \n", cont, vetor_prova[cont]); } return 0; } Considerando o código apresentado acima, assinale a alternativa correta sobre qual será o conteúdo do vetor chamado vet_prova ao fim da execução do programa. 0, 2, 4, 6, 8, 1, 3, 5, 7, 9. 9, 8, 7, 6, 5, 4, 3, 2, 1, 0. 0, 2, 4, 6, 8. 1, 3, 5, 7, 9. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Correto!Correto! Alternativa correta. Um vetor foi criado no programa e já recebeu os valores 9,8,7,6,5,4,3,2,1,0 como seu conteúdo. Então, um while é executado 10 vezes, e em cada uma dessas execuções, o conteúdo existente no vetor foi invertido de posição, até que no fim do processo, ele tem todos os valores invertidos, ficando 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. A+ A A- 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 17/18 0,6 / 0,6 ptsPergunta 10 Leia o texto a seguir: O que é uma variável? Variável é um local reservado na memória para armazenar um tipo de dado. Toda variável deve ter um identificador, ou seja, um nome. Além de ter um nome, a variável também precisa ter um tipo. O tipo de dado de uma variável determina o que ela é capaz de armazenar. Tipos de dados Existem diversos tipos de dados que podem ser usados nas variáveis. Cada tipo de dado é específico para armazenar um determinado formato de dado. Podemos dizer que os principais tipos de dados numéricos se dividem em: Inteiro: armazena números inteirosReal: armazena números com casas decimais, são as variáveis de ponto flutuante; O tipo de dado caracter é capaz de representar um caracter ou um conjunto de caracteres (letras, dígitos ou símbolos). Fonte: CASAVELLA, E. Variáveis em Linguagem C. Disponível em: http://linguagemc.com.br/variaveis-em-linguagem-c/ (http://linguagemc.com.br/variaveis-em-linguagem-c/) . Acesso em: 05 de abril de 2021. O tipo de dados float refere-se também aos dados do tipo caractere. A+ A A- http://linguagemc.com.br/variaveis-em-linguagem-c/ 16/03/23, 00:28 AO2 (DP/ADAP Novembro): Algoritmos e Lógica de Programação https://famonline.instructure.com/courses/26320/quizzes/117598 18/18 inteiro. real com precisão dupla. local. real com precisão simples. Correto!Correto! Alternativa correta. O tipo de dado chamado de float em linguagem C representa os números reais. Caracteres são representados pelo char. Números inteiros são representados pelo int. Números reais com precisão dupla são representados pelo double. Local não é um tipo de dado. Pontuação do teste: 6 de 6 A+ A A-
Compartilhar