Prévia do material em texto
1) A estrutura de controle que permite avaliar uma variável e classificá-la é a de _____. Por exemplo, permite avaliar o trimestre no qual um determinado mês se encontra, ou seja, o usuário digita um mês, “6” por exemplo, e o algoritmo retorna “Segundo Trimestre”. Quando precisamos que um algoritmo seja executado várias vezes, temos que usar obrigatoriamente uma estrutura de _____. Nas principais estruturas de controle, temos um elemento fundamental para o correto funcionamento da estrutura. Ele define o início, a parada e a continuação da execução da estrutura. Trata-se da ______. Em estruturas que serão executadas várias vezes, é fundamental que uma variável seja _____ para que o bloco a ser executado não fique executando infinitamente. Assinale a alternativa que completa adequadamente as lacunas: Alternativas: · Sequência; repetição; condição; inicializada. · Repetição; decisão; condição; inicializada. · Decisão; repetição; condição; lógica. · Decisão; repetição; condição; real. · Decisão; repetição; condição; inicializada. checkCORRETO Resolução comentada: As estruturas de decisão são responsáveis muitas vezes por classificações em geral. Dependendo do valor da variável, a classificação é feita. No caso, se o mês estiver entre 1 e 3, será o Primeiro Trimestre; se estiver entre 4 e 6, será o Segundo Trimestre; e assim por diante. Para executar um trecho de algoritmo, ou o algoritmo todo, usamos estruturas de repetição. As condições são obrigatórias para controlar o início, o fim e a continuidade das repetições a serem usadas como expressões lógicas em estruturas de decisão. Se não criarmos e inicializarmos uma variável antes de uma repetição, é bem provável que tenhamos um looping infinito. Código da questão: 73879 2) 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. checkCORRETO · V – V – V – V – F. · F – V – F – V – F. · V – V – F – V – V. · V – F – F – V – V. 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. Código da questão: 73898 3) 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: · F – V – F – V – F. · V – F – V – F – V. · V – V – V – V – V checkCORRETO · V – F – F – V - F. · V – V – F – V – F. 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. Código da questão: 73870 4) Uma vez que podemos criar uma variável unidimensional de um mesmo tipo estruturada por meio de um índice, considere o seguinte array: a[0] = 101 a[1] = 102 a[2] = 103 a[3] = 104 a[4] = 105 a[5] = 106 Assinale a alternativa correta. Alternativas: · Temos 6 elementos no array. checkCORRETO · É correto alterar o terceiro elemento para a[3]=’222’. · O valor do primeiro elemento é 102. · A forma correta de declarar o array é int a[5]. · Temos 5 elementos no array. Resolução comentada: A forma correta de declarar o array do enunciado é int a[6]. O valor do primeiro elemento é o que está com o índice 0; logo, é o valor 101. Temos 6 elementos no array, pois os índices vão de 0 a 5. Não é possível inserir ou alterar os valores do array com tipos diferentes de inteiro. Código da questão: 73886 5) Observe o algoritmo a seguir, escrito no software Portugol Studio. Suponha que a função “sorteia()” gere um número aleatório entre um intervalo de números toda vez que for executada. Vamos supor que o número aleatório gerado tenha sido 31. 1 programa { 2 funcao inicio() { 3 inteiro vet = 0 4 preenche (vet) 5 escreva("Variavel antes:\n") 6 exibe (vet) 7 escreva("\n\nVariavel após:\n") 8 exibe (vet) 9 escreva("\n") 10 } 11 funcao preenche (inteiro &v) { 12 v = sorteia (1, 100) 13 } 14 funcao exibe (inteiro v) { 15 escreva (v, " ") 16 v = 5 17 } 18 } Estude o algoritmo, analise as assertivas a seguir e identifique as corretas: I. A função “preenche()” (linhas 11 a 13) recebe a variável “v” por referência. II. O valor de v na linha 5 será 31. III. O valor de v na linha 5 será 0. IV. O valor de v na linha 7 será 31. V. O valor de v na linha 5 será 0. São verdadeiras: Alternativas: · I, II e III, apenas · II, III e V, apenas. · I, II e V, apenas. · I, II e IV, apenas. checkCORRETO · II, III e IV, apenas. Resolução comentada: A afirmativa I é verdadeira, pois o “&” na frente da variável “v” na linha 11 indica que a variável entrará na função por referência. A afirmativa II é verdadeira, pois, como é uma função que tem o parâmetro por referência, qualquer alteração feita nessa variável dentro da função alterará o valor da variável fora da função. A afirmativa III é falsa, pois a variável “v” foi passada por referência; logo, o seu conteúdo é alterado na linha 12, influenciando o valor da variável fora da função. A afirmativa IV é verdadeira, pois, como a variável foi alterada na função, seu valor não é alterado depois em nenhum lugar do algoritmo. A afirmativa V é falsa, pois a variável “v” foi passada por referência e teve seu conteúdo alterado na linha 12. Código da questão: 73901 6) 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 a linha “a = b” está com a sintaxe errada. · O algoritmo está correto e vai apresentar as saídas programadas corretamente pelo comando escreva(). · O algoritmo está incorreto, porque não possui comandos para ler as variáveis do usuário. checkCORRETO · O algoritmo está incorreto, porque não tem estruturas sequenciais. · O algoritmo está incorreto, pois não apresenta instruções de decisão. Resolução comentada: O algoritmo está incorreto, porque não foramcolocadas 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. Código da questão: 73877 7) As _____ são espaços de memória em que podemos guardar valores temporários enquanto um algoritmo está sendo executado. Existem vários tipos primitivos. O tipo que guarda números não decimais, positivos e negativos, além do zero, é o tipo _____. O operador relacional que conecta dois operandos lógicos e gera uma saída lógica é popularmente conhecido como _____. Toda variável possui obrigatoriamente duas partes: seu _____ e seu valor, que pode ser, inclusive, nulo, ou null. Assinale a alternativa que completa adequadamente as lacunas: Alternativas: · Variáveis; inteiro; booleano; identificador. checkCORRETO · Operações; booleano; real; operando. · Linguagens; numérico; OR; tipo. · Expressões; inteiro; NOT; nome · Expressões; string; AND; tipo Resolução comentada: As variáveis são os recursos usados pelos algoritmos para guardar valores que podem mudar ou não durante a execução do algoritmo. Elas ficam armazenadas na memória do computador e, para cada tipo de valor atribuído a ela, possui um tipo diferente, podendo ser caracteres alfanuméricos, números inteiros ou decimais e valores lógicos, também chamados de booleanos. Toda variável possui um identificador, ou nome, e nem sempre temos um valor atribuído a ela, caso em que ela guardará nulo. Código da questão: 73869 8) 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: · Parâmetro; recursiva; reduzir; referência. checkCORRETO · Parâmetro; recursiva; aumentar; referência. · Parâmetro; recursiva; aumentar; valor. · Argumento; com retorno; reduzir; valor. · Inteiro; modular; reduzir; referência. 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. Código da questão: 73897 9) 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. 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-C; II-A; III-B. · I-A; II-B; III-C · I-B; II-C; III-A · I-C; II-B; III-A checkCORRETO · I-A; II-C; III-B 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. idade – inteiro. Código da questão: 73890 10) 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. checkCORRETO · É possível; homogênea; duas; registro; campos. · Não é possível; homogênea; duas; vetor; campos. · Não é possível; heterogênea; duas; registro; índices. · É possível; homogênea; duas; registro; índices. 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. Os registros são as estruturas capazes de armazenar dados de vários tipos sob um mesmo nome. Código da questão: 73888