Buscar

Análise e Modelagem de Sistemas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Análise e Modelagem de Sistemas
1)Clientes e consumidores cada vez mais exigentes provocaram nas empresas mudanças em seus processos de trabalho, para que os produtos sejam desenvolvidos rapidamente, com qualidade e custos adequados. As empresas, para vencerem em mercados competitivos respeitando suas estratégias, adotaram dentre as mudanças as técnicas de modelagem de processos.
 
A modelagem é feita e organizada por meio de desenhos e diagramas operacionais. Ela valida os projetos sob testes com variáveis para validar diversas condições propostas. Documentação e integração de modelos estão previstas.
 
Há várias técnicas de modelagem de dados para serem estudadas e então aplicadas em um projeto. De acordo com Valle e Oliveira (2013), as mais difundidas e portanto aplicadas, são BPMN, UML, IDEF e EPC.
 
Faça a associação das técnicas na Coluna A com suas características na Coluna B.
 
	COLUNA A
	COLUNA B
	I. BPMN (Business Process Modeling Notation)
	1. Faz parte de uma família de linguagens que cobrem necessidades desde simulação, análise e desenho orientado a objeto, até aquisição de conhecimento, contemplando várias “gerações”, cada qual desenhada para uma função de modelagem. As entradas, saídas, mecanismos, controles e relação dos níveis de detalhe dos processos superior e inferior são destacados nesta técnica.
 
	II. UML (Unified Modeling Language)
	2. Técnica voltada a descrever os requisitos de sistemas de informação, representando um sistema de modo padronizado. Sua aplicação contempla a especificação, documentação, estruturação e visualização do sistema como um todo. É composta por diagramas agrupados nas categorias comportamental, estrutural e de interação.
 
	III. IDEF (Integrated DEFinition Language)
	3. Esta técnica provê os recursos para que vários tipos de modelagem possam ser feitos, através dos diagramas de fluxo de trabalho. Cada diagrama contém o que deve ser feito e seu registro deve ser claro o suficiente para o entendimento fácil dos membros.
 
	IV. EPC (Event-driven Process Chain)
	4. Conjuntos complexos de processos costumam demandar este modelo, embora sua característica esteja pautada nas notações simples e fáceis de serem entendidas que descrevem os processos e “workflows”. Seu desenvolvimento foi feito dentro do “framework” ARIS.
 
Assinale a alternativa que apresenta a associação CORRETA entre as colunas.
Alternativas:
· a)I – 1; II – 3; III – 2; IV – 4.
· b)I – 2; II – 3; III – 4; IV – 1.
· c)I – 3; II – 4; III – 1; IV – 2.
· d)I – 3; II – 2; III – 1; IV - 4.Alternativa assinalada
· e)I – 4; II – 3; III – 1; IV – 2.
2)Quanto mais valor uma empresa cria, mais rentável ela tende a ser. Quanto mais valor uma empresa entrega aos seus clientes, maior é a sua vantagem competitiva.
 
Michael Porter elaborou uma cadeia de atividades que são comuns a todos os negócios, separando-as em atividades primárias e atividades de suporte. A maneira como as atividades são realizadas determina os custos e afeta os lucros. Esta visão do processo organizacional foi o alicerce para o conceito da cadeia de valor de Porter.
 
A relação existente entre a cadeia de valor de Porter e a modelagem de processos reside no fato que este precisa estar alinhado com a estratégia organizacional.
 
Considerando o contexto, avalie as afirmativas a seguir:
 
I. As atividades primárias segundo Porter são: logísticas interna e externa, operações, marketing&vendas, serviço.
II. As atividades de apoio segundo Porter são: infra-estrutura, gerência dos recursos humanos, desenvolvimento de tecnologia, aquisições.
III. As atividades primárias do modelo não têm efeito imediato na produção, manutenção, vendas e suporte dos produtos e serviços fornecidos.
IV. As atividades de suporte, como o nome sugere, dão assistência às primárias. Uma determinada atividade de suporte pode suportar uma ou mais atividades primárias.
V. Porter sugere cinco passos quando da utilização da cadeia de valor: identificar subatividades para cada atividade primária, identificar subatividades para cada atividade de suporte, identificar vínculos entre os valores identificados, procurar oportunidades/soluções para otimizar e criar valor, implementar as soluções.
Considerando o contexto apresentado, é correto o que se afirma em:
Alternativas:
· a)III, apenas.
· b)IV, apenas.
· c)I, II e IV, apenas.Alternativa assinalada
· d)I, II e III, , apenas.
· e)II e IV, apenas.
3)"Business Model Generation" (Geração de Modelo de Negócio, título no Brasil) é um livro de Alexander Osterwalder que revolucionou o mundo dos negócios. Tendo como base os conceitos de "design thinking", o autor liderou o desenvolvimento e criação de uma Tela (Canvas) com 9 blocos que impulsionam o empreendedor a pensar de um modo mais eficiente e estratégico o lançamento de seus negócios, novos serviços e/ou novos produtos.
 
Ao preencher a Tela (Canvas), o empreendedor encontrará o seu padrão de negócio.
 
Considerando o contexto, avalie as afirmativas a seguir:
 
I. As empresas do padrão "empresas desagregadas" (unbundling business model) contêm 4 focos em seu modelo de negócio: a infraestrutura, a inovação de produtos, o relacionamento com o cliente e o relacionamento com fornecedores. Este padrão é indicado para grandes empresas devido à complexidade em se manter os três focos em um único negócio.
 
II. As empresas do padrão "cauda longa" (the long tail) estão baseadas na venda online, pois têm como característica a grande oferta de itens de serviços ou produtos, ainda que a quantidade de cada item vendido seja pequena.
 
III. As empresas do padrão "multi-faces" (multi-faced platforms) geram valor a dois ou mais segmentos de clientes em uma coexistência amistosa mas dependente.
 
IV. As empresas do padrão "modelo gratuito" (free as a business model) oferecem produtos ou serviços gratuitos aos usuários, mas com a intenção de retê-los como clientes pagantes em versões “premium” dos produtos ou serviços.
 
V. As empresas do padrão “modelo aberto” (open business model) contam com profissionais externos a ela para geração de valor. Muito utilizado no segmento de pesquisa & desenvolvimento, este padrão promove baixo investimento de um modo descentralizado do ponto de vista de recursos humanos.
Assinale a alternativa que apresenta a sequência CORRETA.
Alternativas:
· a)V – V – F – F – F.
· b)F – V – F – V – F.Alternativa assinalada
· c)F – V – V – V – V.
· d)Todas as sentenças estão incorretas.
· e)Todas as sentenças estão corretas.
4)Conforme a ABPMP (2013) o Processo Ponta a Ponta é um processo que pode ser interfuncional, indo além das funções departamentais, conectando todos os departamentos que estão vinculados a um determinado processo e podem ser ainda inter organizacional que além de conectar os departamentos conecta elementos externos à organização.
 
Tomando como referência o contexto apresentado, julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas:
 
(    )  A visão de Processos Ponta a Ponta traz uma visão bastante ampla, pois trafega e visualiza a conexão entre todos os departamentos, em uma perspectiva vertical
(   )  Processo Ponta a Ponta é aquele que reconhece que os processos são construídos a muitas mãos e, portanto, envolve vários departamentos, os processos podem atravessar com várias áreas de negócio.
(   ) A visão de Processos Ponta a Ponta permite uma visualização nos diferentes níveis e representam uma forma de agregar valor ao cliente.
(   )  A visão de Processos Ponta a Ponta envolve questões como tempo, custos, capacidade, qualidade, o que permite compreender a contribuição dada por cada parte para atender as necessidades da empresa.
Assinale a alternativa que apresenta a sequência CORRETA.
Alternativas:
· a)V – V – F – F.
· b)V – F – F – V.
· c)V – V – V – F.
· d)F – V – V – F.lternativa assinalada
· e)V – V – F – V.
__________________________________________________________________________________
1)Observando as definições, conjunto de elementos do processo podem ser: ações de engenharia de software; produtos de trabalho; e mecanismosque garantam a qualidade e o controle de mudanças nos projetos de desenvolvimento de um sistema de software. Este modelo determina como os elementos dos processos são interligados, buscando estruturar e ordenar o desenvolvimento de um software.
Nesse contexto, o que está sendo definido?
Alternativas:
· a)
1. Um modelo de desenvolvimento ágil.
· b)
1. Um modelo de processo prescritivo.
Alternativa assinalada
· c)
1. Um modelo de processo especializado.
· d)
1. Um modelo de métodos formais.
· e)
1. Um modelo scrum.
2)Os modelos de processos especializados se apropriam de diversas características de um ou mais modelos de processos prescritivos. Sua utilização acontece quando é necessária uma abordagem mais especializada de Engenharia de Software. A tabela a seguir, apresenta estes modelos e suas características:
 
	Modelo
	Características
	A.       Baseado em componentes
	1.       Utiliza as características dos modelos de processos prescritivos, implementando alguns princípios da metodologia ágil. É considerado um modelo iterativo e incremental.
	B.       De métodos formais
	2.       Fornece um processo e abordagem metodológica que define, especifica, projeta e constrói aspectos. O código do software é separado por importância e os requisitos são modelados superando várias funcionalidades do sistema.
	C.       Desenvolvimento de software orientado a aspecto
	3.       O desenvolvimento de software está diretamente ligado a este modelo. Num modelo é enfatizado a medição pessoal do que foi produzido. No outro modelo, o objetivo é a criação de uma equipe autodirigida, organizada, com a finalidade de produzir um software de alto padrão de qualidade.
	D.       De processo unificado
	4.       Conjunto de atividades que levam à especificação matemática do software, fornecendo mecanismos para a descoberta e a eliminação de problemas como: ambiguidade, incompletude e inconsistência. É a base para fazer a averiguação do código de programação com o objetivo de descobrir erros.
	E.        De processos pessoal e de equipe
	5.       Utilizados em projetos de software de prateleira, compreende aplicações previamente empacotadas. São desenvolvidos para serem reutilizados em outros projetos, além de serem uma parte independente do software, podendo ser trocado ou alterado.
Fonte: Adaptado de WERLICH, C. Modelos de processos de software (p. 10-11).
Assinale a alternativa que associa corretamente os modelos e suas características:
Alternativas:
3. a)A-1 / B-5 / C-4 / D-2 / E-3.
· b)
2. A-3 / B-1 / C-4 / D-5 / E-2.
1. c)
3. A-5 / B-4 / C-2 / D-1 / E-3.
Alternativa assinalada
1. d)
4. A-4 / B-3 / C-1 / D-5 / E-2.
1. e)
5. A-2 / B-4 / C-1 / D-3 / E-5.
3) Com as novas tecnologias surgindo rapidamente, o processo de negócios também foi atingido por essa velocidade, o que fez demandar maior velocidade no desenvolvimento do software. Nesse cenário surge uma nova forma de desenvolvimento, que traz um formato mais flexível e dinâmico nos processos de softwares.
Este modelo procura resolver alguns problemas da Engenharia de Software, oferecendo benefícios importantes. Este modelo é conhecido por:
Alternativas:
· a)
1. modelo de processo prescritivo.
· b)
1. modelo de processo especializado.
· c)
1. modelo de métodos formais.
· d)
1. modelo de desenvolvimento ágil.
Alternativa assinalada
· e)
1. modelo cascata.
4) Na sociedade atual, a utilização de qualquer tipo de software tomou grandes proporções. Atualmente, é comum o mercado de trabalho exigir que os profissionais tenham habilidades em algum software específico ou então treinar seus funcionários para a utilização. Além disso, geralmente utilizamos algum tipo de software para a execução de alguma tarefa diária.
Podemos estabelecer o conceito de Software como sendo ...
Alternativas:
· a)Programas de computadores com uma documentação associada e os produtos de Software podem ser desenvolvidos para um determinado cliente ou para um mercado mais generalizado.Alternativa assinalada
· b)Programas de computadores sem uma documentação associada e os produtos de Software podem ser desenvolvidos para um determinado cliente ou para um mercado mais generalizado.
· c)Programas de computadores com uma documentação associada e os produtos de Software no qual são desenvolvidos para um determinado cliente e nunca para um mercado mais generalizado.
· d)Programas de computadores sem uma documentação associada e os produtos de Software no qual são desenvolvidos para um determinado cliente e nunca para um mercado mais generalizado.
__________________________________________________________________________________
1) Com o paradigma orientado a objeto surgiu não só um novo padrão para o desenvolvimento de software, mas também, uma nova forma de pensar como modelar os problemas do mundo real.
 
TUCKER, Allen B.; NOONAN, Robert E. Linguagens de programação: Princípios e Paradigmas. 2. ed. Porto Alegre: AMGH, 2010.
 
Com relação ao paradigma orientado a objeto, no que tange aos seus processos de analises, complete as lacunas da sentença a seguir:
 
A ____________ é a ideia central do paradigma orientado a objetos. Nesse processo nos referimos a ____________ (qualquer item do mundo real como, casa, bolo, carro, sanduíche, boleto, contrato) sem nos preocupar com detalhes, como cor, tamanho, código e validade, entre outros. Suponha que você ouviu o termo cadeira, você pensa na ideia de como é uma cadeira, isso é uma __________.
Assinale a alternativa que preenche corretamente as lacunas:
Alternativas:
· a)abstração / um objeto / abstração.
· b)classe / um atributo / classe
· c)classe / um objeto / abstração.
· d)abstração / um atributo / abstração.Alternativa assinalada
· e)abstração / um objeto / classe.
2)Na engenharia de software, consideramos um paradigma como um modelo que já foi testado e segue alguns princípios para a resolução de um problema computacional. Há uma grande vantagem em seguir um modelo, pois facilita o desenvolvimento e a compreensão da solução encontrada.
TUCKER, Allen B.; NOONAN, Robert E. Linguagens de programação: Princípios e Paradigmas. 2. ed. Porto Alegre: AMGH, 2010.
 
Com relação aos conceitos básicos de orientação a objetos, complete as lacunas da sentença a seguir:
 
A ____________ é a representação da abstração, é o momento em que você define as características que todo objeto deverá ter e quais ações que ele poderá fazer. As denominações técnicas para as características são ____________ e as ações ou comportamentos chamamos de ____________.
Assinale a alternativa que preenche corretamente as lacunas:
Alternativas:
· a)heranças / subclasses / abstração.
· b)classe / atributos / métodos.Alternativa assinalada
· c)heranças / atributos / métodos.
· d)classe / subclasse / métodos.
· e)subclasse / atributos / heranças.
3) Com o paradigma orientado a objeto surgiu não só um novo padrão para o desenvolvimento de software, mas também, uma nova forma de pensar como modelar os problemas do mundo real.
TUCKER, Allen B.; NOONAN, Robert E. Linguagens de programação: Princípios e Paradigmas. 2. ed. Porto Alegre: AMGH, 2010.
 
De acordo com as informações apresentadas na tabela a seguir, faça a associação dos conceitos básicos de orientação a objetos contidos na COLUNA A, com suas respectivas definições na COLUNA B.
 
	COLUNA A
	COLUNA B
	I. Herança
	1. Consiste na junção de partes isoladas de um programa e essas partes podem ser acessadas separadamente.
	II. Encapsulamento
	2. Significa que a mesma operação[método] pode atuar de modos diversos em classes diferentes.
	III. Polimorfismo
	3. Permite criar novas classes a partir de classes já existentes, sem duplicar nenhum código.
Assinale a alternativa que apresenta a associação correta entre as colunas.
Alternativas:
· a)I - 2; II - 3; III - 1.
· b)I - 3; II - 2; III - 1.
· c)I - 1; II - 3; III - 2.
· d)I - 1; II - 2; III - 3.
· e)I - 3; II - 1; III - 2.
Alterativa assinalada
4) Em engenharia de software existem alguns modelos que podem ser usados para organizar o ciclo de vida de desenvolvimento do software, porexemplo, modelo em cascata, em espiral, de prototipação, incremental, iterativo, dentre outros. É importante que não seja confundido o ciclo de vida do produto com modelo do ciclo de vida de desenvolvimento.
O chamado Ciclo de vida do produto, segundo Kotler (2018) consiste em 4 fases:
Alternativas:
· a)concepção, crescimento, maturidade e declínio.Alternativa assinalada
· b)analises, algoritmos, desenvolvimento e versões.
· c)concepção, crescimento, analises e declínio.
· d)analises, desenvolvimentos, versões e encerramento.
· e)crescimento, maturidade, segurança e encerramento.
__________________________________________________________________________________
1) Quando do desenvolvimento de um Software, os analistas responsáveis sabem que uma parte importantíssima é o levantamento, classificação e verificação de requisitos, os quais serão o alicerce para o desenvolvimento em si. A participação do cliente através de seus diversos papéis (“stakeholders”) brindam o trabalho com diversas visões e indicações de necessidades.
 
De acordo com as informações apresentadas na tabela a seguir, faça a associação das ações contidas na Coluna A com suas respectivas explicações na Coluna B.
 
	COLUNA A
	COLUNA B
	I. Determinação dos requisitos
	1. São lógicos ou tecnológicos, associados aos requisitos funcionais.
 
	II. Requisitos funcionais
	2. Os requisitos são caracterizados, podendo ser permanentes e transitórios, ou evidentes e ocultos, ou obrigatórios e desejados. Após a classificação, pode ser importante alocar níveis de prioridade a eles.
 
	III. Requisitos não funcionais
	3. Não apenas elenca as funções que o sistema terá, mas também o que ele não deverá ter. Trata-se de uma lista extensa, mas neste momento sem muito aprofundamento. É a fase do que deve ser feito, e não como deve ser feito.
 
	IV. Requisitos suplementares
	4. Refere-se ao que o sistema deve fazer e sob quais condições. Não apresenta muita profundidade.
 
	V. Documentação de requisitos
	5. Contêm a descrição do que será executado pelo sistema, incluindo restrições lógicas e/ou tecnológicas.
 
	VI. Análise de requisitos
	6. Referem-se ao sistema como um todo, sendo todo e qualquer tipo de restrição lógica ou tecnológica.
 
Assinale a alternativa que apresenta a associação CORRETA entre as colunas.
Alternativas:
· a)I – 3; II – 1; III – 5; IV – 4; V – 2; VI – 6.
· b)I – 1; II – 4; III – 6; IV – 2; V – 3; VI – 5.
· c)I – 4; II – 2; III – 6; IV – 1; V – 3; VI – 5.
· d)I – 2; II – 5; III – 1; IV – 3; V – 4; VI – 6.
· e)I – 3; II – 5; III – 1; IV – 6; V – 4; VI – 2.
Alternativa assinalada
2)Para que o trabalho de desenvolvimento de Software seja bem sucedido, diversas ações são necessárias, dentre elas: levantamento de requisitos funcionais, não funcionais e suplementares, documentação e análise de requisitos, forte comunicação com o cliente e demais “stakeholders”. Os requisitos necessitam ser validados.
WAZLAWICK, Raul Sidnei. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Elsevier, 2010.
 
Sobre o processo de validação de requisitos, analise as afirmativas a seguir:
 
I. Os requisitos devem ser consistentes, para que não entre em conflito com quaisquer outro requisito.
II. A rastreabilidade é outro importante tipo de verificação, cada requisito deve ter origem clara e bem definida.
III. A validação de requisitos é importante para identificar se existem inconsistências, contradição, duplicidade, imprecisões e ambiguidades dos requisitos.
IV. A validação de requisitos é importante, porém, causam atrasos na entrega do projeto e retrabalhos para reescrever os requisitos.
Com base no contexto apresentado, é correto o que se afirma em
Alternativas:
· a)I e II, apenas.
· b)I e III, apenas.
· c)I, II e III, apenas.Alternativa assinalada
· d)I, III e IV, apenas.
· e)I, II, III e IV.
3)O controle (ou gerenciamento) de mudanças é uma tarefa importante no processo de desenvolvimento de Software e, infelizmente, muitas vezes negligenciado pelas equipes. Os motivos são vários, desde falta de tempo para realização dos registros, até mesmo negação pela burocracia que muitos enxergam nesta tarefa.
 
Segundo Sommerville (2007), o gerenciamento de mudança (ou controle da mudança) de requisitos deve fazer parte do processo de gerência de requisitos.
Assinale a alternativa que apresenta corretamente a atitude da equipe de projeto frente a uma necessidade de mudança.
Alternativas:
· a)Toda necessidade de mudança referente a um requisito, ao ser identificada, precisa ser analisada quanto à sua viabilidade e impactos, tendo os membros do projeto e os “stakeholders” internos e externos cientes e concordantes com a sua execução. É indispensável que os documentos sejam atualizados, incluindo a lista de requisitos categorizada e o plano do projeto.
· Alternativa assinalada
· b)Quando uma necessidade de mudança é encontrada em um ou mais requisitos, os analistas precisam avaliar seu impacto no restante do projeto. Se o impacto for pequeno ou de baixo custo, o processo de implementação da mudança pode ser feito informalmente.
· 
· c)É bastante comum que mudanças sejam necessárias conforme o projeto avança em sua fase de execução. Cabe aos gerente de projeto, analistas e programadores, fazer uma detalhada avaliação do cenário e evitar ao máximo a implementação da mudança, para que o tempo e custo do projeto não sofram impactos.
· 
· d)Mudanças de escopo e requisitos são mais aceitas pelas equipes de projeto se o contrato firmado for de orçamento aberto, onde cabem toda e qualquer alteração, por mais complexa e custosa que possa ser.
· 
· e)O sistema legado do cliente, em tendo interface com o sistema em desenvolvimento, precisa ser considerado na análise da implementação de uma mudança. Caberá ao responsável técnico pelo desenvolvimento do Software avaliar se os responsáveis pelo sistema legado deverão ser contatados ou não.
4)O objetivo da Engenharia de Requisitos, é proporcionar à todos os envolvidos no desenvolvimento do sistema, uma mesma compreensão por escrito do problema, para isso, são utilizadas uma série de elementos (artefatos) que garantem a qualidade do que foi especificado.
Analisando os princípios e objetivos da Engenharia de Requisitos, podemos defini-la como ...
Alternativas:
· a)o processo de descrever todas as funcionalidades que um sistema deve possuir, assim como, descrever todos os serviços e as restrições de seu funcionamento, refletindo diretamente as determinações dos clientes.
· Alternativa assinalada
· b)todas as tarefas que possuem como característica dessa metodologia de desenvolvimento estabelecer as classes o mais flexível possível na construção da solução e no reuso do código.
· 
· c)uma junção de partes isoladas de um programa, onde, essas partes podem ser acessadas separadamente, tendo assim a capacidade de tornar a visibilidade das informações e os detalhes da implementação dos métodos de uma classe ocultas ou restritas.
· 
· d)permitir a criação de novas classes a partir de classes já existentes, sem duplicar nenhum código”. Nesse processo de abstração parte da codificação poderá herdar as características e comportamentos genéricos.
· 
· e)a representação de um conjunto de objetos, em outras palavras, é a representação da abstração de parte da codificação desenvolvida do sistema como por exemplo suas características e comportamentos funcionais.
__________________________________________________________________________________
Rummler e Ramias (2008) em seu artigo “A Framework for defining and designing the structure of work” (Abordagem para definir e desenhar a estrutura de trabalho, em livre tradução), ilustram o diagrama “Business Process Architecture Framework” como contendo todos os processos importantes de uma organização e suas associações.
 
O diagrama tem por objetivo mostrar de forma sumarizada o trabalho que precisa ser feito e gerenciado, de tal modo que o cliente perceba seu valor.
 
Os processos considerados importantes são três:
 
- Management process (ou Processo de gerenciamento).
- Valuecreation process (ou Processo primário).
- Supporting process (ou Processo de suporte).
 
Figura 1: Business Process Architecture Framework (BPA Framework)
Fonte: Rummler; Ramias (2008).
 
Considerando o contexto, avalie as afirmativas a seguir:
 
I. O processo primário é um processo essencial para o negócio, cujas atividades entregam valor ao cliente.
II. O processo de suporte, ou de apoio, são de extrema importância, embora não entreguem algo diretamente ao cliente e, portanto não geram valor para o cliente.
III. O processo de gerenciamento, ou de gestão, tem por objetivo medir, controlar os outros processos. Serve para que a operação seja eficaz e eficiente.
Considerando o contexto apresentado, é correto o que se afirma em:
Alternativas:
· a)I e II, apenas.
· b)II e III, apenas.
· c)I e III, apenas.
· d)I, II e III.
Alternativa assinalada
· e)III, apenas.
2)O Processo de Negócio apresenta os processos primário, de suporte e de gerenciamento.
 
O processo primário é um processo fim-a-fim, ou seja, as atividades essenciais que entregam valor ao cliente externo fazem parte deste processo, vinculado assim com os objetivos estratégicos da empresa.
 
O processo de suporte provê a infraestrutura e os recursos necessários para que o processo primário possa acontecer. O valor é entregue aos clientes internos através da área de finanças, recursos humanos ou informática, para mencionar algumas.
 
O processo de gerenciamento é desenhado para que as atividades de planejamento, medição, monitoração e controle do negócio sejam bem sucedidas. Ele assegura que os processos primário e de suporte possam atingir os requerimentos legal, operacional, regulatório, financeiro. O processo de gerenciamento não adiciona valor diretamente ao cliente, mas é ele que assegurará que a operação organizacional seja eficaz e eficiente.
 
Com relação ao termos eficácia e eficiência, complete as lacunas das sentenças a seguir:
 
__________ é fazer o que foi proposto de modo correto – dentro do prazo, seguindo as especificações, respeitando o orçamento, tendo o mínimo de perdas. Também é considerada parâmetro para calcular a performance e produtividade, fazendo comparações entre as saídas que foram previstas no processo e as saídas reais. Ela não é o fim, mas o meio para se chegar ao fim do processo com valor.
 
__________ é a habilidade de produzir o que foi intencionado ou desejado, com a devida medição de como o que está sendo produzido contribui para os propósitos organizacionais.
 
Um exemplo de __________ é ir do ponto A ao ponto B pelo caminho mais curto.
 
Um exemplo de __________ é ir do ponto A ao ponto B, ainda que pelo caminho mais longo.
Assinale a alternativa que completa as lacunas corretamente.
Alternativas:
· a)Eficácia / Eficiência / eficiência / eficácia.
· b)Eficiência / Eficácia / eficácia / eficiência.
· c)Eficácia / Eficiência / eficácia / eficiência.
· d)Eficiência / Eficácia / eficiência / eficácia.
Alternativa assinalada
· e)Eficiência / Eficácia / eficiência / eficiência.
3)Os tipos de estrutura organizacional e de departamentalização de uma empresa têm impactos nos resultados da gestão de processos. Organizações tradicionais são diferentes das organizações estruturadas por processos. Existem critérios que podem ser aplicados com sucesso como orientadores de como elas devem ser organizadas, já que a herança de quase um século que recebemos do modelo tradicional de se estruturar uma empresa ainda continua presente e forte. Se não houver um redesenho da organização, a empresa não conseguirá seguir seu caminho como sendo organizada por processo.
 
Portanto, é importante saber avaliar como a empresa está estruturada para que a gestão de processos seja bem sucedida.
 
Tomando como referência os tipos de estrutura organizacional, julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas.
 
(   ) A Estrutura Funcional agrega um grupo de pessoas em uma determinada área, as quais são especializadas em uma mesma função. Tem-se, por exemplo, a área financeira com os profissionais especializados em finanças; a área de TI com os profissionais especializados em informática; e assim por diante. Há pouca interdisciplinaridade das funções, e pouca visão global da empresa. Atualmente, as pequenas e médias empresas, bem como as empresas “estáveis”, ainda contam com este tipo de estrutura.
 
(   ) A Estrutura Linear é altamente horizontalizada, tendo um executivo no topo, muitos profissionais que respondem para ele, e cada qual com outros tantos que respondem para eles. É uma estrutura forte do ponto de vista de comando e atualmente é vista em empresas novas, de pequeno e médio portes. Os papéis são facilmente identificáveis, a implementação é considerada simples, mas apresentam pouca inovação (pois as pessoas esperam as ordens, e não tomam iniciativas inovadoras) e carência de comunicação rápida e eficiente.
 
(   ) O organograma de uma empresa é um termo sinônimo para a estrutura organizacional ou dos departamentos.
 
(   ) Dentre os tipos de departamentalização, temos o “por cliente”. Nele, o organograma é desenhado de acordo com o público-alvo, com muita atenção na satisfação do cliente. Importante comentar que este modelo tem como risco a atenção forte no cliente com detrimento de metas operacionais, tal como a produtividade ou o lucro.
 
(   ) A departamentalização por processos tem como alguns pontos fortes a economia de escala e otimização do tempo. O uso de tecnologia de ponta é bastante presente e aí tem-se tanto uma vantagem (o uso da tecnologia em prol da produção) como uma desvantagem (a mudança tecnológica pode causar forte mudança no processo, cascateando o impacto na necessidade de alto investimento e adaptação da linha, para mencionar alguns). Este tipo de departamentalização ocorre principalmente nas áreas produtivas e de operações das empresas de serviços e indústrias.
Assinale a alternativa que apresenta a sequência CORRETA.
Alternativas:
· a)F – V – F – V – V.
· b)V – V – F – V – V.
· c)V – F – F – V – V.Alternativa assinalada
· d)V – F – V – F – F.
· e)V – V – V – V – V.
4)Toda organização é estruturada em áreas e é fundamental entender como elas se relacionam. A integração da área TI às demais áreas de negócio de uma organização é importantíssima, pois é uma forma de evitar que falhas aconteçam no desenvolvimento de um software.
 
A área de TI, __________, contribui de forma __________ para as organizações, auxiliando na gestão __________, permitindo que a entrega de __________ aos clientes seja mais __________.
Assinale a alternativa que completa corretamente as lacunas:
Alternativas:
· a)atualmente / estratégica / de processos / soluções / efetiva.Alternativa assinalada
· b)normalmente / horizontal / de processos / soluções / rápida.
· c)atualmente / vertical / das ideias / produtos / efetiva.
· d)normalmente / estratégica / de produtos / alternativas / variada.
· e)atualmente / horizontal / das ideias / produtos / efetiva.
__________________________________________________________________________________
Para que um profissional ou equipe desenvolva um Produto de Software, várias atividades correlatas são contempladas durante o Processo de Software. Com o apoio de métodos, ferramentas, recursos experientes, foco em qualidade e custo, os desenvolvedores enfrentam um novo desafio a cada projeto a ser iniciado, cujos requisitos precisam ser claros para um ótimo atendimento ao cliente.
 
Julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas para as atividades que contemplam a fase de Processo de Software segundo Sommerville (2011):
 
I. (   ) Análise e especificação dos requisitos: fase em que o escopo do projeto deve ser refinado para que os requisitos sejam bem definidos, ou seja, o problema a ser resolvido e a função do produto final precisam ser desenhados (como fazer).
 
II. (   ) Projeto: com o conhecimento da plataforma de atuação, esta fase desenvolve o projeto da arquitetura do sistema e o projeto detalhado.
 
III. (   ) Implementação e testes: fase de tradução do projetode modo que a máquina execute, ou seja, é a fase de codificação. A quantidade, nível de qualidade e resultados dos testes são documentados.
 
IV. (   ) Integração e verificação: os componentes vão sendo integrados e novos testes não precisam ser gerados, pois os testes individuais dos requisitos foram feitos na fase anterior.
 
V. (    ) Operação e manutenção: esta fase contempla o uso em produção e aprovação por parte do cliente. A manutenção é uma atividade opcional pois os testes foram feitos e a entrega ao cliente acontece somente depois que todos são aprovados.
Assinale a alternativa que apresenta a sequência CORRETA.
Alternativas:
· a)V – V – V – F – F.
· b)F – V – V – V – F.
· c)F – V – V – F – F.Alternativa assinalada
· d)F – V – F – V – F.
· e)V – V – F – F – F.
2) Modelos de Processos de Software são utilizados para gerenciamento das atividades do Processo de Software (representação dos objetos, apresentação do progresso do projeto), ou seja, para definir o fluxo das ações e suas interações de um modo coerente e ordenado. Dentre os modelos existentes, podemos citar:
 
- Modelos de Processos Prescritivos.
- Modelos de Processos Especializados.
- Modelos de Desenvolvimento Ágil.
 
Com relação aos modelos mencionados, complete as lacunas das sentenças a seguir.
 
O Modelo de ____________ vem atender a uma demanda mais específica, mais particular de um projeto, em que a equipe entenda que precisa promover a instanciação de um ou mais processos.
 
O Modelo de ____________, por mais tradicional que seja, ainda é muito utilizado para o desenvolvimento de Software. Ele é pautado no registro dos elementos de um ou mais processos e suas inter-relações, de tal forma que o resultado seja estruturado para que o Software seja então desenvolvido. Tem como forte característica a execução das tarefas de modo sequencial.
 
O Modelo de ____________ traz maior rapidez, flexibilidade e dinamismo para o desenvolvimento dos Softwares. Para atingir os resultados, há menos documentos a serem feitos, forte comunicação entre os membros das equipes, bem como com o cliente.
Assinale a alternativa que completa as lacunas corretamente.
Alternativas:
· a)Processo Especializado / Desenvolvimento Ágil / Processo Prescritivo.
· b)Processo Especializado / Processo Prescritivo / Desenvolvimento Ágil.rnativa assinalada
· c)Processo Prescritivo / Processo Especializado / Desenvolvimento Ágil.
· d)Processo Prescritivo / Desenvolvimento Ágil / Processo Especializado.
· e)Desenvolvimento Ágil / Processo Especializado / Processo Prescritivo.
3)O desenvolvimento de Software feito a partir da Metodologia Ágil provocou uma grande mudança na tratativa de projetos, visto que ela elimina boa parte da burocracia que as metodologias mais tradicionais para gerenciamento de projetos contêm. A rapidez necessária para as implementações de Software impulsionou rápida e definitivamente o mercado fornecedor a mudar seu modo de trabalho, prezando ainda mais a qualidade do mercado consumidor cada vez mais comparador e exigente em suas escolhas.
 
Dentre as metodologias Ágil existentes no mercado, a Scrum tem destaque, entregando projetos bem sucedidos tendo como base as iterações, privilegiando o trabalho das equipes e priorizando o desenvolvimento incremental, onde os aprimoramento dos componentes acontece aos poucos.
Analise as alternativas e indique a que corretamente contém os principais componentes do processo Scrum.
Alternativas:
· a)Project backlog, Sprint backlog, Sprint.
· b)Process backlog, Sprint backlog, Sprint.
· c)Product backlog, Product Owner, Sprint.
· d)Project backlog, Sprint backlog, ScrumMaster.
· e)Product backlog, Sprint backlog, Sprint.
Alternativa assinalada
4)A utilização do software, atualmente, cresce cada vez mais. Por esta razão, o mercado de trabalho exige habilidade no uso destas ferramentas, assim como aplicação destes para treinamentos. Por este motivo, cada vez mais é necessário entender o que é um software.
Nesse contexto, assinale a alternativa que apresenta o conceito correto de software:
Alternativas:
· a)Grupo de comandos e códigos de linguagem, onde cada instrução aciona ações, em algum programa, funcionando o sistema.
· Alternativa assinalada
· b)É um comando codificado que faz o computador funcionar, ou seja, é uma estrutura de dados do computador.
· c)São componentes lógicos individuais, compostos por uma instrução única de controle de funcionamento.
· d)Conjunto de rotinas para suporte lógico, onde cada rotina é definida por sequencias que, em conjunto, formam um programa.
· e)É o emprego de algumas funções que são executadas por computadores e alguns aparelhos eletrônicos.
__________________________________________________________________________________
Diagramas UML servem para dar ao analista uma representação do sistema, ainda que parcial. O sistema que está em desenvolvimento depende muito dos diagramas para compreensão da arquitetura.
 
Existem diversos tipos de diagramas UML, segmentados em dois grupos: estáticos e dinâmicos.
 
Considerando o contexto, analise a tabela a seguir:
 
	COLUNA A
	COLUNA B
	I. Diagrama de casos de uso
	1. 
	II. Diagrama de classe
	2. 
	III. Diagrama de sequência
	3. 
Fonte: Disponível em: https://www.ateomomento.com.br/. Acesso em 13 de fev. de 2020.
Considerando o contexto apresentado, assinale a alternativa correta.
Alternativas:
· a)I – 1; II – 2; III – 3.Alternativa assinalada
· b)I – 2; II – 3; III – 1.
· c)I – 3; II – 2; III – 1.
· d)I – 2; II – 1; III – 3.
· e)I – 1; II – 3; III – 2.
2) A linguagem UML (Unified Modeling Language) tem por objetivo proporcionar as melhores práticas em modelagem de sistemas. Suas versões trouxeram padronização para os diagramas que, somado às inúmeras melhorias, a tornou uma das linguagens mais utilizadas no mundo.
 
A UML 2.5.1 apresenta esta estrutura de Diagramas:
 
Figura 1: Taxonomia da estrutura de diagramas
 
Fonte: Object Management Group. OMG Unified Modeling Language, version 2.5.1., p.685. 2017. Disponível em: https://www.omg.org/spec/UML/2.5.1/PDF. Acesso em 14 de fevereiro de 2020.
 
 
Analise as afirmativas a seguir, tendo como referência a estrutura de diagramas, e assinale e V para verdadeiro e F para falso.
 
(   ) Os diagramas dinâmicos compreendem o grupo “diagrama de estrutura”. Eles representam as estruturas do sistema consideradas dinâmicas.
 
(   ) Os diagramas estáticos compreendem o grupo “diagrama de comportamento”. Eles representam as estruturas estáveis do sistema.
 
(   ) Um dos focos na construção da UML é evitar desperdícios e retrabalhos. Com uma boa comunicação, o entendimento de 20% dos diagramas tende a resolver 80% dos cenários a serem trabalhados.
Assinale a alternativa que apresenta a sequência CORRETA.
Alternativas:
· a)F – F – F.
· b)V – V – V.
· c)V – V – F.
· d)F – F – V.Alternativa assinalada
· e)F – V – F.
3)A “Agile Alliance” surgiu em 2001 em um encontro de profissionais de empresas concorrentes, mas que tinham o desejo de melhorar os processos de desenvolvimento. O “Manifesto para Desenvolvimento Ágil de Software”, assinado por todos do encontro, marcou definitivamente uma mudança expressiva no modelo das tratativas de desenvolvimento de Software. Ele contém apenas quatro valores principais que norteiam os trabalhos, mas que ao serem olhados atentamente, mostram o forte e positivo impacto que a implementação de uma das metodologias ágeis pode causar nas organizações.
Agile Alliance. Disponível em: https://www.agilealliance.org/. Acesso em 14 de fevereiro de 2020.
 
Com relação ao princípio dos métodos ágeis, analise as afirmativas a seguir:
 
I. Envolvimento do cliente é um princípio fundamental, uma vez  que os clientes devem ser profundamente envolvidos no processo de desenvolvimento, tendo como papel o fornecimento e priorização de novos requisitos do sistema e avaliar as iterações do sistema
II. O software é desenvolvido em incrementos e o cliente especifica os requisitos a serem considerados em cada incremento.
III. Os requisitos do sistema uma vez definidos, nãoé possível modifica-los.
IV. As habilidades da equipe de desenvolvimento devem ser reconhecidas e exploradas, sendo importante, desenvolver suas próprias maneiras de trabalhar sem processos prescritivos.
Com base no contexto apresentado, é correto o que se afirma em
Alternativas:
· a)I e II, apenas.
· b)I e III, apenas.
· c)I, II e III, apenas.
· d)I, II e IV, apenas.Alternativa assinalada
· e)I, II, III e IV.
4)O paradigma orientado a objeto tornou-se muito utilizado a partir de 1997, quando foi criado uma Linguagem Unificada de Modelagem, a UML (Unified Modeling Language).  Com o paradigma orientado a objeto surgiu não só um novo padrão para o desenvolvimento de software, mas também, uma nova forma de pensar como modelar os problemas do mundo real.
 
Tomando como referência o contexto apresentado, julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas:
 
(   )  Associamos a abstração para classificar um objeto, a modelagem orientada a objetos começa pela abstração.
(   )  Uma classe é a representação da abstração, é o momento em que definimos as características do objeto e quais ações que o objeto poderá fazer.
(   )  Um objeto é parte integrante de uma classe, uma vez realizado a abstração, sabemos quais objetos farão parte das classes modeladas na UML.
(  )  Toda ação ou comportamento de uma classe é denominado de “propriedade da classe” e através dessas propriedades, as classes podem se comunicar com outras classes.
Assinale a alternativa que apresenta a sequência CORRETA.
Alternativas:
· a)F – V – V – F.
· b)V – F – F – V.
· c)V – V – V – F.
· d)F – V – F – V.
· e)V – V – F – F.
lternativa assinalada
__________________________________________________________________________________
1) É clássico no mundo de TI o desenho que desdobra as visões de diversos especialistas frente a um pedido do cliente: construir um balanço na árvore. Veja a figura.
 
Figura 1: “O balanço na árvore” (em livre tradução)
Fonte: MEEK, Brian e HEATH, Patricia. Guide do good programming practice. Ellis Horwood, 1973. Disponível em: BusinessBalls. Tree swing cartoon pictures (early versions). https://www.businessballs.com/amusement-stress-relief/tree-swing-cartoon-pictures-early-versions/. Acesso em 11 de fevereiro de 2020.
 
O desenho é bastante associado à falha na comunicação dentro das empresas. Mas não é apenas ela que gera entregas desagregadas ao pedidos dos clientes. A falta do documento de escopo, dos registros do projeto em geral (riscos, cronograma, alterações, lições aprendidas), da formalização de aceites, geram uma estimativa de que menos de 50% dos projetos (de todos os tipos) entregues não são bem sucedidos.
 
Segundo Medeiros (2008), o Diagrama de Caso de Uso tem sua existência ao longo de todo o projeto e não deixa de ser uma ferramenta importante na comunicação entre um “ator” e o sistema, já que o Diagrama mostra em detalhes o que precisará ser codificado.
 
Segundo Pender (2004), um Diagrama de Caso de Uso contém 6 elementos de modelagem.
 
Preencha as lacunas das sentenças a seguir com cada um dos 6 elementos de modelagem.
 
O ator está no papel de usuário ou outro sistema que interage com o sistema em desenvolvimento, ou seja, é uma posição __________ ao desenvolvimento. No Diagrama, ele é representado por um “boneco palito”.
 
O ___________ é um conjunto de ações (serviços, tarefas, funções) que o sistema executará, cujo resultado é observável (em linhas gerais, pode-se associar o caso de uso a uma tela ou página de um sistema). A descrição dos casos de uso é iniciada com um verbo no infinitivo. No Diagrama, ele é representado por uma elipse.
 
A associação liga um ____________ ao caso de uso. No Diagrama, ela é representada por uma linha sólida.
 
Os relacionamentos entre casos de uso são o “include” e “___________”, respectivamente a possibilidade de um caso de uso incluir outro; e a possibilidade de um caso de uso estender outro sob uma determinada condição. No Diagrama, “include” é representado por uma seta pontilhada voltada para o caso a ser incluído; e “extend” é representado por uma seta pontilhada voltada para o caso estendido.
 
A ____________ ilustra a necessidade de sobreposição de papéis entre atores. No Diagrama, ela é representada por uma linha sólida com um triângulo apontando para o ator de maior importância.
Assinale a alternativa que completa as lacunas corretamente.
Alternativas:
· a)interna / plano / ator / extend / generalização.
· b)externa / caso de uso / requisito / exclude / justaposição.
· c)externa / caso de uso / ator / extend / generalização.Alternativa assinalada
· d)interna / caso de uso / requisito / exclude / justaposição.
· e)externa / plano / ator / extend / generalização.
2)Modelagem de requisitos é uma atividade intrínseca ao desenvolvimento de um Sistema ou Software.
 
Segundo Sommerville (2011), “o aspecto mais importante de um modelo é que ele deixa de fora os detalhes”, pois “um modelo é uma abstração do sistema a ser estudado, e não uma representação alternativa dele”.
 
Segundo Pressman (2011), “o modelo de requisitos deve alcançar três objetivos primários”:
Descrever o que o cliente solicita; Estabelecer uma base para a criação de um projeto de software; Definir um conjunto de requisitos que possa ser validade assim que o software for construído.
 
Tomando como referência as características da modelagem de requisitos, julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas.
 
(   ) Quando da realização da modelagem de requisitos, separar os requisitos funcionais dos requisitos não funcionais e realizar agrupamentos, são atividades desnecessárias.
(   ) Os requisitos funcionais devem ser analisados e aqueles com prioridade “essencial” garantirão o funcionamento do sistema.
(   ) As linguagens SysML e UML podem ser utilizadas como técnicas de modelagem de requisitos.
(   ) A fase de modelagem de requisitos não acrescenta detalhamento dos requisitos se compararmos à fase do início do projeto.
Assinale a alternativa que apresenta a sequência CORRETA.
Alternativas:
· a)F – F – V – V.
· b)F – V – V – F.Alternativa assinalada
· c)V – V – F – F.
· d)V – V – V – F.
· e)F – V – F – V.
3) A Elicitação (ou Levantamento) de requisitos traz à tona o problema a ser resolvido pelo projeto de desenvolvimento de um sistema ou Software. Reuniões com o cliente são pautadas em negociações e têm como final de fase um documento com a especificação dos requisitos: funcionalidades, casos e cenários de uso.
 
Tomando como referência a elicitação de requisitos, julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas.
 
(   ) A elicitação de requisitos é uma fase importante que deve acontecer no início do projeto, pois ela traz a compreensão dos objetivos e restrições a serem considerados.
(   ) Uma elicitação bem feita aumenta sensivelmente a chance de sucesso do projeto e, por consequência, melhor satisfação do cliente e usuários.
(   ) A elicitação pode ser difícil de ser feita pois ela conta com a presença de “stakeholders” internos e externos, e que precisam dedicar tempo para fazer um levantamento à altura das necessidades do projeto.
(   ) O estudo etnográfico pode ser útil para o levantamento de requisitos, mas não é considerado como tendo abordagem completa para este fim.
Assinale a alternativa que apresenta a sequência CORRETA.
Alternativas:
· a)F – V – V – F.
· b)V – V – F – F.
· c)F – F – V – V.
· d)V – V – V – V.Alternativa assinalada
· e)V – F – V – F.
4) Peter Drucker criou um método que tem como objetivo, no momento da construção das metas, realizar questionamentos sobre as metas, a fim de saber se são: específicas, mensuráveis, alcançáveis, relevante e temporal.
Nesse contexto, o método criado é conhecido como:
Alternativas:
1. a)método SMART.
Alternativa assinalada
· b)
1. método EMART.
· c)
1. método TRAMS.
· d)
1. método TRAME.
· e)
1. método KPI.
__________________________________________________________________________________
1) Conforme Mizrahi (2008) um vetor é uma estrutura de dados do mesmo tipo primitivo. Possuium índice que deve ser rigorosamente respeitado, não podemos por exemplo armazenar mais valores do que a quantidade que foi informada na declaração do vetor.
 
Observe o programa a seguir que realiza a troca de elementos entre o próprio vetor.
 
	#include <stdio.h>
const int TAM = 2;
int main ()
{
  int idade[TAM]={25,48};
  int troca;
  printf ("\n Antes da Troca: ");
  printf ("\n  %d ", idade [0]);
  printf ("\n  %d ", idade [1]);
  troca = idade[0];
  idade [0]= idade [1];
  idade [1] = troca;
  printf ("\n Depois da Troca: ");
  printf ("\n  %d ", idade [0]);
  printf ("\n  %d ", idade [1]);
  return 0;
} 
 
Fonte: MIZRAHI, V. V. Treinamento em linguagem C. 2ª ed. São Paulo. Pearson Prentice Hall, 2008.
 
Analise atentamente as asserções e assinale a alternativa CORRETA.
Com base nas afirmações sobre vetor e o programa apresentado, avalie as seguintes asserções e a relação proposta entre elas:
 
I. Existem algumas facilidades que podem ser utilizadas para ajudar o trabalho do programador e é o caso da utilização de constantes. Podemos utilizar uma constante para determinar o tamanho do vetor. Primeiro criamos uma constante do tipo inteiro e atribuímos um valor. Ao criar o vetor, usamos a constante para informar o tamanho do vetor.
 
PORQUE
 
II. Essa ação pode agilizar o trabalho do programador, suponha que o vetor tenha o tamanho de 30 elementos, para testar o programa devemos informar 30 elementos toda vez. Por exemplo: usando uma constante com o valor 4, basta informar o valor de 4 elementos e o podemos testar o programa com 4 elementos do vetor. No final dos testes, basta modificar o valor 4 da constante para o valor 30 (e que era a proposta inicial do programa).
Alternativas:
· a)As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
· b)A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
· c)A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
· d)As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.Alternativa assinalada
· e)As asserções I e II são proposições falsas.
2)Manzano, Matos e Lourenço(2015) afirmam que a criação de um vetor é similar a uma variável primitiva tendo que acrescentar apenas um número entre colchetes indicando qual será o tamanho desse vetor por exemplo: int valores [15], neste caso, estamos criando 15 espaços para armazenar valores inteiros. Cada elemento no vetor é acessado através do seu índice, que sempre começará pelo valor zero, independentemente da linguagem de programação.
 
Observe o programa a seguir utilizando um vetor.
 
#include <stdio.h>
const int valor = 3;
int main ()
{
int vetor[4]={2,4,6,8};
vetor [0] = vetor [0] * valor;
vetor [1] = vetor [1] * valor;
vetor [2] = vetor [2] * valor;
vetor [3] = vetor [3] * valor;
printf ("\n  %d - ", vetor [3]);
printf ("\n  %d -", vetor [2]);
printf ("\n  %d -", vetor [1]);
printf ("\n  %d .", vetor [0]);
return 0;
}
 
Assinale a opção correta que apresenta o resultado que será impresso na tela após o programa ser executado.
Alternativas:
· a)6 – 8 – 10 – 12.
· b)24 – 18 – 12 – 6.Alternativa assinalada
· c)6 – 12 – 18 – 24.
· d)18 – 12 – 6 – 24.
· e)24 – 12 – 18 – 6.
3)A programação é utilizada para ajudar a resolver problemas de todos os níveis. Operações matemáticas são os exemplos preferidos para ajudar no entendimento das estruturas das linguagens de programação.  A área de um quadrado corresponde ao tamanho da superfície desta figura. Um quadrado é um quadrilátero que possui seus lados congruentes ou seja, eles possuem exatamente a mesma medida.
 
O programa a seguir que calcula a área de um quadrado, observe que está faltando uma linha no programa:
 
	1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	#include <stdio.h>
int lado, area;
int main()
{
 printf("Insira o Lado: ");
scanf("%d", &lado);
// Cálculo da área
printf("A área e: %d \n", area);
return 0;
}
 
Assinale a opção correta que apresenta o comando que deve ser inserido na linha 7, para calcular a área do quadrado:
Alternativas:
· a)area = (lado1 * lado2);
· b)area = (lado * 2);
· c)area = (lado)2;
· d)lado = (area * area);
· e)area = (lado * lado);
Alternativa assinalada
4)As variáveis são muito úteis para o armazenamento de diversos tipos de dados.
 
De acordo com as informações apresentadas na tabela a seguir, faça a associação dos tipos de variáveis com suas respectivos características.
 
	Coluna -A 
	 
	Coluna -B
	I. Vetor
	 
	1. Podemos manipular variáveis e outros recursos pelo endereço de memória.
	II. Matriz
	 
	2. Possuem a estrutura de uma tabela contendo apenas 1 coluna e N linhas. 
	III. Struct
	 
	3. Possuem a estrutura de uma tabela contendo apenas N coluna e N linhas. 
	IV. Ponteiro
	 
	4. Um tipo de variável composta heterogênea.
 
Assinale a alternativa que apresenta a associação correta.
Alternativas:
· a)I - 3; II - 2; III - 1; IV- 4.
· b)I - 2; II - 3; III - 4; IV - 1.Alternativa assinalada
· c)I - 2; II - 3; III - 1; IV - 4.
· d)I - 4; II - 1; III - 2; IV - 3.
· e)I - 1; II - 2; III - 3; IV - 4.
5)A criação de um ponteiro só faz sentido se for associado a algum endereço de memória, para isso usa-se a seguinte sintaxe:
1. int idade = 18;
2. int *ponteiro_para_idade = &idade;
Na linha 1 criamos uma variável primitiva inteira com valor 18 e na linha 2 associamos um ponteiro chamado ponteiro_para_idade ao endereço da variável primitiva idade.
 
Podemos imprimir o conteúdo do ponteiro, que será o endereço da variável que ele aponta. Utilizando o ponteiro criado anteriormente (ponteiro_para_idade) temos a seguinte sintaxe:
Alternativas:
· a)printf("\n Conteudo do ponteiro: %d", &idade);
· b)scanf("\n Conteudo do ponteiro: %p", ponteiro_para_idade);
· c)gets("\n Conteudo do ponteiro: %d", &idade);
· d)scanf("\n Conteudo do ponteiro: %d", &idade);
· e)printf("\n Conteudo do ponteiro: %p", ponteiro_para_idade);
Alternativa assinalada
__________________________________________________________________________________
1)Para criar uma função recursiva, é necessário informar o tipo de retorno, o nome, e se recebe ou não parâmetros. O grande diferencial das funções recursivas e tradicionais é um comando no corpo da função, que invoca a si própria. Analise o trecho a seguir e complete a sequência associando as colunas:
 
1) #include<stdio.h>
2)
3)     if(valor != 0){
4)
5)     }
6)      else{
7)
8)      }
9) }
10)
11)
12)     return 0;
13) }
 
 
	Coluna  -A  (Linha)
	Coluna -B (Expressão)
	I.                     2
	A.       return valor + somar(valor - 1);
	II.                    4
	B.       int main(){
	III.                  7
	C.       printf("\n Resultado  = %d",somar(6));
	IV.                  10
	D.       int somar(int valor){
	V.                   11
	E.        return valor;
 
Assinale a alternativa que completa o trecho de forma correta:
Alternativas:
· a)I-D / II-A / III-E / IV-B / V-C.Alternativa assinalada
· b)I-A / II-B / III-E / IV-D / V-C.
· c)I-D / II-E / III-C / IV-B / V-A.
· d)I-B / II-A / III-C / IV-D / V-E.
· e)I-D / II-A / III-E / IV-C / V-B.
2)Para usar de forma mais otimizada a memória, existe uma alternativa chamada recursividade em cauda. Nesse tipo de técnica a recursividade funcionará como uma função iterativa. Uma função é caracterizada como recursiva em cauda quando a chamada a si mesmo é a última operação a ser feita no corpo da função. Nesse tipo de função, o caso base costuma ser informado como parâmetro, o que resultará um comportamento diferente.
 
A principal vantagem da recursividade em cauda consiste em:
Alternativas:
· a)as instâncias vão sendo criadas, porém quando chega na última, as funções precisam retornar o valor para “quem” invocou, gerando otimização na memória, pois precisa armazenar um ponto para devolução de valores.
· b)as instâncias vão sendo criadas, porém quando chega na última, as funções não precisam retornar o valor para “quem” invocou, gerando otimização na memória, pois não precisa armazenar nenhum ponto para devolução de valores.Alternativa assinalada
· c)as instâncias vãosendo descartadas, porém quando chega na última, as funções não descartam o valor invocado, gerando otimização na memória, pois não precisa armazenar nenhum ponto para devolução de valores.
· d)as instâncias vão sendo criadas, porém quando chega na última, as funções não retornam valor, gerando conflito na memória, pois não precisa armazenar nenhum ponto para devolução de valores.
· e)as instâncias vão sendo criadas, porém quando chega na última, as funções não precisam retornar o valor para “quem” invocou, gerando conflito na memória, pois não precisa armazenar nenhum ponto para devolução de valores.
3)“Muitos problemas têm a seguinte propriedade: cada instância do problema contém uma instância menor do mesmo problema. Diz-se que esses problemas têm estrutura recursiva. Para resolver tal problema, pode-se aplicar o seguinte método: se a instância em questão for pequena, resolva-a diretamente; senão, reduza-a a uma instância menor do mesmo problema, aplique o método à instância menor, volte à instância original. A aplicação desse método produz um algoritmo recursivo.” (FEOFILOFF, 2017, p. 1). Baseado nesse conceito, avalie as asserções a seguir:
 
I -  Recursividade significa indicar quando um problema maior pode ser dividido em instâncias menores do mesmo problema.
PORQUE
II - A técnica de recursividade pode substituir o uso de estruturas de repetição tornando o código mais elegante.
 
A respeito dessas asserções, assinale a alternativa correta:
Alternativas:
· a)As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
Alternativa assinalada
· b)As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
· c)A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
· d)A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
· e)As asserções I e II são proposições falsas.
4)A linguagem de programação C permite que os parâmetros sejam passados para as funções de duas maneiras, por valor e por referência. Na passagem por valor, uma expressão pode ser utilizada na chamada. Na passagem por referência, o endereço de uma variável deve ser passado na chamada da função. Dessa forma, a função pode modificar a variável diretamente, o que em geral não é recomendável, mas há situações onde esse recurso é necessário. Sempre que possível é recomendável utilizar a forma de passagem por valor, para evitar "efeitos colaterais", mas em algumas situações, esses efeitos são desejáveis quando é preciso criar uma função que retorne mais de um valor.
Fonte:Disponível em:< https://www.ime.usp.br/~elo/IntroducaoComputacao/Funcoes%20passagem%20de%20parametros.htm>Acesso.13.Ago.2018.
Como exemplo um número complexo, que possui uma parte real e outra complexa. Analise o trecho de programa e as asserções a seguir:
 
#include <stdio.h>
#include <stdlib.h>
void complexo2 (float *r, float *t);
int main ()
{
float a, b;
printf ("Entre com um numero complexo (2 numeros inteiros): ");
scanf("%f %f", &a, &b);
complexo2 ( &a, &b);
printf("O quadrado do número complexo é %f + i %f\n", a, b);
system("pause");
return 0;
}
 
Neste contexto, julgue as afirmações que se seguem.
I. No main são declaradas apenas duas variáveis reais a e b. E tanto na chamada da função scanf, quanto na chamada da função complexo2, as variáveis a e b são precedidas pelo caractere '*'.
II. Esse caractere ‘*’ indica a necessidade de que esses parâmetros sejam modificados pela função e retornem os valores apropriados.
III. No caso da função scanf, esses valores correspondem aos valores digitados pelo usuário, mas no caso da função complexo2, esses valores são computados pela função. Ou seja, os parâmetros a e b são utilizados apenas para saída, e no caso da complexo2, os parâmetros a e b são utilizados como entrada e saída da função.
IV. Os próprios valores armazenados nas variáveis a e b são utilizados como entrada da função complexo2, ou seja, como parte real e imaginária para calcular o valor do quadrado do número complexo, e ao mesmo tempo para devolver o resultado.
V. Na função printf, as variáveis a e b não são precedidas pelo caractere '&', portanto, não são modificadas pela função printf.
VI. Quando deseja-se criar uma função que devolva mais de um valor, é preciso definir esses parâmetros com um caractere '&' no protótipo da função, e ao chamar a função, os parâmetros utilizados na chamada correspondentes à entrada precisam ser precedidos pelo caractere '*' para indicar que eles podem ser modificados pela função chamada.
 
É correto apenas o que se afirma em:
Alternativas:
· a)I, II e VI.
· b)III, IV e V.Alternativa assinalada
· c)I e IV.
· d)II e V.
· e)III e VI.
5)Leia o trecho de programa a seguir:
 
#include<stdio.h>
int x = 10;
int main(){
int x = -1;   int b;
{
extern int x;     b = x;
}
printf("\n Valor de x = %d",x);
printf("\n Valor de b (x global) = %d",b);
return 0;
}
 
De acordo com o trecho de programa, analise as asserções a seguir:
 
I. Na linguagem C, para acessar o valor de uma variável global dentro de uma função que possui uma variável local com mesmo nome, deve-se usar a instrução extern.
PORQUE
II. Utilizar variáveis globais e locais com mesmo nome na linguagem C necessita criar uma nova variável chamada “b”, com um bloco de instruções, que atribui à nova variável o valor “interno” de x.
 
A respeito dessas asserções, assinale a alternativa correta:
Alternativas:
· a)As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
· b)As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
· c)A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
· d)A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.Alternativa assinalada
· e)As asserções I e II são proposições falsas.
__________________________________________________________________________________
1) Pseudocódigos é considerado uma ferramenta que pode auxiliar a programação, ela pode ser escrita em palavras similares ao inglês ou português para facilitar a interpretação e desenvolvimento de um programa. Neste contexto, analise o seguinte algoritmo escrito em pseudocódigo.
 
var
real: v1, v2, v3, v4, N1, x;
Início
escreva (“Digite Nota 1:”);
leia v1;
escreva (“Digite Nota 2:”);
leia v2;
escreva (“Digite Nota 3:”);
leia v3;
escreva (“Digite Nota 4:”);
leia v4;
N1 ? v1 + v2 + v3 + v4;
x ? N1 / 4;
escreva(“Resultado = ”, x);
Fim.
Agora, assinale a alternativa correta.
Alternativas:
· a)Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o restado final é armazenado em X e por fim é exibido.Alternativa assinalada
· b)Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o restado final é armazenado em N1 e por fim é exibido.
· c)Este algoritmo não armazena as notas em variáveis, o calculo é realizado diretamente em N1 e o restado final é armazenado em X e por fim é exibido.
· d)Este algoritmo não armazena as notas em variáveis, o calculo é realizado diretamente em X e o restado final é armazenado em N1 e por fim é exibido.
· e)Este algoritmo não exibi nenhum resultado.
2)A lógica de programação pode ser definida como uma técnica de encadear pensamentos para atingir determinado objetivo. Ela faz-se necessária para desenvolver programas e sistemas, pois permite definir a sequência lógica para a solução de um problema.
 
	1
	var
   real: x, y, z;
	2
	Início
	3
	   escreva (“Digite um Numero:”);
   leia x;
   escreva (“Digite outro Numero:”);
   leia y;
	4
	   z ? x + z + 1;
   escreva(“Resultado = ”, z);
	5
	Fim.
 
Considerando o algoritmo apresentado, julgue as afirmações que seguem e marque (V) para verdadeiro ou (F) para falso.
 
(   ) A parte 1 do pseudocódigo indica a declaração das variáveis que são compatíveis com qualquer tipo de dados.
(   ) A parte 3 do pseudocódigo corresponde a entrada de dados do algoritmo.
(   ) A parte 4 do pseudocódigo corresponde tando a parte de processamento quanto a parte de saída de dados do algoritmo..Agora, assinale a alternativa que contém sequência correta.
Alternativas:
· a)F - V - V.Alternativa assinalada
· b)F - V - F.
· c)V - V - V.
· d)V - V - F.
· e)F - F - F.
3) Conforme Deitel e Deitel (2011) podemos utilizar a estrutura de um vetor para armazenar variáveis do mesmo tipo de dado. Um vetor é uma estrutura de dados homogênea e que deve ser declarado com a quantidade de elementos que a estrutura deverá armazenar.
Fonte: DEITEL, Paul; DEITEL, Harvey. C Como Programar. 6. ed. São Paulo: Pearson, 2011.
 
Observe o programa a seguir que faz a leitura de três notas utilizando um vetor.
 
	1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
	#include <stdio.h>
int main ()
{
float nota[3],media=0;
printf("Digite a Primeira Nota");
scanf("%f",&nota[0]);
printf("Digite a Segunda Nota");
scanf("%f",&nota[1]);
printf("Digite a Terceira Nota");
scanf("%f",&nota[2]);
// cálculo da média
// impressão da média das notas
return 0;
}
 
Considerando  o programa apresentado, julgue as afirmativas a seguir  e marque  (V) para Verdadeiras ou (F) para  Falsas:
(  ) Na linha 11, para calcular a média devemos inserir o seguinte código:    media = (nota[0] + nota[1] + nota[2]) / 3;
(  ) Na linha 11, para calcular a média devemos inserir o seguinte código:    media = (nota[0] + nota[1] + nota[2] / 3);
(  ) Na linha 12, para imprimir a média devemos inserir o seguinte código:   printf ("A media das notas informadas  %.d\n", medias);
(  ) Na linha 12, para imprimir a média devemos inserir o seguinte código:  printf ("A media das notas informadas  %.2f\n", media);
Assinale a alternativa que apresenta a sequência correta.
Alternativas:
· a)V – F – V – F.
· b)V – F – F – V.Alternativa assinalada
· c)V – V – F – F.
· d)V – V – V – V. F – F – F – F.
4) Variáveis com estruturas compostas do tipo vetor ou matriz, só são capazes de  armazenar valores de um mesmo tipo, porem, além das estruturas homogêneas as linguagens de programação oferecem um tipo de variável composta heterogênea chamada de estruturas (structs) ou ainda de registros.
Na linguagem C, a criação de uma estrutura deve ser feita antes da função main() e deve possuir a seguinte sintaxe:
Alternativas:
· a) struct <nome>; <tipo> <nome_da_variavel1>; <tipo> <nome_da_variavel2>; ... ;Alternativa assinalada
· b)struct { <tipo> <nome_da_variavel1>; <tipo> <nome_da_variavel2>; ... };
· c)struct <nome>{ <nome_da_variavel1>; <nome_da_variavel2>; ... };
· d)struct <nome>{ <tipo> <nome_da_variavel1>; <tipo> <nome_da_variavel2>; ... };
· e)<nome> struct{ <tipo> <nome_da_variavel1>; <tipo> <nome_da_variavel2>; ... };
__________________________________________________________________________________
1) Segundo Schildt (1997), a estrutura condicional de seleção de casos, “switch-case”, “testa sucessivamente o valor de uma expressão contra uma lista de constantes inteiras ou de caractere”. Quando os valores são avaliados o comando é executado. É preciso estar atento para algumas particularidades para o comando switch / case: caso nenhum dos valores seja encontrado, o comando default será executado e os comandos são executados até o ponto que o comando break for localizado. Na figura a seguir, o fluxograma representa a estrutura condicional de seleção de casos:
 
Figura 5 - Fluxograma de estrutura condicional de seleção de casos
 
Fonte: do autor.
Assinale a alternativa que contém a sintaxe em C que representa o fluxograma da figura anterior.
Alternativas:
· a)case (variável)
{
case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
default: <comandos>
}
· b)switch (variável)
{
case constante1:
>comandos<
break;
switch (variável)
case constante2:
<comandos>
break;
default: <comandos>
}
· c){
switch (variável)
case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
default: <comandos>
}
· d)switch (variável)
{
case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
default: <comandos>
}
Alternativa assinalada
· e){switch (variável)
case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
default: <comandos>}
2) Existem casos em que é necessário estabelecer verificação de condições sucessivas, em que uma determinada ação poderá ser executada se um conjunto anterior de instruções ou condições for satisfeito. Sendo a ação executada, ela poderá ainda estabelecer novas condições. Isto significa utilizar uma condição dentro de outra condição. 
 Fonte:Disponível em<http://estruturacondicional.blogspot.com/2008/07/estrutura-condicional-encadeada.html>Acesso.11.Jul.2018 (Modificado)
Este tipo de estrutura poderá possuir diversos níveis de condição, sendo chamadas de:
Alternativas:
· a)alinhamentos.
· b)aninhamentos ou encadernamentos.
· c)encadernamentos.
· d)alinhamentos ou encadernamentos.
· e)aninhamentos ou encadeamentos.
Alternativa assinalada
3) O laço do-while executa, pelo menos uma vez, o que está dentro dele e só ao final da execução é que ele faz o teste, usando o velho e conhecido laço while. Ou seja, tem-se a garantia que o laço vai ser executado uma vez, sem precisar inicializar variável ou pedir dados ao usuário antes do while. Vale lembra que do, em inglês e nesse contexto, do significa "faça" e while significa "enquanto". 
 Fonte:Disponível em<Adaptado de https://www.cprogressivo.net/2013/02/O-que-e-e-como-usar-o-laco-DO-WHILE-em-linguagem-C.html>Acesso.16.Jul.2018.
Esse laço do-while quer dizer:
Alternativas:
· a)"faça isso" -> código -> "enquanto essa condição for verdadeira, repita".
Alternativa assinalada
 b) "faça aquilo" -> código -> "enquanto essa condição for verdadeira, repita".
 c) "faça isso" -> laço -> "enquanto essa condição for falsa, repita".
 d) "faça aquilo" -> laço -> "se essa condição for verdadeira, pare".
 e) "faça isso" -> código -> "se essa condição for verdadeira, pare".
4) Na repetição com variáveis de controle, ou seja, usando o laço “for”, o comando iterativo “for” que em português significa “para”, segundo Mizrahi (2008), é geralmente usado para repetir uma informação por um número fixo de vezes, isto é, pode-se determinar quantas vezes acontecerá a repetição. Para facilitar ainda mais, veja a seguinte representação:
 
for(x = 10,y = 0; x >= 0, y <= 10; x--,y++)
 
Conforme esta representação, associe as colunas corretamente:
 
	Trecho do programa
	Representação
	I. (x = 10, y = 0;
	A.       O laço se repetirá enquanto x for maior ou igual a zero e enquanto y for menor ou igual a 10.
	II.  x >= 0, y <=10;
	B.       O “x”  tem o seu valor iniciado em “10” e “y” iniciado em “0”.
	III.   x--,y++)
	C.       x será decrementado de 1 e y será incrementado de 1.
Assinale a alternativa que contém a associação correta:
Alternativas:
· a)I-A ,  II-B, III-C.
· b)I-B,  II-C, III-A.
· c)I-C,  II-A , III-B.
· d)I-C,  II-B,  III-A.
· e)I-B,  II-A , III-C.
Alternativa assinalada
________________________________________________________________________________
1)Na área da computação é comum que criemos analogias entre os conceitos e situações cotidianas, afim de facilitar o entendimento dos mesmos.
Com base nisso associe a COLUNA-A, que apresenta alguns elementos de programação, com a COLUNA-B, que apresenta alguns exemplos aplicáveis:
	COLUNA-A
	COLUNA-B
	I. Vetor
	A. Uma música em uma playlist criada pelo usuário.
	II. Índice do Vetor
	B. Edifício com 10 apartamentos.
	III. Lista ligada
	C. Brincadeira do amigo – secreto.
	IV - Elemento de uma lista
	D. O número de uma casa em uma rua.
A seguir assinale a alternativa que apresenta a associação correta.
Alternativas:
· a)I - B; II - D; III - C; IV - A.Alternativa assinalada
· b)I - B; II - C; III - D; IV - A.
· c)I - B; II - A; III - C; IV - D.
· d)I - C; II - D; III - B; IV - A.
· e)I - C; II - A; III - B; IV - D.
2) Em uma fila, só é possível remover um elemento pelo seu início. É possível implementar o trecho de código a seguir para remoção do elemento e apresentar seu valor no retorno da função:
float remove_fila (Fila* f){
char elem;
if (fila_vazia(f)){
printf("A Fila esta vazia\n");
exit(1);
}
elem= f -> vet[f -> ini];
f -> ini = (f -> ini + 1) % N;
f -> n--;
return elem;
}
De acordo com o trecho, marque (V) verdadeiro ou (F) falso nas asserções a seguir:
( ) Nesse trecho é possível observar que, antes de remover o elemento da fila, é preciso verificar se ela possui elementos, chamando a função fila vazia.
( ) Caso a fila esteja vazia, a função apresenta uma mensagem informando ao usuário que não há elementos para serem removidos e finaliza a função.
( ) Caso a fila possua elementos, a variável vet recebe o elemento da primeira posição da fila.
( ) Assim, o início da fila volta para o elemento anterior.
( ) Este elemento incrementa a quantidade de elementos e retorna o elemento removido.
Assinale a alternativa que contém a sequência correta:
Alternativas:
· a)V-F-V-F-V.
· b)V-F-V-F-V.
· c)F-V-V-F-V.
· d)V-V-F-F-F.Alternativa assinalada
· e)V-F-F-V-F.
3)A declaração da estrutura inicial para criação de uma pilha pode ser implementada por:
struct Pilha {
int topo;
int capacidade;
float * proxElem;
};
struct Pilha minhaPilha;
Segundo Celes, Cerqueira e Rangel (2004), com a estrutura declarada é possível criar a função para criar uma pilha. Esta função aloca dinamicamente na memória o espaço para utilização da pilha. O trecho de código para criação da pilha pode ser implementado por:
void cria_pilha(struct Pilha *p, int c ){
p -> proxElem = (float*) malloc (c * sizeof(float));
p -> topo = -1;
p -> capacidade = c;
}
Com a função para criar a pilha realizada, ela estará vazia, ou seja, não terá nenhum elemento na pilha em sua criação. Assim, é possível criar a função que vai permitir ser inserido um novo elemento na pilha.
Considerando os códigos apresentados, o correto formato para inserir um novo elemento na pilha usando o nome push( ) é:
Alternativas:
· a)void push-pilha(struct Pilha *p, float **v){
p -> topo++;
p -> proxElem [p -> topo] = v;
}
· b)void push_pilha(struct Pilha *p, float v){
p -> topo-+;
p -> proxElem [p -> topo] = v;
}
· c)void push_pilha(struct Pilha *p, float v){
p -> topo++;
p -> proxElem [p -> topo] = v;
}
Alterativa assinalada
· d)void push-pilha(struct Pilha /p, float v){
p -> topo+-;
p -> proxElem [p -> topo] = v;
}
· e)void push_pilha(struct Pilha /p, float v){
p -> topo++;
p -> proxElem [p -> topo] = v;
}
4) As listas ligadas são estruturas de dados conhecidas por serem flexíveis quanto às suas operações e seu tamanho é dinâmico. Toda lista é composta por nós, e o nó é um conjunto de informações que permitem apontar para o próximo elemento.
Considere a organização das pessoas na fila do banco, porém seu funcionamento coerente depende do comportamento da lista ligada, então aplique o conceito de inserção em listas ligadas para assinalar a alternativa correta:
Alternativas:
· a)As listas só permitem inserção de elementos em seu início.
· b)As listas só permitem inserção de elementos em seu fim.
· c)As listas só permitem inserção de elementos em seu início ou seu fim.
· d)As listas permitem inserção de elementos em qualquer posição.Alternativa assinalada
· e)As listas não permitem sobreposição ao inserir elementos.
__________________________________________________________________________________
1) É comum utilizarmos ponteiros com funções. Um caso importante de ponteiros com funções é na alocação de memória dinâmica. A função malloc ( ) pertencente a biblioteca <stdlib.h> é usada para alocar memória dinamicamente. Entender o tipo de retorno dessa função é muito importante, principalmente para seu avanço, quando você começar a estudar estruturas de dados.
 
Observe atentamente o programa que demonstra o uso de funções:
 
	#include<stdio.h>
#include<stdlib.h>
int* alocar(){
return malloc(200);
}
int main(){
int *memoria;
memoria = alocar();
if(memoria != NULL){
printf("Endereço de memória alocada = %x",memoria);
}
else{
printf("Memória não alocada");
}
return 0;
}
Conforme demonstrado no programa apresentado a função malloc ( ) irá reservar um espaço de memória dinamicamente, a função malloc ( ) pode retornar dois valores e são eles:
Alternativas:
· a)null  ou um ponteiro genérico (ponteiro genérico é do tipo void)Alternativa assinalada
· b)int  ou um ponteiro genérico (ponteiro genérico é do tipo void)
· c)float  ou um ponteiro genérico (ponteiro genérico é do tipo void)
· d)char  ou numérico (int ou float)
· e)string  ou  null
2)As funções são utilizadas nos programas para acelerar o processo de programação. Muitas vezes precisamos fazer o mesmo tipo de programa que tem a seguinte opção: “leia um vetor de N números”.  Para essa atividade, podemos criar uma função que gera automaticamente o vetor, utilizando a função rand (). A função rand () gera números aleatórios e basta então inserir esses números em um vetor.  Suponha que seja necessário ordenar o vetor. As linguagens de programação já possuem métodos de ordenação, os mais populares métodos de ordenação são: Insertion Sort, Selection Sort, Bubble Sort, Comb Sort, Quick Sort, Merge Sort, Heap Sort e Shell Sort.
 
Observe atentamente o programa que demonstra o uso das funções para gerar o vetor e para ordenar o vetor com o método Bubble Sort:
 
	#include<stdio.h>
#include <stdlib.h>
int r[10];
 
void gerarRandomico(){
int a;
for(a = 0; a < 10; ++a) {
r[a] = rand()%100;
}}
 
void ordena(){
 int i, j, aux;
for( i=0; i<10; i++ ){
  for( j=i+1; j<10; j++ ){
    if( r[i] > r[j] ){
      aux = r[i];
      r[i] = r[j];
      r[j] = aux;
    }}}}
 
int main(){
int i;
gerarRandomico();
ordena();
for ( i = 0; i < 10; i++ ) {
printf("\n Vetor[%d] = %d", i, r[i]);}
return 0; }
 
Tomando como referência o contexto apresentado, julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas .
(    ) Uma função criada para retornar um valor char, o comando return somente poderá retornar o valor char.
(    ) Uma função pode ser chamada quantas vezes forem necessárias para realizar uma tarefa, a única exceção é de que não podemos fazer essa chamada dentro de uma estrutura de repetição for ( ), somente poderá ser utilizado o comando while ( ).
(    ) No programa apresentado, existem duas funções que não utilizam o return porque elas são do tipo void.
(    ) A variável que foi utilizada no comando for ( i = 0; i < 10; i++ ) foi declarada como tipo int e deveria ser float pois, quando usamos vetores os números podem ser maiores.
(    ) No programa apresentado foi utilizado duas funções pois, cada função tem um objetivo específico, devemos evitar misturar as funcionalidades das funções.
Assinale a alternativa que apresenta a sequência correta:
Alternativas:
· a)V – V – V – V – V.
· b)F – V – V – F – V.
· c)F – F – V– F – V.
· d)V – F – V – F – V.Alternativa assinalada
· e)F – F – F – F – F.
3) O escopo é dividido em duas categorias, local ou global. Quando se tem variáveis que ambas são locais, elas existem e são notadas somente dentro do corpo da função onde foram definidas. Para definir uma variável global é preciso criá-la fora da função, assim ela será visível por todas as funções do programa.
Fonte: SCHEFFER, V.C. Escopo e passagem de parâmetros.
 
 Nesse contexto, analise as asserções a seguir:
I - A utilização de variáveis globais permite dimensionar o uso da memória.
II -  As  funções e procedimento tem  pouca relevância em programação.
III -  As variáveis locais são criadas e mantidas na memória ao fim da função
 IV - As variáveis globais permanecem na memória durante todo o tempo de execução.
É correto apenas o que se afirma em:
Alternativas:
· a)I e II.
· b)III e IV.
· c)II e III.
· d)I e IV.Alternativa assinalada
· e)I, II, III e IV.
4) Analise a figura a seguir.
 
Fonte: elaborada pela autora.
 
Para compreender o mecanismo  apresentado na imagem anterior, organize as operações em sequência correta:
 
1 -  Chamada a função funcaoRecursiva(), que por sua vez, possui em seu corpo um comando que invoca a si mesma.
2 -  Na terceira instância, uma determinada condição de parada é satisfeita.
3 - Um novo espaço é alocado, com variáveis e comandos. Como a função é recursiva, novamente ela chama a si mesma, criando

Outros materiais