Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Exercícios de Programação, Exercícios de Programação em Python

Exercícios de Programação em Python

Tipologia: Exercícios

2026

Compartilhado em 06/03/2026

gabriel-souto-17
gabriel-souto-17 🇧🇷

1 documento

1 / 3

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Lista de Exerc´ıcios - PIG
Gabriel Souto
February 12, 2026
Lista de Exerc´ıcios Aula 1 (OO e Classes em
Python)
Baseado no conte´udo apresentado na Aula 1 (Introdu¸ao a OO, classes, atributos de
classe vs. instˆancia, etodos, self einit ).
1. Classe Circulo: encapsulamento e valida¸ao Implemente uma classe Circulo
que represente um c´ırculo no plano.
(a) A classe deve possuir os atributos de instˆancia x,y(centro) e raio.
(b) Implemente init com valores padr˜ao (x=0,y=0,raio=1).
(c) Implemente os eto dos:
area() (retorna a ´area),
perimetro() (retorna o comprimento da circunferˆencia),
mover(dx, dy) (atualiza o centro),
contem(px, py) (retorna True se o ponto est´a dentro ou sobre o
c´ırculo).
(d) Exce¸oes: se o raio passado for negativo, lance uma exce¸ao (ValueError)
com uma mensagem informativa.
2. Atributos de classe vs. atributos de instˆancia: contador de ob jetos Im-
plemente uma classe Time inspirada no exemplo da aula, mas com um contador
global de instˆancias.
(a) Crie um atributo de classe total times inicialmente igual a 0.
(b) A cada vez que um ob jeto Time for criado, incremente Time.total times.
(c) Inclua os atributos de instˆancia nome edivisao1 (booleano).
(d) Implemente:
descricao() para imprimir uma frase com o nome do time,
div() para imprimir se est´a na 1ªou 2ªdivis˜ao,
quantos() como eto do de classe ou fun¸ao externa que mostre
Time.total times.
(e) Fa¸ca um p equeno programa de teste criando arios times e mostrando o
contador antes e depois.
1
pf3

Pré-visualização parcial do texto

Baixe Exercícios de Programação e outras Exercícios em PDF para Programação em Python, somente na Docsity!

Lista de Exerc´ıcios - PIG

Gabriel Souto

February 12, 2026

Lista de Exerc´ıcios — Aula 1 (OO e Classes em

Python)

Baseado no conte´udo apresentado na Aula 1 (Introdu¸c˜ao a OO, classes, atributos de classe vs. instˆancia, m´etodos, self e init ).

  1. Classe Circulo: encapsulamento e valida¸c˜ao Implemente uma classe Circulo que represente um c´ırculo no plano.

(a) A classe deve possuir os atributos de instˆancia x, y (centro) e raio. (b) Implemente init com valores padr˜ao (x=0, y=0, raio=1). (c) Implemente os m´etodos:

  • area() (retorna a ´area),
  • perimetro() (retorna o comprimento da circunferˆencia),
  • mover(dx, dy) (atualiza o centro),
  • contem(px, py) (retorna True se o ponto est´a dentro ou sobre o c´ırculo). (d) Exce¸c˜oes: se o raio passado for negativo, lance uma exce¸c˜ao (ValueError) com uma mensagem informativa.
  1. Atributos de classe vs. atributos de instˆancia: contador de objetos Im- plemente uma classe Time inspirada no exemplo da aula, mas com um contador global de instˆancias.

(a) Crie um atributo de classe total times inicialmente igual a 0. (b) A cada vez que um objeto Time for criado, incremente Time.total times. (c) Inclua os atributos de instˆancia nome e divisao1 (booleano). (d) Implemente:

  • descricao() para imprimir uma frase com o nome do time,
  • div() para imprimir se est´a na 1ª ou 2ª divis˜ao,
  • quantos() como m´etodo de classe ou fun¸c˜ao externa que mostre Time.total times. (e) Fa¸ca um pequeno programa de teste criando v´arios times e mostrando o contador antes e depois.
  1. Polimorfismo na pr´atica: fun¸c˜ao que “aceita qualquer sequˆencia” Es- creva uma fun¸c˜ao relatorio sequencia(X) que funcione para list, tuple e str (e, idealmente, tamb´em para outras sequˆencias).

(a) A fun¸c˜ao deve imprimir:

  • o tipo de X,
  • o tamanho len(X),
  • os pares (i, X[i]) para i=0,1,...,len(X)-1. (b) Depois, crie uma segunda fun¸c˜ao mesma interface(A,B) que retorne True se:
  • ambos suportam len(),
  • e ambos suportam indexa¸c˜ao obj[i] para i=0. (c) Exce¸c˜oes: use try/except para capturar casos onde len() ou X[0] n˜ao existam e trate adequadamente.
  1. Classe C generalizada: fun¸c˜ao afim com atualiza¸c˜ao de parˆametros Na aula aparece uma classe C que calcula a · x + b. Implemente uma classe Afim para representar fun¸c˜oes f (x) = ax + b.

(a) Use init para receber a e b. (b) Implemente:

  • avaliar(x): retorna f (x),
  • atualizar(a=None, b=None): permite alterar a e/ou b sem recriar o objeto,
  • compor(g): recebe outro objeto Afim e retorna um novo objeto rep- resentando f (g(x)). (c) Crie um script de teste que:
  • crie duas fun¸c˜oes afins,
  • avalie em alguns pontos,
  • compose as fun¸c˜oes e compare com o c´alculo manual.
  1. Mini-simulador OO: “agenda de objetos” com m´etodos e exce¸c˜oes Im- plemente um mini-sistema orientado a objetos para registrar tarefas de estudo.

(a) Crie uma classe Tarefa com atributos de instˆancia: titulo (string), prioridade (inteiro 1–5), concluida (booleano). (b) A classe deve ter:

  • concluir() (marca como conclu´ıda),
  • reabrir() (marca como n˜ao conclu´ıda),
  • descricao() (retorna uma string bem formatada com t´ıtulo, priori- dade e status). (c) Crie uma classe Agenda que mant´em uma lista de tarefas e oferece:
  • adicionar(tarefa) (recebe um objeto Tarefa),
  • remover(titulo) (remove pela primeira ocorrˆencia),
  • listar(apenas pendentes=False) (imprime ou retorna as descri¸c˜oes),
  • buscar(trecho) (retorna todas as tarefas cujo t´ıtulo cont´em trecho).