Baixe o app para aproveitar ainda mais
Prévia do material em texto
28/05/2023, 13:32 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2946593/7166829 1/8 Lógica de programação Professor(a): Fabiano Gonçalves dos Santos (Mestrado acadêmico) 1) 2) Prepare-se! Chegou a hora de você testar o conhecimento adquirido nesta disciplina. A Avaliação Virtual (AV) é composta por questões objetivas e corresponde a 100% da média final. Você tem até cinco tentativas para “Enviar” as questões, que são automaticamente corrigidas. Você pode responder as questões consultando o material de estudos, mas lembre-se de cumprir o prazo estabelecido. Boa prova! Dado o vetor W a seguir, analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso): W 2 6 8 3 10 9 1 21 33 14 Sendo X=2 e Y=4. ( ) W[X+1] = 3 ( ) W[W[X+Y]] = 2. ( ) W[W[3]] = 10. ( ) W[X*2] = 9. ( ) W[W[0] * W[6]] = 8. Assinale a alternativa que contenha a sequência correta de V e F: Alternativas: V – F – F – F – V. CORRETO V – V – V – V – V. V – F – V – F – V F – F – F – F – F. V – F – V – F – F. Código da questão: 73889 Dados os exemplos a seguir, associe-os corretamente com uma estrutura de dados que poderia ser usada para implementar cada um. I. Lista dos meses do ano A. Registro. II. Jogo de caça-palavras B. Matriz bidimensional. III. Cadastro de clientes C. Vetor unidimensional. Resolução comentada: A primeira afirmativa é verdadeira. A segunda afirmativa é falsa, pois: W[W[X+Y]] = W[W[2+4]] = W[W[6]] = W[1] = 6 A terceira afirmativa é falsa, pois: W[W[3]] = W[3] = 3 A quarta afirmativa é falsa, pois: W[X*2] = W[2*2] = W[4] = 10. A quinta afirmativa é verdadeira. 28/05/2023, 13:32 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2946593/7166829 2/8 Audiodescrição. Inicio da descrição. O quadro é formado por duas colunas e três linhas. A primeira coluna traz três opções: 1. Lista dos meses do ano; 2. Jogo de caça-palavras; e 3. Cadastro de clientes. A segunda coluna traz também três opções: A. Registro; B. Matriz bidimensional; e C. Vetor unidimensional. Fim da descrição. Assinale a alternativa que traz a associação correta entre as duas colunas: Alternativas: I-A; II-C; III-B I-A; II-B; III-C I-C; II-A; III-B. I-C; II-B; III-A CORRETO I-B; II-C; III-A Resolução comentada: A lista de meses do ano pode ser facilmente criada em um vetor unidimensional de strings contendo 12 elementos, em que cada um corresponde a um mês do ano. Exemplo: Array meses 0 1 2 3 4 5 6 Etc. 10 11 Jan Fev Mar Abr Maio Jun Jul Etc. Nov Dez Início da descrição. O quadro é formado por duas colunas e duas linhas. A primeira linha é formada por números e a segunda por meses. Os meses de agosto a outubro apresentam um etc., dando a ideia de continuação da lista. Assim, temos: 0 = janeiro; 1 = fevereiro; 2 = março; 3 = abril; 4 = maio; 5 = junho; 6 = julho; 10 = novembro; e 11 = dezembro. O jogo de caça-palavras é obviamente a implementação de uma matriz bidimensional. O exemplo a seguir mostra um caça-palavras de 8 linhas por 10 colunas. Exemplo: Caça-palavras de países 0 1 2 3 4 5 6 7 8 9 0 X D F G H J K L O P 1 Q A Z W S X E D C A 2 A U S T R Á L I A R 3 R F V T G B Y N H J 4 P O I U Y T R D E W 5 Y H M K O I O I T E 6 A S Á F R I C A M P 7 A S D F G H J K L O Início da descrição. O quadro é formado por 11 colunas e 9 linhas. As letras estão dispostas aleatoriamente e formam o nome de países em algumas junções. Fim da descrição. Um cadastro de clientes é uma estrutura mais complexa, que pode ser implementada em um registro contendo código do cliente, nome, endereço etc. Exemplo: Cliente é composto de: nome – string com 255 posições. endereço – string com 255 posições. 28/05/2023, 13:32 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2946593/7166829 3/8 3) 4) Código da questão: 73890 Um algoritmo é um importante método para expressar um raciocínio lógico, ordenado e organizado e pode ser aplicado em inúmeras situações diferentes envolvendo a vida profissional e até mesmo doméstica, em algumas situações. Ele possui um formato próprio, com instruções claras a respeito de um determinado objetivo. Com base no que foi estudado, assinale a alternativa que contém um algoritmo típico. Alternativas: A especificação de uma API. O regulamento de um campeonato. As regras de um jogo. O manual do proprietário de um veículo. Uma receita de bolo. CORRETO Código da questão: 73867 As estruturas unidimensionais homogêneas também são chamadas de vetores. Em relação ao seu tamanho e uma vez definidos, ______ alterar sua dimensão. Uma matriz é uma estrutura de dados ________, a qual pode possuir _____ ou mais dimensões indexadas para serem trabalhadas. Se você quiser criar uma coleção de livros, pode usar um _____ com diferentes _____, como id, autor, editora e número de páginas. Assinale a alternativa que completa adequadamente as lacunas: Alternativas: Não é possível; homogênea; duas; registro; campos. CORRETO Não é possível; homogênea; duas; vetor; campos. É possível; homogênea; duas; registro; índices. Não é possível; heterogênea; duas; registro; índices. É possível; homogênea; duas; registro; campos. idade – inteiro. Resolução comentada: Um algoritmo é uma sequência de passos organizada, ordenada e que leva a um determinado objetivo. Dessa forma, entre as alternativas apresentadas, a que possui uma sequência bem definida e claramente leva a um determinado objetivo é a receita de bolo, que é composta por comandos e instruções diretos, declarativos e ordenados. Resolução comentada: Os vetores, uma vez declarados e criados, são definidos com um tamanho e este não pode ser modificado. As maiores aplicações de matrizes são em estruturas bidimensionais, como tabela. Porém, existem implementações em mais de uma dimensão, como é o caso dos cubos de dados. 28/05/2023, 13:32 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2946593/7166829 4/8 5) 6) Código da questão: 73888 O valor que é passado para uma procedure ou função é chamado de ___. Uma função ____ é um tipo de função que chama ela mesma. As procedures são usadas pelos programadores principalmente para ____ a repetição de um código. A passagem por ___ altera o valor das variáveis fora do corpo da função. Assinale a alternativa que completa adequadamente as lacunas: Alternativas: Inteiro; modular; reduzir; referência. Parâmetro; recursiva; aumentar; referência. Argumento; com retorno; reduzir; valor. Parâmetro; recursiva; aumentar; valor. Parâmetro; recursiva; reduzir; referência. CORRETO Código da questão: 73897 Basicamente existem duas formas de modularizar programas: por meio de procedures ou por funções. Cada uma tem suas características próprias e é usada de acordo com a necessidade do algoritmo. Assinale a alternativa correta contendo a maior diferença entre esses dois tipos. Alternativas: As procedures normalmente são maiores e possuem mais instruções. As funções usam passagem de parâmetros; as procedures, não. As funções retornam valores; as procedures, não. CORRETO As funções são mais difíceis de corrigir e depurar. As funções são muito mais usadas em programas do que as procedures. Os registros são as estruturas capazes de armazenar dados de vários tipos sob um mesmo nome. Resolução comentada: Os valores que são passados para funções ou procedures são chamados de parâmetros. A função que pode chamar ela mesma é chamada de função recursiva, e o processo é chamado de recursão. As procedures e as funções são usadas para reduzir o código e simplificá-lo. A passagem por referência altera a variável que é passada para a função fora da função, pois é passado o valor do endereço da variável. Resolução comentada: A principal diferença entre uma procedure e uma função é que a função sempre deve retornar algum valor, enquanto a procedure não retorna valores. 28/05/2023, 13:32 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2946593/71668295/8 7) 8) Código da questão: 73896 Sobre as procedures e as funções usadas em algoritmos e linguagens de programação, analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso): ( ) Toda função deve ter dentro do seu corpo uma palavra-chave ou um comando que retorne um valor para o programa chamador. ( ) A passagem por valor não altera o valor da variável que foi enviada por parâmetro para uma procedure ou função. ( ) Toda função ou procedure deve ter o código indentado para seu correto funcionamento. ( ) Uma rotina que calcula a temperatura em graus Fahrenheit e retorna o valor para o programa principal é chamada de função. ( ) Uma função recursiva é executada infinitamente. Assinale a alternativa que contenha a sequência correta de V e F: Alternativas: V – V – F – V – F. CORRETO V – V – V – V – F. V – F – F – V – V. V – V – F – V – V. F – V – F – V – F. Código da questão: 73898 Os algoritmos em geral, e assim como as linguagens de programação, estão fundamentadas em algumas estruturas básicas de controle: sequenciais, de decisão ou condicionais e de repetição. Com base no que foi estudado, qualquer programa pode ser criado por meio dessas estruturas. Com base nesse conhecimento, analise as assertivas a seguir e identifique as corretas: I. Um loop do tipo “enquanto” pode ter uma ou mais linhas de código, que podem ser executadas repetidamente. II. Uma condição geralmente é um comando relacional, que é avaliado como verdadeiro ou falso. Um valor igual a zero é tratado como falso e qualquer valor diferente de zero funciona como verdadeiro. III. O código a seguir vai imprimir na tela: “O aluno está na média”. inicio { Em relação às demais características de funções e procedures, todas são incorretas, pois o modo de funcionamento, a declaração de variáveis e a passagem de parâmetros, exceto pela questão do retorno, são semelhantes Resolução comentada: A primeira, a segunda e a quarta afirmativas são verdadeiras. Veja a forma correta das afirmativas falsas: Terceira – A indentação é importante, mas não é obrigatória e serve somente para organizar o código. Quinta – Uma função recursiva normalmente tem um ponto de parada, chamado de ponto base, e é executada enquanto houver memória disponível no dispositivo em que estiver sendo executada. 28/05/2023, 13:32 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2946593/7166829 6/8 inteiro x = 45 se( x > 95) { escreva( "O aluno é brilhante") } se( x < 30) { escreva( "O aluno não foi bem\n") } se( x < 95 e x > 30 ) { escreva( "O aluno está na média\n") } } IV. Uma instrução se pode ser seguida por uma instrução senão opcional, que é executada quando a expressão booleana é falsa. V. O seguinte código será executado 10 vezes. inteiro i=0 enquanto (i<=10) { C1 i = i+1 } São verdadeiras: Alternativas: I, II, III, IV e V. I, II, III e IV, apenas. CORRETO I e II, apenas. I, II e III, apenas. I, II e V, apenas. Código da questão: 73884 Resolução comentada: A afirmativa I é verdadeira, pois um loop, independentemente do tipo, pode ter uma ou mais linhas de código, que podem ser executadas dentro do bloco cuja condição é verdadeira. A afirmativa II é verdadeira, pois, se a condição é verdadeira, o loop é executado. Zero é considerado falso. A afirmativa III é verdadeira, pois o valor de x é 45 e, de acordo com os blocos “se” apresentados, entra na condição que imprime “O aluno está na média”. O algoritmo inicia na declaração de uma variável inteira com identificador x e valor 45. Em seguida, são feitos 3 testes obrigatoriamente. O primeiro teste falha, pois x = 45 é menor que 95. O segundo teste falha, pois 45 é maior que 30. O terceiro teste é positivo, pois 45 está entre 30 e 95 e a mensagem será impressa. A afirmativa IV é verdadeira, pois o “se” pode ou não ser seguido de “senão” quando a condição do “se” for falsa. A afirmativa V é falsa, pois, como a variável “i” começa em zero e a condição é i<=10, temos 11 repetições. 28/05/2023, 13:32 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2946593/7166829 7/8 9) 10) Sobre as expressões aritméticas em algoritmos, analise as assertivas a seguir e assinale- as com V (verdadeiro) ou F (falso): ( ) 1 + 2 * 3 = 7. ( ) (1 + 2) * (3 + 1) < = 12. ( ) ((1 +2) * (3 + 1)) < = 12. ( ) (1 + 1) * (1+1) * 1 + 1 = 5. ( ) 2 * 1 + 2 * 1 + 2 * 1 < = 6. Assinale a alternativa que contenha a sequência correta de V e F: Alternativas: V – V – V – V – V CORRETO V – F – V – F – V. V – F – F – V - F. F – V – F – V – F. V – V – F – V – F. Código da questão: 73870 Observe e analise o algoritmo a seguir. O objetivo dele é ler duas variáveis e trocar os seus valores. Em seguida, assinale a alternativa correta. início inteiro a, b, aux escreva("Informe um valor para a variável A: ") escreva("Informe um valor para a variável B: ") escreva("Variáveis antes da troca: \n") escreva("A = ", a, "; B = ", b, "\n") aux = a a = b b = aux escreva("\n") escreva("Variáveis após a troca: \n") escreva("A = ", a, "; B = ", b, "\n") fim Alternativas: O algoritmo está incorreto, porque não tem estruturas sequenciais. Resolução comentada: Lembre-se de que, assim como as expressões aritméticas comuns, nos algoritmos, as expressões aritméticas também respeitam a precedência dos parênteses e das operações aritméticas. Dessa forma, todas as afirmativas estão corretas. (1 +2) * (3 +1), temos 3 * 4 < = 12. Lembre-se de que o operador relacional avalia se o resultado é menor OU igual a 12; logo, está correto. 28/05/2023, 13:32 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2946593/7166829 8/8 O algoritmo está incorreto, porque a linha “a = b” está com a sintaxe errada. O algoritmo está incorreto, porque não possui comandos para ler as variáveis do usuário. CORRETO O algoritmo está correto e vai apresentar as saídas programadas corretamente pelo comando escreva(). O algoritmo está incorreto, pois não apresenta instruções de decisão. Código da questão: 73877 Resolução comentada: O algoritmo está incorreto, porque não foram colocadas instruções de leitura do teclado. O correto deve ser: início inteiro a, b, aux escreva("Informe um valor para a variável A: ") leia(a) escreva("Informe um valor para a variável B: ") leia(b) escreva("Variáveis antes da troca: \n") escreva("A = ", a, "; B = ", b, "\n") aux = a a = b b = aux escreva("\n") escreva("Variáveis após a troca: \n") escreva("A = ", a, "; B = ", b, "\n") fim. Arquivos e Links
Compartilhar