请完成以下代码并解释其结果：
```
def foo(x):
  y = 2
  return x + y
def bar(z):
  return foo(z) * 3
do_something(bar(3))```
这是一段Python代码，其中定义了两个函数foo和bar。foo函数接受一个参数x，将2加到它上面并返回结果。bar函数接受一个参数z，调用foo函数并将z作为参数传递给它，然后将foo函数的结果乘以3并返回。最后，该代码调用未定义的函数do_something并将bar(3)作为参数传递给它，因此会出现NameError异常。需要定义do_something函数才能成功运行程序。