Baixe o app para aproveitar ainda mais
Prévia do material em texto
21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=584501 1/10 Atividade Objetiva 3 Entrega 15 dez em 23:59 Pontos 1 Perguntas 5 Disponível 2 dez em 0:00 - 15 dez em 23:59 Limite de tempo Nenhum Tentativas permitidas 2 Instruções Este teste foi travado 15 dez em 23:59. Histórico de tentativas Tentativa Tempo Pontuação MANTIDO Tentativa 2 3 minutos 0,4 de 1 MAIS RECENTE Tentativa 2 3 minutos 0,4 de 1 Tentativa 1 65 minutos 0,4 de 1 Pontuação desta tentativa: 0,4 de 1 Enviado 12 dez em 9:36 Esta tentativa levou 3 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 / 0,2 ptsPergunta 1 Leia o texto a seguir: “A linguagem de programação Cobol existe há 61 anos de uma forma ou de outra. Para muitas organizações, a idade está evidente, e as pessoas que conseguem manter os aplicativos Cobol baseados em mainframe de pé, estão cada vez mais escassas, especialmente porque a maioria dos programas de ciência da computação não ensina mais sobre ela. (...) ‘São aplicativos de 20 a 30 anos que têm servido bem aos negócios, mas eles acumulam dívidas técnicas e são muito específicos para o que esse negócio tem. [Cobol] é funcionalmente A+ A A- https://famonline.instructure.com/courses/23993/quizzes/111078/history?version=2 https://famonline.instructure.com/courses/23993/quizzes/111078/history?version=2 https://famonline.instructure.com/courses/23993/quizzes/111078/history?version=1 21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=584501 2/10 rico, mas funciona em uma plataforma restritiva e não funciona com outros sistemas modernos’, disse Tim Jones, Diretor-Gerente de Modernização de Aplicativos da fornecedora de serviços de software Advanced.” CAREY, Scott. Como as empresas estão deixando o Cobol. Infoworld, 2021. Disponível em: < https://cio.com.br/tendencias/como-as- empresas-estao-deixando-o-cobol/>. Acesso em 22 ago 2021. Refletindo sobre as aplicações em Cobol mencionadas acima, avalie as seguintes asserções e a relação proposta entre elas. I. Os sistemas descritos no texto são considerados sistemas legados. PORQUE II. A linguagem Cobol é uma linguagem antiga. Assinale a alternativa com a relação correta entre as proposições I e II: A asserção I é uma proposição falsa e a asserção II é uma proposição verdadeira. A asserção I é uma proposição verdadeira e a asserção II é uma proposição falsa. As asserções I e II são proposições verdadeiras e a asserção II é uma justificativa correta da I. ocê respondeuocê respondeu As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa correta da I. esposta corretaesposta correta As asserções I e II são proposições falsas. A+ A A- 21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=584501 3/10 Alternativa incorreta, pois as asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. A asserção I é verdadeira, pois os sistemas descritos são, de fato, legados. Sistemas legados tipicamente utilizam tecnologias (linguagens, protocolos, bibliotecas ou mesmo hardware) que tenham caído em desuso e/ou sejam difíceis de dar manutenção ou compatibilizar com ferramentas mais atuais. A asserção II é verdadeira, pois o próprio texto diz que a linguagem Cobol existe há mais de 60 anos. Porém, a idade da linguagem por si só não justifica o sistema ser legado. A linguagem C, por exemplo, possui cerca de 50 anos, e segue entre as linguagens mais utilizadas no mundo, sendo acompanhada nos rankings de popularidade e uso de linguagens por diversas linguagens significativamente mais novas. Porém, ela está presente em diversos sistemas modernos, possui compiladores modernos, e frequentemente é utilizada para desenvolver ferramentas que irão interagir com outros sistemas mais modernos. 0,2 / 0,2 ptsPergunta 2 Leia o texto a seguir: Stevens, Myers e Constantine (1974) fizeram uma primeira tentativa de descrever módulo como "um conjunto de uma ou mais instruções de programa contíguas, que possui um nome pelo qual outras partes do sistema podem chamá-lo e, preferivelmente, com seu próprio conjunto distinto de nomes de variáveis". Em outras palavras, um módulo consiste de um único bloco de código que pode ser chamado da mesma forma que é chamado um procedimento, uma função ou método. (...) Nas linguagens C e C++, um arquivo-cabeçalho de declarações que é incluído (#include) em um produto de modo semelhante também não é chamado. (...) Yourdon e Constantine (1979) dão uma definição mais ampla: "Módulo é uma sequência de instruções de programa lexicamente contíguas, limitadas por elementos delimitadores, que possuem um identificador de agregação. Exemplos de elementos delimitadores são os pares A+ A A- 21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=584501 4/10 begin ... end em uma linguagem estruturada em blocos, como Pascal, ou pares {...} no C++ ou Java. Schach, S. R. Engenharia de Software. Editora Grupo A, 2010. Considerando o texto acima, analise as seguintes afirmações sobre módulos. I. Qualquer elemento compilado separadamente, como cabeçalhos em C, é considerado módulo por ambas as definições. II. Objetos são considerados módulos por ambas as definições. III. Blocos condicionais e malhas de repetição são considerados módulos por alguns autores. IV. Módulos permitem isolar informações, mas não instruções. É correto o que se afirma, em: II e III, apenas. Correto!Correto! II, III e IV, apenas. I, II e III, apenas. I e IV, apenas. I, III e IV, apenas. A+ A A- 21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=584501 5/10 Alternativa correta. A afirmativa I é falsa, pois elementos incluídos em C e C++ não são chamados, portanto não se enquadram na definição. A afirmativa II é verdadeira, pois objetos tipicamente são “chamados” e é a partir da chamada que é feito o acesso a seus atributos e métodos. Isso porque não apenas objetos são módulos como também seus métodos podem ser considerados módulos internos. A afirmativa III é verdadeira, pois qualquer bloco de código delimitado por símbolos indicando início e fim pode ser considerado um bloco. Estruturas condicionais e malhas de repetição na maioria das linguagens são estruturadas dessa maneira, e, portanto, se enquadram nessa definição. A afirmativa IV é falsa, pois as definições falam em “sequência de instruções” ou “conjunto de instruções”. Os módulos são, primariamente, formas de subdividir ou agrupar instruções. 0 / 0,2 ptsPergunta 3 Leia o texto a seguir: “Um objetivo fundamental da programação lógica (...) é fornecer programação não procedural, ou seja, um sistema no qual os programadores especificam o que um programa deve fazer, mas não precisam especificar como isso deve ser feito. (...) [Em um problema de ordenação dos elementos de uma lista] ele não tem ideia de como ordenar, além de simplesmente enumerar todas as permutações de uma lista até que aconteça de ser criada uma que tenha a lista ordenada - um processo muito lento.” Adaptado de SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Sabendo que a principal linguagem de programação lógica é o PROLOG, assinale a alternativa correta considerando a reflexão apresentada acima: A+ A A- 21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=5845016/10 O PROLOG é não procedural, portanto, é orientado a objeto. É importante que o programador PROLOG detalhe cada etapa do processamento. O PROLOG pode ser inadequado em situações que exijam processamento rápido. esposta corretaesposta correta A programação procedural é melhor do que a programação lógica. ocê respondeuocê respondeu A alternativa está incorreta, pois um dos objetivos do PROLOG é ser não procedural e, assim, o programador não precisará detalhar cada etapa da execução dos programas. Vale relembrar: programação procedural e programação orientada a objeto são duas formas diferentes de programação imperativa, mas não são as únicas formas de programação. A programação lógica é uma forma de programação declarativa, e, portanto, não é nem procedural, nem orientada a objeto. A alternativa correta é aquela que diz que o PROLOG pode ser inadequado em situações que exijam processamento rápido. Não é possível ordenar listas em PROLOG. 0 / 0,2 ptsPergunta 4 Leia o texto a seguir: “Programadores no processo de desenvolvimento de software apresentam a mesma limitação. A linguagem na qual eles desenvolvem software impõe restrições nos tipos de estruturas de controle, estruturas de dados e abstrações que podem usar - logo, as formas dos algoritmos que eles constroem também são limitadas.” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Qual alternativa indica como o programador deve escolher a A+ A A- 21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=584501 7/10 linguagem para o desenvolvimento de um software? É necessário usar várias linguagens em um mesmo software, de modo que cada uma delas compense as limitações das outras. ocê respondeuocê respondeu Existe uma linguagem perfeita para cada projeto, e utilizar outras prejudicará negativamente o projeto. Qualquer linguagem pode ser utilizada em qualquer projeto, mas as limitações dos programadores podem afetar o projeto. A escolha da linguagem de programação influencia o desenvolvimento do projeto. esposta corretaesposta correta Programadores devem sempre optar por uma das linguagens que já conhecem, pois assim serão menos limitados. A+ A A- 21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=584501 8/10 Alternativa está incorreta, pois diferentes linguagens apresentam diferentes recursos e facilidades, bem como suas próprias limitações. Por conta disso, sua escolha irá afetar o desenvolvimento do software. Normalmente não existe uma única linguagem superior a todas as outras, e um mesmo projeto pode ser bem desenvolvido em diferentes linguagens. Cabe aos desenvolvedores estudar qual ou quais dela trarão o melhor “custo x benefício”, e nessa análise cabe até mesmo a aptidão da equipe e a facilidade de contratar desenvolvedores já familiares com a linguagem. Há casos em que é possível utilizar múltiplas linguagens, mas isso nem sempre é necessário, tampouco está necessariamente relacionado a compensar “fraquezas” de uma das linguagens envolvidas. Apesar da adoção de uma linguagem previamente conhecida implicar em ganho de tempo para o desenvolvimento, é importante que os programadores estejam abertos para aprender novas linguagens. Em muitos casos, uma linguagem previamente conhecida pode ser tão limitada para um certo projeto que o tempo de treinamento dos programadores para se adequar a uma linguagem nova será compensado pelos ganhos trazidos por ela. 0,2 / 0,2 ptsPergunta 5 Leia o texto a seguir: “C++ rapidamente se tornou (e se mantém) uma linguagem amplamente utilizada. Um fator para sua popularidade é a disponibilidade de compiladores bons e baratos. Outro é que ele é quase completamente compatível com C (o que significa que, com poucas alterações, programas em C podem ser compilados como programas C++) e, na maioria das implementações, é possível vincular código em C++ com código em C - e, assim, para muitos programadores que já conhecem C é relativamente fácil aprender C++. Por último, na época em que C++ apareceu, quando a programação orientada a objetos começou a despertar amplo interesse, era a única linguagem disponível conveniente para grandes projetos de software A+ A A- 21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=584501 9/10 comercial. Pelo lado negativo, como C++ é uma linguagem muito extensa e complexa, ela sofre de deficiências similares àquelas da linguagem PL/I. C++ herdou muitas das inseguranças de C, tornando-se menos segura que linguagens como Ada e Java.” SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018. Considerando as informações apresentadas sobre a linguagem C++, avalie as afirmações a seguir: I. A disponibilidade de ferramentas foi uma vantagem da linguagem C++. II. O recrutamento de programadores C++ foi difícil na época de seu lançamento. III. A segurança adicional em relação à linguagem C foi um dos grandes benefícios oferecidos pela linguagem C++. IV. A linguagem C++ trouxe recursos desejados pelos desenvolvedores da época. Estão corretas apenas as alternativas: I e IV. Correto!Correto! I e II. I e III. II, III e IV. I, III e IV. A+ A A- 21/12/2022 19:17 Atividade Objetiva 3: Paradigmas de Linguagens de Programação https://famonline.instructure.com/courses/23993/quizzes/111078?module_item_id=584501 10/10 Alternativa correta. A afirmativa I é verdadeira, pois um dos fatores citados pelo texto para a popularidade da linguagem foi a distribuição de compiladores bons e baratos. A afirmativa II é falsa, pois devido à sua grande compatibilidade e semelhança com a linguagem C, já muito popular, os programadores desta última tiveram bastante facilidade em fazer a transição. Além disso, naquela época já havia grande interesse em programação orientada a objetos, mas faltava linguagens comercialmente viáveis, tornando o C++ bastante atraente. A afirmativa III é falsa, pois a linguagem C++ herdou diversas falhas de segurança da linguagem C. Seu grande benefício em relação à linguagem C foi o suporte à programação orientada a objetos. A afirmativa IV é verdadeira, pois na época de seu lançamento, havia grande interesse em programação orientada a objetos. A linguagem C++ incorporou o suporte a esse paradigma a uma linguagem já popular e viável. Pontuação do teste: 0,4 de 1 A+ A A-
Compartilhar