Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso GRA0914 PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO GR2311202 - 202020.ead-11341.01 Teste ATIVIDADE 2 (A2) Iniciado 14/09/20 16:03 Enviado 29/09/20 10:42 Status Completada Resultado da tentativa 4 em 10 pontos Tempo decorrido 354 horas, 38 minutos Resultados exibidos Respostas enviadas, Respostas corretas, Comentários • Pergunta 1 0 em 1 pontos O Paradigma da Programação Estruturada, como é conhecido, é muito criticado por ser baseado no pensamento sistêmico e não cartesiano. Os críticos desse paradigma sugerem diversas maneiras de minorar os efeitos negativos desse padrão de programação. Desse modo, assinale a alternativa que justifica essas críticas, do ponto de vista da arquitetura dos sistemas desenvolvidos sob esse padrão: Resposta Selecionada: Modulariza seus elementos de maneira encapsulada. Resposta Correta: Olha o programa como um todo e não observa soluções baseadas em blocos de instruções. Feedback da resposta: Sua resposta está incorreta. A alternativa está incorreta, pois a Programação Estruturada não se baseia em módulos particulares (sub-rotinas), e, além disso, não focaliza no uso de comandos de desvios incondicionais, como GoTo, embora algumas linguagens o possuam. • Pergunta 2 0 em 1 pontos O programa a seguir, codificado em C, toca um trecho da famosa canção infantil conhecida como Um Pastor, Dois Carneirinhos e Uma Ovelhinha , mostrando o acorde principal: DÓ RÉ MI FÁ FÁFÁ DÓ RÉ DÓ RÉ RÉRÉ FÁ SOL LÁ SI MIMI DÓ RÉ DÓ RÉ Analise o programa a seguir: //TocaMusica.C #include <stdio.h> #include <windows.h> int main() { //DÓ,RÉ,MI,FÁ Beep(264, 200); Beep(294, 300); Beep(330, 300); Beep(349, 500); Sleep(200); //FÁFÁ Beep(349, 300); Beep(349, 250); Sleep(50); //DÓ,RÉ,DÓ,RÉ Beep(264, 201); Beep(294, 303; Beep(264, 201); Beep(294, 301); Sleep(500); //RÉ,RÉ Beep(294, 299); Beep(294, 301); Sleep(5); //FÁ,SOL, LÁ,SI Beep(349, 200); Beep(392, 300); Beep(440, 200); Beep(494, 400); Sleep(200); //MI,MI Beep(330, 400); Beep(330, 450); Sleep(50); //DÓ,RÉ,DÓ,RÉ Beep(264, 199); Beep(294, 301); Beep(264, 202); Beep(294, 299); return 0; } Embora sendo C uma linguagem estruturada, o código não usa estrutura de controle. Sendo assim, analise as afirmativas a seguir e assinale V para a(s) Verdadeira(s) e F para a(s) Falsa(s). I. ( ) A função Beep() não pode ser escrita dentro de uma “estrutura de controle”. II. ( ) Não existe nenhuma instrução que possa se repetir do mesmo modo. III. ( ) A função Sleep() pode ser escrita dentro de uma “estrutura de controle”. IV. ( ) Os blocos estão comentados, então, não dá para colocar dentro de loops . Assinale a alternativa que apresenta a sequência correta: Resposta Selecionada: V, F, F, F. Resposta Correta: F, V, F, F. Feedback da resposta: Sua resposta está incorreta. A alternativa está incorreta, porque não existe nenhuma linha de código que se repete no programa, pois, para ser utilizado qualquer um dos dois tipos de estruturas de repetição (lógica ou numérica), é preciso que existam no programa instruções que se repetem em vários locais do código. Se a instrução aparecer apenas uma única vez, a utilização desse tipo de instrução torna o código ineficiente. • Pergunta 3 1 em 1 pontos A sigla RAD (Rapid Application Development), como é conhecida, define um tipo de linguagem que trabalha sob ambientes de desenvolvimento integrado (em inglês, a sigla é apresentada como IDE), produzindo, em pouco tempo, sistemas de programas bem interativos. Sendo assim, assinale a alternativa correta, que apresenta as duas linguagens que são desse tipo: Resposta Selecionada: C# e Visual Basic.Net . Resposta Correta: C# e Visual Basic.Net. Feedback da resposta: Resposta está correta. A alternativa está correta, pois C# (lê-se C sharp) é uma linguagem baseada na Linguagem C, porém, com características adicionais de Orientação a Objetos e Orientação e a Eventos, o que a torna uma ferramenta RAD. O mesmo acontece com o Visual Basic.Net, oriundo da linguagem Basic (compilador Quick Basic), e com características funcionais semelhantes às do C#. • Pergunta 4 0 em 1 pontos Dentre os vários números interessantes na Matemática, 6174 é realmente um mistério, tornando-se alvo de intensas pesquisas dos matemáticos a partir dos trabalhos do indiano Dattathreya Ramachandra Kaprekar (1905-1986). O algoritmo a seguir é uma solução para gerar esse número. //Algoritmo: Gera o número 6174. ------------------------------------------------------------------------------------------------------------------- Início 1- Pegue um número N de quatro dígitos. 2- Se( não tiver pelo menos dois dígitos diferentes tamanho 4 ) Então, vá para o Passo 1. FimSe 3- Crie um número X como resultado da classificação de N em ordem decrescente. 4- Crie outro número Y com os dígitos do número X em ordem crescente. 5- Se( Y tiver menos que quatro dígitos ) Então, acrescente zeros à direita de Y. FimSe 6- Subtraia X de Y. 7- Se( o resultado da subtração for diferente de 6174 ). Então, faça N igual ao resultado da subtração (com quatro dígitos). Vá para o Passo 3 FimSe 8- Mostre o resultado da subtração. Fim Assinale a alternativa correta, que mostra de que maneira é dada essa solução no algoritmo: Resposta Selecionada: Modular e estruturada. Resposta Correta: Não estruturada. Feedback da resposta: Sua resposta está incorreta. A alternativa está incorreta, pois, na Programação Estruturada, os desvios do fluxo do programa devem ser feitos por meio das estruturas de controle sob alguma condição, e não incondicionalmente, como é mostrado no algoritmo com ”Vá para”, e não existe nenhuma modularidade na solução. • Pergunta 5 1 em 1 pontos São definidos vários padrões de programação para futuras codificações em linguagens de alto nível, classificando-as. Uma classificação muito empregada é quanto ao tipo de tradução: compilação e interpretação. Desse modo, analise as afirmativas a seguir: I. A Linguagem C é uma linguagem orientada a objetos. II. A Linguagem C é uma linguagem de alto nível e estruturada. III. A Linguagem C é compilada e de baixo nível. IV. A Linguagem C é interpretada e gera código executável. V. A Linguagem C é interpretada e não gera código executável. Está correto o que se afirma em: Resposta Selecionada: II, apenas. Resposta Correta: II, apenas. Feedback da resposta: Resposta está correta. A alternativa está correta, pois Linguagem C segue o “paradigma imperativo”, e é, também, estruturada (baseada em estruturas de controle). Assim, a única afirmativa correta é a afirmativa II, pois é a única que atende, perfeitamente, aos requisitos desses dois paradigmas de programação. • Pergunta 6 1 em 1 pontos Considere a instrução X = X + 1; escrita na Linguagem C. Ela não pode ser interpretada como uma equação matemática. Desse modo, assinale a alternativa que explica por que essa expressão, embora com dois membros, separados por uma igualdade (assim como uma equação), não pode ser assim considerada em um ambiente da codificação de um programa. Assinale a alternativa correta: Resposta Selecionada: O símbolo = representa uma atribuição e não uma igualdade. Resposta Correta: O símbolo = representa uma atribuição e não uma igualdade. Feedback da resposta: Resposta está correta. A alternativa está correta, pois o símbolo = na instrução representa o operador “ atribuição” em C, e que, em outras linguagens, pode ser diferente, como := no xHarbour, [1] <- no R e no Visualg, to no Apple Script, << em Magik etc. Assim, a semântica correta dessa instruçãoé: “ X recebe X mais 1”, o que significa atualizar o valor da variável X acrescentando 1. • Pergunta 7 1 em 1 pontos O pseudocódigo apresentado a seguir foi escrito para calcular e exibir a raiz quadrada de um número real. Esse número não é negativo, mas, embora funcione em determinadas circunstâncias, esse pseudocódigo não oferece resultados corretos em outras circunstâncias. Programa "CalculaRaiz" //Extrai e exibe a raiz quadrada de um número real, não negativo. //--------------------------------------------------------------- Declare Num, Raiz: real Início Escreva("Digite um número positivo:") Leia(Num) Se(Num<0) Então Escreva("Valor inválido") FimSe EscrevaLn("") EscrevaLn("") {Tenta extrair a raiz quadrada do número lido} Raiz ¬ Num^(1/2) EscrevaLn("Raiz quadrada de", Num,": ",Raiz) FimPrograma Após analisar o código, assinale a alternativa correta: Resposta Selecionada: No lugar da “estrutura de decisão”, deveria ser um loop lógico para validar Num. Resposta Correta: No lugar da “estrutura de decisão”, deveria ser um loop lógico para validar Num. Feedback da resposta: Resposta está correta. A alternativa está correta, pois, para verificar se determinada entrada de dados está correta, a validação deve ser SEMPRE com alguma estrutura de repetição lógica ( loop lógico). Por isso, a estrutura de decisão simples em cima da variável Num não garante a validação de seu valor, pois, mesmo que Num seja digitado com um valor negativo, e a frase “ Valor Inválido” seja exibida para alertar o usuário, o fluxo do programa vai continuar e o usuário não terá chance de corrigir o erro. • Pergunta 8 0 em 1 pontos Do ponto de vista da Object-Oriented Programming, a Programação Orientada a Objetos, (OOP), Luke é o nome de um gato que tem olhos azuis. Pode existir outro felino com o mesmo nome, e também com olhos azuis, ou esse nome deve ser único para todas as classes de gatos? Assinale a alternativa correta que responde a essa questão: Resposta Selecionada: Sim, desde que tenha outras características diferentes. Resposta Correta: Sim, desde que sejam de classes diferentes. Feedback da resposta: Sua resposta está incorreta. A alternativa está incorreta, porque o que define uma instância (objeto) é a sua classe; assim, classes diferentes podem ter instâncias com um mesmo nome (identificador), independentemente de suas características. Portanto, o nome (identificador) da instância sugerida na questão pode, sim, aparecer em várias classes. • Pergunta 9 0 em 1 pontos O esquema mostrado a seguir é um programa em pseudocódigo (que alguns autores chamam de algoritmo). E, como indicado no comentário, seu objetivo é calcular e exibir a potência p de um número lido, N. Por exemplo: se o número lido for 8, sua potência 3 exibida será 192. Analise o esquema a seguir: Programa "CalculaPotencia" //Calcula a potência p de um número N lido. //--------------------------------------------------------------- Declare N, p, Pote, j: inteiro Início Escreva("Digite o número a ser potenciado:") Leia(N) Escreva("Digite a potência desejada") Leia(p) Enquanto ((p<0) OU (N<=1)) Faça EscrevaLn("Tente novamente") //escreve e salta linha EscrevaLn("") Escreva("Digite o número a ser potenciado:") Leia(N) Escreva("Digite a potência desejada:") Leia(P) FimEnquanto Pote <- 1 Se(p>0) Então Para j De 1 Até p Faça Pote <- Pote*N FimPara FimSe EscrevaLn("") //apenas salta linha EscrevaLn(N, " elevado a", p , ":", Pote) FimPrograma Então, para que serve a estrutura de repetição “Enquanto...FimEnquanto”? Assinale a alternativa correta: Resposta Selecionada: Para verificar se a potência de N é maior do que p. Resposta Correta: Para validar as entradas. Feedback da resposta: Sua resposta está incorreta. A alternativa está incorreta, porque a estrutura Enquanto..FimEnquanto está sendo utilizada para validar N e p (juntos), a fim de garantir que ambos sem válidos, simultaneamente, e não para uma das duas variáveis lidas separadamente. A variável Pote (valor calculado da potência p de N) não está sujeita a nenhuma validação. • Pergunta 10 0 em 1 pontos Observe a figura a seguir, que pode representar a planta-baixa de uma residência, com alguns cômodos. Assim, comparando essa figura com um projeto lógico de programação, observe as alternativas a seguir e verifique a que mais se assemelha ao conteúdo apresentado na figura do ponto de vista de um sistema ligado a algum paradigma de programação. Figura - Planta-baixa de uma residência Fonte: Leite (2017, p. 201). LEITE, M. Curso básico de programação : teoria e prática. Rio de Janeiro: Ciência Moderna, 2017. Assinale a alternativa correta: Resposta Selecionada: Um sistema com paradigma descritivo. Resposta Correta: Um sistema modular, com várias sub-rotinas. Feedback da resposta: Sua resposta está incorreta. A alternativa está incorreta, porque o esquema da figura se encaixa em um tipo de sistema em que cada módulo representa uma rotina, e não um sistema definido por nenhum dos paradigmas tradicionais citados na questão. Assim, o sistema modular, mesmo não sendo um tipo de paradigma, do ponto de vista tradicional, é o que responde à questão. Terça-feira, 29 de Setembro de 2020 10h42min52s BRT OK javascript:launch('/webapps/blackboard/content/listContent.jsp?content_id=_14296100_1&course_id=_612374_1&nolaunch_after_review=true');
Compartilhar