Prévia do material em texto
Atividade Semanais – 1 Disciplina: Programação Orientada a Objetos Prof. Gabriela Nunes Lopes Aluno: Ohana Martins Moreira de Souza Turma: TECAD 1 – Marque V para verdadeiro e F para falso: (V) O princípio da abstração é a nossa capacidade de abstrair a complexidade de um sistema e se concentrar em apenas partes desse sistema, que é o tema central de nosso estudo ou foco em um dado momento. (F) A herança é um pilar da POO que impede que classes incluam propriedades de outras classes. (F) Uma desvantagem de POO é sua falta de confiabilidade, pois por ser uma forma de programar que requer abstração, podem ser gerados erros se não houver experiência do programador; (V) Polimorfismo é a capacidade de diferentes objetos responderem de maneira diferente à mesma mensagem. (V) Uma vantagem da POO é ser reutilizável, pois é possível reutilizar classes orientadas a objetos bem-feitas em diversos programas diferentes e ainda estender seu comportamento através do que é conhecido como polimorfismo (F) Os pilares da POO são o encapsulamento, a herança, e a programação estruturada (V) Uma das vantagens da POO é ser natural, isto é, produz software mais inteligível, pois permite que você defina os componentes de seu software com base em objetos e comportamentos do mundo real. CORREÇÃO DAS AFIRMATIVAS FALSAS DA Q.1 A herança permite que as classes incluam propriedades de outras classes. Essa característica também ajuda na reutilização de código já definido. A POO é confiável. Códigos bem projetados e cuidadosamente escritos tendem a ser mais confiáveis. Sua natureza modular permite que sejam feitas manutenções em uma parte do software sem afetar outras. Os pilares da POO são o Encapsulamento, Herança, Composição e Polimorfismo. 2 – Marque a opção correta seguindo as seguintes afirmações: I – O software “industrial” tem um ciclo de vida longo, e é um exemplo de sistema de software complexo; II – Se não for gerenciada a complexidade de software, é possível entregar a tempo, mantendo o orçamento e com alta qualidade III – A decomposição, a hierarquia e a abstração são formas de ordenar sistemas complexos. a) Apenas a opção I está correta; b) Todas estão corretas; c)Apenas as opções I e III estão corretas; d) Apenas as opções II e III estão corretas. CORREÇÃO DAS AFIRMATIVAS FALSAS DA Q.2 II – Se não for gerenciada a complexidade os sistemas são entregues com atraso, estouram o orçamento, não atendem os requisitos especificados, têm baixa qualidade (bugs), não atendem as necessidades dos usuários. 3 – Crie um exemplo de uma classe hipotética, crie os atributos dessa classe, os métodos dessa classe e pelo menos dois objetos preenchendo os atributos (apenas teórico). CLASSE Tênis ATRIBUTOS Cor Modelo Marca Loja MÉTODOS Corre Caminhar Treinar Sair OBJETOS All star Adidas 4- Exercício 1 (Python) Faça o diagrama UML de como esse código funcionará e depois implemente em Python. Coloque aqui os prints dos seus códigos e dos resultados dos testes. Crie uma classe bolo; Crie uma instância da classe bolo; Crie dois tipos de bolo com os seguintes atributos: Nome Recheio Massa Se tem cobertura – o primeiro tem e o segundo não Crie um terceiro bolo, igual ao primeiro, mas sem cobertura: Advindo da instância principal (crie a partir da classe com os atributos requeridos) Printe na tela a cobertura de todos os bolos Advindo do primeiro bolo (um objeto já criado), mas mude a cobertura para: sem cobertura Printe na tela a cobertura de todos os bolos Explique os resultados SIMULAÇÃO: EXPLICAÇÃO: Na linha 29 do código é criado um novo objeto na classe Bolo, com as características sendo passadas como parâmetros. Mesmo que os valores de bolo1 tenham sido passados para bolo3_1, bolo3_1 possui sua própria alocação de memória. Portanto, as alterações feitas em bolo3_1 não impactam o bolo1. Já na linha 36 não é criado um novo objeto. O bolo3_2 passa a referenciar o mesmo objeto que bolo1. Como ambos estão apontando para a mesma área de memória qualquer alteração feita em bolo3_2 irá alterar a memória e, consequentemente, irá afetar as características de bolo1. 5 - Exercício 3 (Python) – Classe FazBolo - Faça o diagrama UML de como esse código funcionará e implemente em Python. Coloque os prints dos seus códigos e dos resultados. Crie a classe FazBolo Crie um construtor com massa, recheio, cobertura, temponoforno e temperatura: Inicie a variável temponoforno como 0, mas não a instancie como atributo Crie um método chamado assar, cujo atributo seja o tempo no forno e se usará fogo médio, baixo ou alto (temperatura): Printe: “ Você está querendo assar o bolo no fogo TIPO por X minutos“, sendo X e TIPO inseridos pelo usuário. Crie prints com avisos que achar necessários considerando as seguintes condições: Para o fogo alto, o bolo assa em 10 minutos. Antes fica cru e depois ele queima. Para o fogo médio, o bolo assa em 30 minutos. Antes fica cru e depois ele queima. Para o fogo baixo, o bolo assa em 45 minutos. Antes fica cru e depois ele queima. Considere restrições para números negativos ou valores absurdos! Crie testes e explique os resultados! SIMULAÇÕES: EXPLICAÇÃO: As mensagens exibidas no seu código têm uma função essencial em guiar o usuário ao longo da execução do programa, assegurando que ele compreenda o que deve ser inserido e oferecendo retorno sobre suas opções. Essas mensagens elevam a interatividade e a experiência do usuário, fazendo com que ele saiba com precisão o que é esperado em cada fase da elaboração do bolo. image6.png image7.png image8.png image1.png image2.png image3.png image4.png image5.png