Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit e330e27

Browse filesBrowse files
committed
Criado o modulo carro para testes de criacao de classes e composicao.
1 parent 396e8fb commit e330e27
Copy full SHA for e330e27

File tree

Expand file treeCollapse file tree

1 file changed

+169
-0
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+169
-0
lines changed
Open diff view settings
Collapse file

‎oo/carro.py‎

Copy file name to clipboard
+169Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
"""
2+
Você deve criar uma classe carro que vai possuir
3+
dois atributos compostos por outras duas classes:
4+
5+
Motor
6+
Direção
7+
8+
O Motor terá a responsabilidade de controlar a velocidade.
9+
Ele oferece os seguintes atributos:
10+
11+
Atributo de dado velocidade
12+
Método acelerar, que deverá incremetar a velocidade de uma unidade
13+
Método frear que deverá decrementar a velocidade em duas unidades
14+
15+
A Direção terá a responsabilidade de controlar a direção. Ela oferece
16+
os seguintes atributos:
17+
18+
Valor de diração com valores possíveis: Norte, Sul, Leste, Oeste.
19+
Método girar_a_direita
20+
Método girar_a_esquerda
21+
22+
23+
N
24+
O L
25+
S
26+
27+
Exemplo:
28+
>>> # Testando motor
29+
>>> motor = Motor()
30+
>>> motor.velocidade
31+
0
32+
>>> motor.acelerar()
33+
>>> motor.velocidade
34+
1
35+
>>> motor.acelerar()
36+
>>> motor.velocidade
37+
2
38+
>>> motor.acelerar()
39+
>>> motor.velocidade
40+
3
41+
>>> motor.frear()
42+
>>> motor.velocidade
43+
1
44+
>>> motor.frear()
45+
>>> motor.velocidade
46+
0
47+
>>> # Testando Direcao
48+
>>> direcao = Direcao()
49+
>>> direcao.valor
50+
'Norte'
51+
>>> direcao.girar_a_direita()
52+
>>> direcao.valor
53+
'Leste'
54+
>>> direcao.girar_a_direita()
55+
>>> direcao.valor
56+
'Sul'
57+
>>> direcao.girar_a_direita()
58+
>>> direcao.valor
59+
'Oeste'
60+
>>> direcao.girar_a_direita()
61+
>>> direcao.valor
62+
'Norte'
63+
>>> direcao.girar_a_esquerda()
64+
>>> direcao.valor
65+
'Oeste'
66+
>>> direcao.girar_a_esquerda()
67+
>>> direcao.valor
68+
'Sul'
69+
>>> direcao.girar_a_esquerda()
70+
>>> direcao.valor
71+
'Leste'
72+
>>> direcao.girar_a_esquerda()
73+
>>> direcao.valor
74+
'Norte'
75+
>>> carro = Carro(direcao, motor)
76+
>>> carro.calcular_velocidade()
77+
0
78+
>>> carro.acelerar()
79+
>>> carro.calcular_velocidade()
80+
1
81+
>>> carro.acelerar()
82+
>>> carro.calcular_velocidade()
83+
2
84+
>>> carro.frear()
85+
>>> carro.calcular_velocidade()
86+
0
87+
>>> carro.calcular_direcao()
88+
'Norte'
89+
>>> carro.girar_a_direita()
90+
>>> carro.calcular_direcao()
91+
'Leste'
92+
>>> carro.girar_a_esquerda()
93+
>>> carro.calcular_direcao()
94+
'Norte'
95+
>>> carro.girar_a_esquerda()
96+
>>> carro.calcular_direcao()
97+
'Oeste'
98+
"""
99+
100+
101+
102+
class Motor:
103+
104+
def __init__(self, velocidade=0):
105+
self.velocidade = velocidade
106+
107+
def acelerar(self):
108+
self.velocidade += 1
109+
110+
def frear(self):
111+
self.velocidade -= 2
112+
if self.velocidade < 0:
113+
self.velocidade = 0
114+
115+
116+
class Direcao:
117+
118+
def __init__(self, valor='Norte'):
119+
self.valor = valor
120+
121+
def girar_a_direita(self):
122+
if self.valor == 'Norte':
123+
self.valor = 'Leste'
124+
elif self.valor == 'Leste':
125+
self.valor = 'Sul'
126+
elif self.valor == 'Sul':
127+
self.valor = 'Oeste'
128+
else:
129+
self.valor = 'Norte'
130+
131+
def girar_a_esquerda(self):
132+
if self.valor == 'Norte':
133+
self.valor = 'Oeste'
134+
elif self.valor == 'Oeste':
135+
self.valor = 'Sul'
136+
elif self.valor == 'Sul':
137+
self.valor = 'Leste'
138+
else:
139+
self.valor = 'Norte'
140+
141+
class Carro:
142+
143+
def __init__(self, direcao, motor):
144+
self.motor = motor
145+
self.direcao = direcao
146+
147+
def girar_a_direita(self):
148+
return self.direcao.girar_a_direita()
149+
150+
def girar_a_esquerda(self):
151+
return self.direcao.girar_a_esquerda()
152+
153+
def acelerar(self):
154+
return self.motor.acelerar()
155+
156+
def frear(self):
157+
return self.motor.frear()
158+
159+
def calcular_velocidade(self):
160+
return self.motor.velocidade
161+
162+
def calcular_direcao(self):
163+
return self.direcao.valor
164+
165+
166+
if __name__ == '__main__':
167+
motor = Motor()
168+
direcao = Direcao()
169+
carro = Carro()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.