you buy it .
At the Power Plant.
he's on the gold bridge. if not then check the gym
You find it in M.T Silver Cave
top left tube
he gives you the missing machine part for the generator at the power plant :) hope i helped :D
It's in mistys gym
in the gym in cearulean city
South of Rock Cave.
You talk to the boss and he will say that somebody stole a part from the generator, when you return the part, he will give you the TM Zap Cannon. You can also now take the train from Saffron to Goldenrod.
go to pallet town, i think
The powerplant one? Well. go to Mystys gym top mid-left of the Gym you will find Machine part, bring it back to the plant and your good!
You get that part in the gym leaders building in the rubber tube.This is in Cerulean City