Os eventos são ações realizadas dentro de uma página HTML e, por esse motivo, são vinculados às tags HTML. Dependendo da ação, o evento pode ou não ser chamado. Há eventos realizados com o mouse , outros, com o teclado, e, ainda, outros, vinculados a objetos. Observe a seguinte codificação: Fonte: Elaborada pelo autor. Baseando-se em funcionalidade de eventos, a alternativa que contém a linha com a função ligada a evento e sua descrição correta é:
JavaScript, uma das linguagens mais populares da web , se caracteriza por ter tipagem dinâmica, ser baseada em objetos e orientada a eventos (p. ex., movimentos do mouse , pressionar botão, arrastar e soltar etc.) e realizar avaliação em tempo de execução. Ela é padronizada pela ECMA International (European Computer Manufacturers Association) nas especificações ECMA-2623 e é baseada em ECMA Script. Observe o seguinte código em JavaScript: Fonte: Adaptada de Miletto e Bertagnolli ( 2014, p. 112 ). MILETTO, E. M.; BERTAGNOLLI, S. C. Desenvolvimento de software II : introdução ao desenvolvimento web com HTML, CSS, JavaScript e PHP. Porto Alegre: Bookman, 2014. E-book . De acordo com o código, podemos afirmar que os termos “do” e “endereco” são respectivamente:
É intrínseco às tecnologias computacionais e de desenvolvimento de software evoluírem constantemente, de acordo com as necessidades da sociedade. Mas uma das áreas que certamente mudou drasticamente nos últimos 20 anos foi o desenvolvimento para web , pois no começo era apenas HTML puro, com links e caixas de texto piscantes, e atualmente podemos implementar componentes interativos, jogos e sistemas completos para serem usados na palma das mãos, rodando em navegadores ou aplicativos. Considerando essa grande evolução tecnológica, vários perfis profissionais são necessários para o desenvolvimento das soluções web atualmente, em que podemos afirmar que: I. Um profissional que sabe programar interface responsiva e agradável ao usuário para aplicativos Android e iOS, bem como para rodar diretamente nos navegadores de Internet, ( browser ) é um desenvolvedor full-stack PORQUE II. esse é o perfil de desenvolvedor web que sabe trabalhar tanto com aplicativo quanto site , seja no front-end ou back-end . Por isso, é mais generalista e conhece bem os processos de desenvolvimento de software , sistemas de hospedagem, redes, banco de dados, segurança de dados, UX, entre outros conceitos acerca da completude do desenvolvimento web . Analisando as asserções anteriores, conclui-se que:
Segundo Zabot e Matos (2020), para auxiliar na programação de aplicações web , é necessário conhecer linguagens, bibliotecas, frameworks e ferramentas. Uma linguagem é um método padronizado para se comunicar com o computador. É importante distinguir entre linguagem de _______ (tipo HTML), na qual definimos elementos, e linguagem de _______ (tipo JavaScript), utilizada para definir programas. Já _______ é uma coleção de códigos implementados, empregada para facilitar a escrita do código. E framework é _______ que fornece modelos com diferentes funcionalidades já implementadas, que podem ser utilizadas ou não pelo desenvolvedor. ZABOT, D; MATOS, E. Aplicativos com Bootstrap e Angular : como desenvolver apps responsivos. São Paulo: Érica, 2020. Preencha as lacunas escolhendo a alternativa CORRETA:
Replit é um site que disponibiliza ambiente interativo on-line para linguagens de programação. Pode ser utilizado com diferentes linguagens, como JavaScript, C e Python, sem demandar instalação no próprio computador. É ótimo para testar e praticar uma linguagem de programação e possui suporte para HTML, CSS e JavaScript, contando com as possibilidades de organizar uma pasta de trabalho com subpastas e criar arquivos de tipo diferente. Sobre essa e outras ferramentas relacionadas ao desenvolvimento web , avalie as afirmações a seguir. I. JS Bin é uma ferramenta que mostra em tempo real a renderização do código digitado, que fica automaticamente salvo caso o usuário esteja cadastrado. II. O Replit não demanda “implantar” projetos em nenhum serviço: eles estarão instantaneamente disponíveis a você assim que começar a digitar. III. Focando o desenvolvimento web , a ferramenta Replit não possui suporte a linguagens como Java e Python, limitando-se à tríade HTML, CSS e JavaScript. Está correto que se afirma em:
O Google Collaboratory corresponde a um serviço de armazenamento em nuvem, com o objetivo de criar e executar códigos em Python diretamente em um navegador ( browser ) de Internet. Um dos principais benefícios desse serviço é permitir o desenvolvimento de aplicações sem a necessidade da instalação de softwares na máquina, bastando ter uma conta de usuário Google para acessar o ambiente on-line . Assinale a alternativa que apresenta outras vantagens de uso do Google Colab:
Python é uma linguagem de programação de alto nível e multiparadigma, criada por Guido van Rossum em 1989, que permite o desenvolvimento de algoritmos para resolução de problemas por meio de programas computacionais. Assinale a alternativa que apresenta outras características do Python:
As linguagens de programação podem ser implementadas por três métodos gerais: compilação, interpretação pura ou implementação híbrida. Sobre essas implementações, avalie as seguintes afirmações: I. A implementação híbrida é utilizada pela maioria das linguagens de programação de alto nível, como C, COBOL, C++, C# e PHP, pois esse método tem como principal vantagem a execução rápida dos programas. II. A implementação baseada em compilação consiste em programas que são traduzidos para a linguagem de máquina, que pode ser executada diretamente no computador. III. A interpretação pura é de dez a cem vezes mais rápida que programas compilados, pois a decodificação das sentenças em linguagem de máquina não precisa ser traduzida por um compilador. IV. Na implementação híbrida, os programas de linguagens de alto nível são traduzidos para uma linguagem intermediária que facilita a interpretação. É correto afirmar que:
O código em PHP é interpretado no lado do servidor após a requisição de um documento HTML ao qual ele está embutido ou relacionado. Geralmente o PHP, após interpretado, produz um HTML, portanto um navegador não observa um código PHP. Outras linguagens passaram a ser amplamente utilizadas na programação web e na ciência de dados, como Python. Considerando o apresentado, avalie se são (V) verdadeiras ou (F) falsas as afirmativas a seguir. I. ( ) Sintaticamente o PHP é semelhante a JavaScript em sua aparência, em sua natureza de cadeias e tipagem dinâmica de variáveis, além de combinações de elementos JavaScript e Perl. II. ( ) Python fornece suporte a muitos sistemas de gerenciamento de bancos de dados, sendo linguagem útil para construir programas que precisam de acesso web e a bases consistentes. III. ( ) Python é orientada a eventos, procedural, englobando capacidades de padrões Perl com a tratativa de exceções, usando coleta de lixo e removendo elementos desnecessários da memória. IV. ( ) Python inclui suporte para concorrência com suas linhas de execução ( threads ) e suporte para programação de rede com seus soquetes. Tem também mais suporte para programação funcional que outras linguagens de programação não funcionais. Assinale a alternativa que apresenta a sequência correta.
Considerando a genealogia das linguagens de programação de alto nível da figura abaixo (Sebesta, 2018), percebe-se que diversas delas são influenciadas por suas predecessoras, bem como buscam resolver problemáticas existentes nas linguagens anteriores. Fonte: SEBESTA (2018) Referência completa: SEBESTA, R. W. Conceitos de linguagens de programação . Porto Alegre: Bookman, 2018. A partir do que foi apresentado, analise as afirmativas a seguir: I. A linguagem COBOL originou novos conceitos, sendo alguns deles utilizados em outras linguagens posteriores. Por exemplo, foi a primeira linguagem a consentir nomes realmente conotativos, pois permitia nomes longos (até 30 caracteres) e caracteres conectores de palavras (hifens). II. A linguagem BASIC, assim como o COBOL, foi amplamente utilizada nos meios acadêmicos, mas não se tornou popular no uso para microcomputadores, pela dificuldade de aprendizado para iniciantes. III. A linguagem C++ evoluiu a partir da C, com uma série de modificações para melhorar seus recursos imperativos e adicionar construções para dar suporte à programação orientada a objetos. IV. A linguagem JAVA evoluiu a partir da C++, em que foram removidas algumas construções, outras modificadas e adicionadas. O sucesso dessa linguagem foi sem precedentes, pois os programadores gostaram do projeto e passaram a utilizá-lo em larga escala. Está correto o que se afirma em:
Segundo Booch (1987), a partir da década de 1970, foi desenvolvido o conceito denominado “ciclo de vida de software ”, em que a codificação foi destinada a um papel menor e a manutenção foi reconhecida como parte importante do ciclo de desenvolvimento. A facilidade de manutenção é fortemente determinada pela legibilidade dos códigos, sendo que essa característica passou a ser tomada como muito importante para a avaliação da qualidade dos programas e das linguagens de programação. BOOCH, G. Software Engineering with Ada . 2. ed. Redwood City: Benjamin Cummings, 1987. Considerando esse contexto, assinale a alternativa que descreve, adequadamente, a mudança de paradigma ocorrida:
Uma classe é uma unidade básica da Programação Orientada em Objetos (POO). Ela é responsável por encapsular atributos estáticos e comportamento dinâmicos numa caixa. Sobre os conceitos de classe, analise as afirmativas a seguir. I. A classe é um modelo usado para criar objetos, também chamados de instâncias. II. A comunicação com os objetos é feita pelo uso da interface pública do objeto. III. A complexidade envolvida na realização de uma tarefa fica escondida dentro da classe. Está correto o que se afirma em:
A classe é um modelo usado para criar objetos ou instâncias cuja comunicação ocorre através de interface. Ao usar scanf() para ler a entrada de string , ele para de ler quando encontra espaço em branco, nova linha ou fim de arquivo. Aliás, é usado para ler a entrada de qualquer tipo de dados. Utilizando a linguagem de string , podemos desenvolver vários comandos e observar as respostas que eles nos dão. Assim, pode-se observar que os sinais de % são um comando que permitirá essa leitura. A seguir, observe o comando na linguagem C. #include<stdio.h> int f(int *a, int n) { if(n <= 0) return 0; else if(*a % 2 == 0) return *a + f(a+1, n-1); else return *a - f(a+1, n-1); } int main() { int a[] = {12, 7, 13, 4, 11, 6}; printf("%d", f(a, 2)); getchar(); return 0; } Qual a o tipo da variável a?
Os Tipos Abstratos de Dados (TAD) existem nas linguagens de programação para a criação de tipos de dados que não foram previstos na criação dessa linguagem. São tipos de dados criados no próprio desenvolvimento de alguma aplicação para resolver uma necessidade específica. Os Tipos Abstratos de Dados (_________) são estruturas de dados que representam os ____________ que não foram desenvolvidos no núcleo das(os) _______________ e que, normalmente, são utilizados para alguma necessidade específica no desenvolvimento de aplicações. Preencha as lacunas escolhendo a alternativa CORRETA.
A unidade básica da Programação Orientada a Objetos (POO) é a classe, que encapsula atributos (variáveis) e métodos (funções) em uma camada de abstração . Indique a alternativa que melhor define uma classe:
Na linguagem computacional, uma prática rotineira é a compilação, ela é usada em vários tipos de linguagem para tornar a linguagem real acessível para uma determinada máquina. Quando se usa a compilação em sistema Windows, a extensão utilizada em mapas e objetos tridimensionais é:
Para remover um nó de uma lista linear encadeada, basta reorganizar o encadeamento dos nós anterior e posterior ao nó a ser removido. O nó imediatamente anterior ao nó a ser excluído deve apontar para o nó que seguia o nó excluído na lista. Se o nó removido for o primeiro nó, o endereço do segundo nó deve ser copiado para o ponteiro de início da lista. Se o nó removido for o último nó, o nó anterior deve ter seu campo de elo definido como nulo. Depois de reorganizar o encadeamento dos nós, garantindo assim a continuidade da lista, a posição ocupada pelo nó removido fica livre. Com relação à remoção de elementos para o passo a passo do desenvolvimento do algoritmo, assinale a alternativa CORRETA .
Em uma lista linear em que a ordem lógica dos elementos não é a mesma da ordem física, cada elemento tem um sucessor e um predecessor. Considere a sequência de comandos a seguir. Fonte: Elaborado pelo autor. Após a codificação do código C, aplique a alternativa com os comandos que serão mostrados na tela.
O processo de exclusão de um nó de uma lista linear altera apenas as cadeias de nós antes e depois do nó ser excluído: o nó imediatamente anterior apontará para o próximo nó a ser excluído da lista. Se o nó liberado for o primeiro nó, o endereço do segundo nó deve ser copiado para o rótulo inicial da lista. Se for o último, o campo anterior deve conter um campo de link vazio. Após essa sequência que garante a continuidade da lista encadeada, a posição ocupada pelo nó deletado é liberada. O processo de remoção de um nó da lista encadeada é realizado simplesmente alterando a conexão do nó anterior para o nó posterior, criando, assim, um novo elo, logo o nó anterior ao nó removido irá se vincular para o seguinte nó ao que foi excluído. Fonte: Elaborada pelo autor Com relação à exclusão de listas encadeadas, assinale a alternativa CORRETA
Em uma lista encadeada, ou lista linear, em que a ordem lógica dos elementos não é a mesma da ordem física (elementos espalhados na memória), cada elemento precisa indicar em que endereço seu sucessor pode ser encontrado, de modo a manter a ordem lógica. Assinale a alternativa que apresenta o código correto para inserir elementos em linhas encadeadas.
O jeito mais fácil de desenvolver _____________ é usando diretamente o endereço físico do próximo _________ na lista. Para isso, as linguagens de programação usam variáveis que guardam os endereços físicos, normalmente chamados de ____________. Preencha as lacunas escolhendo a alternativa CORRETA:
Analise o questionamento a seguir: “É possível, utilizando a linguagem C, escolher se um número é positivo ou negativo e com casas decimais? Em caso afirmativo, podemos usar qual declaração?" A partir do que foi apresentado, assinale a alternativa correta.
A contiguidade física é intuitiva e natural para estruturas que representam uma relação lógica de ordenação linear entre nós. No entanto, existem estruturas que representam outras relações entre nós, como relações de subordinação, para as quais essa representação física não é intuitiva. Considerando algumas vantagens da representação das estruturas de dados por contiguidade física, avalie as afirmativas a seguir. I. Estruturas simples – É adequado para a realização de estruturas simples, principalmente aquelas que utilizam uma sequência física para representação. II. Privacidade – Qualquer nodo não pode ser diretamente acessado a qualquer momento, é necessário um tipo de chave para realizar o acesso. III. Representação – Algumas estruturas de dados possuem uma representação lógica semelhante à contiguidade física, simplificando desta maneira a representação dos dados. IV. Transferência de dados – Como todos os dados estão alocados em bloco, a transferência de dados entre memória principal e secundária fica facilitada. Está correto que se afirma em:
Segundo Edelweiss e Galante (2014, p. 36), “Uma vez que o TAD foi caracterizado, o próximo passo é escolher sua estrutura de representação, ou seja, a estrutura de dados propriamente dita que irá suportar as operações definidas. A representação será uma coleção de campos primitivos ou mesmo uma estrutura complexa formada por vários campos primitivos.”. EDELWEISS, N.; GALANTE, R. Estruturas de dados . Porto Alegre: Bookman, 2014. 18 v. Fonte: Elaborada pelo autor Em uma classe em código C++, existem alguns campos de diferentes tipos primitivos. Assinale a alternativa que apresenta a melhor forma que resume o significado de classes.
Sobre a linguagem C++, muitas vezes, podemos usar estratégias para substituir algum item de outra linguagem, como a C, por exemplo. Fonte: Elaborado pelo autor. Nesse caso, podemos substituir as funções apresentadas, da linguagem C, por quais itens da linguagem C++, respectivamente?
A função hash atribui um valor para cada chave no intervalo de 0 a N-1, no qual N será a capacidade total do arranjo. Algo que seja provável de acontecer numa função hash é as colisões, e para ser uma boa função hash , é necessário produzir um baixo números de colisões. Com base nesses aspectos, assinale a alternativa que descreve a melhor forma de ter uma boa função hash com baixas colisões.
É dada a implementação da função de hash abaixo apresentada na videoaula. Considere que nesta implementação estamos simplesmente garantindo que não colocaremos um registro fora dos limites do vetor mas não há mecanismos de controle de colisões. Indique qual é alternativa correta que exemplifica porque Pedro e Paulo não aparecem no vetor depois de inserir todos os alunos, como mostra a Figura 1. Apresentação do vetor após as inserções: Figura 1. Resultado das inserções
Seja f a função de espalhamento ou mapeamento e x a chave, o endereço de memória será atribuído por f(x). Os valores serão distribuídos em um vetor de N posições, sendo formado em um intervalo entre 0 e N-1. Sobre a utilização da função de mapeamento ou função hash , avalie se são (V) verdadeiras ou (F) falsas as afirmativas a seguir. I. ( ) Utilizada para guardar uma coleção de strings. II. ( ) Utilizada para obter os registros de maneira eficiente em tempo constante. III. ( ) Utilizada para acessar os arquivos no computador. IV. ( ) Utilizada para ter acesso a uma determinada aplicação. Assinale a alternativa que apresenta a sequência CORRETA.