Baixe o app para aproveitar ainda mais
Prévia do material em texto
Teste de Conhecimento avalie sua aprendizagem O ENIAC foi desenvolvido na década de 1940 com o objetivo de executar cálculos balísticos. Sobre as linguagens de programação utilizadas neste computador, é correto o que se afirma em: Avalie as assertivas sobre as linguagens de programação (LP) I. As linguagens de programação apenas influenciam e sofrem influência na fase de programação de um processo de desenvolvimento de software II. O programador que conhece bem a estrutura de uma LP tende a ter maior facilidade para aprender novas linguagens, em função de habilidades desenvolvidas. III. A abstração facilita a vida do programador, que precisa conhecer cada vez menos a cerca do ambiente onde a linguagem opera (composto por sistema operacional e hardware) IV. Um comando em uma linguagem de alto nível executa mais que uma operação primária do hardware Com base em sua análise, marque a opção que apresenta apenas as assertivas corretas. PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO Lupa Calc. CCT0831_A1_201910004561_V1 Aluno: ALEKSANDER ALVES DE MELO Matr.: 201910004561 Disc.: PARADIG.LING.PROG. 2021.1 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Eram utilizadas linguagens de programação procedurais. Eram utilizadas linguagens de programação orientadas a objetos. Eram utilizadas linguagens de programação descritivas. Eram utilizadas linguagens de programação imperativas. Não eram utilizadas linguagens de programação. Explicação: Desenvolvido na época da Segunda Guerra Mundial, o primeiro computador, denominado ENIAC, realizava com precisão cálculos balísticos. Ocupando um espaço equivalente a 270 metros quadrados, ele pesava 30 toneladas. Nessa época, as instruções para os cálculos não eram especificadas em uma LP: cada instrução era identificada por diferentes conexões de fios, relês e sequências de chaves. 2. II e IV apenas II e III apenas I, II, III e IV III e IV apenas Assinale como se chama o critério de avaliação de Linguagens de programação, que diz: - facilidade com que os programas podem ser lidos e entendidos , pelas pessoas que não necessariamente participaram do desenvolvimento. Considere os seguintes Fatos (F1,F2,F3,F4) F1. Predominio dos computadores de grande porte (mainframe) e o processamento centralizado F1. Vieram as nuvens e o processamento em data centers, localizados fisicamente distantes do ambiente corporativo F3. Com o advento da internet, as linguagens se segmentam: as rodam no lado cliente e as que executam no lado do servidor. F4. Proliferaram as redes de computadores Considere os seguintes momentos, na linha do tempo (a,b,c,d) a. Anos 60/70 b. Anos 80 c. Anos 90 d. Anos 2000 Assinale a UNICA alternativa que apresenta a correta correlação entre os 4 Fatos (F1 a F4) e os 4 momentos na linha do tempo II, III e IV apenas Explicação: I. As linguagens de programação apenas influenciam e sofrem influência na fase de programação de um processo de desenvolvimento de software - FALSO, as LPs influenciam quase todas as fases do processo de desenvolvimento. Uma fases mais, outras menos. II. O programador que conhece bem a estrutura de uma LP tende a ter maior facilidade para aprender novas linguagens, em função de habilidades desenvolvidas. - VERDADE III. A abstração facilita a vida do programador, que precisa conhecer cada vez menos a cerca do ambiente onde a linguagem opera (composto por sistema operacional e hardware) --> VERDADE IV. Um comando em uma linguagem de alto nível executa mais que uma operação primária do hardware --> VERDADE 3. Confiabilidade Capacidade de escrita Legibilidade Expressividade Manipulação de exceção Explicação: A legibilidade diz respeito a facilidade que a LP propicia para ler e consequentemente entender progrmas escritos por tericeiros (ou o próprio) 4. F1-d; F2-a; F3-c; F4-b F1-a; F2-d; F3-c; F4-b F1-a; F2-d; F3-b; F4-c F1-b; F2-d; F3-c; F4-a F1-a; F2-c; F3-d; F4-b Explicação: Precisa conhecer a evolução dos fatos Mainframe, redes, internet, nuvem A característica de uma linguagem de programação que representa quão facilmente uma linguagem pode ser usada a fim de criar programas para o domínio de problema escolhido é conhecida como: 5. Aliasing Capacidade de escrita Legibilidade Facilidade Confiabilidade Explicação: A capacidade de escrita, ou redigibilidade, representa quão facilmente uma linguagem pode ser usada a fim de criar programas para o domínio de problema escolhido. Não Respondida Não Gravada Gravada Exercício inciado em 23/05/2021 11:54:28. Dentre as formas de conversão de programas de diferentes linguagens de programação, avalie as propriedades abaixo descritas a. Não traduz instruções que nunca são executadas b. Execução mais lenta que outros processos de conversão Tais propriedades caracterizam que tipo de conversão? Avalie as assertivas a seguir no que se refere aos conceitos pertinentes a classificação das Linguagems de Programação em níveis: I. O programa escrito na linguagem assembly ao ser convertido para o respectivo código de máquina, terá paridade 1:1, ou seja para 1 comando assembly teremos 1 comando de máquina. II. O programa escrito em uma linguagem de 3a geração, ao ser convertido para o respectivo código de máquina, terá paridade 1:1, ou seja para 1 comando em linguagem de alto nível de 3a geração teremos 1 comando de máquina. III. As linguagens de 4a e 5a gerações são denominadas declarativas, pois descreve-se a solução do problema e não especifica- se como resolver o problema, tal qual ocorre nas linguagens de 3a geração. Com base em sua análise das assertivas, assinale a alternativa que apresenta APENAS as assertivas CORRETAS. Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Tradutor Linkeditor Interpretador puro Compilador Montador Explicação: No processo de "Interpretação Pura" ocorre a tradução e execução, imediata, do comando na linguagem de alto nível, dessa forma - apenas traduz o comando que será executado - e a execução é mais lenta, pois não há otimização 2. I e III III II I, II e III I Explicação: I. O programa escrito na linguagem assembly ao ser convertido para o respectivo código de máquina, terá paridade 1:1, ou seja para 1 comando assembly teremos 1 comando de máquina. - Verdade II. O programa escrito em uma linguagem de 3a geração, ao ser convertido para o respectivo código de máquina, terá paridade 1:1, ou seja para 1 comando em linguagem de alto nível de 3a geração teremos 1 comando de máquina. - FALSO, a paridad é 1:N, pois para cada comando em linguagem de 3a geração, teremos N comandos em linguagem de máquina III. As linguagens de 4a e 5a gerações são denominadas declarativas, pois descreve-se a solução do problema e não especifica-se como resolver o problema, tal qual ocorre nas linguagens de 3a geração. --> Verdade O processo de tradução é realizado por uma série de programas. O programa que gera o código executável é o: Os conceitos de tipos de dados e variáveis foram introduzidos nas linguagens de: O processo de tradução é erroneamente chamado de compilação. Qual a função do compilador no processo de tradução. 3. carregador compilador interpretador montador ligadorExplicação: O ligador (ou link editor) junta o código-objeto com as bibliotecas necessárias (outros objetos, rotinas do SO, dlls etc.) para gerar o programa executável. 4. 2ª geração 1ª geração 3ª geração 4ª geração 5ª geração Explicação: Linguagens de 3ª geração são as chamadas de alto nível, pois uma única instrução em uma linguagem inteligível pelo homem (próximo da humana) pode corresponder a muitas instruções em linguagem de máquina. Linguagens de 3ª geração são linguagens de aplicação geral que se caracterizam por suportarem: Variáveis; Tipos de dados simples (caractere, inteiro, real e lógico) e estruturados (matrizes, vetores, registros); Instruções condicionais e repetitivas; Programação modular (funções e procedimentos). 5. O compilador lê o programa fonte escrito em simbólica (Assembly) e gera o código de máquina executável O compilador lê o programa fonte escrito em Linguagem de alto nível e gera o código de máquina executável O compilador traduz um programa fonte escrito em linguagem de alto nível, em um código escrito em linguagem simbólica (Assembly) ou em linguagem de máquina ainda não executável O compilador converte um código executável não relocável em código execuável relocável. O compilador junta vários códigos objetos em um úncico programa executável Explicação: O compilador é na verdade o primeiro passo do processo de traduçao de uma linguagem de alto nível em linguagem de máquina executável. O compilador recebe um programa escrito em linguagem de alto nível e o converte para uma linguagem simbólica, em geral assembly ou linguagem de maquina Abstração, encapsulamento, herança e polimorfismo são características do paradigma: Avalie as assertivas a seguir, considerando a classificação de linguagens de programação, por Domínios da programação. Na coluna 1, apresentamos os domínios de programação. Na coluna 2, apresentamos as linguagens de programação. Correlacione as colunas e selecione a alternativa que apresenta a correta correlação entre os domínios de programação da Coluna 1 com as respectivas linguagens de programação da Coluna 2. Pode haver item da coluna 2 que não tenha correspondência na Coluna 1. Coluna 1 Coluna 2 I.Inteligência Artificial a.PHP II.Desenvolvimento Mobile - porção servidor b. JAVAScript III. Desenvolvimento WEB - porção cliente c. Prolog d. Pascal Assinale a UNICA alternativa que apresenta a correta correlação entre as colunas 1 e 2. Assinale a linguagem de programação, dentre as opções apresentadas, que pode ser enquadrada em mais de 1 paradigma. Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Concorrente Orientado a objetos Estruturado Funcional Lógico Explicação: A orientação a objetos surgiu como solução a esses problemas, permitindo, graças a propriedades como abstração, encapsulamento, herança e polimorfismo, uma maior organização, reaproveitamento e extensibilidade de um código. Isso foi capaz de propiciar programas mais fáceis de serem escritos e mantidos. 2. I-c; II-a; III-b; I-a; II-c; III-b; I-b; II-a; III-c; I-a; II-b; III-c I-c; II-b; III-a; Explicação: PHP é usada em ambiente mobile para programação do lado servidor prolog é LP para programação de aplicações de I.A. (inteligência artificial). JavaScript usada para programação de aplicações web, do lado cliente (navegadores) 3. Sobre o paradigma orientado a objeto, avalie as assertivas: I. Visa maior produtividade na programação, aumentando o reuso. II. O conceito de classe e objeto, nos permite dizer que "o objeto é uma instância de uma classe". III. JAVA e C++ são umas das mais populares linguagens que pertencentes ao paradigma orientado a objeto. IV. O paradigma orientado a objeto chega no mercado num momento onde os sistemas tornaram--se mais simples e menos integrados. Marque a alternativa que apresenta APENAS as assertivas CORRETAS Avalie as assertivas a seguir, considerando a classificação de linguagens de programação, por Domínios da programação. Na coluna 1, apresentamos os domínios de programação. Na coluna 2, apresentamos as linguagens de programação. Correlacione as colunas e selecione a alternativa que apresenta a correta correlação entre os domínios de programação da Coluna 1 com as respectivas linguagens de programação da Coluna 2. Pode haver item da coluna 2 que não tenha correspondência na Coluna 1. Coluna 1 Coluna 2 I.Científico a. COBOL II. Comercial b. C III. Programação de sistemas c. FORTRAN d. PROLOG Smalltalk Pascal JAVA Prolog COBOL Explicação: JAVA pode ser considerada no paradigma: estruturado, orientado a objeto e concorrente. As demais classicam-se em apenas 1 paradigma - Cobol, Pascal - estruturado - Smalltalk - orientado a objeto - Prolog - paradigma lógico 4. II e III I e III I, II e IV I e IV I,II e III Explicação: I. Visa maior produtividade na programação, aumentando o reuso. - Verdade II. O conceito de classe e objeto, nos permite dizer que "o objeto é uma instância de uma classe". - Verdade III. JAVA e C++ são umas das mais populares linguagens que pertencentes ao paradigma orientado a objeto - Verdade. IV. O paradigma orientado a objeto chega no mercado num momento onde os sistemas tornaram--se mais simples e menos integrados.- FALSO, os sistemas nessa epóca tornaram-se maiores, mais complexos e mais integrados 5. Assinale a UNICA alternativa que apresenta a correta correlação entre as colunas 1 e 2. I-c; II-a; III-b; I-a; II-c; III-b I-a; II-b; III-c I-b; II-a; III-c; I-c; II-b; II-a Explicação: Fortran - processamento centífico dos anos 60 Cobol - típica de processamento comercial das décadas de 70 e 80 C - Unix foi escrito em C, que tem comandos que faciliam acesso a hardware. Considere uma Linguagem de Programação, XPTO, que implemente o escopo estático para as amarrações, avalie as assertivas e a relação de causa e efeito entre elas. I. Na LP XPTO, que implementa o escopo estático de visibilidade, o primeiro local onde busca-se declaração de determinada variável é na unidade corrente. Em seguida procura-se na unidade mais externa imediata. PORQUE II A regra de visibilidade, em uma LP de escopo estático é de fora para dentro Com base em sua análise, assinale a única alternativa correta. Avalie as assertivas a seguir, quer versão sobre o conceito de amarração. I. O conceito de amarração se dá na medida em que associamos identificadores as suas propriedades, como por exemplo seu valor. II. A associação de uma variável ao domínio de valores que a variável poderá assumir, também chamamos de amarração III.A associação de uma constante com o seu valor, também chama-se amarração. IV. A amarração sempre acontece em tempo de compilação Com base em sua análise das assertivas, assinale a UNICA alternativa que contém APENAS as assertivas CORRETAS. Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. As duas assertivas são verdadeiras e a segunda justifica a primeira As duas assertivas são falsas A assertiva I é verdadeira e a II é falsa As duas assertivas são verdadeiras e a segunda não justifica a primeira A assertiva I é false e a II é verdadeira Explicação: II A regra de visibilidade, em uma LP de escopo estático é de fora para dentro --> Falso a regra é de "dentro para fora" 2. I e II III III e IV I, II e IV I, II eIII Explicação: I. O conceito de amarração se dá na medida em que associamos identificadores as suas propriedades, como por exemplo seu valor. --> Verdade II. A associação de uma variável ao domínio de valores que a variável poderá assumir, também chamamos de amarração --> Verdade III.A associação de uma constante com o seu valor, também chama-se amarração. --> Verdade IV. A amarração sempre acontece em tempo de compilação --> Falso, pode ser em tempo de compilação, em tempo de projeto da LP, em tempo de implementação do compilador, na fase de ligação, dentre outras opções. A amarração da atribuição de valor a uma variável ocorre tempo de ____________________ Assinale a alternativa que preenche corretamente a frase acima. Considere as assertivas I e II a seguir e a possível relação de causa e efeito entre elas. I.Palavras-chave das linguagens de programação não devem ser usadas como identificadores em programas. PORQUE II. Afeta a legibilidade do programa, na medida em que pode confundir o leitor. Com base em sua análise das assertivas I e II, assinale a UNICA resposta correta. 3. carga do programa projeto da linguagem compilação implementação do compilador execução Explicação: A atribuição de valor a uma variável é um comando, logo sua ação será durante a execução do programa. 4. A assertiva I está correta e a assertiva II está errada As assertivas I e II estão erradas. As assertivas I e II são verdadeiras e a segunda justifica a primeira. As assertivas I e II são verdadeiras e a segunda não justiifca a primeira. A assertiva I está errada e a assertiva II está correta Explicação: As LPs que permitem que suas palavras reservadas sejam usadas para outras finalidades, podem confunfir os usários e consequetemente afetar a legibilidade do programa: afinal um identificador terá o mesmo nome de outro elemento que a LP reservou. Dentre as opções a seguir selecione a verdadeira a respeito do tipo de dado estruturado. Avalie as assertivas sobre linguagens de Programação (LP) I. O sistema de tipos de uma LP pode ser definido como: Sistema de tipo = Tipo de dado + Valores + Operações II. Um bom sistema de tipos confere confiabildade a LP III. Confiabilidade é um valioso quesito de avaliação de uma LP IV. Apenas LPs estaticamente tipadas podem ser consideradas LPs fortemente tipadas. Com base em sua análise, asssinale a UNICA alternativa com TODAS as assertivas CORRETAS Assinale a alternativa que é um tipo de dado composto ou estruturado Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. São tipos que aceitam apenas valores constantes. Formam a base para o sistema de tipos, permitindo a construção de novos tipos a partir deles. Formado a partir de tipos de dados simples. São tipos que aceitam apenas valores lógicos. São tipos numéricos, como inteiro e real. Explicação: Os tipos de dados estruturados (ou compostos) são tipos são formados por tipos de dados simples ou estruturados: Vetor; Registro; Matriz; Arquivo. 2. I e IV II e IV I, II e III I e III II, III e IV Explicação: I. O sistema de tipos de uma LP pode ser definido como: Sistema de tipo = Tipo de dado + Valores + Operações - VERDADE II. Um bom sistema de tipos confere confiabildade a LP --> VERDADE III. Confiabilidade é um valioso quesito de avaliação de uma LP --> VERDADE IV. Apenas LPs estaticamente tipadas podem ser consideradas LPs fortemente tipadas. --> FALSO, pois Lps dinamicamente tipadas e as híbridas (como JAVA) também podem ser classificadas como fortemente tipadas 3. É característica de uma linguagem de programação fortemente tipada: 1. Sobre o conceito de variáveis e constantes e como as LPs os implementam, avalie: I. Dentre as propriedades de uma variável, o nome, tipo de dado são atribuídos pelo programador e o endereço de memória será atribuído pelo sistema operacional. II. O tempo de vida de uma variável determina o trecho de programa em que ela pode ser referenciada. III. Cada variável ou constante será associada a uma posição de memória, antes ou durante a execução do programa no qual são referenciadas, conforme o tempo de amarração IV. As constantes têm as mesmas propriedades das variáveis, exceto o fato de não mudarem de valor. Com base em sua análise, marque a opção que apresente TODAS as assertivas CORRETAS Vetor Numérico com casas decimais caracter lógica Inteiro Explicação: o vetor é uma estrutura de dados (composta), contendo N elementos do mesmo tipos 4. Detecção de erros em tempo de compilação. Definição do tipo da variável em tempo de execução. Permite a utilização de apenas tipos simples de dados. Ausência de tipos enumerados. Não permitir a criação de tipos compostos. Explicação: Uma linguagem será considerada fortemente tipada se o seu sistema de tipo permitir que todos os erros sejam detectados tanto em tempo de compilação como em tempo de execução. 5. II, III e IV I e IV II e III I,II,III e IV I , II e III Explicação: I. Dentre as propriedades de uma variável, o nome, tipo de dado são atribuídos pelo programador e o endereço de memória será atribuído pelo sistema operacional. --> Verdade II. O tempo de vida de uma variável determina o trecho de programa em que ela pode ser referenciada. --> Verdade III. Cada variável ou constante será associada a uma posição de memória, antes ou durante a execução do programa no qual são referenciadas, conforme o tempo de amarração --> Verdade IV. As constantes têm as mesmas propriedades das variáveis, exceto o fato de não mudarem de valor. --> Verdade Nas linguagens de programação tradicionais a recursividade dos dados é implementada por intermédio de que tipo de dados? A categoria de vetores que possui maior eficiência é: Considere a seguinte declaração na linguagem C; int vet[7]; O que estamos declarando ? Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Ponteiro União Registro Conjunto Vetor Explicação: A implementação do princípio da recursividade para dados é feita em muitas LPs pelo tipo de dado ponteiro. 2. Dinâmico Semiestático Semidinâmico Estático Semivetor Explicação: Vetores estáticos são definidos no início da execução e ficam em uma posição fixa chamada Base, permanecendo ali por toda a execução. Sua grande vantagem é a eficiência. 3. Um vetor de 7 posições (1 a 7), onde em cada posição temos um valor numérico com casas decimais. Um vetor de números inteiros, onde o valor 7 é atribuído a cada posição do vetor Um registro de 7 posições (0 a 6), onde em cada posição temos um valor inteiro. Um vetor de 7 posições (0 a 6), onde em cada posição temos um valor inteiro. Um vetor de 7 posições (1 a 7), onde em cada posição temos um valor inteiro. Explicação: Int vet[7] int - informa que o vetor é de números inteiros Considere que a variável PONT é um ponteiro para um dado inteiro. Sobre o conteúdo de PONT, podemos afirmar Considere a seguinte de declaração em PASCAL, de uma matriz Type TMatriz = array [1..5,1..5] of integer; Var Matriz : TMatriz; Assinale o comando que atribui o valor 7 a posição da matriz correspondente ao encontro da linha 2 com a coluna 3 Abaixo um tipo de dado composto ou estruturado. Struct Pessoa = { Char primeiro[20]; char meio[20];char Ultimo[20]; } Como se chama esse tipo de dado, represenatado acima pelo STRUCT na linguagem C? vet = nome do variável do tipo vetor [7] = quantidade de elementos ou posições do vetor, começando com índice 0 e terminando no de indice 6 4. O conteúdo de PONT é sempre nulo Não existe tipo de dado que seja ponteiro para um inteiro Seu conteúdo é a posição de memória onde encontra-s o dado inteiro. Seu conteúdo é o dado inteiro A variável ponteiro não tem conteúdo Explicação: O nome ponteiro advém de apontar... A variável que é um ponteiro, tém como conteúdo o endereço da posição de memória onde está armazenado o dado inteiro. 5. Matriz[2], matriz[3] = 7; Tmatriz [2,3] = 7; Matriz[3,2]=7; Matriz[2] [3] := 7; Matriz[2,3]:=7; Explicação: A variável é Matriz A posição correspondete ao encontro da linha 2 com a coluna 3: Matriz[2,3] Atribuição do valor 7 --> Matriz[2,3] := 7; 6. vetor Registro (produto cartesiano) Conjunto Matriz Tipo enumerado Explicação: Tipo de dado heterogêneo, Combina valores de tipos de dados diversos, em tuplas Nome = registro ou produto cartesiano Em uma avaliação de uma expressão, o resultado pode ser determinado sem avaliar todos os operandos/operadores. Como se chama essa técnica de avaliação de expressões, implementada por algumas linguagens de programação? O efeito colateral em uma expressão ocorre quando: Muitas vezes, dependendo da LP e da lógica, a avaliação de uma expressão requer conversão de tipos de dados. Assinale a UNICA alternativa que responde corretamente aos itens I. Como se chama a conversão que: converte-se de um tipo de maior grandeza/precisão para um de menor grandeza/precisão? II. De um exemplo dessa conversão. Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Encurtamento de expressõs Avaliação semi-circuito de expressões Curto circuito de expressões Avaliação rápida de expressões Curta metragem de expressões Explicação: Em uma avaliação curto-circuito de uma expressão, o resultado pode ser determinado sem avaliar todos os operandos/operadores. 2. O resultado é determinado antes de avaliar toda a expressão. É alterado o valor de um operando que não faz parte da expressão. A operação realizada não é a desejada. A precedência é invertida. É alterado o valor de um ou mais operandos. Explicação: Efeito colateral é quando a expressão altera o valor de um ou mais operandos que fazem parte da expressão ou quando há uma passagem de parâmetros por referência. 3. I. Alargamento; II. converter de int para float I. Estreitamento; II. converter de int para float I. Encurtamento; II. converter de string para char I. Alargamento; II. converter de float para int I. Estreitamento; II. converter de float para int Considere o seguinte comando de uma linguagem de programação, onde uma variável lógica do tipo boolean, receve o resultado da empressão logica = (a >= 0) and (b < 10). Avalie as assertivas a seguir I. Caso a linguagem implemente a técnica de análise de expressões chamada de curto circuito, se o conteúdo da variável "a" for -10, por exemplo, a expressão relacional (b<10) nem será avaliada, pois a expressão (a>=0) será FALSA II. A expressão está errada, pois o resultado não será um valor lógico III. A expressão (a >= 0) and (b < 10) pode ser usada no comando de decisão como por exemplo: if (a >= 0) and (b < 10) then..... IV. A expressão sempre será falsa. Com base em sua analise, assinela a UNICA alternativa que contém todas as assertivas CORRETAS. As expressões lógicas usam operadores lógicos. Sobre esses operadores, podemos afirmar. Explicação: I. Como se chama a conversão que: converte-se de um tipo de maior grandeza/precisão para um de menor grandeza/precisão? -- > encurtamento, já que o valor origem perderá precisão II. De um exemplo dessa conversão.: FLOAT para INT; String para Char 4. II, III e IV I e III I, II, III e IV I, II e III II e IV Explicação: I. Caso a linguagem implemente a técnica de análise de expressões chamada de curto circuito, se o conteúdo da variável "a" for -10, por exemplo, a expressão relacional (b<10) nem será avaliada, pois a expressão (a>=0) será FALSA --> VERDADE II. A expressão está errada, pois o resultado não será um valor lógico --> FALSO, a expressão está correta III. A expressão (a >= 0) and (b < 10) pode ser usada no comando de decisão como por exemplo: if (a >= 0) and (b < 10) then..... --> VERDADE, a expressão retorna um valor lógico, logo pode ser associada a uma condição. IV. A expressão sempre será falsa. --> FALSO, pode ser verdade, em função dos valores das variáveis "a" e "b" 5. Se usarmos o operador >, teremos o maior os 2 operandos Se usarmos o operador "E", os 2 operandos precisam ser Verdade para que a expressão seja VERDADEIRA Se usarmos o operador "OU", basta os 2 operandos devem ser verdadeiros para que a expressão seja verdadeira Se usarmos o operador "OU", os 2 operandos precisam ser Verdade para que a expressão seja VERDADEIRA Se usarmos o operador "E", basta que um operando seja Verdade para que a expressão seja VERDADEIRA Explicação: Operador Operando E se os 2 forem verdade, a expressão é verdade OU basta que 1 operando seja verdade , a expressãoé verdade I. O desvio incondicional deve ser usado sempre que possível PORQUE II. O desvio incondicional desloca a execução para qualquer parte do programa, especificado por um rótulo (nome) Analisando a relação de causa e efeito entre as assertivas I e II, responda com a opção correta: Avalie as assertivas a seguir pertinentes a comandos de atribuição em linguagens de programação diversas. I. A atribuição sempre é associação de um valor a uma e somente uma variável, em qualquer linguagem de programação II. A diferença entre as 2 atribuições a variável b em: b=a++ , b=++a, é que no primeiro a variável "a" é atribuída a variável "b" e depois incrementada de 1 unidade e na segunda atribuição, o valor da variável "a" é incrementado de 1 unidade e depois atribuído a variável "b" III. A atribuição soma+= num equivale a soma=soma+num, ou seja a variável soma é incrementada de num IV. Em todas as LPs o comando de atribuição é o mesmo e representado pelo símbolo "=". Está correto, apenas o que se afirma em: Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. As 2 assertivas são verdadeiras e a assertiva II não justifica a assertiva I A assertiva I é verdadeira e a assertiva II é falsa A assertiva I é falsa e assertiva II é verdadeira, As 2 assertivas são falsas As 2 assertivas são verdadeiras e a assertiva II justifica a assertiva I Explicação: A assertiva I é falsa, pois o desvio incondicional deve ser evitado, pois afeta a legibilidade e manutenibilidade do código. A assertiva I é verdadeira e justamente por esse desvio da execução natural do programa, o desvio incondicional deve ser evitado. 2. I, II e IV III e IV II e III I, II e III II, III e IV Sobre os comandos de atribuição implementados pelas LPs: Acompanhe e avalie a execução do trecho de código, abaixo, na LP C e responda. int main(void) {int iQtdSegundos, iHoras, iMinutos, iSegundos printf("\nEntre com o valor em segundos:"); scanf("%d", &iQtdSegundos); iHoras = iQtdSegundos/ 3600; iMinutos = (iQtdSegundos - (iHoras*3600)) / 60; iSegundos = (iQtdSegundos - (iHoras/3600)) % 60; printf("\nHora convertida %02d:%02d:%02d", iHoras, iMinutos, iSegundos); } 1. Considerando que o dado de entrada seja 5400, qual será exatamente a saída que o programa vai exibir? Explicação: I. A atribuição sempre é associação de um valor a uma e somente uma variável àFALSO, pois temos em algumas LPs a atribuição múltipla, onde o mesmo valor é atribuído a mais de 1 variável, como o comando em C: a=b=c=d=e=0 II. A diferença entre as 2 atribuições a variável b em: b=a++ , b=++a, é que no primeiro a variável ¿a¿ é atribuída a variável ¿b¿ e depois incrementada de 1 unidade e na segunda atribuição, o valor da variável ¿a¿ é incrementado de 1 unidade e depois atribuído a variável ¿b¿ ¿ VERDADE. São as chamadas atribuições unárias. III. A atribuição soma+= num equivale a soma=soma+num, ou seja a variável soma é incrementada de num à VERDADE. É uma atribuição composta IV. Em todas as LPs o comando de atribuição é o mesmo e representado pelo símbolo ¿=¿. à FALSO, varia conforme a LP. Em Pascal, por exemplo a atribuição é representada pelo símbolo ¿:=¿ (dois pontos seguido do igual). 3. 01:30:00 Hora convertida 01:20:00 Hora convertida 01:20:20 Hora convertida 01:30:00 Hora convertida 01:30:20 Explicação: 1. iQtdeSegundos = 5400 a. iHoras = 5400/3600 = 1 (apenas parte inteira) b. iMunutos = (5400-3600)/60 = 30 (apenas parte inteira) c. iSegundos = Resto (5400 ¿ 3600)/60 = 0 (Resto) d. A saída será: Hora convertida 01:30:00 Considere o trecho de código abaixo, escrito na linguagem C, for (ind=5; ind >= 1 ; ind++) { scanf("%d", &num); if (num == 0) break; printf("%d\n", num); } Printf ("Fim"); Quantas vezes os comandos dentro do FOR, serão executados? Como se chama o comando estruturado que representa uma estrutura que permite a repetição de outros comandos? 4. 3 vezes 1 vez Nenhuma vez Infinitas vezes 5 vezes Explicação: Ind começa com 5 5 é maior ou igual a 1 entra na repetição Ind vai para 6 6 é maior ou igual 1 entra na repetição .. e assim vai, pois ind ao invés de decrescer, esta sendo incrementado, logo va repetir infinatamente, o chamado LOOP 5. atribuição desvio condicional desvio incondicional iteração decisão Explicação: para permitir que outros comandos sejam repetidos devem ser usadas as estruturas de repetição ou iteração No que concerne a implementação de procedimento e função e passagem de parâmetros em LPs, avalie as assertivas: I. Na passagem de parâmetro por valor, se o conteúdo da parâmetro for alterado dentro do procedimento ou função, o conteúdo do argumento também será alterado. PORQUE II. Na passagem de parâmetro por valor, o valor da variável usada como argumento é atribuído ao valor da variável usada como parâmetro, no incío do proecedimento apenas, não tendo acesso ao endereço de memória para atualização do valor da variável usada como argumento. Analisando a relação de causa e efeito entre as assertivas I e II, responda com a opção correta: Considere o seguinte trecho de código, escrito na linguagem de programação C. Int num,soma=0; For (num=1; num<=4; num++) { printf(num); soma=soma+num; } printf(soma); Quais serão as saídas que o trecho de código, abaixo, vai exibir? Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. A assertiva I é verdadeira e assertiva II é falsa As 2 assertivas são verdadeiras e a assertiva II justifica a assertiva I A assertiva I é false e a assertiva II é verdadeira As 2 assertivas são verdadeiras e a assertiva II não justifica a assertiva I As 2 assertivas são falsas Explicação: I. Na passagem de parâmetro por valor, se o conteúdo da parâmetro for alterado dentro do procedimento ou função, o conteúdo do argumento também será alterado. --> FALSO, na passagem de parâmetro por valor, o conteúdo do argumento NÃO sofre alteração. II. Na passagem de parâmetro por valor, o valor da variável usada como argumento é atribuído ao valor da variável usada como parâmetro, no incío do proecedimento apenas, não tendo acesso ao endereço de memória para atualização do valor da variável usada como argumento. --: Verdade. Somente tendo acesso aos endereços de memória dos argmentos, podemos alterar conteúdo dos argumentos. A passagem por valor não tem acesso aos endereços de memória 2. 1 2 3 4 5 15 1 2 3 4 10 A modularização de um programa é obtida por intermédio de: 1 2 3 4 5 10 1 2 3 4 4 1 2 3 4 5 5 Explicação: a varivavel num, vai variar de 1 a 4 e sairá da repetição - dentro da repetição vai imprimir 1 2 3 4 após a repetição, vai mostar a soma dos 4 numeros acima, que é 10 logo a ultima exibição será 10 resultado final 1 2 3 4 10 3. comandos de entrada e saída subprogramas blocos de comandos estruturas de repetição desvios condicionais Explicação: A primeira forma de particionar programas grandes foi com a utilização de subprogramas que os segmentam em módulos logicamente relacionados, mas mantêm um baixo acoplamento (baixa dependência entre eles) e uma alta coesão (união de Como a linguagem de programação Python, identifica blocos de comandos? No que se refere as expressões compostas, exclusivamente, avalie as assertivas a seguir: I. Existem 2 tipos de comandos de repetição: os que repetem comandos um número fixo de vezes e os que repetem um número variado de vezes. II. Os comandos de repetição para um número variável de vezes, podem realizar testes no início apenas. III. PYTHON implementa o comando FOR de forma diferenciada das demais LPs. IV. C e PASCAL implementam comandos com número fixo e variável de vezes, sendo que nesse segundo caso oferece comando com teste início e fim do laço. Está correto, apenas o que se afirma em: Considere o trecho de código abaixo, escrito na linguagem Pascal Program CASO; Var valor: byte; Begin Writeln('Digite um valor de 1 a 7: '); Readln (valor); CASE valor OF 1: writeln ('Domingo'); subprogramas afins, ou seja, coesos). 4. Entre as palabras BEGIN e END Entre colchetes [ ] Endentando (deslocando para a direita) os comandos Entre parêntesis ( ) Entre Chaves { } Explicação: Na linguagem PYTHON a definição de bloco é em função da endentação dos comandos, mostrando uma hierarquia entre eles. 5. I, III e IV I, II, III e IV III II e III II Explicação: I. Existem 2 tipos de comandos de repetição: os que repetem comandos um número fixo de vezes e os que repetem um número variado de vezes. --> Verdade II. Os comandos de repetição para um número variável de vezes, podem realizar testes no início apenas. --> Falso III. PYTHON implementa o comando FOR de forma diferenciada das demais LPs. --> Verdade IV. C e PASCAL implementam comandos com número fixo e variável de vezes, sendo que nesse segundo caso oferece comando com teste início e fim do laço --> Verdade 6. 2: writeln ('Segunda'); 3: writeln ('Terça'); 4: writeln ('Quarta'); 5: writeln ('Quinta'); 6: writeln ('Sexta'); 7: writeln ('Sábado') Else writeln ('Valor inválido!'); End; end. Se for digitado o valor 5, assinale a opção que contém a resposta correta, para o que será exibido pelo techo de programa 1,2,3,4,5 Domingo, Segunda, Terça, Quarta, Quinta Quinta Valor Inválido 5 Explicação: Vai executar o comando que esta ao lado do valor 5, dentro da estrutura CASE de decisão, que no caso será Quinta Avalie as colunas I e II a seguir, ondena coluna I temos os paradigmas e na coluna II temos linguagens de programação Coluna I: Paradigmas Colina II: Linguagens 1. Lógico a. Haskell 2. Funcional b. prolog 3. Orientado a objeto c. JAVA 4. Multi paradigma d. C++ Assinale a opção que relaciona corretamente as colunas I e II Avalie as assertivas I e II a seguir e a relação de causa e efeito entre elas. I. As LPs que implementam tratamento de exceção produzem código mais confiável PORQUE II. As Lps que implementam tratamento de exceção precisam que o programador preveja e codifique a reação a cada tipo possível de exceção Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. 1-b; 2-d; 3-a; 4-c 1-a; 2-b; 3-d; 4-c 1-c; 2-a; 3-d; 4-b 1-b; 2-a; 3-c; 4-d 1-b; 2-a; 3-d; 4-c Explicação: LOGICO --: Prolog FUNCIONAL - Haskell OO - C++ MULTI PARADIGMA : JAVA 2. A assertiva I está errada e a assertiva II está correta A assertiva I está correta e assertiva II está errada As assertivas I e II estão corretas e a assertiva II não justifica a assertiva I As assertivas I e II estão corretas e a assertiva II justifica a assertiva I As assertivas I e II estão erradas Explicação: As assertivas I e II estão corretas. Justamente por demandarem trabalho do programador a tratar cada tipo de exceção, tormam o código mais confiável. Por isso, além de corretas, a assertiva II justifica a assertiva I Sobre linguagens de programação e paradigma orientado a objetos I. Objeto é uma instância (elemento específico) de uma classe II. A visibilidade de um atributo definida como público, não fere o princípio fundamental do encapsulamento. III. A implementação do polimorfismo só é possível quando a LP implementa o conceito de herança IV. A linguagem C é das mais usadas linguagens orientadas a objeto. Com base em sua análise, marque a opção que apresenta TODAS as assertivas corretas. O não determinismo, ou seja, a capacidade de encontrar mais de uma solução para o problema, é uma característica do paradigma: A redefinição de métodos herdados por uma classe para servir a seus próprios interesses é característica de: 3. I e III I, II e IV I, III e IV II, III e IV III Explicação: I. Objeto é uma instância (elemento específico) de uma classe --> VERDADE II. A visibilidade de um atributo definida como público, não fere o princípio fundamental do encapsulamento. --> FALSO, pois fere sim, na medida em que encapsular significa proteger os atributos de acesso indevido e diz que: os atributos de uma classe somente devem ser acessados por métodos dessa classe. III. A implementação do polimorfismo só é possível quando a LP implementa o conceito de herança --> Verdade, se não herdar, não haverão métodos polimórficos IV. A linguagem C é das mais usadas linguagens orientadas a objeto. --> FALSO, C não é uma linguagem orientada a objeto. Mas C++ sim, 4. lógico orientado a objetos funcional estruturado concorrente Explicação: Os programas escritos em LPs lógicas têm duas peculiaridades: Não determinismo: Podem achar mais de uma solução para o problema; Backtracking: Mecanismo do compilador da linguagem lógica (como, por exemplo, Prolog), o que permite o não determinismo. 5. abstração instanciação herança programação estruturada polimorfismo Explicação: Uma vez que uma classe tenha sido herdada, métodos herdados podem ser redefinidos (nova lógica de implementação interna) na classe que a herdou para servir aos interesses dela, aumentando o reuso e se valendo de técnicas para redução de tempo e custo de desenvolvimento, além do incremento do fator segurança (a classe que serviu de base para a herança já funcionava anteriormente).
Compartilhar